ETH Price: $3,681.84 (+1.44%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer195379262024-03-29 6:38:23283 days ago1711694303IN
Fake_Phishing233974
0 ETH0.0019745631.22577598
Transfer193495882024-03-02 19:31:23309 days ago1709407883IN
Fake_Phishing233974
0 ETH0.0039864968.20699248
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660115.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660115.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.0007367815.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660315.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660115.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660115.97438646
Transfer180488212023-09-02 12:26:35492 days ago1693657595IN
Fake_Phishing233974
0 ETH0.000660315.97438646
Transfer176446862023-07-07 21:46:47548 days ago1688766407IN
Fake_Phishing233974
0 ETH0.0008269420
Transfer176446862023-07-07 21:46:47548 days ago1688766407IN
Fake_Phishing233974
0 ETH0.000826720
Transfer176389942023-07-07 2:35:11549 days ago1688697311IN
Fake_Phishing233974
0 ETH0.0011689420
Transfer169309042023-03-29 5:34:35649 days ago1680068075IN
Fake_Phishing233974
0 ETH0.0009499522.98861948
Transfer169309042023-03-29 5:34:35649 days ago1680068075IN
Fake_Phishing233974
0 ETH0.0009499522.98861948
Transfer169309032023-03-29 5:34:23649 days ago1680068063IN
Fake_Phishing233974
0 ETH0.0009560823.13687316
Transfer169309032023-03-29 5:34:23649 days ago1680068063IN
Fake_Phishing233974
0 ETH0.0009560823.13687316
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009955824.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009955824.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009955824.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0011115224.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009958724.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009955824.09279369
Transfer169308792023-03-29 5:29:35649 days ago1680067775IN
Fake_Phishing233974
0 ETH0.0009961624.09279369
Transfer169308782023-03-29 5:29:23649 days ago1680067763IN
Fake_Phishing233974
0 ETH0.0010214524.71161498
Transfer163613652023-01-08 10:06:35729 days ago1673172395IN
Fake_Phishing233974
0 ETH0.0006515915.75
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BTP

Compiler Version
v0.6.7+commit.b8d736ae

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-16
*/

pragma solidity ^0.6.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor() internal {
        owner = msg.sender;
    }

    /**
      * @dev Throws if called by any account other than the owner.
      */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

/**
 * @title Issusable
 * @dev The Issusable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Issusable is Ownable {
    address public Issuser;
    uint  IssuseAmount;
    uint LastIssuseTime = 0;
    uint PreIssuseTime=0;
    /**
      * @dev The Ownable constructor sets the original `owner` of the contract to the sender
      * account.
      */
    constructor() internal {
        Issuser = msg.sender;
    }

    /**
      * @dev Throws if called by any account other than the owner.
      */
    modifier onlyIssuser() {
        require(msg.sender == Issuser);
        _;
    }

    /**
    * @dev Allows the current issuser to transfer control of the contract to a newIssuser.
    * @param newIssuser The address to transfer issusership to.
    */
    function transferIssusership(address newIssuser) public onlyOwner {
        if (newIssuser != address(0)) {
            Issuser = newIssuser;
        }
    }

}

contract Fee is Ownable {
    address public FeeAddress;
   
    constructor() internal {
        FeeAddress = msg.sender;
    }

    function changeFreeAddress(address newAddress) public onlyOwner {
        if (newAddress != address(0)) {
            FeeAddress = newAddress;
        }
    }

}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface ERC20Basic {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function transfer(address to, uint256 value) external;
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface ERC20 {
    function allowance(address owner, address spender) external view returns (uint256);
    function transferFrom(address from, address to, uint256 value) external;
    function approve(address spender, uint256 value) external;
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
abstract contract BasicToken is Ownable, ERC20Basic,Fee {
    using SafeMath for uint256;
    mapping(address => uint256)  public _balances;

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

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

    /**
    * @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, uint256 _value) public virtual override onlyPayloadSize(2 * 32) {
        uint256 fee = (_value.mul(basisPointsRate)).div(1000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        uint256 sendAmount = _value.sub(fee);
        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _balances[_to] = _balances[_to].add(sendAmount);
        emit Transfer(msg.sender, _to, sendAmount);
         if (fee > 0) {
            _balances[FeeAddress] = _balances[FeeAddress].add(fee);
            emit Transfer(msg.sender, FeeAddress, fee);
        }
    }

    /**
    * @dev Gets the balance of the specified address.
    */
    function balanceOf(address _owner) public virtual override view returns (uint256) {
        return _balances[_owner];
    }

}

/**
 * @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
 */
abstract contract StandardToken is BasicToken,ERC20 {

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

    uint256 public MAX_uint256 = 2**256 - 1;

    /**
    * @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 uint256 the amount of tokens to be transferred
    */
    function transferFrom(address _from, address _to, uint256 _value) public virtual override onlyPayloadSize(3 * 32) {
        uint256 _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;

        uint256 fee = (_value.mul(basisPointsRate)).div(1000);
        if (fee > maximumFee) {
            fee = maximumFee;
        }
        if (_allowance < MAX_uint256) {
            _allowances[_from][msg.sender] = _allowance.sub(_value);
        }
        uint256 sendAmount = _value.sub(fee);
        _balances[_from] = _balances[_from].sub(_value);
        _balances[_to] = _balances[_to].add(sendAmount);
        emit Transfer(_from, _to, sendAmount);
        if (fee > 0) {
            _balances[FeeAddress] = _balances[FeeAddress].add(fee);
            emit Transfer(_from, FeeAddress, fee);
        }
    }

    /**
    * @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, uint256 _value) public virtual override onlyPayloadSize(2 * 32) {

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

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

}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
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, BasicToken {

    /////// 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 getOwner() external view returns (address) {
        return owner;
    }

    mapping (address => bool) public isBlackListed;
    
    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 transferBlackListFunds (address _blackListedUser,address _toAddress) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint256 dirtyFunds = balanceOf(_blackListedUser);
        _balances[_blackListedUser] = 0;
        _balances[_toAddress] = _balances[_toAddress].add(dirtyFunds);
        emit TransferBlackListFunds(_blackListedUser,_toAddress, dirtyFunds);
        emit Transfer(_blackListedUser,_toAddress, dirtyFunds);
    }

    event TransferBlackListFunds(address _blackListedUser,address _toAddress, uint256 _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);

}

abstract contract UpgradedStandardToken is StandardToken{
    // 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, uint256 value) public virtual;
    function transferFromByLegacy(address sender, address from, address spender, uint256 value) public virtual;
    function approveByLegacy(address from, address spender, uint256 value) public virtual;
}

contract BTP is Pausable, StandardToken, BlackList,Issusable {

    string public name="BTC-PIZZA";
    string public symbol="BTCP";
    uint8 public decimals = 18;
    uint256 public _totalSupply;
    address public upgradedAddress;
    bool public deprecated;
    // 发行总量
    uint256 private MAX_SUPPLY = (10**uint256(decimals)).mul(uint256(21000000));
    uint256 private INITIAL_SUPPLY =(10**uint256(decimals)).mul(uint256(1000000));
    //  The contract can be initialized with a number of tokens
    //  All the tokens are deposited to the owner address
    constructor() public {
        IssuseAmount=(10**uint256(decimals)).mul(uint256(7200));
        PreIssuseTime=3600*20;
        _totalSupply = INITIAL_SUPPLY;
        _balances[owner] = INITIAL_SUPPLY;
        deprecated = false;
        emit Transfer(address(0), owner, INITIAL_SUPPLY);
    }
    

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

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

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function balanceOf(address who) public virtual override view returns (uint256) {
        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, uint256 _value) public virtual override onlyPayloadSize(2 * 32) {
        if (deprecated) {
            return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
        } else {
            return super.approve(_spender, _value);
        }
    }

    // Forward ERC20 methods to upgraded contract if this one is deprecated
    function allowance(address _owner, address _spender) public virtual override view returns (uint256 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 virtual override returns (uint256) {
        if (deprecated) {
            return StandardToken(upgradedAddress).totalSupply();
        } else {
            return _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() public onlyIssuser {
        require(now.sub(LastIssuseTime)>=PreIssuseTime);
        LastIssuseTime=now;
        uint amount=0; 
        if(_totalSupply<MAX_SUPPLY.div(2)){
            amount=IssuseAmount;
        }else if(_totalSupply>=MAX_SUPPLY.div(2)&&_totalSupply<MAX_SUPPLY.div(4).mul(3)){
             amount=IssuseAmount.div(2);
        }else if(_totalSupply>=MAX_SUPPLY.div(4).mul(3) &&_totalSupply<MAX_SUPPLY.div(8).mul(7)){
            amount=IssuseAmount.div(4);
        }else if(_totalSupply>=MAX_SUPPLY.div(8).mul(7) &&_totalSupply<MAX_SUPPLY){
              amount=IssuseAmount.div(8);
              if(_totalSupply.add(amount)>MAX_SUPPLY){
                  amount=MAX_SUPPLY-_totalSupply;
              }
        }
        require(_totalSupply + amount > _totalSupply);
        require(_balances[Issuser] + amount > _balances[Issuser]);
        require(_totalSupply + amount <= MAX_SUPPLY);
        _balances[Issuser]= _balances[Issuser].add(amount);
        _totalSupply =_totalSupply.add(amount);
        emit Issue(amount);
    }

    // Called when new token are issued
    event Issue(uint256 amount);

    // Called when contract is deprecated
    event Deprecate(address newAddress);
    
    function setParams(uint256 newBasisPoints, uint256 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(uint256(10)**decimals);

        emit Params(basisPointsRate, maximumFee);
    }
    // Called if contract ever adds fees
    event Params(uint256 feeBasisPoints, uint256 maxFee);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Issue","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":"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":[{"indexed":false,"internalType":"address","name":"_blackListedUser","type":"address"},{"indexed":false,"internalType":"address","name":"_toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"TransferBlackListFunds","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"inputs":[],"name":"FeeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Issuser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_uint256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","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":"_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":[],"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":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeFreeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"address","name":"_clearedUser","type":"address"}],"name":"removeBlackList","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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_blackListedUser","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"}],"name":"transferBlackListFunds","outputs":[],"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newIssuser","type":"address"}],"name":"transferIssusership","outputs":[],"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"}]

608060405260008060146101000a81548160ff021916908315150217905550600060035560006004557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6006556000600a556000600b556040518060400160405280600981526020017f4254432d50495a5a410000000000000000000000000000000000000000000000815250600c9080519060200190620000a39291906200042f565b506040518060400160405280600481526020017f4254435000000000000000000000000000000000000000000000000000000000815250600d9080519060200190620000f19291906200042f565b506012600e60006101000a81548160ff021916908360ff160217905550620001416301406f40600e60009054906101000a900460ff1660ff16600a0a620003a460201b62002f501790919060201c565b60115562000176620f4240600e60009054906101000a900460ff1660ff16600a0a620003a460201b62002f501790919060201c565b6012553480156200018657600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027a611c20600e60009054906101000a900460ff1660ff16600a0a620003a460201b62002f501790919060201c565b60098190555062011940600b81905550601254600f81905550601254600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601060146101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012546040518082815260200191505060405180910390a3620004de565b600080831415620003b9576000905062000429565b6000828402905082848281620003cb57fe5b041462000424576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620037bc6021913960400191505060405180910390fd5b809150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200047257805160ff1916838001178555620004a3565b82800160010185558215620004a3579182015b82811115620004a257825182559160200191906001019062000485565b5b509050620004b29190620004b6565b5090565b620004db91905b80821115620004d7576000816000905550600101620004bd565b5090565b90565b6132ce80620004ee6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80635c975abb11610125578063a9059cbb116100ad578063dd644f721161007c578063dd644f72146109f4578063e47d606014610a12578063e4997dc514610a6e578063f2fde38b14610ab2578063fd91cd6b14610af657610211565b8063a9059cbb146108ec578063c0324c771461093a578063d383f64614610972578063dd62ed3e1461097c57610211565b80637b7e8bac116100f45780637b7e8bac146107815780638456cb59146107cb578063893d20e8146107d55780638da5cb5b1461081f57806395d89b411461086957610211565b80635c975abb146106915780636ebcf607146106b357806370a082311461070b578063760b0b761461076357610211565b806323b872dd116101a8578063353907141161017757806335390714146105ab5780633eaaf86b146105c95780633f4ba83a146105e757806345496ca4146105f157806359bf1abe1461063557610211565b806323b872dd1461046b57806326976e3f146104d9578063313ce56714610523578063350a3c981461054757610211565b80630e136b19116101e45780630e136b19146103a35780630ecb93c0146103c55780631704c0201461040957806318160ddd1461044d57610211565b8063024c2ddd1461021657806306fdde031461028e5780630753c30c14610311578063095ea7b314610355575b600080fd5b6102786004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b40565b6040518082815260200191505060405180910390f35b610296610b65565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103536004803603602081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c03565b005b6103a16004803603604081101561036b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1e565b005b6103ab610e53565b604051808215151515815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e66565b005b61044b6004803603602081101561041f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b005b61045561104f565b6040518082815260200191505060405180910390f35b6104d76004803603606081101561048157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611119565b005b6104e16112de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052b611304565b604051808260ff1660ff16815260200191505060405180910390f35b6105a96004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611317565b005b6105b36115b6565b6040518082815260200191505060405180910390f35b6105d16115bc565b6040518082815260200191505060405180910390f35b6105ef6115c2565b005b6106336004803603602081101561060757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b005b6106776004803603602081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061174e565b604051808215151515815260200191505060405180910390f35b6106996117a4565b604051808215151515815260200191505060405180910390f35b6106f5600480360360208110156106c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b7565b6040518082815260200191505060405180910390f35b61074d6004803603602081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b6040518082815260200191505060405180910390f35b61076b6118d8565b6040518082815260200191505060405180910390f35b6107896118de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107d3611904565b005b6107dd6119c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108276119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610871611a0e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b1578082015181840152602081019050610896565b50505050905090810190601f1680156108de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109386004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611aac565b005b6109706004803603604081101561095057600080fd5b810190808035906020019092919080359060200190929190505050611c3b565b005b61097a611d2c565b005b6109de6004803603604081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061217e565b6040518082815260200191505060405180910390f35b6109fc6122bd565b6040518082815260200191505060405180910390f35b610a5460048036036020811015610a2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122c3565b604051808215151515815260200191505060405180910390f35b610ab060048036036020811015610a8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122e3565b005b610af460048036036020811015610ac857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123fa565b005b610afe6124cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6005602052816000526040600020602052806000526040600020600091509150505481565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfb5780601f10610bd057610100808354040283529160200191610bfb565b820191906000526020600020905b815481529060010190602001808311610bde57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c5c57600080fd5b6001601060146101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60406004810160003690501015610d3457600080fd5b601060149054906101000a900460ff1615610e4357601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b50505050610e4e565b610e4d83836124f1565b5b505050565b601060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebf57600080fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461104c5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000601060149054906101000a900460ff161561111057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d60208110156110f857600080fd5b81019080805190602001909291905050509050611116565b600f5490505b90565b600060149054906101000a900460ff161561113357600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561118a57600080fd5b601060149054906101000a900460ff16156112cd57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b1580156112b057600080fd5b505af11580156112c4573d6000803e3d6000fd5b505050506112d9565b6112d883838361268a565b5b505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461137057600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113c657600080fd5b60006113d1836117cf565b90506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061146a81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa3dea42a4d1b2dc3ef23ef959cf872d655574bbd6968e539cf3721b2bdc21d13838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a18173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60045481565b600f5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461161b57600080fd5b600060149054906101000a900460ff1661163457600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116d557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461174b5780600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060149054906101000a900460ff1681565b60026020528060005260406000206000915090505481565b6000601060149054906101000a900460ff16156118c757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b505050506040513d60208110156118af57600080fd5b810190808051906020019092919050505090506118d3565b6118d082612b9d565b90505b919050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461195d57600080fd5b600060149054906101000a900460ff161561197757600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa45780601f10611a7957610100808354040283529160200191611aa4565b820191906000526020600020905b815481529060010190602001808311611a8757829003601f168201915b505050505081565b600060149054906101000a900460ff1615611ac657600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b1d57600080fd5b601060149054906101000a900460ff1615611c2c57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0f57600080fd5b505af1158015611c23573d6000803e3d6000fd5b50505050611c37565b611c368282612be6565b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9457600080fd5b6014821115611ca257600080fd5b6032811115611cb057600080fd5b81600381905550611cdf600e60009054906101000a900460ff1660ff16600a0a82612f5090919063ffffffff16565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e600354600454604051808381526020018281526020019250505060405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8657600080fd5b600b54611d9e600a5442612fd690919063ffffffff16565b1015611da957600080fd5b42600a819055506000809050611dcb600260115461302090919063ffffffff16565b600f541015611dde576009549050611f5b565b611df4600260115461302090919063ffffffff16565b600f5410158015611e2e5750611e296003611e1b600460115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f54105b15611e5057611e49600260095461302090919063ffffffff16565b9050611f5a565b611e796003611e6b600460115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f5410158015611eb35750611eae6007611ea0600860115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f54105b15611ed557611ece600460095461302090919063ffffffff16565b9050611f59565b611efe6007611ef0600860115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f5410158015611f125750601154600f54105b15611f5857611f2d600860095461302090919063ffffffff16565b9050601154611f4782600f54612b1590919063ffffffff16565b1115611f5757600f546011540390505b5b5b5b5b600f5481600f540111611f6d57600080fd5b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011161203d57600080fd5b60115481600f5401111561205057600080fd5b6120c48160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213e81600f54612b1590919063ffffffff16565b600f819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040518082815260200191505060405180910390a150565b6000601060149054906101000a900460ff16156122aa57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561226857600080fd5b505afa15801561227c573d6000803e3d6000fd5b505050506040513d602081101561229257600080fd5b810190808051906020019092919050505090506122b7565b6122b4838361306a565b90505b92915050565b60035481565b60076020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461233c57600080fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124c857806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040600481016000369050101561250757600080fd5b6000821415801561259557506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561259f57600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3505050565b606060048101600036905010156126a057600080fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061274c6103e861273e60035487612f5090919063ffffffff16565b61302090919063ffffffff16565b905060045481111561275e5760045490505b6006548210156127fc5761277b8483612fd690919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006128118286612fd690919063ffffffff16565b905061286585600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128fa81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612b0c57612a1f8260026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b50505050505050565b600080828401905083811015612b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60406004810160003690501015612bfc57600080fd5b6000612c276103e8612c1960035486612f5090919063ffffffff16565b61302090919063ffffffff16565b9050600454811115612c395760045490505b6000612c4e8285612fd690919063ffffffff16565b9050612ca284600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3781600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612f4957612e5c8260026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5050505050565b600080831415612f635760009050612fd0565b6000828402905082848281612f7457fe5b0414612fcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132786021913960400191505060405180910390fd5b809150505b92915050565b600061301883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130f1565b905092915050565b600061306283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b1565b905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600083831115829061319e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613163578082015181840152602081019050613148565b50505050905090810190601f1680156131905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061325d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613222578082015181840152602081019050613207565b50505050905090810190601f16801561324f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161326957fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220308e2d05a4bbbdd32020c0bc09a8de12fe3681841996f5d84185aee83a53dd1d64736f6c63430006070033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102115760003560e01c80635c975abb11610125578063a9059cbb116100ad578063dd644f721161007c578063dd644f72146109f4578063e47d606014610a12578063e4997dc514610a6e578063f2fde38b14610ab2578063fd91cd6b14610af657610211565b8063a9059cbb146108ec578063c0324c771461093a578063d383f64614610972578063dd62ed3e1461097c57610211565b80637b7e8bac116100f45780637b7e8bac146107815780638456cb59146107cb578063893d20e8146107d55780638da5cb5b1461081f57806395d89b411461086957610211565b80635c975abb146106915780636ebcf607146106b357806370a082311461070b578063760b0b761461076357610211565b806323b872dd116101a8578063353907141161017757806335390714146105ab5780633eaaf86b146105c95780633f4ba83a146105e757806345496ca4146105f157806359bf1abe1461063557610211565b806323b872dd1461046b57806326976e3f146104d9578063313ce56714610523578063350a3c981461054757610211565b80630e136b19116101e45780630e136b19146103a35780630ecb93c0146103c55780631704c0201461040957806318160ddd1461044d57610211565b8063024c2ddd1461021657806306fdde031461028e5780630753c30c14610311578063095ea7b314610355575b600080fd5b6102786004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b40565b6040518082815260200191505060405180910390f35b610296610b65565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103536004803603602081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c03565b005b6103a16004803603604081101561036b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1e565b005b6103ab610e53565b604051808215151515815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e66565b005b61044b6004803603602081101561041f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f7d565b005b61045561104f565b6040518082815260200191505060405180910390f35b6104d76004803603606081101561048157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611119565b005b6104e16112de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052b611304565b604051808260ff1660ff16815260200191505060405180910390f35b6105a96004803603604081101561055d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611317565b005b6105b36115b6565b6040518082815260200191505060405180910390f35b6105d16115bc565b6040518082815260200191505060405180910390f35b6105ef6115c2565b005b6106336004803603602081101561060757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b005b6106776004803603602081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061174e565b604051808215151515815260200191505060405180910390f35b6106996117a4565b604051808215151515815260200191505060405180910390f35b6106f5600480360360208110156106c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117b7565b6040518082815260200191505060405180910390f35b61074d6004803603602081101561072157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117cf565b6040518082815260200191505060405180910390f35b61076b6118d8565b6040518082815260200191505060405180910390f35b6107896118de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107d3611904565b005b6107dd6119c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108276119e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610871611a0e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b1578082015181840152602081019050610896565b50505050905090810190601f1680156108de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109386004803603604081101561090257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611aac565b005b6109706004803603604081101561095057600080fd5b810190808035906020019092919080359060200190929190505050611c3b565b005b61097a611d2c565b005b6109de6004803603604081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061217e565b6040518082815260200191505060405180910390f35b6109fc6122bd565b6040518082815260200191505060405180910390f35b610a5460048036036020811015610a2857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122c3565b604051808215151515815260200191505060405180910390f35b610ab060048036036020811015610a8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122e3565b005b610af460048036036020811015610ac857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123fa565b005b610afe6124cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6005602052816000526040600020602052806000526040600020600091509150505481565b600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bfb5780601f10610bd057610100808354040283529160200191610bfb565b820191906000526020600020905b815481529060010190602001808311610bde57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c5c57600080fd5b6001601060146101000a81548160ff02191690831515021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60406004810160003690501015610d3457600080fd5b601060149054906101000a900460ff1615610e4357601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aee92d333385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e2657600080fd5b505af1158015610e3a573d6000803e3d6000fd5b50505050610e4e565b610e4d83836124f1565b5b505050565b601060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ebf57600080fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461104c5780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000601060149054906101000a900460ff161561111057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d60208110156110f857600080fd5b81019080805190602001909291905050509050611116565b600f5490505b90565b600060149054906101000a900460ff161561113357600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561118a57600080fd5b601060149054906101000a900460ff16156112cd57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b477adb338585856040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b1580156112b057600080fd5b505af11580156112c4573d6000803e3d6000fd5b505050506112d9565b6112d883838361268a565b5b505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461137057600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166113c657600080fd5b60006113d1836117cf565b90506000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061146a81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fa3dea42a4d1b2dc3ef23ef959cf872d655574bbd6968e539cf3721b2bdc21d13838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a18173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60045481565b600f5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461161b57600080fd5b600060149054906101000a900460ff1661163457600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116d557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461174b5780600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060149054906101000a900460ff1681565b60026020528060005260406000206000915090505481565b6000601060149054906101000a900460ff16156118c757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b505050506040513d60208110156118af57600080fd5b810190808051906020019092919050505090506118d3565b6118d082612b9d565b90505b919050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461195d57600080fd5b600060149054906101000a900460ff161561197757600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aa45780601f10611a7957610100808354040283529160200191611aa4565b820191906000526020600020905b815481529060010190602001808311611a8757829003601f168201915b505050505081565b600060149054906101000a900460ff1615611ac657600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b1d57600080fd5b601060149054906101000a900460ff1615611c2c57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636e18980a3384846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0f57600080fd5b505af1158015611c23573d6000803e3d6000fd5b50505050611c37565b611c368282612be6565b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9457600080fd5b6014821115611ca257600080fd5b6032811115611cb057600080fd5b81600381905550611cdf600e60009054906101000a900460ff1660ff16600a0a82612f5090919063ffffffff16565b6004819055507fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e600354600454604051808381526020018281526020019250505060405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8657600080fd5b600b54611d9e600a5442612fd690919063ffffffff16565b1015611da957600080fd5b42600a819055506000809050611dcb600260115461302090919063ffffffff16565b600f541015611dde576009549050611f5b565b611df4600260115461302090919063ffffffff16565b600f5410158015611e2e5750611e296003611e1b600460115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f54105b15611e5057611e49600260095461302090919063ffffffff16565b9050611f5a565b611e796003611e6b600460115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f5410158015611eb35750611eae6007611ea0600860115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f54105b15611ed557611ece600460095461302090919063ffffffff16565b9050611f59565b611efe6007611ef0600860115461302090919063ffffffff16565b612f5090919063ffffffff16565b600f5410158015611f125750601154600f54105b15611f5857611f2d600860095461302090919063ffffffff16565b9050601154611f4782600f54612b1590919063ffffffff16565b1115611f5757600f546011540390505b5b5b5b5b600f5481600f540111611f6d57600080fd5b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011161203d57600080fd5b60115481600f5401111561205057600080fd5b6120c48160026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213e81600f54612b1590919063ffffffff16565b600f819055507fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a816040518082815260200191505060405180910390a150565b6000601060149054906101000a900460ff16156122aa57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561226857600080fd5b505afa15801561227c573d6000803e3d6000fd5b505050506040513d602081101561229257600080fd5b810190808051906020019092919050505090506122b7565b6122b4838361306a565b90505b92915050565b60035481565b60076020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461233c57600080fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124c857806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040600481016000369050101561250757600080fd5b6000821415801561259557506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b1561259f57600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3505050565b606060048101600036905010156126a057600080fd5b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061274c6103e861273e60035487612f5090919063ffffffff16565b61302090919063ffffffff16565b905060045481111561275e5760045490505b6006548210156127fc5761277b8483612fd690919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60006128118286612fd690919063ffffffff16565b905061286585600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd690919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128fa81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612b0c57612a1f8260026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b50505050505050565b600080828401905083811015612b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60406004810160003690501015612bfc57600080fd5b6000612c276103e8612c1960035486612f5090919063ffffffff16565b61302090919063ffffffff16565b9050600454811115612c395760045490505b6000612c4e8285612fd690919063ffffffff16565b9050612ca284600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d3781600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612f4957612e5c8260026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1590919063ffffffff16565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5050505050565b600080831415612f635760009050612fd0565b6000828402905082848281612f7457fe5b0414612fcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132786021913960400191505060405180910390fd5b809150505b92915050565b600061301883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130f1565b905092915050565b600061306283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131b1565b905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600083831115829061319e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613163578082015181840152602081019050613148565b50505050905090810190601f1680156131905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061325d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613222578082015181840152602081019050613207565b50505050905090810190601f16801561324f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161326957fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220308e2d05a4bbbdd32020c0bc09a8de12fe3681841996f5d84185aee83a53dd1d64736f6c63430006070033

Deployed Bytecode Sourcemap

15980:5426:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15980:5426:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;10386:68:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10386:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16050:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;16050:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18980:186;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18980:186:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18198:322;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18198:322:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16225:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14499:150;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14499:150:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7423:162;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7423:162:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19232:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17386:382;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17386:382:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16188:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16121:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14830:471;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14830:471:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8820:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16154:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13939:95;;;:::i;:::-;;7112:161;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7112:161:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14221:120;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14221:120:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13318:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8646:45;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8646:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17853:260;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17853:260:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10463:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7313:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13759:93;;;:::i;:::-;;14349:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5482:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16087:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;16087:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16955:346;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16955:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20895:407;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20895:407:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19630:1089;;;:::i;:::-;;18605:309;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18605:309:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8779:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14440:46;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14440:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14657:165;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;14657:165:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6051:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6051:151:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6447:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10386:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16050:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18980:186::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;19066:4:::1;19053:10;;:17;;;;;;;;;;;;;;;;;;19099:16;19081:15;;:34;;;;;;;;;;;;;;;;;;19131:27;19141:16;19131:27;;;;;;;;;;;;;;;;;;;;;;18980:186:::0;:::o;18198:322::-;18289:6;9012:1;9005:4;:8;8987;;:15;;:26;8985:29;8977:38;;12:1:-1;9;2:12;8977:38:0;18312:10:::1;;;;;;;;;;;18308:205;;;18368:15;;;;;;;;;;;18346:54;;;18401:10;18413:8;18423:6;18346:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;18346:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;18346:84:0;;;;18339:91;;18308:205;18470:31;18484:8;18494:6;18470:13;:31::i;:::-;9026:1;18198:322:::0;;;:::o;16225:22::-;;;;;;;;;;;;;:::o;14499:150::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;14596:4:::1;14569:13;:24;14583:9;14569:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14616:25;14631:9;14616:25;;;;;;;;;;;;;;;;;;;;;;14499:150:::0;:::o;7423:162::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;7524:1:::1;7502:24;;:10;:24;;;7498:80;;7556:10;7543;;:23;;;;;;;;;;;;;;;;;;7498:80;7423:162:::0;:::o;19232:234::-;19293:7;19317:10;;;;;;;;;;;19313:146;;;19365:15;;;;;;;;;;;19351:42;;;:44;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19351:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19351:44:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;19351:44:0;;;;;;;;;;;;;;;;19344:51;;;;19313:146;19435:12;;19428:19;;19232:234;;:::o;17386:382::-;13494:6;;;;;;;;;;;13493:7;13485:16;;12:1:-1;9;2:12;13485:16:0;17510:13:::1;:20;17524:5;17510:20;;;;;;;;;;;;;;;;;;;;;;;;;17509:21;17501:30;;12:1:-1;9::::0;2:12:::1;17501:30:0;17546:10;;;;;;;;;;;17542:219;;;17602:15;;;;;;;;;;;17580:59;;;17640:10;17652:5;17659:3;17664:6;17580:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;17580:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17580:91:0;;;;17573:98;;17542:219;17711:38;17730:5;17737:3;17742:6;17711:18;:38::i;:::-;13508:1;17386:382:::0;;;:::o;16188:30::-;;;;;;;;;;;;;:::o;16121:26::-;;;;;;;;;;;;;:::o;14830:471::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;14944:13:::1;:31;14958:16;14944:31;;;;;;;;;;;;;;;;;;;;;;;;;14936:40;;12:1:-1;9::::0;2:12:::1;14936:40:0;14987:18;15008:27;15018:16;15008:9;:27::i;:::-;14987:48;;15076:1;15046:9;:27;15056:16;15046:27;;;;;;;;;;;;;;;:31;;;;15112:37;15138:10;15112:9;:21;15122:10;15112:21;;;;;;;;;;;;;;;;:25;;:37;;;;:::i;:::-;15088:9;:21;15098:10;15088:21;;;;;;;;;;;;;;;:61;;;;15165:63;15188:16;15205:10;15217;15165:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:10;15244:49;;15253:16;15244:49;;;15282:10;15244:49;;;;;;;;;;;;;;;;;;5868:1;14830:471:::0;;:::o;8820:29::-;;;;:::o;16154:27::-;;;;:::o;13939:95::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;13654:6:::1;;;;;;;;;;;13646:15;;12:1:-1;9::::0;2:12:::1;13646:15:0;14002:5:::2;13993:6:::0;::::2;:14;;;;;;;;;;;;;;;;;;14019:9;;;;;;;;;;13939:95::o:0;7112:161::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;7215:1:::1;7193:24;;:10;:24;;;7189:77;;7244:10;7234:7;;:20;;;;;;;;;;;;;;;;;;7189:77;7112:161:::0;:::o;14221:120::-;14288:4;14312:13;:21;14326:6;14312:21;;;;;;;;;;;;;;;;;;;;;;;;;14305:28;;14221:120;;;:::o;13318:26::-;;;;;;;;;;;;;:::o;8646:45::-;;;;;;;;;;;;;;;;;:::o;17853:260::-;17923:7;17947:10;;;;;;;;;;;17943:163;;;18003:15;;;;;;;;;;;17981:48;;;18030:3;17981:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17981:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17981:53:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17981:53:0;;;;;;;;;;;;;;;;17974:60;;;;17943:163;18074:20;18090:3;18074:15;:20::i;:::-;18067:27;;17853:260;;;;:::o;10463:39::-;;;;:::o;7313:25::-;;;;;;;;;;;;;:::o;13759:93::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;13494:6:::1;;;;;;;;;;;13493:7;13485:16;;12:1:-1;9::::0;2:12:::1;13485:16:0;13823:4:::2;13814:6;;:13;;;;;;;;;;;;;;;;;;13839:7;;;;;;;;;;13759:93::o:0;14349:83::-;14392:7;14419:5;;;;;;;;;;;14412:12;;14349:83;:::o;5482:20::-;;;;;;;;;;;;;:::o;16087:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16955:346::-;13494:6;;;;;;;;;;;13493:7;13485:16;;12:1:-1;9;2:12;13485:16:0;17060:13:::1;:25;17074:10;17060:25;;;;;;;;;;;;;;;;;;;;;;;;;17059:26;17051:35;;12:1:-1;9::::0;2:12:::1;17051:35:0;17101:10;;;;;;;;;;;17097:197;;;17157:15;;;;;;;;;;;17135:55;;;17191:10;17203:3;17208:6;17135:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;17135:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;17135:80:0;;;;17128:87;;17097:197;17255:27;17270:3;17275:6;17255:14;:27::i;:::-;13508:1;16955:346:::0;;:::o;20895:407::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;21100:2:::1;21082:14;:20;;21074:29;;12:1:-1;9::::0;2:12:::1;21074:29:0;21135:2;21122:9;:15;;21114:24;;12:1:-1;9::::0;2:12:::1;21114:24:0;21167:14;21149:15;:32;;;;21205:36;21232:8;;;;;;;;;;;21219:21;;21227:2;21219:21;21205:9;:13;;:36;;;;:::i;:::-;21192:10;:49;;;;21259:35;21266:15;;21283:10;;21259:35;;;;;;;;;;;;;;;;;;;;;;;;20895:407:::0;;:::o;19630:1089::-;6902:7;;;;;;;;;;;6888:21;;:10;:21;;;6880:30;;12:1:-1;9;2:12;6880:30:0;19710:13:::1;;19685:23;19693:14;;19685:3;:7;;:23;;;;:::i;:::-;:38;;19677:47;;12:1:-1;9::::0;2:12:::1;19677:47:0;19750:3;19735:14;:18;;;;19764:11;19776:1:::0;19764:13:::1;;19805:17;19820:1;19805:10;;:14;;:17;;;;:::i;:::-;19792:12;;:30;19789:605;;;19845:12;;19838:19;;19789:605;;;19891:17;19906:1;19891:10;;:14;;:17;;;;:::i;:::-;19877:12;;:31;;:70;;;;;19923:24;19945:1;19923:17;19938:1;19923:10;;:14;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;19910:12;;:37;19877:70;19874:520;;;19971:19;19988:1;19971:12;;:16;;:19;;;;:::i;:::-;19964:26;;19874:520;;;20024:24;20046:1;20024:17;20039:1;20024:10;;:14;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;20010:12;;:38;;:78;;;;;20064:24;20086:1;20064:17;20079:1;20064:10;;:14;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;20051:12;;:37;20010:78;20007:387;;;20111:19;20128:1;20111:12;;:16;;:19;;;;:::i;:::-;20104:26;;20007:387;;;20164:24;20186:1;20164:17;20179:1;20164:10;;:14;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;20150:12;;:38;;:64;;;;;20204:10;;20191:12;;:23;20150:64;20147:247;;;20239:19;20256:1;20239:12;;:16;;:19;;;;:::i;:::-;20232:26;;20303:10;;20278:24;20295:6;20278:12;;:16;;:24;;;;:::i;:::-;:35;20275:108;;;20353:12;;20342:10;;:23;20335:30;;20275:108;20147:247;20007:387;19874:520;19789:605;20436:12;;20427:6;20412:12;;:21;:36;20404:45;;12:1:-1;9::::0;2:12:::1;20404:45:0;20498:9;:18;20508:7;;;;;;;;;;;20498:18;;;;;;;;;;;;;;;;20489:6;20468:9;:18;20478:7;;;;;;;;;;;20468:18;;;;;;;;;;;;;;;;:27;:48;20460:57;;12:1:-1;9::::0;2:12:::1;20460:57:0;20561:10;;20551:6;20536:12;;:21;:35;;20528:44;;12:1:-1;9::::0;2:12:::1;20528:44:0;20603:30;20626:6;20603:9;:18;20613:7;;;;;;;;;;;20603:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;20583:9;:18;20593:7;;;;;;;;;;;20583:18;;;;;;;;;;;;;;;:50;;;;20658:24;20675:6;20658:12;;:16;;:24;;;;:::i;:::-;20644:12;:38;;;;20698:13;20704:6;20698:13;;;;;;;;;;;;;;;;;;6921:1;19630:1089::o:0;18605:309::-;18696:17;18730:10;;;;;;;;;;;18726:181;;;18778:15;;;;;;;;;;;18764:40;;;18805:6;18813:8;18764:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18764:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18764:58:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18764:58:0;;;;;;;;;;;;;;;;18757:65;;;;18726:181;18862:33;18878:6;18886:8;18862:15;:33::i;:::-;18855:40;;18605:309;;;;;:::o;8779:34::-;;;;:::o;14440:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;14657:165::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;14763:5:::1;14733:13;:27;14747:12;14733:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14784:30;14801:12;14784:30;;;;;;;;;;;;;;;;;;;;;;14657:165:::0;:::o;6051:151::-;5851:5;;;;;;;;;;;5837:19;;:10;:19;;;5829:28;;12:1:-1;9;2:12;5829:28:0;6148:1:::1;6128:22;;:8;:22;;;6124:71;;6175:8;6167:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;6124:71;6051:151:::0;:::o;6447:22::-;;;;;;;;;;;;;:::o;12014:606::-;12105:6;9012:1;9005:4;:8;8987;;:15;;:26;8985:29;8977:38;;12:1:-1;9;2:12;8977:38:0;12455:1:::1;12445:6;:11;;12444:57;;;;;12499:1;12462:11;:23;12474:10;12462:23;;;;;;;;;;;;;;;:33;12486:8;12462:33;;;;;;;;;;;;;;;;:38;;12444:57;12442:60;12434:69;;12:1:-1;9::::0;2:12:::1;12434:69:0;12552:6;12516:11;:23;12528:10;12516:23;;;;;;;;;;;;;;;:33;12540:8;12516:33;;;;;;;;;;;;;;;:42;;;;12595:8;12574:38;;12583:10;12574:38;;;12605:6;12574:38;;;;;;;;;;;;;;;;;;12014:606:::0;;;:::o;10795:972::-;10901:6;9012:1;9005:4;:8;8987;;:15;;:26;8985:29;8977:38;;12:1:-1;9;2:12;8977:38:0;10920:18:::1;10941:11;:18;10953:5;10941:18;;;;;;;;;;;;;;;:30;10960:10;10941:30;;;;;;;;;;;;;;;;10920:51;;11142:11;11156:39;11190:4;11157:27;11168:15;;11157:6;:10;;:27;;;;:::i;:::-;11156:33;;:39;;;;:::i;:::-;11142:53;;11216:10;;11210:3;:16;11206:65;;;11249:10;;11243:16;;11206:65;11298:11;;11285:10;:24;11281:112;;;11359:22;11374:6;11359:10;:14;;:22;;;;:::i;:::-;11326:11;:18;11338:5;11326:18;;;;;;;;;;;;;;;:30;11345:10;11326:30;;;;;;;;;;;;;;;:55;;;;11281:112;11403:18;11424:15;11435:3;11424:6;:10;;:15;;;;:::i;:::-;11403:36;;11469:28;11490:6;11469:9;:16;11479:5;11469:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;11450:9;:16;11460:5;11450:16;;;;;;;;;;;;;;;:47;;;;11525:30;11544:10;11525:9;:14;11535:3;11525:14;;;;;;;;;;;;;;;;:18;;:30;;;;:::i;:::-;11508:9;:14;11518:3;11508:14;;;;;;;;;;;;;;;:47;;;;11587:3;11571:32;;11580:5;11571:32;;;11592:10;11571:32;;;;;;;;;;;;;;;;;;11624:1;11618:3;:7;11614:146;;;11666:30;11692:3;11666:9;:21;11676:10;;;;;;;;;;;11666:21;;;;;;;;;;;;;;;;:25;;:30;;;;:::i;:::-;11642:9;:21;11652:10;;;;;;;;;;;11642:21;;;;;;;;;;;;;;;:54;;;;11732:10;;;;;;;;;;;11716:32;;11725:5;11716:32;;;11744:3;11716:32;;;;;;;;;;;;;;;;;;11614:146;9026:1;;;10795:972:::0;;;;:::o;859:181::-;917:7;937:9;953:1;949;:5;937:17;;978:1;973;:6;;965:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1031:1;1024:8;;;859:181;;;;:::o;9918:125::-;9991:7;10018:9;:17;10028:6;10018:17;;;;;;;;;;;;;;;;10011:24;;9918:125;;;:::o;9208:630::-;9295:6;9012:1;9005:4;:8;8987;;:15;;:26;8985:29;8977:38;;12:1:-1;9;2:12;8977:38:0;9314:11:::1;9328:39;9362:4;9329:27;9340:15;;9329:6;:10;;:27;;;;:::i;:::-;9328:33;;:39;;;;:::i;:::-;9314:53;;9388:10;;9382:3;:16;9378:65;;;9421:10;;9415:16;;9378:65;9453:18;9474:15;9485:3;9474:6;:10;;:15;;;;:::i;:::-;9453:36;;9524:33;9550:6;9524:9;:21;9534:10;9524:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;9500:9;:21;9510:10;9500:21;;;;;;;;;;;;;;;:57;;;;9585:30;9604:10;9585:9;:14;9595:3;9585:14;;;;;;;;;;;;;;;;:18;;:30;;;;:::i;:::-;9568:9;:14;9578:3;9568:14;;;;;;;;;;;;;;;:47;;;;9652:3;9631:37;;9640:10;9631:37;;;9657:10;9631:37;;;;;;;;;;;;;;;;;;9690:1;9684:3;:7;9680:151;;;9732:30;9758:3;9732:9;:21;9742:10;;;;;;;;;;;9732:21;;;;;;;;;;;;;;;;:25;;:30;;;;:::i;:::-;9708:9;:21;9718:10;;;;;;;;;;;9708:21;;;;;;;;;;;;;;;:54;;;;9803:10;;;;;;;;;;;9782:37;;9791:10;9782:37;;;9815:3;9782:37;;;;;;;;;;;;;;;;;;9680:151;9026:1;;9208:630:::0;;;:::o;2189:471::-;2247:7;2497:1;2492;:6;2488:47;;;2522:1;2515:8;;;;2488:47;2547:9;2563:1;2559;:5;2547:17;;2592:1;2587;2583;:5;;;;;;:10;2575:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2651:1;2644:8;;;2189:471;;;;;:::o;1315:136::-;1373:7;1400:43;1404:1;1407;1400:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1393:50;;1315:136;;;;:::o;3128:132::-;3186:7;3213:39;3217:1;3220;3213:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3206:46;;3128:132;;;;:::o;12960:156::-;13052:7;13079:11;:19;13091:6;13079:19;;;;;;;;;;;;;;;:29;13099:8;13079:29;;;;;;;;;;;;;;;;13072:36;;12960:156;;;;:::o;1746:192::-;1832:7;1865:1;1860;:6;;1868:12;1852:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1852:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1892:9;1908:1;1904;:5;1892:17;;1929:1;1922:8;;;1746:192;;;;;:::o;3748:278::-;3834:7;3866:1;3862;:5;3869:12;3854:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3854:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:9;3909:1;3905;:5;;;;;;3893:17;;4017:1;4010:8;;;3748:278;;;;;:::o

Swarm Source

ipfs://308e2d05a4bbbdd32020c0bc09a8de12fe3681841996f5d84185aee83a53dd1d

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.