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);
}
/**
 * @title IERC165
 * @dev https://eips.ethereum.org/EIPS/eip-165
 * @dev source : openzeppelin-solidity/contracts/introspection/IERC165.sol
 */
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.
 */