interface IERC165 {

   /**
    * @notice Query if a contract implements an interface
    * @param interfaceId The interface identifier, as specified in ERC-165
    * @dev Interface identification is specified in ERC-165. This function
    * uses less than 30,000 gas.
    */
   function supportsInterface(bytes4 interfaceId)
     external
     view
     returns (bool);
 }
function supportsInterface(bytes4 interfaceId)
  external
  view
  returns (bool);

/**
 * @notice Query if a contract implements an interface
 * @param interfaceId The interface identifier, as specified in ERC-165
 * @dev Interface identification is specified in ERC-165. This function
 * uses less than 30,000 gas.
 */