blob: 3b08f5b8bddaab84282d7b6cf3557e0de9eaf083 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/vision/v1p1beta1/image_annotator.proto
package vision // import "google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import status "google.golang.org/genproto/googleapis/rpc/status"
import color "google.golang.org/genproto/googleapis/type/color"
import latlng "google.golang.org/genproto/googleapis/type/latlng"
import (
context "golang.org/x/net/context"
grpc "google.golang.org/grpc"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// A bucketized representation of likelihood, which is intended to give clients
// highly stable results across model upgrades.
type Likelihood int32
const (
// Unknown likelihood.
Likelihood_UNKNOWN Likelihood = 0
// It is very unlikely that the image belongs to the specified vertical.
Likelihood_VERY_UNLIKELY Likelihood = 1
// It is unlikely that the image belongs to the specified vertical.
Likelihood_UNLIKELY Likelihood = 2
// It is possible that the image belongs to the specified vertical.
Likelihood_POSSIBLE Likelihood = 3
// It is likely that the image belongs to the specified vertical.
Likelihood_LIKELY Likelihood = 4
// It is very likely that the image belongs to the specified vertical.
Likelihood_VERY_LIKELY Likelihood = 5
)
var Likelihood_name = map[int32]string{
0: "UNKNOWN",
1: "VERY_UNLIKELY",
2: "UNLIKELY",
3: "POSSIBLE",
4: "LIKELY",
5: "VERY_LIKELY",
}
var Likelihood_value = map[string]int32{
"UNKNOWN": 0,
"VERY_UNLIKELY": 1,
"UNLIKELY": 2,
"POSSIBLE": 3,
"LIKELY": 4,
"VERY_LIKELY": 5,
}
func (x Likelihood) String() string {
return proto.EnumName(Likelihood_name, int32(x))
}
func (Likelihood) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{0}
}
// Type of image feature.
type Feature_Type int32
const (
// Unspecified feature type.
Feature_TYPE_UNSPECIFIED Feature_Type = 0
// Run face detection.
Feature_FACE_DETECTION Feature_Type = 1
// Run landmark detection.
Feature_LANDMARK_DETECTION Feature_Type = 2
// Run logo detection.
Feature_LOGO_DETECTION Feature_Type = 3
// Run label detection.
Feature_LABEL_DETECTION Feature_Type = 4
// Run OCR.
Feature_TEXT_DETECTION Feature_Type = 5
// Run dense text document OCR. Takes precedence when both
// DOCUMENT_TEXT_DETECTION and TEXT_DETECTION are present.
Feature_DOCUMENT_TEXT_DETECTION Feature_Type = 11
// Run computer vision models to compute image safe-search properties.
Feature_SAFE_SEARCH_DETECTION Feature_Type = 6
// Compute a set of image properties, such as the image's dominant colors.
Feature_IMAGE_PROPERTIES Feature_Type = 7
// Run crop hints.
Feature_CROP_HINTS Feature_Type = 9
// Run web detection.
Feature_WEB_DETECTION Feature_Type = 10
)
var Feature_Type_name = map[int32]string{
0: "TYPE_UNSPECIFIED",
1: "FACE_DETECTION",
2: "LANDMARK_DETECTION",
3: "LOGO_DETECTION",
4: "LABEL_DETECTION",
5: "TEXT_DETECTION",
11: "DOCUMENT_TEXT_DETECTION",
6: "SAFE_SEARCH_DETECTION",
7: "IMAGE_PROPERTIES",
9: "CROP_HINTS",
10: "WEB_DETECTION",
}
var Feature_Type_value = map[string]int32{
"TYPE_UNSPECIFIED": 0,
"FACE_DETECTION": 1,
"LANDMARK_DETECTION": 2,
"LOGO_DETECTION": 3,
"LABEL_DETECTION": 4,
"TEXT_DETECTION": 5,
"DOCUMENT_TEXT_DETECTION": 11,
"SAFE_SEARCH_DETECTION": 6,
"IMAGE_PROPERTIES": 7,
"CROP_HINTS": 9,
"WEB_DETECTION": 10,
}
func (x Feature_Type) String() string {
return proto.EnumName(Feature_Type_name, int32(x))
}
func (Feature_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{0, 0}
}
// Face landmark (feature) type.
// Left and right are defined from the vantage of the viewer of the image
// without considering mirror projections typical of photos. So, `LEFT_EYE`,
// typically, is the person's right eye.
type FaceAnnotation_Landmark_Type int32
const (
// Unknown face landmark detected. Should not be filled.
FaceAnnotation_Landmark_UNKNOWN_LANDMARK FaceAnnotation_Landmark_Type = 0
// Left eye.
FaceAnnotation_Landmark_LEFT_EYE FaceAnnotation_Landmark_Type = 1
// Right eye.
FaceAnnotation_Landmark_RIGHT_EYE FaceAnnotation_Landmark_Type = 2
// Left of left eyebrow.
FaceAnnotation_Landmark_LEFT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 3
// Right of left eyebrow.
FaceAnnotation_Landmark_RIGHT_OF_LEFT_EYEBROW FaceAnnotation_Landmark_Type = 4
// Left of right eyebrow.
FaceAnnotation_Landmark_LEFT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 5
// Right of right eyebrow.
FaceAnnotation_Landmark_RIGHT_OF_RIGHT_EYEBROW FaceAnnotation_Landmark_Type = 6
// Midpoint between eyes.
FaceAnnotation_Landmark_MIDPOINT_BETWEEN_EYES FaceAnnotation_Landmark_Type = 7
// Nose tip.
FaceAnnotation_Landmark_NOSE_TIP FaceAnnotation_Landmark_Type = 8
// Upper lip.
FaceAnnotation_Landmark_UPPER_LIP FaceAnnotation_Landmark_Type = 9
// Lower lip.
FaceAnnotation_Landmark_LOWER_LIP FaceAnnotation_Landmark_Type = 10
// Mouth left.
FaceAnnotation_Landmark_MOUTH_LEFT FaceAnnotation_Landmark_Type = 11
// Mouth right.
FaceAnnotation_Landmark_MOUTH_RIGHT FaceAnnotation_Landmark_Type = 12
// Mouth center.
FaceAnnotation_Landmark_MOUTH_CENTER FaceAnnotation_Landmark_Type = 13
// Nose, bottom right.
FaceAnnotation_Landmark_NOSE_BOTTOM_RIGHT FaceAnnotation_Landmark_Type = 14
// Nose, bottom left.
FaceAnnotation_Landmark_NOSE_BOTTOM_LEFT FaceAnnotation_Landmark_Type = 15
// Nose, bottom center.
FaceAnnotation_Landmark_NOSE_BOTTOM_CENTER FaceAnnotation_Landmark_Type = 16
// Left eye, top boundary.
FaceAnnotation_Landmark_LEFT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 17
// Left eye, right corner.
FaceAnnotation_Landmark_LEFT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 18
// Left eye, bottom boundary.
FaceAnnotation_Landmark_LEFT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 19
// Left eye, left corner.
FaceAnnotation_Landmark_LEFT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 20
// Right eye, top boundary.
FaceAnnotation_Landmark_RIGHT_EYE_TOP_BOUNDARY FaceAnnotation_Landmark_Type = 21
// Right eye, right corner.
FaceAnnotation_Landmark_RIGHT_EYE_RIGHT_CORNER FaceAnnotation_Landmark_Type = 22
// Right eye, bottom boundary.
FaceAnnotation_Landmark_RIGHT_EYE_BOTTOM_BOUNDARY FaceAnnotation_Landmark_Type = 23
// Right eye, left corner.
FaceAnnotation_Landmark_RIGHT_EYE_LEFT_CORNER FaceAnnotation_Landmark_Type = 24
// Left eyebrow, upper midpoint.
FaceAnnotation_Landmark_LEFT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 25
// Right eyebrow, upper midpoint.
FaceAnnotation_Landmark_RIGHT_EYEBROW_UPPER_MIDPOINT FaceAnnotation_Landmark_Type = 26
// Left ear tragion.
FaceAnnotation_Landmark_LEFT_EAR_TRAGION FaceAnnotation_Landmark_Type = 27
// Right ear tragion.
FaceAnnotation_Landmark_RIGHT_EAR_TRAGION FaceAnnotation_Landmark_Type = 28
// Left eye pupil.
FaceAnnotation_Landmark_LEFT_EYE_PUPIL FaceAnnotation_Landmark_Type = 29
// Right eye pupil.
FaceAnnotation_Landmark_RIGHT_EYE_PUPIL FaceAnnotation_Landmark_Type = 30
// Forehead glabella.
FaceAnnotation_Landmark_FOREHEAD_GLABELLA FaceAnnotation_Landmark_Type = 31
// Chin gnathion.
FaceAnnotation_Landmark_CHIN_GNATHION FaceAnnotation_Landmark_Type = 32
// Chin left gonion.
FaceAnnotation_Landmark_CHIN_LEFT_GONION FaceAnnotation_Landmark_Type = 33
// Chin right gonion.
FaceAnnotation_Landmark_CHIN_RIGHT_GONION FaceAnnotation_Landmark_Type = 34
)
var FaceAnnotation_Landmark_Type_name = map[int32]string{
0: "UNKNOWN_LANDMARK",
1: "LEFT_EYE",
2: "RIGHT_EYE",
3: "LEFT_OF_LEFT_EYEBROW",
4: "RIGHT_OF_LEFT_EYEBROW",
5: "LEFT_OF_RIGHT_EYEBROW",
6: "RIGHT_OF_RIGHT_EYEBROW",
7: "MIDPOINT_BETWEEN_EYES",
8: "NOSE_TIP",
9: "UPPER_LIP",
10: "LOWER_LIP",
11: "MOUTH_LEFT",
12: "MOUTH_RIGHT",
13: "MOUTH_CENTER",
14: "NOSE_BOTTOM_RIGHT",
15: "NOSE_BOTTOM_LEFT",
16: "NOSE_BOTTOM_CENTER",
17: "LEFT_EYE_TOP_BOUNDARY",
18: "LEFT_EYE_RIGHT_CORNER",
19: "LEFT_EYE_BOTTOM_BOUNDARY",
20: "LEFT_EYE_LEFT_CORNER",
21: "RIGHT_EYE_TOP_BOUNDARY",
22: "RIGHT_EYE_RIGHT_CORNER",
23: "RIGHT_EYE_BOTTOM_BOUNDARY",
24: "RIGHT_EYE_LEFT_CORNER",
25: "LEFT_EYEBROW_UPPER_MIDPOINT",
26: "RIGHT_EYEBROW_UPPER_MIDPOINT",
27: "LEFT_EAR_TRAGION",
28: "RIGHT_EAR_TRAGION",
29: "LEFT_EYE_PUPIL",
30: "RIGHT_EYE_PUPIL",
31: "FOREHEAD_GLABELLA",
32: "CHIN_GNATHION",
33: "CHIN_LEFT_GONION",
34: "CHIN_RIGHT_GONION",
}
var FaceAnnotation_Landmark_Type_value = map[string]int32{
"UNKNOWN_LANDMARK": 0,
"LEFT_EYE": 1,
"RIGHT_EYE": 2,
"LEFT_OF_LEFT_EYEBROW": 3,
"RIGHT_OF_LEFT_EYEBROW": 4,
"LEFT_OF_RIGHT_EYEBROW": 5,
"RIGHT_OF_RIGHT_EYEBROW": 6,
"MIDPOINT_BETWEEN_EYES": 7,
"NOSE_TIP": 8,
"UPPER_LIP": 9,
"LOWER_LIP": 10,
"MOUTH_LEFT": 11,
"MOUTH_RIGHT": 12,
"MOUTH_CENTER": 13,
"NOSE_BOTTOM_RIGHT": 14,
"NOSE_BOTTOM_LEFT": 15,
"NOSE_BOTTOM_CENTER": 16,
"LEFT_EYE_TOP_BOUNDARY": 17,
"LEFT_EYE_RIGHT_CORNER": 18,
"LEFT_EYE_BOTTOM_BOUNDARY": 19,
"LEFT_EYE_LEFT_CORNER": 20,
"RIGHT_EYE_TOP_BOUNDARY": 21,
"RIGHT_EYE_RIGHT_CORNER": 22,
"RIGHT_EYE_BOTTOM_BOUNDARY": 23,
"RIGHT_EYE_LEFT_CORNER": 24,
"LEFT_EYEBROW_UPPER_MIDPOINT": 25,
"RIGHT_EYEBROW_UPPER_MIDPOINT": 26,
"LEFT_EAR_TRAGION": 27,
"RIGHT_EAR_TRAGION": 28,
"LEFT_EYE_PUPIL": 29,
"RIGHT_EYE_PUPIL": 30,
"FOREHEAD_GLABELLA": 31,
"CHIN_GNATHION": 32,
"CHIN_LEFT_GONION": 33,
"CHIN_RIGHT_GONION": 34,
}
func (x FaceAnnotation_Landmark_Type) String() string {
return proto.EnumName(FaceAnnotation_Landmark_Type_name, int32(x))
}
func (FaceAnnotation_Landmark_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{3, 0, 0}
}
// Users describe the type of Google Cloud Vision API tasks to perform over
// images by using *Feature*s. Each Feature indicates a type of image
// detection task to perform. Features encode the Cloud Vision API
// vertical to operate on and the number of top-scoring results to return.
type Feature struct {
// The feature type.
Type Feature_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.Feature_Type" json:"type,omitempty"`
// Maximum number of results of this type.
MaxResults int32 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"`
// Model to use for the feature.
// Supported values: "builtin/stable" (the default if unset) and
// "builtin/latest".
Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Feature) Reset() { *m = Feature{} }
func (m *Feature) String() string { return proto.CompactTextString(m) }
func (*Feature) ProtoMessage() {}
func (*Feature) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{0}
}
func (m *Feature) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Feature.Unmarshal(m, b)
}
func (m *Feature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Feature.Marshal(b, m, deterministic)
}
func (dst *Feature) XXX_Merge(src proto.Message) {
xxx_messageInfo_Feature.Merge(dst, src)
}
func (m *Feature) XXX_Size() int {
return xxx_messageInfo_Feature.Size(m)
}
func (m *Feature) XXX_DiscardUnknown() {
xxx_messageInfo_Feature.DiscardUnknown(m)
}
var xxx_messageInfo_Feature proto.InternalMessageInfo
func (m *Feature) GetType() Feature_Type {
if m != nil {
return m.Type
}
return Feature_TYPE_UNSPECIFIED
}
func (m *Feature) GetMaxResults() int32 {
if m != nil {
return m.MaxResults
}
return 0
}
func (m *Feature) GetModel() string {
if m != nil {
return m.Model
}
return ""
}
// External image source (Google Cloud Storage image location).
type ImageSource struct {
// NOTE: For new code `image_uri` below is preferred.
// Google Cloud Storage image URI, which must be in the following form:
// `gs://bucket_name/object_name` (for details, see
// [Google Cloud Storage Request
// URIs](https://cloud.google.com/storage/docs/reference-uris)).
// NOTE: Cloud Storage object versioning is not supported.
GcsImageUri string `protobuf:"bytes,1,opt,name=gcs_image_uri,json=gcsImageUri,proto3" json:"gcs_image_uri,omitempty"`
// Image URI which supports:
// 1) Google Cloud Storage image URI, which must be in the following form:
// `gs://bucket_name/object_name` (for details, see
// [Google Cloud Storage Request
// URIs](https://cloud.google.com/storage/docs/reference-uris)).
// NOTE: Cloud Storage object versioning is not supported.
// 2) Publicly accessible image HTTP/HTTPS URL.
// This is preferred over the legacy `gcs_image_uri` above. When both
// `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
// precedence.
ImageUri string `protobuf:"bytes,2,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ImageSource) Reset() { *m = ImageSource{} }
func (m *ImageSource) String() string { return proto.CompactTextString(m) }
func (*ImageSource) ProtoMessage() {}
func (*ImageSource) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{1}
}
func (m *ImageSource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageSource.Unmarshal(m, b)
}
func (m *ImageSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ImageSource.Marshal(b, m, deterministic)
}
func (dst *ImageSource) XXX_Merge(src proto.Message) {
xxx_messageInfo_ImageSource.Merge(dst, src)
}
func (m *ImageSource) XXX_Size() int {
return xxx_messageInfo_ImageSource.Size(m)
}
func (m *ImageSource) XXX_DiscardUnknown() {
xxx_messageInfo_ImageSource.DiscardUnknown(m)
}
var xxx_messageInfo_ImageSource proto.InternalMessageInfo
func (m *ImageSource) GetGcsImageUri() string {
if m != nil {
return m.GcsImageUri
}
return ""
}
func (m *ImageSource) GetImageUri() string {
if m != nil {
return m.ImageUri
}
return ""
}
// Client image to perform Google Cloud Vision API tasks over.
type Image struct {
// Image content, represented as a stream of bytes.
// Note: as with all `bytes` fields, protobuffers use a pure binary
// representation, whereas JSON representations use base64.
Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
// Google Cloud Storage image location. If both `content` and `source`
// are provided for an image, `content` takes precedence and is
// used to perform the image annotation request.
Source *ImageSource `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Image) Reset() { *m = Image{} }
func (m *Image) String() string { return proto.CompactTextString(m) }
func (*Image) ProtoMessage() {}
func (*Image) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{2}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Image.Unmarshal(m, b)
}
func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Image.Marshal(b, m, deterministic)
}
func (dst *Image) XXX_Merge(src proto.Message) {
xxx_messageInfo_Image.Merge(dst, src)
}
func (m *Image) XXX_Size() int {
return xxx_messageInfo_Image.Size(m)
}
func (m *Image) XXX_DiscardUnknown() {
xxx_messageInfo_Image.DiscardUnknown(m)
}
var xxx_messageInfo_Image proto.InternalMessageInfo
func (m *Image) GetContent() []byte {
if m != nil {
return m.Content
}
return nil
}
func (m *Image) GetSource() *ImageSource {
if m != nil {
return m.Source
}
return nil
}
// A face annotation object contains the results of face detection.
type FaceAnnotation struct {
// The bounding polygon around the face. The coordinates of the bounding box
// are in the original image's scale, as returned in `ImageParams`.
// The bounding box is computed to "frame" the face in accordance with human
// expectations. It is based on the landmarker results.
// Note that one or more x and/or y coordinates may not be generated in the
// `BoundingPoly` (the polygon will be unbounded) if only a partial face
// appears in the image to be annotated.
BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
// The `fd_bounding_poly` bounding polygon is tighter than the
// `boundingPoly`, and encloses only the skin part of the face. Typically, it
// is used to eliminate the face from any image analysis that detects the
// "amount of skin" visible in an image. It is not based on the
// landmarker results, only on the initial face detection, hence
// the <code>fd</code> (face detection) prefix.
FdBoundingPoly *BoundingPoly `protobuf:"bytes,2,opt,name=fd_bounding_poly,json=fdBoundingPoly,proto3" json:"fd_bounding_poly,omitempty"`
// Detected face landmarks.
Landmarks []*FaceAnnotation_Landmark `protobuf:"bytes,3,rep,name=landmarks,proto3" json:"landmarks,omitempty"`
// Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
// of the face relative to the image vertical about the axis perpendicular to
// the face. Range [-180,180].
RollAngle float32 `protobuf:"fixed32,4,opt,name=roll_angle,json=rollAngle,proto3" json:"roll_angle,omitempty"`
// Yaw angle, which indicates the leftward/rightward angle that the face is
// pointing relative to the vertical plane perpendicular to the image. Range
// [-180,180].
PanAngle float32 `protobuf:"fixed32,5,opt,name=pan_angle,json=panAngle,proto3" json:"pan_angle,omitempty"`
// Pitch angle, which indicates the upwards/downwards angle that the face is
// pointing relative to the image's horizontal plane. Range [-180,180].
TiltAngle float32 `protobuf:"fixed32,6,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"`
// Detection confidence. Range [0, 1].
DetectionConfidence float32 `protobuf:"fixed32,7,opt,name=detection_confidence,json=detectionConfidence,proto3" json:"detection_confidence,omitempty"`
// Face landmarking confidence. Range [0, 1].
LandmarkingConfidence float32 `protobuf:"fixed32,8,opt,name=landmarking_confidence,json=landmarkingConfidence,proto3" json:"landmarking_confidence,omitempty"`
// Joy likelihood.
JoyLikelihood Likelihood `protobuf:"varint,9,opt,name=joy_likelihood,json=joyLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"joy_likelihood,omitempty"`
// Sorrow likelihood.
SorrowLikelihood Likelihood `protobuf:"varint,10,opt,name=sorrow_likelihood,json=sorrowLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"sorrow_likelihood,omitempty"`
// Anger likelihood.
AngerLikelihood Likelihood `protobuf:"varint,11,opt,name=anger_likelihood,json=angerLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"anger_likelihood,omitempty"`
// Surprise likelihood.
SurpriseLikelihood Likelihood `protobuf:"varint,12,opt,name=surprise_likelihood,json=surpriseLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"surprise_likelihood,omitempty"`
// Under-exposed likelihood.
UnderExposedLikelihood Likelihood `protobuf:"varint,13,opt,name=under_exposed_likelihood,json=underExposedLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"under_exposed_likelihood,omitempty"`
// Blurred likelihood.
BlurredLikelihood Likelihood `protobuf:"varint,14,opt,name=blurred_likelihood,json=blurredLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"blurred_likelihood,omitempty"`
// Headwear likelihood.
HeadwearLikelihood Likelihood `protobuf:"varint,15,opt,name=headwear_likelihood,json=headwearLikelihood,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"headwear_likelihood,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *FaceAnnotation) Reset() { *m = FaceAnnotation{} }
func (m *FaceAnnotation) String() string { return proto.CompactTextString(m) }
func (*FaceAnnotation) ProtoMessage() {}
func (*FaceAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{3}
}
func (m *FaceAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FaceAnnotation.Unmarshal(m, b)
}
func (m *FaceAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FaceAnnotation.Marshal(b, m, deterministic)
}
func (dst *FaceAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_FaceAnnotation.Merge(dst, src)
}
func (m *FaceAnnotation) XXX_Size() int {
return xxx_messageInfo_FaceAnnotation.Size(m)
}
func (m *FaceAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_FaceAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_FaceAnnotation proto.InternalMessageInfo
func (m *FaceAnnotation) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
func (m *FaceAnnotation) GetFdBoundingPoly() *BoundingPoly {
if m != nil {
return m.FdBoundingPoly
}
return nil
}
func (m *FaceAnnotation) GetLandmarks() []*FaceAnnotation_Landmark {
if m != nil {
return m.Landmarks
}
return nil
}
func (m *FaceAnnotation) GetRollAngle() float32 {
if m != nil {
return m.RollAngle
}
return 0
}
func (m *FaceAnnotation) GetPanAngle() float32 {
if m != nil {
return m.PanAngle
}
return 0
}
func (m *FaceAnnotation) GetTiltAngle() float32 {
if m != nil {
return m.TiltAngle
}
return 0
}
func (m *FaceAnnotation) GetDetectionConfidence() float32 {
if m != nil {
return m.DetectionConfidence
}
return 0
}
func (m *FaceAnnotation) GetLandmarkingConfidence() float32 {
if m != nil {
return m.LandmarkingConfidence
}
return 0
}
func (m *FaceAnnotation) GetJoyLikelihood() Likelihood {
if m != nil {
return m.JoyLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetSorrowLikelihood() Likelihood {
if m != nil {
return m.SorrowLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetAngerLikelihood() Likelihood {
if m != nil {
return m.AngerLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetSurpriseLikelihood() Likelihood {
if m != nil {
return m.SurpriseLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetUnderExposedLikelihood() Likelihood {
if m != nil {
return m.UnderExposedLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetBlurredLikelihood() Likelihood {
if m != nil {
return m.BlurredLikelihood
}
return Likelihood_UNKNOWN
}
func (m *FaceAnnotation) GetHeadwearLikelihood() Likelihood {
if m != nil {
return m.HeadwearLikelihood
}
return Likelihood_UNKNOWN
}
// A face-specific landmark (for example, a face feature).
type FaceAnnotation_Landmark struct {
// Face landmark type.
Type FaceAnnotation_Landmark_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type" json:"type,omitempty"`
// Face landmark position.
Position *Position `protobuf:"bytes,4,opt,name=position,proto3" json:"position,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *FaceAnnotation_Landmark) Reset() { *m = FaceAnnotation_Landmark{} }
func (m *FaceAnnotation_Landmark) String() string { return proto.CompactTextString(m) }
func (*FaceAnnotation_Landmark) ProtoMessage() {}
func (*FaceAnnotation_Landmark) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{3, 0}
}
func (m *FaceAnnotation_Landmark) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FaceAnnotation_Landmark.Unmarshal(m, b)
}
func (m *FaceAnnotation_Landmark) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_FaceAnnotation_Landmark.Marshal(b, m, deterministic)
}
func (dst *FaceAnnotation_Landmark) XXX_Merge(src proto.Message) {
xxx_messageInfo_FaceAnnotation_Landmark.Merge(dst, src)
}
func (m *FaceAnnotation_Landmark) XXX_Size() int {
return xxx_messageInfo_FaceAnnotation_Landmark.Size(m)
}
func (m *FaceAnnotation_Landmark) XXX_DiscardUnknown() {
xxx_messageInfo_FaceAnnotation_Landmark.DiscardUnknown(m)
}
var xxx_messageInfo_FaceAnnotation_Landmark proto.InternalMessageInfo
func (m *FaceAnnotation_Landmark) GetType() FaceAnnotation_Landmark_Type {
if m != nil {
return m.Type
}
return FaceAnnotation_Landmark_UNKNOWN_LANDMARK
}
func (m *FaceAnnotation_Landmark) GetPosition() *Position {
if m != nil {
return m.Position
}
return nil
}
// Detected entity location information.
type LocationInfo struct {
// lat/long location coordinates.
LatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LocationInfo) Reset() { *m = LocationInfo{} }
func (m *LocationInfo) String() string { return proto.CompactTextString(m) }
func (*LocationInfo) ProtoMessage() {}
func (*LocationInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{4}
}
func (m *LocationInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocationInfo.Unmarshal(m, b)
}
func (m *LocationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LocationInfo.Marshal(b, m, deterministic)
}
func (dst *LocationInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_LocationInfo.Merge(dst, src)
}
func (m *LocationInfo) XXX_Size() int {
return xxx_messageInfo_LocationInfo.Size(m)
}
func (m *LocationInfo) XXX_DiscardUnknown() {
xxx_messageInfo_LocationInfo.DiscardUnknown(m)
}
var xxx_messageInfo_LocationInfo proto.InternalMessageInfo
func (m *LocationInfo) GetLatLng() *latlng.LatLng {
if m != nil {
return m.LatLng
}
return nil
}
// A `Property` consists of a user-supplied name/value pair.
type Property struct {
// Name of the property.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Value of the property.
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Value of numeric properties.
Uint64Value uint64 `protobuf:"varint,3,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Property) Reset() { *m = Property{} }
func (m *Property) String() string { return proto.CompactTextString(m) }
func (*Property) ProtoMessage() {}
func (*Property) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{5}
}
func (m *Property) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Property.Unmarshal(m, b)
}
func (m *Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Property.Marshal(b, m, deterministic)
}
func (dst *Property) XXX_Merge(src proto.Message) {
xxx_messageInfo_Property.Merge(dst, src)
}
func (m *Property) XXX_Size() int {
return xxx_messageInfo_Property.Size(m)
}
func (m *Property) XXX_DiscardUnknown() {
xxx_messageInfo_Property.DiscardUnknown(m)
}
var xxx_messageInfo_Property proto.InternalMessageInfo
func (m *Property) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Property) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
func (m *Property) GetUint64Value() uint64 {
if m != nil {
return m.Uint64Value
}
return 0
}
// Set of detected entity features.
type EntityAnnotation struct {
// Opaque entity ID. Some IDs may be available in
// [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).
Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
// The language code for the locale in which the entity textual
// `description` is expressed.
Locale string `protobuf:"bytes,2,opt,name=locale,proto3" json:"locale,omitempty"`
// Entity textual description, expressed in its `locale` language.
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// Overall score of the result. Range [0, 1].
Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
// The accuracy of the entity detection in an image.
// For example, for an image in which the "Eiffel Tower" entity is detected,
// this field represents the confidence that there is a tower in the query
// image. Range [0, 1].
Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"`
// The relevancy of the ICA (Image Content Annotation) label to the
// image. For example, the relevancy of "tower" is likely higher to an image
// containing the detected "Eiffel Tower" than to an image containing a
// detected distant towering building, even though the confidence that
// there is a tower in each image may be the same. Range [0, 1].
Topicality float32 `protobuf:"fixed32,6,opt,name=topicality,proto3" json:"topicality,omitempty"`
// Image region to which this entity belongs. Not produced
// for `LABEL_DETECTION` features.
BoundingPoly *BoundingPoly `protobuf:"bytes,7,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
// The location information for the detected entity. Multiple
// `LocationInfo` elements can be present because one location may
// indicate the location of the scene in the image, and another location
// may indicate the location of the place where the image was taken.
// Location information is usually present for landmarks.
Locations []*LocationInfo `protobuf:"bytes,8,rep,name=locations,proto3" json:"locations,omitempty"`
// Some entities may have optional user-supplied `Property` (name/value)
// fields, such a score or string that qualifies the entity.
Properties []*Property `protobuf:"bytes,9,rep,name=properties,proto3" json:"properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *EntityAnnotation) Reset() { *m = EntityAnnotation{} }
func (m *EntityAnnotation) String() string { return proto.CompactTextString(m) }
func (*EntityAnnotation) ProtoMessage() {}
func (*EntityAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{6}
}
func (m *EntityAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EntityAnnotation.Unmarshal(m, b)
}
func (m *EntityAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_EntityAnnotation.Marshal(b, m, deterministic)
}
func (dst *EntityAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_EntityAnnotation.Merge(dst, src)
}
func (m *EntityAnnotation) XXX_Size() int {
return xxx_messageInfo_EntityAnnotation.Size(m)
}
func (m *EntityAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_EntityAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_EntityAnnotation proto.InternalMessageInfo
func (m *EntityAnnotation) GetMid() string {
if m != nil {
return m.Mid
}
return ""
}
func (m *EntityAnnotation) GetLocale() string {
if m != nil {
return m.Locale
}
return ""
}
func (m *EntityAnnotation) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *EntityAnnotation) GetScore() float32 {
if m != nil {
return m.Score
}
return 0
}
func (m *EntityAnnotation) GetConfidence() float32 {
if m != nil {
return m.Confidence
}
return 0
}
func (m *EntityAnnotation) GetTopicality() float32 {
if m != nil {
return m.Topicality
}
return 0
}
func (m *EntityAnnotation) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
func (m *EntityAnnotation) GetLocations() []*LocationInfo {
if m != nil {
return m.Locations
}
return nil
}
func (m *EntityAnnotation) GetProperties() []*Property {
if m != nil {
return m.Properties
}
return nil
}
// Set of features pertaining to the image, computed by computer vision
// methods over safe-search verticals (for example, adult, spoof, medical,
// violence).
type SafeSearchAnnotation struct {
// Represents the adult content likelihood for the image. Adult content may
// contain elements such as nudity, pornographic images or cartoons, or
// sexual activities.
Adult Likelihood `protobuf:"varint,1,opt,name=adult,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"adult,omitempty"`
// Spoof likelihood. The likelihood that an modification
// was made to the image's canonical version to make it appear
// funny or offensive.
Spoof Likelihood `protobuf:"varint,2,opt,name=spoof,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"spoof,omitempty"`
// Likelihood that this is a medical image.
Medical Likelihood `protobuf:"varint,3,opt,name=medical,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"medical,omitempty"`
// Likelihood that this image contains violent content.
Violence Likelihood `protobuf:"varint,4,opt,name=violence,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"violence,omitempty"`
// Likelihood that the request image contains racy content. Racy content may
// include (but is not limited to) skimpy or sheer clothing, strategically
// covered nudity, lewd or provocative poses, or close-ups of sensitive
// body areas.
Racy Likelihood `protobuf:"varint,9,opt,name=racy,proto3,enum=google.cloud.vision.v1p1beta1.Likelihood" json:"racy,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SafeSearchAnnotation) Reset() { *m = SafeSearchAnnotation{} }
func (m *SafeSearchAnnotation) String() string { return proto.CompactTextString(m) }
func (*SafeSearchAnnotation) ProtoMessage() {}
func (*SafeSearchAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{7}
}
func (m *SafeSearchAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SafeSearchAnnotation.Unmarshal(m, b)
}
func (m *SafeSearchAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SafeSearchAnnotation.Marshal(b, m, deterministic)
}
func (dst *SafeSearchAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_SafeSearchAnnotation.Merge(dst, src)
}
func (m *SafeSearchAnnotation) XXX_Size() int {
return xxx_messageInfo_SafeSearchAnnotation.Size(m)
}
func (m *SafeSearchAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_SafeSearchAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_SafeSearchAnnotation proto.InternalMessageInfo
func (m *SafeSearchAnnotation) GetAdult() Likelihood {
if m != nil {
return m.Adult
}
return Likelihood_UNKNOWN
}
func (m *SafeSearchAnnotation) GetSpoof() Likelihood {
if m != nil {
return m.Spoof
}
return Likelihood_UNKNOWN
}
func (m *SafeSearchAnnotation) GetMedical() Likelihood {
if m != nil {
return m.Medical
}
return Likelihood_UNKNOWN
}
func (m *SafeSearchAnnotation) GetViolence() Likelihood {
if m != nil {
return m.Violence
}
return Likelihood_UNKNOWN
}
func (m *SafeSearchAnnotation) GetRacy() Likelihood {
if m != nil {
return m.Racy
}
return Likelihood_UNKNOWN
}
// Rectangle determined by min and max `LatLng` pairs.
type LatLongRect struct {
// Min lat/long pair.
MinLatLng *latlng.LatLng `protobuf:"bytes,1,opt,name=min_lat_lng,json=minLatLng,proto3" json:"min_lat_lng,omitempty"`
// Max lat/long pair.
MaxLatLng *latlng.LatLng `protobuf:"bytes,2,opt,name=max_lat_lng,json=maxLatLng,proto3" json:"max_lat_lng,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LatLongRect) Reset() { *m = LatLongRect{} }
func (m *LatLongRect) String() string { return proto.CompactTextString(m) }
func (*LatLongRect) ProtoMessage() {}
func (*LatLongRect) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{8}
}
func (m *LatLongRect) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LatLongRect.Unmarshal(m, b)
}
func (m *LatLongRect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LatLongRect.Marshal(b, m, deterministic)
}
func (dst *LatLongRect) XXX_Merge(src proto.Message) {
xxx_messageInfo_LatLongRect.Merge(dst, src)
}
func (m *LatLongRect) XXX_Size() int {
return xxx_messageInfo_LatLongRect.Size(m)
}
func (m *LatLongRect) XXX_DiscardUnknown() {
xxx_messageInfo_LatLongRect.DiscardUnknown(m)
}
var xxx_messageInfo_LatLongRect proto.InternalMessageInfo
func (m *LatLongRect) GetMinLatLng() *latlng.LatLng {
if m != nil {
return m.MinLatLng
}
return nil
}
func (m *LatLongRect) GetMaxLatLng() *latlng.LatLng {
if m != nil {
return m.MaxLatLng
}
return nil
}
// Color information consists of RGB channels, score, and the fraction of
// the image that the color occupies in the image.
type ColorInfo struct {
// RGB components of the color.
Color *color.Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
// Image-specific score for this color. Value in range [0, 1].
Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
// The fraction of pixels the color occupies in the image.
// Value in range [0, 1].
PixelFraction float32 `protobuf:"fixed32,3,opt,name=pixel_fraction,json=pixelFraction,proto3" json:"pixel_fraction,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ColorInfo) Reset() { *m = ColorInfo{} }
func (m *ColorInfo) String() string { return proto.CompactTextString(m) }
func (*ColorInfo) ProtoMessage() {}
func (*ColorInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{9}
}
func (m *ColorInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ColorInfo.Unmarshal(m, b)
}
func (m *ColorInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ColorInfo.Marshal(b, m, deterministic)
}
func (dst *ColorInfo) XXX_Merge(src proto.Message) {
xxx_messageInfo_ColorInfo.Merge(dst, src)
}
func (m *ColorInfo) XXX_Size() int {
return xxx_messageInfo_ColorInfo.Size(m)
}
func (m *ColorInfo) XXX_DiscardUnknown() {
xxx_messageInfo_ColorInfo.DiscardUnknown(m)
}
var xxx_messageInfo_ColorInfo proto.InternalMessageInfo
func (m *ColorInfo) GetColor() *color.Color {
if m != nil {
return m.Color
}
return nil
}
func (m *ColorInfo) GetScore() float32 {
if m != nil {
return m.Score
}
return 0
}
func (m *ColorInfo) GetPixelFraction() float32 {
if m != nil {
return m.PixelFraction
}
return 0
}
// Set of dominant colors and their corresponding scores.
type DominantColorsAnnotation struct {
// RGB color values with their score and pixel fraction.
Colors []*ColorInfo `protobuf:"bytes,1,rep,name=colors,proto3" json:"colors,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DominantColorsAnnotation) Reset() { *m = DominantColorsAnnotation{} }
func (m *DominantColorsAnnotation) String() string { return proto.CompactTextString(m) }
func (*DominantColorsAnnotation) ProtoMessage() {}
func (*DominantColorsAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{10}
}
func (m *DominantColorsAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DominantColorsAnnotation.Unmarshal(m, b)
}
func (m *DominantColorsAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DominantColorsAnnotation.Marshal(b, m, deterministic)
}
func (dst *DominantColorsAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_DominantColorsAnnotation.Merge(dst, src)
}
func (m *DominantColorsAnnotation) XXX_Size() int {
return xxx_messageInfo_DominantColorsAnnotation.Size(m)
}
func (m *DominantColorsAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_DominantColorsAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_DominantColorsAnnotation proto.InternalMessageInfo
func (m *DominantColorsAnnotation) GetColors() []*ColorInfo {
if m != nil {
return m.Colors
}
return nil
}
// Stores image properties, such as dominant colors.
type ImageProperties struct {
// If present, dominant colors completed successfully.
DominantColors *DominantColorsAnnotation `protobuf:"bytes,1,opt,name=dominant_colors,json=dominantColors,proto3" json:"dominant_colors,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ImageProperties) Reset() { *m = ImageProperties{} }
func (m *ImageProperties) String() string { return proto.CompactTextString(m) }
func (*ImageProperties) ProtoMessage() {}
func (*ImageProperties) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{11}
}
func (m *ImageProperties) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageProperties.Unmarshal(m, b)
}
func (m *ImageProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ImageProperties.Marshal(b, m, deterministic)
}
func (dst *ImageProperties) XXX_Merge(src proto.Message) {
xxx_messageInfo_ImageProperties.Merge(dst, src)
}
func (m *ImageProperties) XXX_Size() int {
return xxx_messageInfo_ImageProperties.Size(m)
}
func (m *ImageProperties) XXX_DiscardUnknown() {
xxx_messageInfo_ImageProperties.DiscardUnknown(m)
}
var xxx_messageInfo_ImageProperties proto.InternalMessageInfo
func (m *ImageProperties) GetDominantColors() *DominantColorsAnnotation {
if m != nil {
return m.DominantColors
}
return nil
}
// Single crop hint that is used to generate a new crop when serving an image.
type CropHint struct {
// The bounding polygon for the crop region. The coordinates of the bounding
// box are in the original image's scale, as returned in `ImageParams`.
BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
// Confidence of this being a salient region. Range [0, 1].
Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
// Fraction of importance of this salient region with respect to the original
// image.
ImportanceFraction float32 `protobuf:"fixed32,3,opt,name=importance_fraction,json=importanceFraction,proto3" json:"importance_fraction,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CropHint) Reset() { *m = CropHint{} }
func (m *CropHint) String() string { return proto.CompactTextString(m) }
func (*CropHint) ProtoMessage() {}
func (*CropHint) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{12}
}
func (m *CropHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHint.Unmarshal(m, b)
}
func (m *CropHint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CropHint.Marshal(b, m, deterministic)
}
func (dst *CropHint) XXX_Merge(src proto.Message) {
xxx_messageInfo_CropHint.Merge(dst, src)
}
func (m *CropHint) XXX_Size() int {
return xxx_messageInfo_CropHint.Size(m)
}
func (m *CropHint) XXX_DiscardUnknown() {
xxx_messageInfo_CropHint.DiscardUnknown(m)
}
var xxx_messageInfo_CropHint proto.InternalMessageInfo
func (m *CropHint) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
func (m *CropHint) GetConfidence() float32 {
if m != nil {
return m.Confidence
}
return 0
}
func (m *CropHint) GetImportanceFraction() float32 {
if m != nil {
return m.ImportanceFraction
}
return 0
}
// Set of crop hints that are used to generate new crops when serving images.
type CropHintsAnnotation struct {
// Crop hint results.
CropHints []*CropHint `protobuf:"bytes,1,rep,name=crop_hints,json=cropHints,proto3" json:"crop_hints,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CropHintsAnnotation) Reset() { *m = CropHintsAnnotation{} }
func (m *CropHintsAnnotation) String() string { return proto.CompactTextString(m) }
func (*CropHintsAnnotation) ProtoMessage() {}
func (*CropHintsAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{13}
}
func (m *CropHintsAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHintsAnnotation.Unmarshal(m, b)
}
func (m *CropHintsAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CropHintsAnnotation.Marshal(b, m, deterministic)
}
func (dst *CropHintsAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_CropHintsAnnotation.Merge(dst, src)
}
func (m *CropHintsAnnotation) XXX_Size() int {
return xxx_messageInfo_CropHintsAnnotation.Size(m)
}
func (m *CropHintsAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_CropHintsAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_CropHintsAnnotation proto.InternalMessageInfo
func (m *CropHintsAnnotation) GetCropHints() []*CropHint {
if m != nil {
return m.CropHints
}
return nil
}
// Parameters for crop hints annotation request.
type CropHintsParams struct {
// Aspect ratios in floats, representing the ratio of the width to the height
// of the image. For example, if the desired aspect ratio is 4/3, the
// corresponding float value should be 1.33333. If not specified, the
// best possible crop is returned. The number of provided aspect ratios is
// limited to a maximum of 16; any aspect ratios provided after the 16th are
// ignored.
AspectRatios []float32 `protobuf:"fixed32,1,rep,packed,name=aspect_ratios,json=aspectRatios,proto3" json:"aspect_ratios,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CropHintsParams) Reset() { *m = CropHintsParams{} }
func (m *CropHintsParams) String() string { return proto.CompactTextString(m) }
func (*CropHintsParams) ProtoMessage() {}
func (*CropHintsParams) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{14}
}
func (m *CropHintsParams) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHintsParams.Unmarshal(m, b)
}
func (m *CropHintsParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CropHintsParams.Marshal(b, m, deterministic)
}
func (dst *CropHintsParams) XXX_Merge(src proto.Message) {
xxx_messageInfo_CropHintsParams.Merge(dst, src)
}
func (m *CropHintsParams) XXX_Size() int {
return xxx_messageInfo_CropHintsParams.Size(m)
}
func (m *CropHintsParams) XXX_DiscardUnknown() {
xxx_messageInfo_CropHintsParams.DiscardUnknown(m)
}
var xxx_messageInfo_CropHintsParams proto.InternalMessageInfo
func (m *CropHintsParams) GetAspectRatios() []float32 {
if m != nil {
return m.AspectRatios
}
return nil
}
// Parameters for web detection request.
type WebDetectionParams struct {
// Whether to include results derived from the geo information in the image.
IncludeGeoResults bool `protobuf:"varint,2,opt,name=include_geo_results,json=includeGeoResults,proto3" json:"include_geo_results,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *WebDetectionParams) Reset() { *m = WebDetectionParams{} }
func (m *WebDetectionParams) String() string { return proto.CompactTextString(m) }
func (*WebDetectionParams) ProtoMessage() {}
func (*WebDetectionParams) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{15}
}
func (m *WebDetectionParams) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetectionParams.Unmarshal(m, b)
}
func (m *WebDetectionParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_WebDetectionParams.Marshal(b, m, deterministic)
}
func (dst *WebDetectionParams) XXX_Merge(src proto.Message) {
xxx_messageInfo_WebDetectionParams.Merge(dst, src)
}
func (m *WebDetectionParams) XXX_Size() int {
return xxx_messageInfo_WebDetectionParams.Size(m)
}
func (m *WebDetectionParams) XXX_DiscardUnknown() {
xxx_messageInfo_WebDetectionParams.DiscardUnknown(m)
}
var xxx_messageInfo_WebDetectionParams proto.InternalMessageInfo
func (m *WebDetectionParams) GetIncludeGeoResults() bool {
if m != nil {
return m.IncludeGeoResults
}
return false
}
// Image context and/or feature-specific parameters.
type ImageContext struct {
// lat/long rectangle that specifies the location of the image.
LatLongRect *LatLongRect `protobuf:"bytes,1,opt,name=lat_long_rect,json=latLongRect,proto3" json:"lat_long_rect,omitempty"`
// List of languages to use for TEXT_DETECTION. In most cases, an empty value
// yields the best results since it enables automatic language detection. For
// languages based on the Latin alphabet, setting `language_hints` is not
// needed. In rare cases, when the language of the text in the image is known,
// setting a hint will help get better results (although it will be a
// significant hindrance if the hint is wrong). Text detection returns an
// error if one or more of the specified languages is not one of the
// [supported languages](/vision/docs/languages).
LanguageHints []string `protobuf:"bytes,2,rep,name=language_hints,json=languageHints,proto3" json:"language_hints,omitempty"`
// Parameters for crop hints annotation request.
CropHintsParams *CropHintsParams `protobuf:"bytes,4,opt,name=crop_hints_params,json=cropHintsParams,proto3" json:"crop_hints_params,omitempty"`
// Parameters for web detection.
WebDetectionParams *WebDetectionParams `protobuf:"bytes,6,opt,name=web_detection_params,json=webDetectionParams,proto3" json:"web_detection_params,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ImageContext) Reset() { *m = ImageContext{} }
func (m *ImageContext) String() string { return proto.CompactTextString(m) }
func (*ImageContext) ProtoMessage() {}
func (*ImageContext) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{16}
}
func (m *ImageContext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageContext.Unmarshal(m, b)
}
func (m *ImageContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ImageContext.Marshal(b, m, deterministic)
}
func (dst *ImageContext) XXX_Merge(src proto.Message) {
xxx_messageInfo_ImageContext.Merge(dst, src)
}
func (m *ImageContext) XXX_Size() int {
return xxx_messageInfo_ImageContext.Size(m)
}
func (m *ImageContext) XXX_DiscardUnknown() {
xxx_messageInfo_ImageContext.DiscardUnknown(m)
}
var xxx_messageInfo_ImageContext proto.InternalMessageInfo
func (m *ImageContext) GetLatLongRect() *LatLongRect {
if m != nil {
return m.LatLongRect
}
return nil
}
func (m *ImageContext) GetLanguageHints() []string {
if m != nil {
return m.LanguageHints
}
return nil
}
func (m *ImageContext) GetCropHintsParams() *CropHintsParams {
if m != nil {
return m.CropHintsParams
}
return nil
}
func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
if m != nil {
return m.WebDetectionParams
}
return nil
}
// Request for performing Google Cloud Vision API tasks over a user-provided
// image, with user-requested features.
type AnnotateImageRequest struct {
// The image to be processed.
Image *Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
// Requested features.
Features []*Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
// Additional context that may accompany the image.
ImageContext *ImageContext `protobuf:"bytes,3,opt,name=image_context,json=imageContext,proto3" json:"image_context,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AnnotateImageRequest) Reset() { *m = AnnotateImageRequest{} }
func (m *AnnotateImageRequest) String() string { return proto.CompactTextString(m) }
func (*AnnotateImageRequest) ProtoMessage() {}
func (*AnnotateImageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{17}
}
func (m *AnnotateImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnnotateImageRequest.Unmarshal(m, b)
}
func (m *AnnotateImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnnotateImageRequest.Marshal(b, m, deterministic)
}
func (dst *AnnotateImageRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_AnnotateImageRequest.Merge(dst, src)
}
func (m *AnnotateImageRequest) XXX_Size() int {
return xxx_messageInfo_AnnotateImageRequest.Size(m)
}
func (m *AnnotateImageRequest) XXX_DiscardUnknown() {
xxx_messageInfo_AnnotateImageRequest.DiscardUnknown(m)
}
var xxx_messageInfo_AnnotateImageRequest proto.InternalMessageInfo
func (m *AnnotateImageRequest) GetImage() *Image {
if m != nil {
return m.Image
}
return nil
}
func (m *AnnotateImageRequest) GetFeatures() []*Feature {
if m != nil {
return m.Features
}
return nil
}
func (m *AnnotateImageRequest) GetImageContext() *ImageContext {
if m != nil {
return m.ImageContext
}
return nil
}
// Response to an image annotation request.
type AnnotateImageResponse struct {
// If present, face detection has completed successfully.
FaceAnnotations []*FaceAnnotation `protobuf:"bytes,1,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"`
// If present, landmark detection has completed successfully.
LandmarkAnnotations []*EntityAnnotation `protobuf:"bytes,2,rep,name=landmark_annotations,json=landmarkAnnotations,proto3" json:"landmark_annotations,omitempty"`
// If present, logo detection has completed successfully.
LogoAnnotations []*EntityAnnotation `protobuf:"bytes,3,rep,name=logo_annotations,json=logoAnnotations,proto3" json:"logo_annotations,omitempty"`
// If present, label detection has completed successfully.
LabelAnnotations []*EntityAnnotation `protobuf:"bytes,4,rep,name=label_annotations,json=labelAnnotations,proto3" json:"label_annotations,omitempty"`
// If present, text (OCR) detection has completed successfully.
TextAnnotations []*EntityAnnotation `protobuf:"bytes,5,rep,name=text_annotations,json=textAnnotations,proto3" json:"text_annotations,omitempty"`
// If present, text (OCR) detection or document (OCR) text detection has
// completed successfully.
// This annotation provides the structural hierarchy for the OCR detected
// text.
FullTextAnnotation *TextAnnotation `protobuf:"bytes,12,opt,name=full_text_annotation,json=fullTextAnnotation,proto3" json:"full_text_annotation,omitempty"`
// If present, safe-search annotation has completed successfully.
SafeSearchAnnotation *SafeSearchAnnotation `protobuf:"bytes,6,opt,name=safe_search_annotation,json=safeSearchAnnotation,proto3" json:"safe_search_annotation,omitempty"`
// If present, image properties were extracted successfully.
ImagePropertiesAnnotation *ImageProperties `protobuf:"bytes,8,opt,name=image_properties_annotation,json=imagePropertiesAnnotation,proto3" json:"image_properties_annotation,omitempty"`
// If present, crop hints have completed successfully.
CropHintsAnnotation *CropHintsAnnotation `protobuf:"bytes,11,opt,name=crop_hints_annotation,json=cropHintsAnnotation,proto3" json:"crop_hints_annotation,omitempty"`
// If present, web detection has completed successfully.
WebDetection *WebDetection `protobuf:"bytes,13,opt,name=web_detection,json=webDetection,proto3" json:"web_detection,omitempty"`
// If set, represents the error message for the operation.
// Note that filled-in image annotations are guaranteed to be
// correct, even when `error` is set.
Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AnnotateImageResponse) Reset() { *m = AnnotateImageResponse{} }
func (m *AnnotateImageResponse) String() string { return proto.CompactTextString(m) }
func (*AnnotateImageResponse) ProtoMessage() {}
func (*AnnotateImageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{18}
}
func (m *AnnotateImageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnnotateImageResponse.Unmarshal(m, b)
}
func (m *AnnotateImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AnnotateImageResponse.Marshal(b, m, deterministic)
}
func (dst *AnnotateImageResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_AnnotateImageResponse.Merge(dst, src)
}
func (m *AnnotateImageResponse) XXX_Size() int {
return xxx_messageInfo_AnnotateImageResponse.Size(m)
}
func (m *AnnotateImageResponse) XXX_DiscardUnknown() {
xxx_messageInfo_AnnotateImageResponse.DiscardUnknown(m)
}
var xxx_messageInfo_AnnotateImageResponse proto.InternalMessageInfo
func (m *AnnotateImageResponse) GetFaceAnnotations() []*FaceAnnotation {
if m != nil {
return m.FaceAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetLandmarkAnnotations() []*EntityAnnotation {
if m != nil {
return m.LandmarkAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetLogoAnnotations() []*EntityAnnotation {
if m != nil {
return m.LogoAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation {
if m != nil {
return m.LabelAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation {
if m != nil {
return m.TextAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetFullTextAnnotation() *TextAnnotation {
if m != nil {
return m.FullTextAnnotation
}
return nil
}
func (m *AnnotateImageResponse) GetSafeSearchAnnotation() *SafeSearchAnnotation {
if m != nil {
return m.SafeSearchAnnotation
}
return nil
}
func (m *AnnotateImageResponse) GetImagePropertiesAnnotation() *ImageProperties {
if m != nil {
return m.ImagePropertiesAnnotation
}
return nil
}
func (m *AnnotateImageResponse) GetCropHintsAnnotation() *CropHintsAnnotation {
if m != nil {
return m.CropHintsAnnotation
}
return nil
}
func (m *AnnotateImageResponse) GetWebDetection() *WebDetection {
if m != nil {
return m.WebDetection
}
return nil
}
func (m *AnnotateImageResponse) GetError() *status.Status {
if m != nil {
return m.Error
}
return nil
}
// Multiple image annotation requests are batched into a single service call.
type BatchAnnotateImagesRequest struct {
// Individual image annotation requests for this batch.
Requests []*AnnotateImageRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BatchAnnotateImagesRequest) Reset() { *m = BatchAnnotateImagesRequest{} }
func (m *BatchAnnotateImagesRequest) String() string { return proto.CompactTextString(m) }
func (*BatchAnnotateImagesRequest) ProtoMessage() {}
func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{19}
}
func (m *BatchAnnotateImagesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BatchAnnotateImagesRequest.Unmarshal(m, b)
}
func (m *BatchAnnotateImagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BatchAnnotateImagesRequest.Marshal(b, m, deterministic)
}
func (dst *BatchAnnotateImagesRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_BatchAnnotateImagesRequest.Merge(dst, src)
}
func (m *BatchAnnotateImagesRequest) XXX_Size() int {
return xxx_messageInfo_BatchAnnotateImagesRequest.Size(m)
}
func (m *BatchAnnotateImagesRequest) XXX_DiscardUnknown() {
xxx_messageInfo_BatchAnnotateImagesRequest.DiscardUnknown(m)
}
var xxx_messageInfo_BatchAnnotateImagesRequest proto.InternalMessageInfo
func (m *BatchAnnotateImagesRequest) GetRequests() []*AnnotateImageRequest {
if m != nil {
return m.Requests
}
return nil
}
// Response to a batch image annotation request.
type BatchAnnotateImagesResponse struct {
// Individual responses to image annotation requests within the batch.
Responses []*AnnotateImageResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BatchAnnotateImagesResponse) Reset() { *m = BatchAnnotateImagesResponse{} }
func (m *BatchAnnotateImagesResponse) String() string { return proto.CompactTextString(m) }
func (*BatchAnnotateImagesResponse) ProtoMessage() {}
func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_5dd1ea17d879c524, []int{20}
}
func (m *BatchAnnotateImagesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BatchAnnotateImagesResponse.Unmarshal(m, b)
}
func (m *BatchAnnotateImagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BatchAnnotateImagesResponse.Marshal(b, m, deterministic)
}
func (dst *BatchAnnotateImagesResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_BatchAnnotateImagesResponse.Merge(dst, src)
}
func (m *BatchAnnotateImagesResponse) XXX_Size() int {
return xxx_messageInfo_BatchAnnotateImagesResponse.Size(m)
}
func (m *BatchAnnotateImagesResponse) XXX_DiscardUnknown() {
xxx_messageInfo_BatchAnnotateImagesResponse.DiscardUnknown(m)
}
var xxx_messageInfo_BatchAnnotateImagesResponse proto.InternalMessageInfo
func (m *BatchAnnotateImagesResponse) GetResponses() []*AnnotateImageResponse {
if m != nil {
return m.Responses
}
return nil
}
func init() {
proto.RegisterType((*Feature)(nil), "google.cloud.vision.v1p1beta1.Feature")
proto.RegisterType((*ImageSource)(nil), "google.cloud.vision.v1p1beta1.ImageSource")
proto.RegisterType((*Image)(nil), "google.cloud.vision.v1p1beta1.Image")
proto.RegisterType((*FaceAnnotation)(nil), "google.cloud.vision.v1p1beta1.FaceAnnotation")
proto.RegisterType((*FaceAnnotation_Landmark)(nil), "google.cloud.vision.v1p1beta1.FaceAnnotation.Landmark")
proto.RegisterType((*LocationInfo)(nil), "google.cloud.vision.v1p1beta1.LocationInfo")
proto.RegisterType((*Property)(nil), "google.cloud.vision.v1p1beta1.Property")
proto.RegisterType((*EntityAnnotation)(nil), "google.cloud.vision.v1p1beta1.EntityAnnotation")
proto.RegisterType((*SafeSearchAnnotation)(nil), "google.cloud.vision.v1p1beta1.SafeSearchAnnotation")
proto.RegisterType((*LatLongRect)(nil), "google.cloud.vision.v1p1beta1.LatLongRect")
proto.RegisterType((*ColorInfo)(nil), "google.cloud.vision.v1p1beta1.ColorInfo")
proto.RegisterType((*DominantColorsAnnotation)(nil), "google.cloud.vision.v1p1beta1.DominantColorsAnnotation")
proto.RegisterType((*ImageProperties)(nil), "google.cloud.vision.v1p1beta1.ImageProperties")
proto.RegisterType((*CropHint)(nil), "google.cloud.vision.v1p1beta1.CropHint")
proto.RegisterType((*CropHintsAnnotation)(nil), "google.cloud.vision.v1p1beta1.CropHintsAnnotation")
proto.RegisterType((*CropHintsParams)(nil), "google.cloud.vision.v1p1beta1.CropHintsParams")
proto.RegisterType((*WebDetectionParams)(nil), "google.cloud.vision.v1p1beta1.WebDetectionParams")
proto.RegisterType((*ImageContext)(nil), "google.cloud.vision.v1p1beta1.ImageContext")
proto.RegisterType((*AnnotateImageRequest)(nil), "google.cloud.vision.v1p1beta1.AnnotateImageRequest")
proto.RegisterType((*AnnotateImageResponse)(nil), "google.cloud.vision.v1p1beta1.AnnotateImageResponse")
proto.RegisterType((*BatchAnnotateImagesRequest)(nil), "google.cloud.vision.v1p1beta1.BatchAnnotateImagesRequest")
proto.RegisterType((*BatchAnnotateImagesResponse)(nil), "google.cloud.vision.v1p1beta1.BatchAnnotateImagesResponse")
proto.RegisterEnum("google.cloud.vision.v1p1beta1.Likelihood", Likelihood_name, Likelihood_value)
proto.RegisterEnum("google.cloud.vision.v1p1beta1.Feature_Type", Feature_Type_name, Feature_Type_value)
proto.RegisterEnum("google.cloud.vision.v1p1beta1.FaceAnnotation_Landmark_Type", FaceAnnotation_Landmark_Type_name, FaceAnnotation_Landmark_Type_value)
}
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
// ImageAnnotatorClient is the client API for ImageAnnotator service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ImageAnnotatorClient interface {
// Run image detection and annotation for a batch of images.
BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error)
}
type imageAnnotatorClient struct {
cc *grpc.ClientConn
}
func NewImageAnnotatorClient(cc *grpc.ClientConn) ImageAnnotatorClient {
return &imageAnnotatorClient{cc}
}
func (c *imageAnnotatorClient) BatchAnnotateImages(ctx context.Context, in *BatchAnnotateImagesRequest, opts ...grpc.CallOption) (*BatchAnnotateImagesResponse, error) {
out := new(BatchAnnotateImagesResponse)
err := c.cc.Invoke(ctx, "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ImageAnnotatorServer is the server API for ImageAnnotator service.
type ImageAnnotatorServer interface {
// Run image detection and annotation for a batch of images.
BatchAnnotateImages(context.Context, *BatchAnnotateImagesRequest) (*BatchAnnotateImagesResponse, error)
}
func RegisterImageAnnotatorServer(s *grpc.Server, srv ImageAnnotatorServer) {
s.RegisterService(&_ImageAnnotator_serviceDesc, srv)
}
func _ImageAnnotator_BatchAnnotateImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BatchAnnotateImagesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.vision.v1p1beta1.ImageAnnotator/BatchAnnotateImages",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ImageAnnotatorServer).BatchAnnotateImages(ctx, req.(*BatchAnnotateImagesRequest))
}
return interceptor(ctx, in, info, handler)
}
var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{
ServiceName: "google.cloud.vision.v1p1beta1.ImageAnnotator",
HandlerType: (*ImageAnnotatorServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "BatchAnnotateImages",
Handler: _ImageAnnotator_BatchAnnotateImages_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "google/cloud/vision/v1p1beta1/image_annotator.proto",
}
func init() {
proto.RegisterFile("google/cloud/vision/v1p1beta1/image_annotator.proto", fileDescriptor_image_annotator_5dd1ea17d879c524)
}
var fileDescriptor_image_annotator_5dd1ea17d879c524 = []byte{
// 2392 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcd, 0x72, 0xe3, 0xc6,
0xf1, 0x37, 0xa9, 0x2f, 0xb2, 0x49, 0x91, 0xd0, 0x48, 0x2b, 0x73, 0xb5, 0xbb, 0x5e, 0x19, 0xff,
0xbf, 0x13, 0xc5, 0x71, 0xa8, 0x5a, 0xad, 0xe3, 0x54, 0xd6, 0x49, 0x39, 0x24, 0x05, 0x49, 0x2c,
0x73, 0x49, 0xd4, 0x90, 0xb2, 0xbc, 0x5b, 0x4e, 0x21, 0x10, 0x38, 0xe4, 0xc2, 0x06, 0x31, 0x30,
0x00, 0xee, 0x4a, 0x57, 0x5f, 0x73, 0xcc, 0x2d, 0xf7, 0x1c, 0x73, 0x4a, 0x9e, 0xc1, 0x2f, 0x90,
0x43, 0x1e, 0x20, 0x39, 0xe4, 0x09, 0x52, 0xa9, 0x9c, 0x52, 0xf3, 0x01, 0x70, 0xc0, 0xfd, 0xa0,
0xb8, 0xa9, 0x9c, 0x88, 0xe9, 0x9e, 0xdf, 0xaf, 0x67, 0xba, 0xa7, 0x67, 0x7a, 0x86, 0xf0, 0x70,
0x4c, 0xe9, 0xd8, 0x23, 0x87, 0x8e, 0x47, 0xa7, 0xc3, 0xc3, 0xe7, 0x6e, 0xe4, 0x52, 0xff, 0xf0,
0xf9, 0x83, 0xe0, 0xc1, 0x25, 0x89, 0xed, 0x07, 0x87, 0xee, 0xc4, 0x1e, 0x13, 0xcb, 0xf6, 0x7d,
0x1a, 0xdb, 0x31, 0x0d, 0xeb, 0x41, 0x48, 0x63, 0x8a, 0xee, 0x09, 0x50, 0x9d, 0x83, 0xea, 0x02,
0x54, 0x4f, 0x41, 0x7b, 0x77, 0x25, 0xa7, 0x1d, 0xb8, 0x87, 0x12, 0xea, 0x52, 0x3f, 0x12, 0xe0,
0xbd, 0x8f, 0xde, 0x6c, 0x71, 0x4c, 0xe8, 0x84, 0xc4, 0xe1, 0xb5, 0xec, 0xbd, 0x60, 0x7c, 0x31,
0xb9, 0x8a, 0xad, 0x99, 0x0d, 0x09, 0x7a, 0xf0, 0x66, 0xd0, 0x0b, 0x72, 0x69, 0x0d, 0x49, 0x4c,
0x1c, 0x05, 0xf2, 0xae, 0x84, 0x84, 0x81, 0x73, 0x18, 0xc5, 0x76, 0x3c, 0x8d, 0xe6, 0x14, 0xf1,
0x75, 0x40, 0x0e, 0x1d, 0xea, 0x25, 0x4e, 0xd8, 0xab, 0xa9, 0x0a, 0xcf, 0x8e, 0x3d, 0x7f, 0x2c,
0x34, 0xfa, 0xbf, 0xf3, 0xb0, 0x71, 0x42, 0xec, 0x78, 0x1a, 0x12, 0xf4, 0x19, 0xac, 0xb2, 0x0e,
0xb5, 0xdc, 0x7e, 0xee, 0xa0, 0x72, 0xf4, 0xe3, 0xfa, 0x1b, 0x3d, 0x57, 0x97, 0xa8, 0xfa, 0xe0,
0x3a, 0x20, 0x98, 0x03, 0xd1, 0x7d, 0x28, 0x4d, 0xec, 0x2b, 0x2b, 0x24, 0xd1, 0xd4, 0x8b, 0xa3,
0x5a, 0x7e, 0x3f, 0x77, 0xb0, 0x86, 0x61, 0x62, 0x5f, 0x61, 0x21, 0x41, 0x3b, 0xb0, 0x36, 0xa1,
0x43, 0xe2, 0xd5, 0x56, 0xf6, 0x73, 0x07, 0x45, 0x2c, 0x1a, 0xfa, 0x3f, 0x73, 0xb0, 0xca, 0x58,
0xd0, 0x0e, 0x68, 0x83, 0x27, 0xa6, 0x61, 0x9d, 0x77, 0xfb, 0xa6, 0xd1, 0x6a, 0x9f, 0xb4, 0x8d,
0x63, 0xed, 0x1d, 0x84, 0xa0, 0x72, 0xd2, 0x68, 0x19, 0xd6, 0xb1, 0x31, 0x30, 0x5a, 0x83, 0x76,
0xaf, 0xab, 0xe5, 0xd0, 0x2e, 0xa0, 0x4e, 0xa3, 0x7b, 0xfc, 0xb8, 0x81, 0x3f, 0x57, 0xe4, 0x79,
0xd6, 0xb7, 0xd3, 0x3b, 0xed, 0x29, 0xb2, 0x15, 0xb4, 0x0d, 0xd5, 0x4e, 0xa3, 0x69, 0x74, 0x14,
0xe1, 0x2a, 0xeb, 0x38, 0x30, 0xbe, 0x1c, 0x28, 0xb2, 0x35, 0x74, 0x07, 0xde, 0x3d, 0xee, 0xb5,
0xce, 0x1f, 0x1b, 0xdd, 0x81, 0x35, 0xa7, 0x2c, 0xa1, 0xdb, 0x70, 0xab, 0xdf, 0x38, 0x31, 0xac,
0xbe, 0xd1, 0xc0, 0xad, 0x33, 0x45, 0xb5, 0xce, 0x86, 0xdd, 0x7e, 0xdc, 0x38, 0x35, 0x2c, 0x13,
0xf7, 0x4c, 0x03, 0x0f, 0xda, 0x46, 0x5f, 0xdb, 0x40, 0x15, 0x80, 0x16, 0xee, 0x99, 0xd6, 0x59,
0xbb, 0x3b, 0xe8, 0x6b, 0x45, 0xb4, 0x05, 0x9b, 0x17, 0x46, 0x53, 0x01, 0x82, 0xde, 0x85, 0x52,
0x9b, 0x2d, 0xda, 0x3e, 0x9d, 0x86, 0x0e, 0x41, 0x3a, 0x6c, 0x8e, 0x9d, 0xc8, 0x12, 0xeb, 0x78,
0x1a, 0xba, 0x3c, 0x10, 0x45, 0x5c, 0x1a, 0x3b, 0x11, 0xef, 0x76, 0x1e, 0xba, 0xe8, 0x0e, 0x14,
0x67, 0xfa, 0x3c, 0xd7, 0x17, 0x5c, 0xa9, 0xd4, 0x09, 0xac, 0xf1, 0x8e, 0xa8, 0x06, 0x1b, 0x0e,
0xf5, 0x63, 0xe2, 0xc7, 0x9c, 0xa3, 0x8c, 0x93, 0x26, 0x6a, 0xc2, 0x7a, 0xc4, 0xad, 0x71, 0x70,
0xe9, 0xe8, 0xc3, 0x05, 0x51, 0x56, 0xc6, 0x87, 0x25, 0x52, 0xff, 0x83, 0x06, 0x95, 0x13, 0xdb,
0x21, 0x8d, 0x74, 0x2d, 0x23, 0x13, 0x36, 0x2f, 0xe9, 0xd4, 0x1f, 0xba, 0xfe, 0xd8, 0x0a, 0xa8,
0x77, 0xcd, 0xcd, 0x96, 0x16, 0xae, 0xa1, 0xa6, 0xc4, 0x98, 0xd4, 0xbb, 0xc6, 0xe5, 0x4b, 0xa5,
0x85, 0xce, 0x41, 0x1b, 0x0d, 0xad, 0x2c, 0x69, 0x7e, 0x79, 0xd2, 0xca, 0x68, 0xa8, 0xb6, 0xd1,
0x00, 0x8a, 0x9e, 0xed, 0x0f, 0x27, 0x76, 0xf8, 0x4d, 0x54, 0x5b, 0xd9, 0x5f, 0x39, 0x28, 0x1d,
0x7d, 0xb2, 0x68, 0xa1, 0x67, 0xa6, 0x5a, 0xef, 0x48, 0x38, 0x9e, 0x11, 0xa1, 0x7b, 0x00, 0x21,
0xf5, 0x3c, 0xcb, 0xf6, 0xc7, 0x1e, 0xa9, 0xad, 0xee, 0xe7, 0x0e, 0xf2, 0xb8, 0xc8, 0x24, 0x0d,
0x26, 0x60, 0x41, 0x0b, 0x6c, 0x5f, 0x6a, 0xd7, 0xb8, 0xb6, 0x10, 0xd8, 0xbe, 0x50, 0xde, 0x03,
0x88, 0x5d, 0x2f, 0x96, 0xda, 0x75, 0x81, 0x65, 0x12, 0xa1, 0x7e, 0x00, 0x3b, 0x69, 0xfe, 0x5b,
0x0e, 0xf5, 0x47, 0xee, 0x90, 0xf8, 0x0e, 0xa9, 0x6d, 0xf0, 0x8e, 0xdb, 0xa9, 0xae, 0x95, 0xaa,
0xd0, 0x4f, 0x61, 0x37, 0x19, 0x1a, 0x73, 0x9d, 0x02, 0x2a, 0x70, 0xd0, 0x2d, 0x45, 0xab, 0xc0,
0x4c, 0xa8, 0x7c, 0x4d, 0xaf, 0x2d, 0xcf, 0xfd, 0x86, 0x78, 0xee, 0x33, 0x4a, 0x87, 0xb5, 0x22,
0xdf, 0x08, 0x7e, 0xb4, 0xc0, 0x3f, 0x9d, 0x14, 0x80, 0x37, 0xbf, 0xa6, 0xd7, 0xb3, 0x26, 0xfa,
0x02, 0xb6, 0x22, 0x1a, 0x86, 0xf4, 0x85, 0x4a, 0x0a, 0xcb, 0x92, 0x6a, 0x82, 0x43, 0xe1, 0x1d,
0x80, 0x66, 0xfb, 0x63, 0x12, 0xaa, 0xb4, 0xa5, 0x65, 0x69, 0xab, 0x9c, 0x42, 0x61, 0x7d, 0x0a,
0xdb, 0xd1, 0x34, 0x0c, 0x42, 0x37, 0x22, 0x2a, 0x71, 0x79, 0x59, 0x62, 0x94, 0xb0, 0x28, 0xdc,
0x0e, 0xd4, 0xa6, 0xfe, 0x90, 0x84, 0x16, 0xb9, 0x0a, 0x68, 0x44, 0x86, 0xaa, 0x81, 0xcd, 0x65,
0x0d, 0xec, 0x72, 0x2a, 0x43, 0x30, 0x29, 0x46, 0xbe, 0x04, 0x74, 0xe9, 0x4d, 0xc3, 0x30, 0x4b,
0x5f, 0x59, 0x96, 0x7e, 0x4b, 0x92, 0x64, 0x5d, 0xf3, 0x8c, 0xd8, 0xc3, 0x17, 0xc4, 0xce, 0xf8,
0xbc, 0xba, 0xb4, 0x6b, 0x12, 0x96, 0x99, 0x6c, 0xef, 0xaf, 0x1b, 0x50, 0x48, 0x72, 0x0a, 0xf5,
0xe4, 0x11, 0xb4, 0xc2, 0x99, 0x3f, 0x7d, 0xbb, 0xcc, 0x54, 0x8f, 0xa4, 0x16, 0x14, 0x02, 0x1a,
0xb9, 0x4c, 0xcf, 0xf3, 0xb2, 0x74, 0xf4, 0xc3, 0x05, 0xa4, 0xa6, 0xec, 0x8e, 0x53, 0xa0, 0xfe,
0xe7, 0xf5, 0xd9, 0x01, 0x75, 0xde, 0xfd, 0xbc, 0xdb, 0xbb, 0xe8, 0x5a, 0xc9, 0xf1, 0xa3, 0xbd,
0x83, 0xca, 0x50, 0xe8, 0x18, 0x27, 0x03, 0xcb, 0x78, 0x62, 0x68, 0x39, 0xb4, 0x09, 0x45, 0xdc,
0x3e, 0x3d, 0x13, 0xcd, 0x3c, 0xaa, 0xc1, 0x0e, 0x57, 0xf6, 0x4e, 0xac, 0xa4, 0x53, 0x13, 0xf7,
0x2e, 0xb4, 0x15, 0x76, 0xa2, 0x88, 0x8e, 0xf3, 0xaa, 0x55, 0xa6, 0x4a, 0x40, 0x29, 0x17, 0x57,
0xad, 0xa1, 0x3d, 0xd8, 0x4d, 0x51, 0x59, 0xdd, 0x3a, 0x83, 0x3d, 0x6e, 0x1f, 0x9b, 0xbd, 0x76,
0x77, 0x60, 0x35, 0x8d, 0xc1, 0x85, 0x61, 0x74, 0x99, 0x96, 0x9d, 0x46, 0x65, 0x28, 0x74, 0x7b,
0x7d, 0xc3, 0x1a, 0xb4, 0x4d, 0xad, 0xc0, 0xc6, 0x78, 0x6e, 0x9a, 0x06, 0xb6, 0x3a, 0x6d, 0x53,
0x2b, 0xb2, 0x66, 0xa7, 0x77, 0x21, 0x9b, 0xc0, 0x4e, 0xae, 0xc7, 0xbd, 0xf3, 0xc1, 0x19, 0x1f,
0x95, 0x56, 0x42, 0x55, 0x28, 0x89, 0x36, 0xb7, 0xa7, 0x95, 0x91, 0x06, 0x65, 0x21, 0x68, 0x19,
0xdd, 0x81, 0x81, 0xb5, 0x4d, 0x74, 0x0b, 0xb6, 0x38, 0x7d, 0xb3, 0x37, 0x18, 0xf4, 0x1e, 0xcb,
0x8e, 0x15, 0xe6, 0x2f, 0x55, 0xcc, 0xf9, 0xaa, 0xec, 0xf0, 0x56, 0xa5, 0x92, 0x44, 0x4b, 0x67,
0x6d, 0x3c, 0x31, 0xac, 0x41, 0xcf, 0xb4, 0x9a, 0xbd, 0xf3, 0xee, 0x71, 0x03, 0x3f, 0xd1, 0xb6,
0x32, 0x2a, 0x31, 0xeb, 0x56, 0x0f, 0x77, 0x0d, 0xac, 0x21, 0x74, 0x17, 0x6a, 0xa9, 0x4a, 0x32,
0xa6, 0xc0, 0xed, 0xd4, 0xfd, 0x4c, 0xcb, 0x3f, 0x24, 0x6e, 0x67, 0xe6, 0xc8, 0x97, 0xcc, 0xdd,
0xca, 0xea, 0x32, 0xf6, 0x76, 0xd1, 0x3d, 0xb8, 0x3d, 0xd3, 0xcd, 0x1b, 0x7c, 0x77, 0x16, 0xd5,
0x79, 0x8b, 0x35, 0x74, 0x1f, 0xee, 0xa8, 0x71, 0xb6, 0x44, 0x08, 0x92, 0x88, 0x69, 0xb7, 0xd1,
0x3e, 0xdc, 0xcd, 0x84, 0x74, 0xbe, 0xc7, 0x1e, 0x73, 0xa8, 0xa0, 0x68, 0x60, 0x6b, 0x80, 0x1b,
0xa7, 0xac, 0x8e, 0xb8, 0xc3, 0xbc, 0x2f, 0x71, 0x8a, 0xf8, 0x2e, 0x2f, 0x86, 0x92, 0xb9, 0x9b,
0xe7, 0x66, 0xbb, 0xa3, 0xdd, 0x63, 0xc5, 0xd0, 0x6c, 0x78, 0x42, 0xf8, 0x1e, 0xc3, 0x9f, 0xf4,
0xb0, 0x71, 0x66, 0x34, 0x8e, 0xad, 0x53, 0x5e, 0x2b, 0x75, 0x1a, 0xda, 0x7d, 0x56, 0xb1, 0xb4,
0xce, 0xda, 0x5d, 0xeb, 0xb4, 0xdb, 0x18, 0x9c, 0x31, 0xca, 0x7d, 0x66, 0x9f, 0x8b, 0x38, 0xef,
0x69, 0xaf, 0xcb, 0xa4, 0xef, 0x33, 0x3c, 0x97, 0x0a, 0x66, 0x29, 0xd6, 0xf5, 0x5f, 0x40, 0xb9,
0x43, 0x1d, 0x9e, 0x9b, 0x6d, 0x7f, 0x44, 0xd1, 0x47, 0xb0, 0xe1, 0xd9, 0xb1, 0xe5, 0xf9, 0x63,
0x59, 0x1e, 0x6c, 0x27, 0xa9, 0xc8, 0x52, 0xb5, 0xde, 0xb1, 0xe3, 0x8e, 0x3f, 0xc6, 0xeb, 0x1e,
0xff, 0xd5, 0x2f, 0xa0, 0x60, 0x86, 0x34, 0x20, 0x61, 0x7c, 0x8d, 0x10, 0xac, 0xfa, 0xf6, 0x84,
0xc8, 0x82, 0x88, 0x7f, 0xb3, 0x5a, 0xf2, 0xb9, 0xed, 0x4d, 0x89, 0xac, 0x82, 0x44, 0x03, 0xbd,
0x0f, 0xe5, 0xa9, 0xeb, 0xc7, 0x9f, 0x7c, 0x6c, 0x09, 0x25, 0xdb, 0x48, 0x56, 0x71, 0x49, 0xc8,
0xbe, 0x60, 0x22, 0xfd, 0xf7, 0x2b, 0xa0, 0x19, 0x7e, 0xec, 0xc6, 0xd7, 0x4a, 0x01, 0xa3, 0xc1,
0xca, 0xc4, 0x1d, 0x4a, 0x03, 0xec, 0x13, 0xed, 0xc2, 0xba, 0x47, 0x1d, 0xdb, 0x4b, 0x0c, 0xc8,
0x16, 0xda, 0x87, 0xd2, 0x90, 0x44, 0x4e, 0xe8, 0x06, 0x7c, 0x53, 0x11, 0x95, 0xac, 0x2a, 0x62,
0x23, 0x8b, 0x1c, 0x1a, 0x26, 0x85, 0x80, 0x68, 0xa0, 0xf7, 0x00, 0x94, 0x93, 0x58, 0x54, 0x01,
0x8a, 0x84, 0xe9, 0x63, 0x1a, 0xb8, 0x8e, 0xed, 0xb9, 0xf1, 0xb5, 0xac, 0x03, 0x14, 0xc9, 0xcb,
0x25, 0xd6, 0xc6, 0x7f, 0x5b, 0x62, 0xb5, 0xa1, 0xe8, 0xc9, 0xf8, 0x44, 0xb5, 0x02, 0xaf, 0x85,
0x16, 0xb1, 0xa9, 0xf1, 0xc4, 0x33, 0x34, 0x3a, 0x05, 0x08, 0x44, 0xb0, 0x5c, 0x12, 0xd5, 0x8a,
0x9c, 0x6b, 0xe1, 0x46, 0x2b, 0xa3, 0x8b, 0x15, 0xa8, 0xfe, 0xb7, 0x3c, 0xec, 0xf4, 0xed, 0x11,
0xe9, 0x13, 0x3b, 0x74, 0x9e, 0x29, 0x01, 0xfa, 0x0c, 0xd6, 0xec, 0xe1, 0xd4, 0x8b, 0xe5, 0xed,
0x64, 0x89, 0x43, 0x47, 0xe0, 0x18, 0x41, 0x14, 0x50, 0x3a, 0xe2, 0xe1, 0x5c, 0x8e, 0x80, 0xe3,
0x50, 0x0b, 0x36, 0x26, 0x64, 0xc8, 0xc2, 0x21, 0x8f, 0xa7, 0x25, 0x28, 0x12, 0x24, 0x32, 0xa0,
0xf0, 0xdc, 0xa5, 0x1e, 0x5f, 0x03, 0xab, 0xcb, 0xb2, 0xa4, 0x50, 0xf4, 0x4b, 0x58, 0x0d, 0x6d,
0xe7, 0x7a, 0xf9, 0x0a, 0x8d, 0xc3, 0xf4, 0x17, 0x50, 0x62, 0xd9, 0x46, 0xfd, 0x31, 0x26, 0x4e,
0x8c, 0x1e, 0x42, 0x69, 0xe2, 0xfa, 0xd6, 0x0d, 0x92, 0xb3, 0x38, 0x71, 0x7d, 0xf1, 0xc9, 0x41,
0xf6, 0x55, 0x0a, 0xca, 0xbf, 0x09, 0x64, 0x5f, 0x89, 0x4f, 0x3d, 0x84, 0x62, 0x8b, 0xdd, 0x4b,
0xf9, 0x7e, 0x70, 0x00, 0x6b, 0xfc, 0x92, 0x2a, 0x0d, 0xa2, 0x0c, 0x96, 0x77, 0xc3, 0xa2, 0xc3,
0x2c, 0xa3, 0xf2, 0x6a, 0x46, 0x7d, 0x00, 0x95, 0xc0, 0xbd, 0x22, 0x9e, 0x35, 0x0a, 0x6d, 0x27,
0x4d, 0xc6, 0x3c, 0xde, 0xe4, 0xd2, 0x13, 0x29, 0xd4, 0xbf, 0x82, 0xda, 0x31, 0x9d, 0xb8, 0xbe,
0xed, 0xc7, 0x9c, 0x34, 0x52, 0x56, 0xd5, 0xaf, 0x60, 0x9d, 0x5b, 0x88, 0x6a, 0x39, 0xbe, 0x66,
0x0f, 0x16, 0x78, 0x32, 0x1d, 0x3c, 0x96, 0x38, 0x3d, 0x82, 0x2a, 0xbf, 0x23, 0x99, 0xe9, 0x1a,
0x46, 0xbf, 0x81, 0xea, 0x50, 0x1a, 0xb4, 0x52, 0x76, 0x36, 0xc3, 0x9f, 0x2d, 0x60, 0x7f, 0xdd,
0x30, 0x71, 0x65, 0x98, 0xd1, 0xe8, 0x7f, 0xcc, 0x41, 0xa1, 0x15, 0xd2, 0xe0, 0xcc, 0xf5, 0xe3,
0xff, 0xc1, 0xdd, 0x2b, 0xbb, 0x55, 0xe5, 0x5f, 0xda, 0xaa, 0x0e, 0x61, 0xdb, 0x9d, 0x04, 0x34,
0x8c, 0x6d, 0xdf, 0x21, 0xf3, 0xde, 0x47, 0x33, 0x55, 0x1a, 0x82, 0x5f, 0xc3, 0x76, 0x32, 0x5c,
0xd5, 0xfb, 0x27, 0x00, 0x4e, 0x48, 0x03, 0xeb, 0x19, 0x93, 0xcb, 0x08, 0x2c, 0xda, 0x35, 0x12,
0x1e, 0x5c, 0x74, 0x12, 0x46, 0xfd, 0x13, 0xa8, 0xa6, 0xf4, 0xa6, 0x1d, 0xda, 0x93, 0x08, 0xfd,
0x1f, 0x6c, 0xda, 0x51, 0x40, 0x9c, 0xd8, 0x0a, 0x99, 0x2d, 0xc1, 0x9e, 0xc7, 0x65, 0x21, 0xc4,
0x5c, 0xa6, 0x1f, 0x03, 0xba, 0x20, 0x97, 0xc7, 0xc9, 0x15, 0x4a, 0x42, 0xeb, 0xb0, 0xed, 0xfa,
0x8e, 0x37, 0x1d, 0x12, 0x6b, 0x4c, 0x68, 0xe6, 0x35, 0xa3, 0x80, 0xb7, 0xa4, 0xea, 0x94, 0x50,
0xf9, 0xa8, 0xa1, 0x7f, 0x9f, 0x87, 0x32, 0x5f, 0x02, 0x2d, 0x76, 0xc7, 0xbe, 0x8a, 0x51, 0x17,
0x36, 0x79, 0x56, 0x50, 0x7f, 0x6c, 0x85, 0xc4, 0x89, 0x65, 0x40, 0x16, 0x5d, 0xb5, 0x95, 0x8c,
0xc4, 0x25, 0x4f, 0x49, 0xcf, 0x0f, 0xa0, 0xe2, 0xd9, 0xfe, 0x78, 0xca, 0xae, 0xfd, 0xc2, 0x55,
0xf9, 0xfd, 0x95, 0x83, 0x22, 0xde, 0x4c, 0xa4, 0x7c, 0xe2, 0xe8, 0x29, 0x6c, 0xcd, 0xbc, 0x69,
0x05, 0x7c, 0x32, 0xb2, 0xe6, 0xad, 0xdf, 0xd0, 0xa9, 0xd2, 0x7b, 0xb8, 0xea, 0xcc, 0xb9, 0xd3,
0x81, 0x9d, 0xcc, 0x4b, 0x54, 0x42, 0xbf, 0xce, 0xe9, 0x1f, 0x2c, 0xa0, 0x7f, 0xd9, 0xc9, 0x18,
0xbd, 0x78, 0x49, 0xa6, 0xff, 0x23, 0x07, 0x3b, 0x72, 0x75, 0x10, 0xee, 0x50, 0x4c, 0xbe, 0x9d,
0x92, 0x28, 0x46, 0x8f, 0x60, 0x8d, 0xbf, 0x71, 0x48, 0x47, 0xfe, 0xff, 0x4d, 0xde, 0x2c, 0xb0,
0x80, 0xa0, 0x26, 0x14, 0x46, 0xe2, 0xa5, 0x4a, 0xb8, 0xad, 0x74, 0xf4, 0x83, 0x9b, 0x3d, 0x6c,
0xe1, 0x14, 0xc7, 0x32, 0x4c, 0x3c, 0xba, 0x38, 0x22, 0xc2, 0x7c, 0xa5, 0x2f, 0xce, 0x30, 0x75,
0x51, 0xe0, 0xb2, 0xab, 0xb4, 0xf4, 0xdf, 0x16, 0xe0, 0xd6, 0xdc, 0x54, 0xa3, 0x80, 0xfa, 0x11,
0x41, 0x5f, 0x82, 0x36, 0xb2, 0x1d, 0xa2, 0x3c, 0x14, 0x26, 0x99, 0xf1, 0x93, 0xa5, 0x6e, 0x43,
0xb8, 0x3a, 0xca, 0xb4, 0x23, 0x74, 0x09, 0x3b, 0xc9, 0xc5, 0x3f, 0xc3, 0x2e, 0xbc, 0x72, 0xb8,
0x80, 0x7d, 0xbe, 0x62, 0xc2, 0xdb, 0x09, 0x99, 0x6a, 0xe3, 0x29, 0x68, 0x1e, 0x1d, 0xd3, 0x0c,
0xff, 0xca, 0xdb, 0xf1, 0x57, 0x19, 0x91, 0xca, 0xfd, 0x15, 0x6c, 0x79, 0xf6, 0x25, 0xf1, 0x32,
0xe4, 0xab, 0x6f, 0x47, 0xae, 0x71, 0xa6, 0xb9, 0x91, 0xcf, 0x3d, 0xd0, 0x46, 0xb5, 0xb5, 0xb7,
0x1c, 0x39, 0x23, 0x52, 0xb9, 0x2d, 0xd8, 0x19, 0x4d, 0x3d, 0xcf, 0x9a, 0x33, 0xc0, 0x9f, 0x16,
0x16, 0xc7, 0x75, 0x90, 0x61, 0xc3, 0x88, 0x51, 0x65, 0x65, 0xc8, 0x85, 0xdd, 0xc8, 0x1e, 0x11,
0x2b, 0xe2, 0x55, 0x93, 0x6a, 0x42, 0x24, 0xe8, 0xc3, 0x05, 0x26, 0x5e, 0x55, 0x71, 0xe1, 0x9d,
0xe8, 0x55, 0x75, 0x98, 0x0f, 0x77, 0x44, 0x2e, 0xcc, 0x8a, 0x36, 0xd5, 0x5e, 0xe1, 0x46, 0xfb,
0xcd, 0xdc, 0x89, 0x89, 0x6f, 0xbb, 0x59, 0x81, 0x62, 0x6f, 0x04, 0xb7, 0x94, 0x5d, 0x4d, 0xb1,
0x54, 0xe2, 0x96, 0x8e, 0x6e, 0xba, 0xb3, 0xa9, 0x2b, 0xd7, 0x79, 0xc5, 0x59, 0x64, 0xc2, 0x66,
0x66, 0x87, 0xe3, 0xcf, 0x32, 0x8b, 0x73, 0x5c, 0xdd, 0xda, 0x70, 0x59, 0xdd, 0xd4, 0x58, 0x79,
0x43, 0xc2, 0x90, 0x86, 0xbc, 0x48, 0x53, 0xca, 0x9b, 0x30, 0x70, 0xea, 0x7d, 0xfe, 0x6c, 0x8f,
0x45, 0x07, 0x7d, 0x02, 0x7b, 0x4d, 0x3b, 0x4e, 0xdd, 0x2c, 0x76, 0x84, 0x28, 0xd9, 0xfd, 0x7a,
0x50, 0x08, 0xc5, 0x67, 0xb2, 0x13, 0x2c, 0x0a, 0xe7, 0xab, 0x36, 0x51, 0x9c, 0x92, 0xe8, 0xdf,
0xc2, 0x9d, 0x57, 0x9a, 0x93, 0x3b, 0x10, 0x86, 0x62, 0x28, 0xbf, 0x13, 0x83, 0x1f, 0x2f, 0x67,
0x50, 0x80, 0xf1, 0x8c, 0xe6, 0x43, 0x02, 0xa0, 0x3c, 0x27, 0x95, 0x60, 0x43, 0x3e, 0xa3, 0x68,
0xef, 0xb0, 0x5b, 0xe6, 0x17, 0x06, 0x7e, 0x62, 0x9d, 0x77, 0x3b, 0xed, 0xcf, 0x8d, 0xce, 0x13,
0x2d, 0x87, 0xca, 0x50, 0x48, 0x5b, 0x79, 0xd6, 0x32, 0x7b, 0xfd, 0x7e, 0xbb, 0xd9, 0x31, 0xb4,
0x15, 0x04, 0xb0, 0x2e, 0x35, 0xab, 0xa8, 0x0a, 0x25, 0x0e, 0x95, 0x82, 0xb5, 0xa3, 0xef, 0x73,
0x50, 0xe1, 0x63, 0x68, 0x24, 0xff, 0x02, 0xa1, 0x3f, 0xe5, 0x60, 0xfb, 0x15, 0xb3, 0x45, 0x3f,
0x5f, 0x54, 0x1e, 0xbd, 0x36, 0x20, 0x7b, 0x8f, 0xde, 0x06, 0x2a, 0x3c, 0xa1, 0x7f, 0xf0, 0xdd,
0x5f, 0xfe, 0xfe, 0xbb, 0xfc, 0x7d, 0x7d, 0x6f, 0xfe, 0x8f, 0xab, 0xe8, 0x91, 0x5c, 0xdb, 0xe4,
0x51, 0xee, 0xc3, 0xe6, 0x77, 0x39, 0x78, 0xdf, 0xa1, 0x93, 0x37, 0x1b, 0x6a, 0x6e, 0x67, 0xe7,
0x6a, 0x86, 0x34, 0xa6, 0x66, 0xee, 0x69, 0x4b, 0xa2, 0xc6, 0x94, 0x15, 0x08, 0x75, 0x1a, 0x8e,
0x0f, 0xc7, 0xc4, 0xe7, 0xff, 0xf7, 0x1c, 0x0a, 0x95, 0x1d, 0xb8, 0xd1, 0x6b, 0xfe, 0x71, 0xfa,
0x54, 0x08, 0xfe, 0x95, 0xcb, 0x5d, 0xae, 0x73, 0xc8, 0xc3, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff,
0xb8, 0x10, 0xf5, 0x85, 0x78, 0x1b, 0x00, 0x00,
}