@java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getFaceAnnotationsCount() > 0) {
      hash = (37 * hash) + FACE_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getFaceAnnotationsList().hashCode();
    }
    if (getLandmarkAnnotationsCount() > 0) {
      hash = (37 * hash) + LANDMARK_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getLandmarkAnnotationsList().hashCode();
    }
    if (getLogoAnnotationsCount() > 0) {
      hash = (37 * hash) + LOGO_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getLogoAnnotationsList().hashCode();
    }
    if (getLabelAnnotationsCount() > 0) {
      hash = (37 * hash) + LABEL_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getLabelAnnotationsList().hashCode();
    }
    if (getLocalizedObjectAnnotationsCount() > 0) {
      hash = (37 * hash) + LOCALIZED_OBJECT_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getLocalizedObjectAnnotationsList().hashCode();
    }
    if (getTextAnnotationsCount() > 0) {
      hash = (37 * hash) + TEXT_ANNOTATIONS_FIELD_NUMBER;
      hash = (53 * hash) + getTextAnnotationsList().hashCode();
    }
    if (hasFullTextAnnotation()) {
      hash = (37 * hash) + FULL_TEXT_ANNOTATION_FIELD_NUMBER;
      hash = (53 * hash) + getFullTextAnnotation().hashCode();
    }
    if (hasSafeSearchAnnotation()) {
      hash = (37 * hash) + SAFE_SEARCH_ANNOTATION_FIELD_NUMBER;
      hash = (53 * hash) + getSafeSearchAnnotation().hashCode();
    }
    if (hasImagePropertiesAnnotation()) {
      hash = (37 * hash) + IMAGE_PROPERTIES_ANNOTATION_FIELD_NUMBER;
      hash = (53 * hash) + getImagePropertiesAnnotation().hashCode();
    }
    if (hasCropHintsAnnotation()) {
      hash = (37 * hash) + CROP_HINTS_ANNOTATION_FIELD_NUMBER;
      hash = (53 * hash) + getCropHintsAnnotation().hashCode();
    }
    if (hasWebDetection()) {
      hash = (37 * hash) + WEB_DETECTION_FIELD_NUMBER;
      hash = (53 * hash) + getWebDetection().hashCode();
    }
    if (hasProductSearchResults()) {
      hash = (37 * hash) + PRODUCT_SEARCH_RESULTS_FIELD_NUMBER;
      hash = (53 * hash) + getProductSearchResults().hashCode();
    }
    if (hasError()) {
      hash = (37 * hash) + ERROR_FIELD_NUMBER;
      hash = (53 * hash) + getError().hashCode();
    }
    if (hasContext()) {
      hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
      hash = (53 * hash) + getContext().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
If present, contextual information is needed to understand where this image
comes from.
</pre>

<code>.google.cloud.vision.v1p3beta1.ImageAnnotationContext context = 21;</code>
java-vision/proto-google-cloud-vision-v1p3beta1/src/main/java/com/google/cloud/vision/v1p3beta1/AnnotateImageResponse.java