Contract 0xBe7F7819e03bc42925fdC4A1afffD174900ECea6 1

Contract Overview

Balance:
0 BNB
Txn Hash
Block
From
To
Value [Txn Fee]
0xab503419329ab2da8156f1b56caa08742862fd0c4a3acd9d265a6de35482fc8d77477042021-04-06 18:21:24121 days 1 hr ago0x56655fdff46ac28db72603c5589a69b45b8604cc IN  Contract Creation0 BNB0.06195902
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BSCTosDisTransit

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : BSCTosDisTransit.sol
// Dependency file: contracts/BSC/libraries/TransferHelper.sol


// pragma solidity >=0.6.0;

// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}


// Dependency file: contracts/BSC/libraries/SafeMath.sol


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

// Dependency file: contracts/BSC/TosDisERC20.sol

// pragma solidity >=0.5.16;
// import 'contracts/BSC/libraries/SafeMath.sol';
contract TosDisERC20 {
    using SafeMath for uint;

    bytes32 public constant TokenSignature = "TOSDIS_TRANSIT";

    address public platform;
    string public name;
    string public symbol;
    uint8 public decimals = 18;
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    event Mint(address indexed from, address indexed to, uint256 value);
    event Burn(address indexed from, address indexed to, uint256 value);

    constructor() public 
    {
        platform = msg.sender;
    }
    
    function initialize(string memory _name, string memory _symbol, uint8 _decimals) public {
        require(msg.sender == platform, "FORBIDDEN");
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    function _transfer(address from, address to, uint value) private {
        require(balanceOf[from] >= value, 'ERC20Token: INSUFFICIENT_BALANCE');
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        if (to == address(0)) { // burn
            totalSupply = totalSupply.sub(value);
        }
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        require(allowance[from][msg.sender] >= value, 'ERC20Token: INSUFFICIENT_ALLOWANCE');
        allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        _transfer(from, to, value);
        return true;
    }
    
    function mint(address to, uint256 value) external {
        require(msg.sender == platform, "FORBIDDEN");
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Mint(address(0), to, value);
    }

    function burn(address from, uint256 value) external {
        require(msg.sender == platform, "FORBIDDEN");
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Burn(from, address(0), value);
    }
}

// Root file: contracts/BSC/BSCTosDisTransit.sol

pragma solidity >=0.5.16;

// import 'contracts/BSC/libraries/TransferHelper.sol';
// import 'contracts/BSC/TosDisERC20.sol';

interface IWETH {
    function deposit() external payable;
    function withdraw(uint) external;
}

contract BSCTosDisTransit {
    using SafeMath for uint;
    address public owner;
    address public signWallet;
    address public developWallet;
    
    uint public totalFee;
    
    uint public developFee;
    
    // key: bsc token, value: transit token
    mapping (address => address) public pairFor; 
    // key: transit token, value: bsc token
    mapping (address => address) public pairTo;
    
    // key: transit_id
    mapping (bytes32 => bool) public executedMap;
    
    uint private unlocked = 1;

    modifier lock() {
        require(unlocked == 1, 'Locked');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    event Payback(address indexed from, address indexed token, uint amount);
    event Withdraw(bytes32 transitId, address indexed to, address indexed token, uint amount);
    event CollectFee(address indexed handler, uint amount);
    event ChangedSigner(address wallet);
    event ChangedDevelopWallet(address wallet);
    event ChangedDevelopFee(uint amount);

    constructor(address _signer, address _developer) public {
        signWallet = _signer;
        developWallet = _developer;
        owner = msg.sender;
    }
    
    function changeSigner(address _wallet) external {
        require(msg.sender == owner, "CHANGE_SIGNER_FORBIDDEN");
        signWallet = _wallet;
        emit ChangedSigner(signWallet);
    }
    
    function changeDevelopWallet(address _wallet) external {
        require(msg.sender == owner, "CHANGE_DEVELOP_WALLET_FORBIDDEN");
        developWallet = _wallet;
        emit ChangedDevelopWallet(developWallet);
    } 
    
    function changeDevelopFee(uint _amount) external {
        require(msg.sender == owner, "CHANGE_DEVELOP_FEE_FORBIDDEN");
        developFee = _amount;
        emit ChangedDevelopFee(developFee);
    }
    
    function collectFee() external lock{
        require(msg.sender == owner, "FORBIDDEN");
        require(developWallet != address(0), "SETUP_DEVELOP_WALLET");
        require(totalFee > 0, "NO_FEE");
        TransferHelper.safeTransferETH(developWallet, totalFee);
        totalFee = 0;
    }
    
    function paybackTransit(address _token, uint _amount) external payable {
        require(pairFor[_token] != address(0), "UNSUPPORT_TOKEN");
        require(_amount > 0 && TosDisERC20(_token).balanceOf(msg.sender) >= _amount, "INVALID_AMOUNT");
        require(msg.value == developFee, "FEE_VALUE_INCORRECT");
        totalFee = totalFee.add(developFee);
        TosDisERC20(_token).burn(msg.sender, _amount);
        emit Payback(msg.sender, pairFor[_token], _amount);
    }
    
    function withdrawTransitToken(
        bytes calldata _signature,
        bytes32 _transitId,
        uint _amount,
        address _token,
        string calldata _name,
        string calldata _symbol,
        uint8 _decimals
    ) external payable {
        require(!executedMap[_transitId], "ALREADY_EXECUTED");
        bytes32 message = keccak256(abi.encodePacked(_transitId, msg.sender, _amount, _token, _name, _symbol, _decimals));
        require(_verify(message, _signature), "INVALID_SIGNATURE");

        require(_amount > 0, "NOTHING_TO_WITHDRAW");
        require(msg.value == developFee, "INSUFFICIENT_VALUE");
        
        if(pairTo[_token] == address(0)) {
            _createToken(_token, _name, _symbol, _decimals);
        }
        
        TosDisERC20(pairTo[_token]).mint(msg.sender, _amount);
        totalFee = totalFee.add(developFee);
        executedMap[_transitId] = true;
        
        emit Withdraw(_transitId, msg.sender, _token, _amount);
    }
    
    function _verify(bytes32 _message, bytes memory _signature) internal view returns (bool) {
        bytes32 hash = _toEthBytes32SignedMessageHash(_message);
        address[] memory signList = _recoverAddresses(hash, _signature);
        return signList[0] == signWallet;
    }
    
    function _toEthBytes32SignedMessageHash (bytes32 _msg) pure internal returns (bytes32 signHash)
    {
        signHash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", _msg));
    }
    
    function _recoverAddresses(bytes32 _hash, bytes memory _signatures) 
             pure internal returns (address[] memory addresses)
    {
        uint8 v;
        bytes32 r;
        bytes32 s;
        uint count = _countSignatures(_signatures);
        addresses = new address[](count);
        for (uint i = 0; i < count; i++) {
            (v, r, s) = _parseSignature(_signatures, i);
            addresses[i] = ecrecover(_hash, v, r, s);
        }
    }
    
    function _parseSignature(bytes memory _signatures, uint _pos) 
             pure internal returns (uint8 v, bytes32 r, bytes32 s)
    {
        uint offset = _pos * 65;
        assembly {
            r := mload(add(_signatures, add(32, offset)))
            s := mload(add(_signatures, add(64, offset)))
            v := and(mload(add(_signatures, add(65, offset))), 0xff)
        }

        if (v < 27) v += 27;

        require(v == 27 || v == 28);
    }
    
    function _countSignatures(bytes memory _signatures) pure internal returns (uint)
    {
        return _signatures.length % 65 == 0 ? _signatures.length / 65 : 0;
    }
    
    function _createToken (address _transitToken, string memory _name, string memory _symbol, uint8 _decimals) 
             internal returns(address bscTosDisToken){
        bytes memory bytecode = type(TosDisERC20).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(_transitToken, _name, _symbol, _decimals));
            assembly {
                bscTosDisToken := create2(0, add(bytecode, 32), mload(bytecode), salt)
            }
        TosDisERC20(bscTosDisToken).initialize(_name, _symbol, _decimals);
        pairFor[bscTosDisToken] = _transitToken;
        pairTo[_transitToken] = bscTosDisToken;
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_developer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ChangedDevelopFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"ChangedDevelopWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"ChangedSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"handler","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"CollectFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"transitId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeDevelopFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeDevelopWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"executedMap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairFor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"paybackTransit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"signWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"bytes32","name":"_transitId","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"withdrawTransitToken","outputs":[],"stateMutability":"payable","type":"function"}]

6080604052600160085534801561001557600080fd5b506040516136da3803806136da8339818101604052604081101561003857600080fd5b81019080805190602001909291908051906020019092919050505081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506135b4806101266000396000f3fe6080604052600436106100dd5760003560e01c8063a67fbcdd1161007f578063c350500511610059578063c3505005146104ee578063d07d67161461052f578063d4d5d32a14610580578063f9aebda014610597576100dd565b8063a67fbcdd1461030e578063aad2b72314610472578063abc05a9d146104c3576100dd565b80634ce74859116100bb5780634ce74859146101d65780636d400313146102175780638da5cb5b146102925780639bcbbd57146102d3576100dd565b80630afa3da5146100e25780631df4ccfc1461015d57806343ada70f14610188575b600080fd5b3480156100ee57600080fd5b506101316004803603602081101561010557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016957600080fd5b5061017261061b565b6040518082815260200191505060405180910390f35b6101d46004803603604081101561019e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610621565b005b3480156101e257600080fd5b506101eb610a2b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561022357600080fd5b506102666004803603602081101561023a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a51565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029e57600080fd5b506102a7610a84565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102df57600080fd5b5061030c600480360360208110156102f657600080fd5b8101908080359060200190929190505050610aa8565b005b610470600480360360e081101561032457600080fd5b810190808035906020019064010000000081111561034157600080fd5b82018360208201111561035357600080fd5b8035906020019184600183028401116401000000008311171561037557600080fd5b90919293919293908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460018302840111640100000000831117156103fe57600080fd5b90919293919293908035906020019064010000000081111561041f57600080fd5b82018360208201111561043157600080fd5b8035906020019184600183028401116401000000008311171561045357600080fd5b9091929391929390803560ff169060200190929190505050610bac565b005b34801561047e57600080fd5b506104c16004803603602081101561049557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b3480156104cf57600080fd5b506104d86112db565b6040518082815260200191505060405180910390f35b3480156104fa57600080fd5b506105036112e1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053b57600080fd5b5061057e6004803603602081101561055257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611307565b005b34801561058c57600080fd5b5061059561147b565b005b3480156105a357600080fd5b506105d0600480360360208110156105ba57600080fd5b8101908080359060200190929190505050611739565b60405180821515815260200191505060405180910390f35b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f554e535550504f52545f544f4b454e000000000000000000000000000000000081525060200191505060405180910390fd5b6000811180156107d45750808273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561079657600080fd5b505afa1580156107aa573d6000803e3d6000fd5b505050506040513d60208110156107c057600080fd5b810190808051906020019092919050505010155b610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f494e56414c49445f414d4f554e5400000000000000000000000000000000000081525060200191505060405180910390fd5b60045434146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4645455f56414c55455f494e434f52524543540000000000000000000000000081525060200191505060405180910390fd5b6108d460045460035461175990919063ffffffff16565b6003819055508173ffffffffffffffffffffffffffffffffffffffff16639dc29fac33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561094b57600080fd5b505af115801561095f573d6000803e3d6000fd5b50505050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffc2d2b4b3ad857c1c0893799f86b421efff822709b26de93df5709671f4841ca836040518082815260200191505060405180910390a35050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4348414e47455f444556454c4f505f4645455f464f5242494444454e0000000081525060200191505060405180910390fd5b806004819055507f326dab0852ca33ac3319f63dc22d2c665e2e2d5b7589b051ec42284b6e1d922a6004546040518082815260200191505060405180910390a150565b6007600089815260200190815260200160002060009054906101000a900460ff1615610c40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f414c52454144595f45584543555445440000000000000000000000000000000081525060200191505060405180910390fd5b6000883389898989898989604051602001808a81526020018973ffffffffffffffffffffffffffffffffffffffff1660601b81526014018881526020018773ffffffffffffffffffffffffffffffffffffffff1660601b815260140186868082843780830192505050848480828437808301925050508260ff1660f81b81526001019950505050505050505050604051602081830303815290604052805190602001209050610d33818c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506117e1565b610da5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f494e56414c49445f5349474e415455524500000000000000000000000000000081525060200191505060405180910390fd5b60008811610e1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4e4f5448494e475f544f5f57495448445241570000000000000000000000000081525060200191505060405180910390fd5b6004543414610e92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f494e53554646494349454e545f56414c5545000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610fbc57610fba8787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508561186c565b505b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19338a6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561108c57600080fd5b505af11580156110a0573d6000803e3d6000fd5b505050506110bb60045460035461175990919063ffffffff16565b6003819055506001600760008b815260200190815260200160002060006101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fcd6ac346191b4b7531743e58f243dd4d350a52a9186641c1e5eac22b95aaedbe8b8b604051808381526020018281526020019250505060405180910390a35050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4348414e47455f5349474e45525f464f5242494444454e00000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5cf1735f1350de7c05f30a25d6fc56e0cd343859cea70b63dafb8d35afb5bc08600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60045481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4348414e47455f444556454c4f505f57414c4c45545f464f5242494444454e0081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb3ec069c50845d6fd2f59195be3989c1b8d7b83b01dc5757c017264c75e7902a600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6001600854146114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f4c6f636b6564000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600060088190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f464f5242494444454e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f53455455505f444556454c4f505f57414c4c455400000000000000000000000081525060200191505060405180910390fd5b6000600354116116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f4e4f5f464545000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611727600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600354611be8565b60006003819055506001600881905550565b60076020528060005260406000206000915054906101000a900460ff1681565b6000808284019050838110156117d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000806117ed84611d47565b905060606117fb8285611d9f565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160008151811061184357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16149250505092915050565b600060606040518060200161188090611f70565b6020820181038252601f19601f820116604052509050600086868686604051602001808573ffffffffffffffffffffffffffffffffffffffff1660601b815260140184805190602001908083835b602083106118f157805182526020820191506020810190506020830392506118ce565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b60208310611942578051825260208201915060208101905060208303925061191f565b6001836020036101000a0380198251168184511680821785525050505050509050018260ff1660f81b8152600101945050505050604051602081830303815290604052805190602001209050808251602084016000f592508273ffffffffffffffffffffffffffffffffffffffff16631624f6c68787876040518463ffffffff1660e01b81526004018080602001806020018460ff168152602001838103835286818151815260200191508051906020019080838360005b83811015611a155780820151818401526020810190506119fa565b50505050905090810190601f168015611a425780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b83811015611a7b578082015181840152602081019050611a60565b50505050905090810190601f168015611aa85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611aca57600080fd5b505af1158015611ade573d6000803e3d6000fd5b5050505086600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81118015611c1a57600080fd5b506040519080825280601f01601f191660200182016040528015611c4d5781602001600182028036833780820191505090505b506040518082805190602001908083835b60208310611c815780518252602082019150602081019050602083039250611c5e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611ce3576040519150601f19603f3d011682016040523d82523d6000602084013e611ce8565b606091505b5050905080611d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061355c6023913960400191505060405180910390fd5b505050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b6060600080600080611db086611ede565b90508067ffffffffffffffff81118015611dc957600080fd5b50604051908082528060200260200182016040528015611df85781602001602082028036833780820191505090505b50945060005b81811015611ed357611e108782611f0d565b80955081965082975050505060018886868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611e76573d6000803e3d6000fd5b50505060206040510351868281518110611e8c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611dfe565b505050505092915050565b6000806041835181611eec57fe5b0614611ef9576000611f06565b6041825181611f0457fe5b045b9050919050565b60008060008060418502905080602001860151925080604001860151915060ff81604101870151169350601b8460ff161015611f4a57601b840193505b601b8460ff161480611f5f5750601c8460ff16145b611f6857600080fd5b509250925092565b6115de80611f7e8339019056fe60806040526012600360006101000a81548160ff021916908360ff16021790555034801561002c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115628061007c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80634bde38c81161008c5780639dc29fac116100665780639dc29fac14610555578063a9059cbb146105a3578063dd62ed3e14610607578063ecda05261461067f576100ea565b80634bde38c81461044657806370a082311461047a57806395d89b41146104d2576100ea565b806318160ddd116100c857806318160ddd1461033557806323b872dd14610353578063313ce567146103d757806340c10f19146103f8576100ea565b806306fdde03146100ef578063095ea7b3146101725780631624f6c6146101d6575b600080fd5b6100f761069d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013757808201518184015260208101905061011c565b50505050905090810190601f1680156101645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101be6004803603604081101561018857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061073b565b60405180821515815260200191505060405180910390f35b610333600480360360608110156101ec57600080fd5b810190808035906020019064010000000081111561020957600080fd5b82018360208201111561021b57600080fd5b8035906020019184600183028401116401000000008311171561023d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919050505061082d565b005b61033d61093c565b6040518082815260200191505060405180910390f35b6103bf6004803603606081101561036957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610942565b60405180821515815260200191505060405180910390f35b6103df610b3e565b604051808260ff16815260200191505060405180910390f35b6104446004803603604081101561040e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b51565b005b61044e610d2c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104bc6004803603602081101561049057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d50565b6040518082815260200191505060405180910390f35b6104da610d68565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051a5780820151818401526020810190506104ff565b50505050905090810190601f1680156105475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105a16004803603604081101561056b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e06565b005b6105ef600480360360408110156105b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fe1565b60405180821515815260200191505060405180910390f35b6106696004803603604081101561061d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff8565b6040518082815260200191505060405180910390f35b61068761101d565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107335780601f1061070857610100808354040283529160200191610733565b820191906000526020600020905b81548152906001019060200180831161071657829003601f168201915b505050505081565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f464f5242494444454e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b826001908051906020019061090492919061146d565b50816002908051906020019061091b92919061146d565b5080600360006101000a81548160ff021916908360ff160217905550505050565b60045481565b600081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061150b6022913960400191505060405180910390fd5b610aa882600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461104190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b3384848461108b565b600190509392505050565b600360009054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f464f5242494444454e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610c278160045461132590919063ffffffff16565b600481905550610c7f81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461132590919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8836040518082815260200191505060405180910390a35050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dfe5780601f10610dd357610100808354040283529160200191610dfe565b820191906000526020600020905b815481529060010190602001808311610de157829003601f168201915b505050505081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f464f5242494444454e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610f1981600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461104190919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f718160045461104190919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b9453836040518082815260200191505060405180910390a35050565b6000610fee33848461108b565b6001905092915050565b6006602052816000526040600020602052806000526040600020600091509150505481565b7f544f534449535f5452414e53495400000000000000000000000000000000000081565b600061108383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ad565b905092915050565b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611140576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433230546f6b656e3a20494e53554646494349454e545f42414c414e434581525060200191505060405180910390fd5b61119281600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461104190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061122781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461132590919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bb576112b48160045461104190919063ffffffff16565b6004819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110156113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600083831115829061145a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561141f578082015181840152602081019050611404565b50505050905090810190601f16801561144c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106114ae57805160ff19168380011785556114dc565b828001600101855582156114dc579182015b828111156114db5782518255916020019190600101906114c0565b5b5090506114e991906114ed565b5090565b5b808211156115065760008160009055506001016114ee565b509056fe4552433230546f6b656e3a20494e53554646494349454e545f414c4c4f57414e4345a26469706673582212202fd4d506a456f42fc13090ca9773886def1a7318bdbfb9c0e818d1846f2ed52864736f6c634300060c00335472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544a26469706673582212202cec1695761f1f1ed6fd4610124bb305cfc3e468d7eb3d6c6a12a5ec4aca27d964736f6c634300060c003300000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc00000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc

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

00000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc00000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc
Arg [1] : 00000000000000000000000056655fdff46ac28db72603c5589a69b45b8604cc


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading