Fresh dep ensure

This commit is contained in:
Mike Cronce
2018-11-26 13:23:56 -05:00
parent 93cb8a04d7
commit 407478ab9a
9016 changed files with 551394 additions and 279685 deletions

View File

@ -6,6 +6,7 @@ package vision // import "google.golang.org/genproto/googleapis/cloud/vision/v1"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@ -34,7 +35,7 @@ func (m *Vertex) Reset() { *m = Vertex{} }
func (m *Vertex) String() string { return proto.CompactTextString(m) }
func (*Vertex) ProtoMessage() {}
func (*Vertex) Descriptor() ([]byte, []int) {
return fileDescriptor_geometry_0f6b64e4b94968be, []int{0}
return fileDescriptor_geometry_8f9c0a1bb9d6bc02, []int{0}
}
func (m *Vertex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Vertex.Unmarshal(m, b)
@ -85,7 +86,7 @@ func (m *NormalizedVertex) Reset() { *m = NormalizedVertex{} }
func (m *NormalizedVertex) String() string { return proto.CompactTextString(m) }
func (*NormalizedVertex) ProtoMessage() {}
func (*NormalizedVertex) Descriptor() ([]byte, []int) {
return fileDescriptor_geometry_0f6b64e4b94968be, []int{1}
return fileDescriptor_geometry_8f9c0a1bb9d6bc02, []int{1}
}
func (m *NormalizedVertex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NormalizedVertex.Unmarshal(m, b)
@ -134,7 +135,7 @@ func (m *BoundingPoly) Reset() { *m = BoundingPoly{} }
func (m *BoundingPoly) String() string { return proto.CompactTextString(m) }
func (*BoundingPoly) ProtoMessage() {}
func (*BoundingPoly) Descriptor() ([]byte, []int) {
return fileDescriptor_geometry_0f6b64e4b94968be, []int{2}
return fileDescriptor_geometry_8f9c0a1bb9d6bc02, []int{2}
}
func (m *BoundingPoly) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BoundingPoly.Unmarshal(m, b)
@ -187,7 +188,7 @@ func (m *Position) Reset() { *m = Position{} }
func (m *Position) String() string { return proto.CompactTextString(m) }
func (*Position) ProtoMessage() {}
func (*Position) Descriptor() ([]byte, []int) {
return fileDescriptor_geometry_0f6b64e4b94968be, []int{3}
return fileDescriptor_geometry_8f9c0a1bb9d6bc02, []int{3}
}
func (m *Position) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Position.Unmarshal(m, b)
@ -236,27 +237,28 @@ func init() {
}
func init() {
proto.RegisterFile("google/cloud/vision/v1/geometry.proto", fileDescriptor_geometry_0f6b64e4b94968be)
proto.RegisterFile("google/cloud/vision/v1/geometry.proto", fileDescriptor_geometry_8f9c0a1bb9d6bc02)
}
var fileDescriptor_geometry_0f6b64e4b94968be = []byte{
// 285 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xc3, 0x30,
0x14, 0xc7, 0x49, 0xa7, 0x63, 0xc4, 0x09, 0x52, 0x41, 0x8a, 0x07, 0x19, 0x45, 0xa1, 0xa7, 0x84,
0xa9, 0x27, 0xf5, 0x54, 0x0f, 0xbb, 0x8d, 0xd2, 0xc3, 0x40, 0x2f, 0x52, 0xdb, 0x10, 0x02, 0x69,
0xde, 0x48, 0xd3, 0xb2, 0xf6, 0xe3, 0x08, 0x7e, 0x47, 0x8f, 0xd2, 0x64, 0x14, 0x56, 0x9c, 0xb7,
0xfe, 0x9b, 0x5f, 0x7e, 0xef, 0xe5, 0x3d, 0x7c, 0xc7, 0x01, 0xb8, 0x64, 0x34, 0x97, 0x50, 0x17,
0xb4, 0x11, 0x95, 0x00, 0x45, 0x9b, 0x25, 0xe5, 0x0c, 0x4a, 0x66, 0x74, 0x4b, 0xb6, 0x1a, 0x0c,
0xf8, 0x57, 0x0e, 0x23, 0x16, 0x23, 0x0e, 0x23, 0xcd, 0x32, 0xbc, 0xc5, 0xd3, 0x0d, 0xd3, 0x86,
0xed, 0xfc, 0x39, 0x46, 0xbb, 0x00, 0x2d, 0x50, 0x74, 0x9a, 0x22, 0x9b, 0xda, 0xc0, 0x73, 0xa9,
0x0d, 0x09, 0xbe, 0x58, 0x83, 0x2e, 0x33, 0x29, 0x3a, 0x56, 0x8c, 0x79, 0xef, 0x80, 0xf7, 0x7a,
0xfe, 0x1b, 0xe1, 0x79, 0x0c, 0xb5, 0x2a, 0x84, 0xe2, 0x09, 0xc8, 0xd6, 0x7f, 0xc2, 0xb3, 0x86,
0x69, 0x23, 0x72, 0x56, 0x05, 0x68, 0x31, 0x89, 0xce, 0xee, 0x6f, 0xc8, 0xdf, 0x1d, 0x11, 0xa7,
0x4f, 0x07, 0xde, 0x7f, 0xc3, 0x97, 0x6a, 0x28, 0xfe, 0x31, 0x68, 0x3c, 0xab, 0x89, 0x8e, 0x69,
0xc6, 0xfd, 0xa6, 0xbe, 0x3a, 0xf8, 0xd3, 0x3b, 0xc2, 0x47, 0x3c, 0x4b, 0xa0, 0x12, 0x46, 0x80,
0xfa, 0xef, 0x3d, 0x7d, 0xea, 0x82, 0x89, 0x4b, 0x5d, 0x5c, 0xe3, 0xeb, 0x1c, 0xca, 0x23, 0x85,
0xe3, 0xf3, 0xd5, 0x7e, 0xf2, 0x49, 0x3f, 0xf8, 0x04, 0xbd, 0xbf, 0xec, 0x41, 0x0e, 0x32, 0x53,
0x9c, 0x80, 0xe6, 0x94, 0x33, 0x65, 0xd7, 0x42, 0xdd, 0x51, 0xb6, 0x15, 0xd5, 0x78, 0x81, 0xcf,
0xee, 0xeb, 0x07, 0xa1, 0x2f, 0xef, 0x64, 0xf5, 0xba, 0x59, 0x7f, 0x4e, 0xed, 0x95, 0x87, 0xdf,
0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x3c, 0x20, 0x46, 0xf2, 0x01, 0x00, 0x00,
var fileDescriptor_geometry_8f9c0a1bb9d6bc02 = []byte{
// 300 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4b, 0xc3, 0x30,
0x14, 0xc6, 0x49, 0xa7, 0x63, 0xc4, 0x09, 0x52, 0x41, 0xca, 0x10, 0x19, 0x43, 0xa1, 0xa7, 0x84,
0xa9, 0x27, 0xf5, 0x54, 0x0f, 0xbb, 0x8d, 0xd2, 0xc3, 0x40, 0x2f, 0x12, 0xdb, 0x10, 0x02, 0x6d,
0x5e, 0x49, 0xd3, 0xb2, 0xf6, 0xcf, 0x11, 0xfc, 0x1f, 0x3d, 0x4a, 0x9b, 0x52, 0x58, 0x71, 0xde,
0xf2, 0x25, 0xbf, 0xf7, 0xbd, 0x97, 0xef, 0xe1, 0x3b, 0x01, 0x20, 0x52, 0x4e, 0xe3, 0x14, 0xca,
0x84, 0x56, 0xb2, 0x90, 0xa0, 0x68, 0xb5, 0xa6, 0x82, 0x43, 0xc6, 0x8d, 0xae, 0x49, 0xae, 0xc1,
0x80, 0x7b, 0x65, 0x31, 0xd2, 0x61, 0xc4, 0x62, 0xa4, 0x5a, 0x2f, 0xae, 0xfb, 0x72, 0x96, 0x4b,
0xca, 0x94, 0x02, 0xc3, 0x8c, 0x04, 0x55, 0xd8, 0xaa, 0xd5, 0x2d, 0x9e, 0xee, 0xb8, 0x36, 0x7c,
0xef, 0xce, 0x31, 0xda, 0x7b, 0x68, 0x89, 0xfc, 0xd3, 0x08, 0x75, 0xaa, 0xf6, 0x1c, 0xab, 0xea,
0x15, 0xc1, 0x17, 0x5b, 0xd0, 0x19, 0x4b, 0x65, 0xc3, 0x93, 0x31, 0xef, 0x1c, 0xf0, 0x4e, 0xcb,
0x7f, 0x23, 0x3c, 0x0f, 0xa0, 0x54, 0x89, 0x54, 0x22, 0x84, 0xb4, 0x76, 0x9f, 0xf0, 0xac, 0xe2,
0xda, 0xc8, 0x98, 0x17, 0x1e, 0x5a, 0x4e, 0xfc, 0xb3, 0xfb, 0x1b, 0xf2, 0xf7, 0xbc, 0xc4, 0xda,
0x47, 0x03, 0xef, 0xbe, 0xe1, 0x4b, 0x35, 0x34, 0xff, 0x18, 0x6c, 0x9c, 0xce, 0xc6, 0x3f, 0x66,
0x33, 0x9e, 0x37, 0x72, 0xd5, 0xc1, 0x4d, 0xeb, 0xb1, 0x7a, 0xc4, 0xb3, 0x10, 0x0a, 0xd9, 0x06,
0xf2, 0xdf, 0x7f, 0x5a, 0xd5, 0x78, 0x13, 0xab, 0x9a, 0xa0, 0xc4, 0x8b, 0x18, 0xb2, 0x23, 0x8d,
0x83, 0xf3, 0x4d, 0xbf, 0x97, 0xb0, 0x0d, 0x38, 0x44, 0xef, 0x2f, 0x3d, 0x28, 0x20, 0x65, 0x4a,
0x10, 0xd0, 0x82, 0x0a, 0xae, 0xba, 0xf8, 0xa9, 0x7d, 0x62, 0xb9, 0x2c, 0xc6, 0xeb, 0x7d, 0xb6,
0xa7, 0x1f, 0x84, 0xbe, 0x9c, 0x93, 0xcd, 0xeb, 0x6e, 0xfb, 0x39, 0xed, 0x4a, 0x1e, 0x7e, 0x03,
0x00, 0x00, 0xff, 0xff, 0x5b, 0xbb, 0x2b, 0x5f, 0x10, 0x02, 0x00, 0x00,
}

View File

@ -12,6 +12,7 @@ import longrunning "google.golang.org/genproto/googleapis/longrunning"
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 _ "google.golang.org/genproto/protobuf/field_mask"
import (
context "golang.org/x/net/context"
@ -69,7 +70,7 @@ func (x Likelihood) String() string {
return proto.EnumName(Likelihood_name, int32(x))
}
func (Likelihood) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{0}
}
// Type of Google Cloud Vision API feature to be extracted.
@ -103,6 +104,10 @@ const (
Feature_CROP_HINTS Feature_Type = 9
// Run web detection.
Feature_WEB_DETECTION Feature_Type = 10
// Run Product Search.
Feature_PRODUCT_SEARCH Feature_Type = 12
// Run localizer for object detection.
Feature_OBJECT_LOCALIZATION Feature_Type = 19
)
var Feature_Type_name = map[int32]string{
@ -117,6 +122,8 @@ var Feature_Type_name = map[int32]string{
7: "IMAGE_PROPERTIES",
9: "CROP_HINTS",
10: "WEB_DETECTION",
12: "PRODUCT_SEARCH",
19: "OBJECT_LOCALIZATION",
}
var Feature_Type_value = map[string]int32{
"TYPE_UNSPECIFIED": 0,
@ -130,13 +137,15 @@ var Feature_Type_value = map[string]int32{
"IMAGE_PROPERTIES": 7,
"CROP_HINTS": 9,
"WEB_DETECTION": 10,
"PRODUCT_SEARCH": 12,
"OBJECT_LOCALIZATION": 19,
}
func (x Feature_Type) String() string {
return proto.EnumName(Feature_Type_name, int32(x))
}
func (Feature_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{0, 0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{0, 0}
}
// Face landmark (feature) type.
@ -297,7 +306,7 @@ 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_f9154282c1c30734, []int{3, 0, 0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{3, 0, 0}
}
// Batch operation states.
@ -335,7 +344,7 @@ func (x OperationMetadata_State) String() string {
return proto.EnumName(OperationMetadata_State_name, int32(x))
}
func (OperationMetadata_State) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{31, 0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{32, 0}
}
// The type of Google Cloud Vision API detection to perform, and the maximum
@ -360,7 +369,7 @@ 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_f9154282c1c30734, []int{0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{0}
}
func (m *Feature) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Feature.Unmarshal(m, b)
@ -437,7 +446,7 @@ 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_f9154282c1c30734, []int{1}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{1}
}
func (m *ImageSource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageSource.Unmarshal(m, b)
@ -490,7 +499,7 @@ 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_f9154282c1c30734, []int{2}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{2}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Image.Unmarshal(m, b)
@ -581,7 +590,7 @@ 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_f9154282c1c30734, []int{3}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{3}
}
func (m *FaceAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FaceAnnotation.Unmarshal(m, b)
@ -721,7 +730,7 @@ 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_f9154282c1c30734, []int{3, 0}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{3, 0}
}
func (m *FaceAnnotation_Landmark) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FaceAnnotation_Landmark.Unmarshal(m, b)
@ -768,7 +777,7 @@ 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_f9154282c1c30734, []int{4}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{4}
}
func (m *LocationInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocationInfo.Unmarshal(m, b)
@ -812,7 +821,7 @@ 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_f9154282c1c30734, []int{5}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{5}
}
func (m *Property) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Property.Unmarshal(m, b)
@ -871,7 +880,7 @@ type EntityAnnotation struct {
// 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"`
Confidence float32 `protobuf:"fixed32,5,opt,name=confidence,proto3" json:"confidence,omitempty"` // Deprecated: Do not use.
// 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
@ -899,7 +908,7 @@ 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_f9154282c1c30734, []int{6}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{6}
}
func (m *EntityAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EntityAnnotation.Unmarshal(m, b)
@ -947,6 +956,7 @@ func (m *EntityAnnotation) GetScore() float32 {
return 0
}
// Deprecated: Do not use.
func (m *EntityAnnotation) GetConfidence() float32 {
if m != nil {
return m.Confidence
@ -982,6 +992,84 @@ func (m *EntityAnnotation) GetProperties() []*Property {
return nil
}
// Set of detected objects with bounding boxes.
type LocalizedObjectAnnotation struct {
// Object ID that should align with EntityAnnotation mid.
Mid string `protobuf:"bytes,1,opt,name=mid,proto3" json:"mid,omitempty"`
// The BCP-47 language code, such as "en-US" or "sr-Latn". For more
// information, see
// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
LanguageCode string `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
// Object name, expressed in its `language_code` language.
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
// Score of the result. Range [0, 1].
Score float32 `protobuf:"fixed32,4,opt,name=score,proto3" json:"score,omitempty"`
// Image region to which this object belongs. This must be populated.
BoundingPoly *BoundingPoly `protobuf:"bytes,5,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LocalizedObjectAnnotation) Reset() { *m = LocalizedObjectAnnotation{} }
func (m *LocalizedObjectAnnotation) String() string { return proto.CompactTextString(m) }
func (*LocalizedObjectAnnotation) ProtoMessage() {}
func (*LocalizedObjectAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{7}
}
func (m *LocalizedObjectAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocalizedObjectAnnotation.Unmarshal(m, b)
}
func (m *LocalizedObjectAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LocalizedObjectAnnotation.Marshal(b, m, deterministic)
}
func (dst *LocalizedObjectAnnotation) XXX_Merge(src proto.Message) {
xxx_messageInfo_LocalizedObjectAnnotation.Merge(dst, src)
}
func (m *LocalizedObjectAnnotation) XXX_Size() int {
return xxx_messageInfo_LocalizedObjectAnnotation.Size(m)
}
func (m *LocalizedObjectAnnotation) XXX_DiscardUnknown() {
xxx_messageInfo_LocalizedObjectAnnotation.DiscardUnknown(m)
}
var xxx_messageInfo_LocalizedObjectAnnotation proto.InternalMessageInfo
func (m *LocalizedObjectAnnotation) GetMid() string {
if m != nil {
return m.Mid
}
return ""
}
func (m *LocalizedObjectAnnotation) GetLanguageCode() string {
if m != nil {
return m.LanguageCode
}
return ""
}
func (m *LocalizedObjectAnnotation) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *LocalizedObjectAnnotation) GetScore() float32 {
if m != nil {
return m.Score
}
return 0
}
func (m *LocalizedObjectAnnotation) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
// Set of features pertaining to the image, computed by computer vision
// methods over safe-search verticals (for example, adult, spoof, medical,
// violence).
@ -1012,7 +1100,7 @@ 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_f9154282c1c30734, []int{7}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{8}
}
func (m *SafeSearchAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SafeSearchAnnotation.Unmarshal(m, b)
@ -1082,7 +1170,7 @@ 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_f9154282c1c30734, []int{8}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{9}
}
func (m *LatLongRect) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LatLongRect.Unmarshal(m, b)
@ -1135,7 +1223,7 @@ 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_f9154282c1c30734, []int{9}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{10}
}
func (m *ColorInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ColorInfo.Unmarshal(m, b)
@ -1189,7 +1277,7 @@ func (m *DominantColorsAnnotation) Reset() { *m = DominantColorsAnnotati
func (m *DominantColorsAnnotation) String() string { return proto.CompactTextString(m) }
func (*DominantColorsAnnotation) ProtoMessage() {}
func (*DominantColorsAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{10}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{11}
}
func (m *DominantColorsAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DominantColorsAnnotation.Unmarshal(m, b)
@ -1229,7 +1317,7 @@ 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_f9154282c1c30734, []int{11}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{12}
}
func (m *ImageProperties) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageProperties.Unmarshal(m, b)
@ -1275,7 +1363,7 @@ 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_f9154282c1c30734, []int{12}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{13}
}
func (m *CropHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHint.Unmarshal(m, b)
@ -1329,7 +1417,7 @@ 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_f9154282c1c30734, []int{13}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{14}
}
func (m *CropHintsAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHintsAnnotation.Unmarshal(m, b)
@ -1374,7 +1462,7 @@ 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_f9154282c1c30734, []int{14}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{15}
}
func (m *CropHintsParams) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CropHintsParams.Unmarshal(m, b)
@ -1414,7 +1502,7 @@ 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_f9154282c1c30734, []int{15}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{16}
}
func (m *WebDetectionParams) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetectionParams.Unmarshal(m, b)
@ -1456,6 +1544,8 @@ type ImageContext struct {
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 product search.
ProductSearchParams *ProductSearchParams `protobuf:"bytes,5,opt,name=product_search_params,json=productSearchParams,proto3" json:"product_search_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:"-"`
@ -1467,7 +1557,7 @@ 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_f9154282c1c30734, []int{16}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{17}
}
func (m *ImageContext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageContext.Unmarshal(m, b)
@ -1508,6 +1598,13 @@ func (m *ImageContext) GetCropHintsParams() *CropHintsParams {
return nil
}
func (m *ImageContext) GetProductSearchParams() *ProductSearchParams {
if m != nil {
return m.ProductSearchParams
}
return nil
}
func (m *ImageContext) GetWebDetectionParams() *WebDetectionParams {
if m != nil {
return m.WebDetectionParams
@ -1533,7 +1630,7 @@ 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_f9154282c1c30734, []int{17}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{18}
}
func (m *AnnotateImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnnotateImageRequest.Unmarshal(m, b)
@ -1591,7 +1688,7 @@ func (m *ImageAnnotationContext) Reset() { *m = ImageAnnotationContext{}
func (m *ImageAnnotationContext) String() string { return proto.CompactTextString(m) }
func (*ImageAnnotationContext) ProtoMessage() {}
func (*ImageAnnotationContext) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{18}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{19}
}
func (m *ImageAnnotationContext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageAnnotationContext.Unmarshal(m, b)
@ -1635,6 +1732,9 @@ type AnnotateImageResponse struct {
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, localized object detection has completed successfully.
// This will be sorted descending by confidence score.
LocalizedObjectAnnotations []*LocalizedObjectAnnotation `protobuf:"bytes,22,rep,name=localized_object_annotations,json=localizedObjectAnnotations,proto3" json:"localized_object_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
@ -1650,6 +1750,8 @@ type AnnotateImageResponse struct {
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 present, product search has completed successfully.
ProductSearchResults *ProductSearchResults `protobuf:"bytes,14,opt,name=product_search_results,json=productSearchResults,proto3" json:"product_search_results,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.
@ -1666,7 +1768,7 @@ 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_f9154282c1c30734, []int{19}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{20}
}
func (m *AnnotateImageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnnotateImageResponse.Unmarshal(m, b)
@ -1714,6 +1816,13 @@ func (m *AnnotateImageResponse) GetLabelAnnotations() []*EntityAnnotation {
return nil
}
func (m *AnnotateImageResponse) GetLocalizedObjectAnnotations() []*LocalizedObjectAnnotation {
if m != nil {
return m.LocalizedObjectAnnotations
}
return nil
}
func (m *AnnotateImageResponse) GetTextAnnotations() []*EntityAnnotation {
if m != nil {
return m.TextAnnotations
@ -1756,6 +1865,13 @@ func (m *AnnotateImageResponse) GetWebDetection() *WebDetection {
return nil
}
func (m *AnnotateImageResponse) GetProductSearchResults() *ProductSearchResults {
if m != nil {
return m.ProductSearchResults
}
return nil
}
func (m *AnnotateImageResponse) GetError() *status.Status {
if m != nil {
return m.Error
@ -1786,7 +1902,7 @@ func (m *AnnotateFileResponse) Reset() { *m = AnnotateFileResponse{} }
func (m *AnnotateFileResponse) String() string { return proto.CompactTextString(m) }
func (*AnnotateFileResponse) ProtoMessage() {}
func (*AnnotateFileResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{20}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{21}
}
func (m *AnnotateFileResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AnnotateFileResponse.Unmarshal(m, b)
@ -1833,7 +1949,7 @@ func (m *BatchAnnotateImagesRequest) Reset() { *m = BatchAnnotateImagesR
func (m *BatchAnnotateImagesRequest) String() string { return proto.CompactTextString(m) }
func (*BatchAnnotateImagesRequest) ProtoMessage() {}
func (*BatchAnnotateImagesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{21}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{22}
}
func (m *BatchAnnotateImagesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BatchAnnotateImagesRequest.Unmarshal(m, b)
@ -1873,7 +1989,7 @@ func (m *BatchAnnotateImagesResponse) Reset() { *m = BatchAnnotateImages
func (m *BatchAnnotateImagesResponse) String() string { return proto.CompactTextString(m) }
func (*BatchAnnotateImagesResponse) ProtoMessage() {}
func (*BatchAnnotateImagesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{22}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{23}
}
func (m *BatchAnnotateImagesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BatchAnnotateImagesResponse.Unmarshal(m, b)
@ -1919,7 +2035,7 @@ func (m *AsyncAnnotateFileRequest) Reset() { *m = AsyncAnnotateFileReque
func (m *AsyncAnnotateFileRequest) String() string { return proto.CompactTextString(m) }
func (*AsyncAnnotateFileRequest) ProtoMessage() {}
func (*AsyncAnnotateFileRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{23}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{24}
}
func (m *AsyncAnnotateFileRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AsyncAnnotateFileRequest.Unmarshal(m, b)
@ -1980,7 +2096,7 @@ func (m *AsyncAnnotateFileResponse) Reset() { *m = AsyncAnnotateFileResp
func (m *AsyncAnnotateFileResponse) String() string { return proto.CompactTextString(m) }
func (*AsyncAnnotateFileResponse) ProtoMessage() {}
func (*AsyncAnnotateFileResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{24}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{25}
}
func (m *AsyncAnnotateFileResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AsyncAnnotateFileResponse.Unmarshal(m, b)
@ -2021,7 +2137,7 @@ func (m *AsyncBatchAnnotateFilesRequest) Reset() { *m = AsyncBatchAnnota
func (m *AsyncBatchAnnotateFilesRequest) String() string { return proto.CompactTextString(m) }
func (*AsyncBatchAnnotateFilesRequest) ProtoMessage() {}
func (*AsyncBatchAnnotateFilesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{25}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{26}
}
func (m *AsyncBatchAnnotateFilesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AsyncBatchAnnotateFilesRequest.Unmarshal(m, b)
@ -2062,7 +2178,7 @@ func (m *AsyncBatchAnnotateFilesResponse) Reset() { *m = AsyncBatchAnnot
func (m *AsyncBatchAnnotateFilesResponse) String() string { return proto.CompactTextString(m) }
func (*AsyncBatchAnnotateFilesResponse) ProtoMessage() {}
func (*AsyncBatchAnnotateFilesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{26}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{27}
}
func (m *AsyncBatchAnnotateFilesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AsyncBatchAnnotateFilesResponse.Unmarshal(m, b)
@ -2105,7 +2221,7 @@ func (m *InputConfig) Reset() { *m = InputConfig{} }
func (m *InputConfig) String() string { return proto.CompactTextString(m) }
func (*InputConfig) ProtoMessage() {}
func (*InputConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{27}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{28}
}
func (m *InputConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InputConfig.Unmarshal(m, b)
@ -2164,7 +2280,7 @@ func (m *OutputConfig) Reset() { *m = OutputConfig{} }
func (m *OutputConfig) String() string { return proto.CompactTextString(m) }
func (*OutputConfig) ProtoMessage() {}
func (*OutputConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{28}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{29}
}
func (m *OutputConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OutputConfig.Unmarshal(m, b)
@ -2212,7 +2328,7 @@ func (m *GcsSource) Reset() { *m = GcsSource{} }
func (m *GcsSource) String() string { return proto.CompactTextString(m) }
func (*GcsSource) ProtoMessage() {}
func (*GcsSource) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{29}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{30}
}
func (m *GcsSource) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GcsSource.Unmarshal(m, b)
@ -2266,7 +2382,7 @@ func (m *GcsDestination) Reset() { *m = GcsDestination{} }
func (m *GcsDestination) String() string { return proto.CompactTextString(m) }
func (*GcsDestination) ProtoMessage() {}
func (*GcsDestination) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{30}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{31}
}
func (m *GcsDestination) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GcsDestination.Unmarshal(m, b)
@ -2310,7 +2426,7 @@ func (m *OperationMetadata) Reset() { *m = OperationMetadata{} }
func (m *OperationMetadata) String() string { return proto.CompactTextString(m) }
func (*OperationMetadata) ProtoMessage() {}
func (*OperationMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_image_annotator_f9154282c1c30734, []int{31}
return fileDescriptor_image_annotator_52d0bce80b1d0b0a, []int{32}
}
func (m *OperationMetadata) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperationMetadata.Unmarshal(m, b)
@ -2360,6 +2476,7 @@ func init() {
proto.RegisterType((*LocationInfo)(nil), "google.cloud.vision.v1.LocationInfo")
proto.RegisterType((*Property)(nil), "google.cloud.vision.v1.Property")
proto.RegisterType((*EntityAnnotation)(nil), "google.cloud.vision.v1.EntityAnnotation")
proto.RegisterType((*LocalizedObjectAnnotation)(nil), "google.cloud.vision.v1.LocalizedObjectAnnotation")
proto.RegisterType((*SafeSearchAnnotation)(nil), "google.cloud.vision.v1.SafeSearchAnnotation")
proto.RegisterType((*LatLongRect)(nil), "google.cloud.vision.v1.LatLongRect")
proto.RegisterType((*ColorInfo)(nil), "google.cloud.vision.v1.ColorInfo")
@ -2511,190 +2628,202 @@ var _ImageAnnotator_serviceDesc = grpc.ServiceDesc{
}
func init() {
proto.RegisterFile("google/cloud/vision/v1/image_annotator.proto", fileDescriptor_image_annotator_f9154282c1c30734)
proto.RegisterFile("google/cloud/vision/v1/image_annotator.proto", fileDescriptor_image_annotator_52d0bce80b1d0b0a)
}
var fileDescriptor_image_annotator_f9154282c1c30734 = []byte{
// 2892 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0xe3, 0x48,
0x15, 0x5f, 0x3b, 0x4e, 0x62, 0x3f, 0x3b, 0x89, 0xd2, 0xf9, 0x18, 0x4f, 0xe6, 0x2b, 0xa3, 0x65,
0xd9, 0xd4, 0x30, 0x24, 0x4c, 0x76, 0x99, 0x5a, 0x66, 0xa6, 0x00, 0xc7, 0x51, 0x12, 0xd7, 0x38,
0xb6, 0xb7, 0xed, 0xcc, 0x6c, 0x60, 0x0b, 0x95, 0x22, 0xb7, 0x35, 0xda, 0x95, 0x25, 0x21, 0xc9,
0x33, 0xc9, 0x52, 0xc5, 0x81, 0x2a, 0xce, 0x1c, 0x38, 0x71, 0xe1, 0xc0, 0x01, 0x0e, 0x9c, 0xa8,
0x82, 0x3b, 0x57, 0x0e, 0x1c, 0xa8, 0xfd, 0x17, 0xf8, 0x0f, 0xa8, 0xa2, 0x38, 0x52, 0xfd, 0x21,
0xb9, 0xe5, 0x44, 0x99, 0x64, 0xd9, 0x03, 0xa7, 0xb8, 0xdf, 0x7b, 0xbf, 0xdf, 0xeb, 0x7e, 0xdd,
0xaf, 0xfb, 0x75, 0x2b, 0xf0, 0xd0, 0xf2, 0x3c, 0xcb, 0x21, 0x5b, 0xa6, 0xe3, 0x8d, 0xfa, 0x5b,
0xaf, 0xed, 0xd0, 0xf6, 0xdc, 0xad, 0xd7, 0x8f, 0xb6, 0xec, 0xa1, 0x61, 0x11, 0xdd, 0x70, 0x5d,
0x2f, 0x32, 0x22, 0x2f, 0xd8, 0xf4, 0x03, 0x2f, 0xf2, 0xd0, 0x2a, 0xb7, 0xde, 0x64, 0xd6, 0x9b,
0xdc, 0x7a, 0xf3, 0xf5, 0xa3, 0xb5, 0xdb, 0x82, 0xc5, 0xf0, 0xed, 0x2d, 0x81, 0xb1, 0x3d, 0x37,
0xe4, 0xa8, 0xb5, 0xf7, 0x32, 0x7c, 0x58, 0xc4, 0x1b, 0x92, 0x28, 0x38, 0x13, 0x66, 0x59, 0x5d,
0x89, 0xc8, 0x69, 0xa4, 0x8f, 0x59, 0x85, 0xf5, 0x83, 0x0c, 0xeb, 0x37, 0xe4, 0x44, 0xef, 0x93,
0x88, 0x98, 0x92, 0xed, 0xbb, 0xc2, 0xd6, 0xf1, 0x5c, 0x2b, 0x18, 0xb9, 0xae, 0xed, 0x5a, 0x5b,
0x9e, 0x4f, 0x82, 0x54, 0x2f, 0xef, 0x09, 0x23, 0xd6, 0x3a, 0x19, 0x0d, 0xb6, 0x22, 0x7b, 0x48,
0xc2, 0xc8, 0x18, 0xfa, 0xc2, 0xe0, 0x86, 0x30, 0x08, 0x7c, 0x73, 0x2b, 0x8c, 0x8c, 0x68, 0x14,
0x4e, 0x28, 0xa2, 0x33, 0x9f, 0x6c, 0x99, 0x9e, 0x13, 0x87, 0x6b, 0xad, 0x2a, 0x2b, 0x1c, 0x23,
0x72, 0x5c, 0x8b, 0x6b, 0xd4, 0x7f, 0xe5, 0x61, 0x76, 0x8f, 0x18, 0xd1, 0x28, 0x20, 0xe8, 0x23,
0x28, 0x50, 0x83, 0x6a, 0x6e, 0x3d, 0xb7, 0x31, 0xbf, 0xfd, 0x8d, 0xcd, 0x8b, 0x63, 0xbc, 0x29,
0xcc, 0x37, 0x7b, 0x67, 0x3e, 0xc1, 0x0c, 0x81, 0xee, 0x41, 0x79, 0x68, 0x9c, 0xea, 0x01, 0x09,
0x47, 0x4e, 0x14, 0x56, 0xf3, 0xeb, 0xb9, 0x8d, 0x69, 0x0c, 0x43, 0xe3, 0x14, 0x73, 0x09, 0x5a,
0x86, 0xe9, 0xa1, 0xd7, 0x27, 0x4e, 0x75, 0x6a, 0x3d, 0xb7, 0x51, 0xc2, 0xbc, 0xa1, 0xfe, 0x3b,
0x07, 0x05, 0xca, 0x82, 0x96, 0x41, 0xe9, 0x1d, 0x77, 0x34, 0xfd, 0xa8, 0xd5, 0xed, 0x68, 0xf5,
0xc6, 0x5e, 0x43, 0xdb, 0x55, 0xde, 0x41, 0x08, 0xe6, 0xf7, 0x6a, 0x75, 0x4d, 0xdf, 0xd5, 0x7a,
0x5a, 0xbd, 0xd7, 0x68, 0xb7, 0x94, 0x1c, 0x5a, 0x05, 0xd4, 0xac, 0xb5, 0x76, 0x0f, 0x6b, 0xf8,
0xb9, 0x24, 0xcf, 0x53, 0xdb, 0x66, 0x7b, 0xbf, 0x2d, 0xc9, 0xa6, 0xd0, 0x12, 0x2c, 0x34, 0x6b,
0x3b, 0x5a, 0x53, 0x12, 0x16, 0xa8, 0x61, 0x4f, 0xfb, 0xa4, 0x27, 0xc9, 0xa6, 0xd1, 0x2d, 0xb8,
0xb1, 0xdb, 0xae, 0x1f, 0x1d, 0x6a, 0xad, 0x9e, 0x3e, 0xa1, 0x2c, 0xa3, 0x9b, 0xb0, 0xd2, 0xad,
0xed, 0x69, 0x7a, 0x57, 0xab, 0xe1, 0xfa, 0x81, 0xa4, 0x9a, 0xa1, 0xdd, 0x6e, 0x1c, 0xd6, 0xf6,
0x35, 0xbd, 0x83, 0xdb, 0x1d, 0x0d, 0xf7, 0x1a, 0x5a, 0x57, 0x99, 0x45, 0xf3, 0x00, 0x75, 0xdc,
0xee, 0xe8, 0x07, 0x8d, 0x56, 0xaf, 0xab, 0x94, 0xd0, 0x22, 0xcc, 0xbd, 0xd4, 0x76, 0x24, 0x20,
0xa8, 0x2d, 0x28, 0x37, 0xe8, 0xba, 0xee, 0x7a, 0xa3, 0xc0, 0x24, 0x48, 0x85, 0x39, 0xcb, 0x0c,
0x75, 0xbe, 0xd4, 0x47, 0x81, 0xcd, 0x66, 0xa0, 0x84, 0xcb, 0x96, 0x19, 0x32, 0xb3, 0xa3, 0xc0,
0x46, 0xb7, 0xa0, 0x34, 0xd6, 0xe7, 0x99, 0xbe, 0x68, 0x0b, 0xa5, 0xfa, 0x13, 0x98, 0x66, 0x86,
0xa8, 0x0a, 0xb3, 0xa6, 0xe7, 0x46, 0xc4, 0x8d, 0x18, 0x47, 0x05, 0xc7, 0x4d, 0xf4, 0x14, 0x66,
0x42, 0xe6, 0x8d, 0x81, 0xcb, 0xdb, 0xef, 0x66, 0x4d, 0xaf, 0xd4, 0x31, 0x2c, 0x20, 0xea, 0x3f,
0x16, 0x60, 0x7e, 0xcf, 0x30, 0x49, 0x2d, 0x59, 0xfc, 0xa8, 0x01, 0x73, 0x27, 0xde, 0xc8, 0xed,
0xdb, 0xae, 0xa5, 0xfb, 0x9e, 0x73, 0xc6, 0xfc, 0x95, 0xb3, 0x57, 0xcd, 0x8e, 0x30, 0xee, 0x78,
0xce, 0x19, 0xae, 0x9c, 0x48, 0x2d, 0xd4, 0x02, 0x65, 0xd0, 0xd7, 0xd3, 0x6c, 0xf9, 0x6b, 0xb0,
0xcd, 0x0f, 0xfa, 0x72, 0x1b, 0x1d, 0x42, 0xc9, 0x31, 0xdc, 0xfe, 0xd0, 0x08, 0x3e, 0x0f, 0xab,
0x53, 0xeb, 0x53, 0x1b, 0xe5, 0xed, 0xad, 0xcc, 0xc5, 0x9c, 0x1a, 0xd5, 0x66, 0x53, 0xe0, 0xf0,
0x98, 0x01, 0xdd, 0x01, 0x08, 0x3c, 0xc7, 0xd1, 0x0d, 0xd7, 0x72, 0x48, 0xb5, 0xb0, 0x9e, 0xdb,
0xc8, 0xe3, 0x12, 0x95, 0xd4, 0xa8, 0x80, 0x4e, 0x8c, 0x6f, 0xb8, 0x42, 0x3b, 0xcd, 0xb4, 0x45,
0xdf, 0x70, 0xb9, 0xf2, 0x0e, 0x40, 0x64, 0x3b, 0x91, 0xd0, 0xce, 0x70, 0x2c, 0x95, 0x70, 0xf5,
0x23, 0x58, 0x4e, 0xb6, 0x08, 0xdd, 0xf4, 0xdc, 0x81, 0xdd, 0x27, 0xae, 0x49, 0xaa, 0xb3, 0xcc,
0x70, 0x29, 0xd1, 0xd5, 0x13, 0x15, 0xfa, 0x2e, 0xac, 0xc6, 0x5d, 0xa3, 0xc1, 0x92, 0x40, 0x45,
0x06, 0x5a, 0x91, 0xb4, 0x12, 0xac, 0x01, 0xf3, 0x9f, 0x79, 0x67, 0xba, 0x63, 0x7f, 0x4e, 0x1c,
0xfb, 0x95, 0xe7, 0xf5, 0xab, 0x25, 0x96, 0xe5, 0x6a, 0x56, 0x60, 0x9a, 0x89, 0x25, 0x9e, 0xfb,
0xcc, 0x3b, 0x1b, 0x37, 0x51, 0x1b, 0x16, 0x43, 0x2f, 0x08, 0xbc, 0x37, 0x32, 0x1b, 0x5c, 0x99,
0x4d, 0xe1, 0x60, 0x89, 0xf0, 0x10, 0x14, 0xc3, 0xb5, 0x48, 0x20, 0xf3, 0x95, 0xaf, 0xcc, 0xb7,
0xc0, 0xb0, 0x12, 0x5d, 0x17, 0x96, 0xc2, 0x51, 0xe0, 0x07, 0x76, 0x48, 0x64, 0xc6, 0xca, 0x95,
0x19, 0x51, 0x0c, 0x97, 0x48, 0x3f, 0x85, 0xea, 0xc8, 0xed, 0x93, 0x40, 0x27, 0xa7, 0xbe, 0x17,
0x92, 0xbe, 0xcc, 0x3c, 0x77, 0x65, 0xe6, 0x55, 0xc6, 0xa1, 0x71, 0x0a, 0x89, 0xfd, 0x63, 0x40,
0x27, 0xce, 0x28, 0x08, 0xd2, 0xbc, 0xf3, 0x57, 0xe6, 0x5d, 0x14, 0xe8, 0x74, 0x14, 0x5e, 0x11,
0xa3, 0xff, 0x86, 0x18, 0xa9, 0xb8, 0x2e, 0x5c, 0x3d, 0x0a, 0x31, 0x7c, 0x2c, 0x5b, 0xfb, 0xdb,
0x2c, 0x14, 0xe3, 0x14, 0x41, 0x07, 0xe2, 0xb8, 0x98, 0x62, 0x94, 0x1f, 0x5e, 0x33, 0xc3, 0xe4,
0xe3, 0xe3, 0x19, 0x14, 0x7d, 0x2f, 0xb4, 0xa9, 0x9e, 0xe5, 0x57, 0x79, 0x7b, 0x3d, 0x8b, 0xad,
0x23, 0xec, 0x70, 0x82, 0x50, 0xff, 0x3c, 0x33, 0x3e, 0x45, 0x8e, 0x5a, 0xcf, 0x5b, 0xed, 0x97,
0x2d, 0x3d, 0x3e, 0x23, 0x94, 0x77, 0x50, 0x05, 0x8a, 0x4d, 0x6d, 0xaf, 0xa7, 0x6b, 0xc7, 0x9a,
0x92, 0x43, 0x73, 0x50, 0xc2, 0x8d, 0xfd, 0x03, 0xde, 0xcc, 0xa3, 0x2a, 0x2c, 0x33, 0x65, 0x7b,
0x4f, 0x8f, 0x8d, 0x76, 0x70, 0xfb, 0xa5, 0x32, 0x45, 0xb7, 0x7d, 0x6e, 0x38, 0xa9, 0x2a, 0x50,
0x55, 0x0c, 0x4a, 0xb8, 0x98, 0x6a, 0x1a, 0xad, 0xc1, 0x6a, 0x82, 0x4a, 0xeb, 0x66, 0x28, 0xec,
0xb0, 0xb1, 0xdb, 0x69, 0x37, 0x5a, 0x3d, 0x7d, 0x47, 0xeb, 0xbd, 0xd4, 0xb4, 0x16, 0xd5, 0xd2,
0x23, 0xa3, 0x02, 0xc5, 0x56, 0xbb, 0xab, 0xe9, 0xbd, 0x46, 0x47, 0x29, 0xd2, 0x3e, 0x1e, 0x75,
0x3a, 0x1a, 0xd6, 0x9b, 0x8d, 0x8e, 0x52, 0xa2, 0xcd, 0x66, 0xfb, 0xa5, 0x68, 0x02, 0x3d, 0x5e,
0x0e, 0xdb, 0x47, 0xbd, 0x03, 0xd6, 0x2b, 0xa5, 0x8c, 0x16, 0xa0, 0xcc, 0xdb, 0xcc, 0x9f, 0x52,
0x41, 0x0a, 0x54, 0xb8, 0xa0, 0xae, 0xb5, 0x7a, 0x1a, 0x56, 0xe6, 0xd0, 0x0a, 0x2c, 0x32, 0xfa,
0x9d, 0x76, 0xaf, 0xd7, 0x3e, 0x14, 0x86, 0xf3, 0x34, 0x5e, 0xb2, 0x98, 0xf1, 0x2d, 0xd0, 0x13,
0x56, 0x96, 0x0a, 0x12, 0x25, 0x19, 0xb5, 0x76, 0xac, 0xe9, 0xbd, 0x76, 0x47, 0xdf, 0x69, 0x1f,
0xb5, 0x76, 0x6b, 0xf8, 0x58, 0x59, 0x4c, 0xa9, 0xf8, 0xa8, 0xeb, 0x6d, 0xdc, 0xd2, 0xb0, 0x82,
0xd0, 0x6d, 0xa8, 0x26, 0x2a, 0xc1, 0x98, 0x00, 0x97, 0x92, 0xf0, 0x53, 0x2d, 0xfb, 0x21, 0x70,
0xcb, 0xe3, 0x40, 0x9e, 0x73, 0xb7, 0x92, 0xd6, 0xa5, 0xfc, 0xad, 0xa2, 0x3b, 0x70, 0x73, 0xac,
0x9b, 0x74, 0x78, 0x63, 0x3c, 0xab, 0x93, 0x1e, 0xab, 0xe8, 0x1e, 0xdc, 0x92, 0xe7, 0x59, 0xe7,
0x53, 0x10, 0xcf, 0x98, 0x72, 0x13, 0xad, 0xc3, 0xed, 0xd4, 0x94, 0x4e, 0x5a, 0xac, 0xd1, 0x80,
0x72, 0x8a, 0x1a, 0xd6, 0x7b, 0xb8, 0xb6, 0x4f, 0x0f, 0xfb, 0x5b, 0x34, 0xfa, 0x02, 0x27, 0x89,
0x6f, 0xb3, 0x8a, 0x25, 0x1e, 0x7b, 0xe7, 0xa8, 0xd3, 0x68, 0x2a, 0x77, 0x68, 0xc5, 0x32, 0xee,
0x1e, 0x17, 0xde, 0xa5, 0xf8, 0xbd, 0x36, 0xd6, 0x0e, 0xb4, 0xda, 0xae, 0xbe, 0xcf, 0x0a, 0x9a,
0x66, 0x4d, 0xb9, 0x47, 0xcb, 0x8a, 0xfa, 0x41, 0xa3, 0xa5, 0xef, 0xb7, 0x6a, 0xbd, 0x03, 0x4a,
0xb9, 0x4e, 0xfd, 0x33, 0x11, 0xe3, 0xdd, 0x6f, 0xb7, 0xa8, 0xf4, 0x3e, 0xc5, 0x33, 0x29, 0x67,
0x16, 0x62, 0x55, 0x7d, 0x06, 0x95, 0xa6, 0x67, 0xb2, 0xa4, 0x6c, 0xb8, 0x03, 0x0f, 0x3d, 0x84,
0x59, 0xc7, 0x88, 0x74, 0xc7, 0xb5, 0xc4, 0x51, 0xbe, 0x14, 0xe7, 0x20, 0xcd, 0xd1, 0xcd, 0xa6,
0x11, 0x35, 0x5d, 0x0b, 0xcf, 0x38, 0xec, 0xaf, 0xfa, 0x12, 0x8a, 0x9d, 0x80, 0x96, 0xae, 0xd1,
0x19, 0x42, 0x50, 0x70, 0x8d, 0x21, 0x11, 0x55, 0x0b, 0xfb, 0x4d, 0x0b, 0xbe, 0xd7, 0x86, 0x33,
0x22, 0xa2, 0x54, 0xe1, 0x0d, 0x74, 0x1f, 0x2a, 0x23, 0xdb, 0x8d, 0x1e, 0x7f, 0xa8, 0x73, 0x25,
0xdd, 0x3a, 0x0a, 0xb8, 0xcc, 0x65, 0x2f, 0xa8, 0x48, 0xfd, 0xe5, 0x14, 0x28, 0x9a, 0x1b, 0xd9,
0xd1, 0x99, 0x54, 0x6c, 0x28, 0x30, 0x35, 0xb4, 0xfb, 0xc2, 0x01, 0xfd, 0x89, 0x56, 0x61, 0xc6,
0xf1, 0x4c, 0xc3, 0x89, 0x1d, 0x88, 0x16, 0x5a, 0x87, 0x72, 0x9f, 0x84, 0x66, 0x60, 0xfb, 0x6c,
0x37, 0xe1, 0xe5, 0xa6, 0x2c, 0xa2, 0x3d, 0x0b, 0x4d, 0x2f, 0x88, 0x4f, 0x72, 0xde, 0x40, 0x77,
0x01, 0xa4, 0xa3, 0x94, 0x1f, 0xe3, 0x92, 0x84, 0xea, 0x23, 0xcf, 0xb7, 0x4d, 0xc3, 0xb1, 0xa3,
0x33, 0x71, 0x90, 0x4b, 0x92, 0xf3, 0xe5, 0xd0, 0xec, 0x57, 0x2e, 0x87, 0x76, 0xa0, 0xe4, 0x88,
0x89, 0x09, 0xab, 0x45, 0x56, 0xbe, 0x64, 0xd2, 0xc8, 0x33, 0x88, 0xc7, 0x30, 0xf4, 0x43, 0x00,
0x9f, 0x4f, 0x8f, 0x4d, 0xc2, 0x6a, 0x89, 0x91, 0x64, 0xef, 0xa9, 0x62, 0x22, 0xb1, 0x84, 0x51,
0xff, 0x9a, 0x87, 0xe5, 0xae, 0x31, 0x20, 0x5d, 0x62, 0x04, 0xe6, 0x2b, 0x69, 0x2e, 0x3e, 0x82,
0x69, 0xa3, 0x3f, 0x72, 0x22, 0x71, 0x4d, 0xb8, 0xca, 0x51, 0xc2, 0x01, 0x14, 0x19, 0xfa, 0x9e,
0x37, 0x60, 0x53, 0x76, 0x45, 0x24, 0x03, 0xa0, 0x67, 0x30, 0x3b, 0x24, 0x7d, 0x1a, 0x6b, 0x71,
0xda, 0x5c, 0x05, 0x1b, 0x43, 0xd0, 0xf7, 0xa1, 0xf8, 0xda, 0xf6, 0x1c, 0x36, 0xb3, 0x85, 0x2b,
0xc3, 0x13, 0x0c, 0x7a, 0x0c, 0x85, 0xc0, 0x30, 0xcf, 0xae, 0x51, 0x31, 0x31, 0x7b, 0xf5, 0x0d,
0x94, 0x69, 0xd6, 0x78, 0xae, 0x85, 0x89, 0x19, 0xa1, 0x0f, 0xa0, 0x3c, 0xb4, 0x5d, 0xfd, 0x0a,
0x49, 0x56, 0x1a, 0xda, 0x2e, 0xff, 0xc9, 0x40, 0xc6, 0x69, 0x02, 0xca, 0x5f, 0x06, 0x32, 0x4e,
0xf9, 0x4f, 0x35, 0x80, 0x52, 0x9d, 0xde, 0xfe, 0x58, 0x5e, 0x6f, 0xc0, 0x34, 0xbb, 0x0a, 0x0a,
0x87, 0x28, 0x85, 0x65, 0x66, 0x98, 0x1b, 0x8c, 0x33, 0x23, 0x2f, 0x67, 0xc6, 0x7b, 0x30, 0xef,
0xdb, 0xa7, 0xc4, 0xd1, 0x07, 0x81, 0x61, 0x26, 0x49, 0x95, 0xc7, 0x73, 0x4c, 0xba, 0x27, 0x84,
0xea, 0x11, 0x54, 0x77, 0xbd, 0xa1, 0xed, 0x1a, 0x6e, 0xc4, 0x48, 0x43, 0x69, 0xc9, 0x7c, 0x0f,
0x66, 0x98, 0x87, 0xb0, 0x9a, 0x63, 0x2b, 0xf1, 0x7e, 0x56, 0x08, 0x93, 0x5e, 0x63, 0x01, 0x50,
0x1d, 0x58, 0x60, 0x17, 0x92, 0x4e, 0xb2, 0x32, 0xd1, 0x31, 0x2c, 0xf4, 0x85, 0x27, 0x3d, 0xa1,
0xa5, 0x43, 0xfb, 0x4e, 0x16, 0x6d, 0x56, 0xc7, 0xf0, 0x7c, 0x3f, 0xa5, 0x51, 0x7f, 0x9f, 0x83,
0x62, 0x3d, 0xf0, 0xfc, 0x03, 0xdb, 0x8d, 0xbe, 0xce, 0x1b, 0x4e, 0x7a, 0x77, 0xc9, 0x9f, 0xdb,
0x5d, 0xb6, 0x60, 0xc9, 0x1e, 0xfa, 0x5e, 0x10, 0x19, 0xae, 0x49, 0x26, 0x03, 0x8d, 0xc6, 0xaa,
0x24, 0xda, 0x2f, 0x60, 0x29, 0xee, 0xa7, 0x1c, 0xe8, 0x1f, 0x00, 0x98, 0x81, 0xe7, 0xeb, 0xaf,
0xa8, 0x5c, 0x04, 0x3b, 0x33, 0xed, 0x63, 0x02, 0x5c, 0x32, 0x63, 0x2a, 0xf5, 0x31, 0x2c, 0x24,
0xbc, 0x1d, 0x23, 0x30, 0x86, 0x21, 0x7a, 0x17, 0xe6, 0x8c, 0xd0, 0x27, 0x66, 0xa4, 0xb3, 0x67,
0x0a, 0x4e, 0x9b, 0xc7, 0x15, 0x2e, 0xc4, 0x4c, 0xa6, 0xee, 0x02, 0x7a, 0x49, 0x4e, 0x76, 0xe3,
0xfb, 0x8a, 0x80, 0x6e, 0xc2, 0x92, 0xed, 0x9a, 0xce, 0xa8, 0x4f, 0x74, 0x8b, 0x78, 0xa9, 0xe7,
0x81, 0x22, 0x5e, 0x14, 0xaa, 0x7d, 0xe2, 0x89, 0x57, 0x02, 0xf5, 0x4f, 0x79, 0xa8, 0xb0, 0xd9,
0xae, 0xd3, 0x4b, 0xeb, 0x69, 0x84, 0xf6, 0x61, 0x8e, 0xad, 0x7c, 0xcf, 0xb5, 0xf4, 0x80, 0x98,
0x91, 0x98, 0x82, 0xcc, 0xbb, 0xab, 0x94, 0x6e, 0xb8, 0xec, 0x48, 0xb9, 0xf7, 0x1e, 0xcc, 0x3b,
0x86, 0x6b, 0x8d, 0xe8, 0x05, 0x9a, 0x07, 0x27, 0xbf, 0x3e, 0xb5, 0x51, 0xc2, 0x73, 0xb1, 0x94,
0x8d, 0x18, 0x75, 0x61, 0x71, 0x1c, 0x3f, 0xdd, 0x67, 0xa3, 0x10, 0x15, 0xe9, 0xfb, 0x6f, 0x0b,
0xa3, 0x88, 0x17, 0x5e, 0x30, 0x27, 0x02, 0xf8, 0x29, 0x2c, 0xa7, 0xde, 0x82, 0x62, 0xde, 0x19,
0xc6, 0xfb, 0x20, 0x8b, 0xf7, 0x7c, 0x3c, 0x31, 0x7a, 0x73, 0x4e, 0xa6, 0x7e, 0x99, 0x83, 0x65,
0xb1, 0x02, 0x08, 0x8b, 0x1d, 0x26, 0x3f, 0x1d, 0x91, 0x90, 0x6e, 0x37, 0xd3, 0xec, 0x7d, 0x40,
0xc4, 0xec, 0xce, 0xa5, 0xf7, 0x7d, 0xcc, 0x6d, 0xd1, 0x53, 0x28, 0x0e, 0xf8, 0xf3, 0x0e, 0x8f,
0x50, 0x79, 0xfb, 0xde, 0x5b, 0x9e, 0x81, 0x70, 0x02, 0xa0, 0x09, 0xc3, 0x9f, 0x28, 0x4c, 0x3e,
0x7d, 0x6c, 0xfd, 0x5e, 0x92, 0x30, 0xf2, 0x54, 0xe3, 0x8a, 0x2d, 0xb5, 0xd4, 0xe7, 0xb0, 0xca,
0xb4, 0xe3, 0xb5, 0x1d, 0x2f, 0x09, 0x05, 0xa6, 0xc6, 0x2f, 0x24, 0xf4, 0x27, 0xba, 0x07, 0x65,
0x9f, 0x7a, 0x75, 0x47, 0xc3, 0x13, 0x12, 0xc4, 0x8f, 0x4f, 0x54, 0xd4, 0x62, 0x12, 0xf5, 0x57,
0x45, 0x58, 0x99, 0x08, 0x51, 0xe8, 0x7b, 0x6e, 0x48, 0xd0, 0xc7, 0xa0, 0x0c, 0x0c, 0x93, 0x48,
0x8f, 0x7a, 0x71, 0xd6, 0x7c, 0xf3, 0x6a, 0xd7, 0x19, 0xbc, 0x30, 0x48, 0xb5, 0x43, 0xf4, 0x63,
0x58, 0x8e, 0x6f, 0xe0, 0x29, 0x5a, 0x1e, 0xcd, 0x8d, 0x2c, 0xda, 0xc9, 0x92, 0x07, 0x2f, 0xc5,
0x2c, 0x32, 0x79, 0x17, 0x14, 0xc7, 0xb3, 0xbc, 0x14, 0xf1, 0xd4, 0x35, 0x89, 0x17, 0x28, 0x83,
0x4c, 0x7a, 0x04, 0x8b, 0x8e, 0x71, 0x42, 0x9c, 0x14, 0x6b, 0xe1, 0x9a, 0xac, 0x0a, 0xa3, 0x98,
0xe8, 0xeb, 0xc4, 0x83, 0x69, 0x58, 0x9d, 0xbe, 0x6e, 0x5f, 0x29, 0x83, 0x4c, 0xfa, 0x09, 0x2c,
0x0f, 0x46, 0x8e, 0xa3, 0x4f, 0x30, 0xb3, 0xcb, 0xfd, 0x25, 0x93, 0xd6, 0x4b, 0xd1, 0x60, 0x44,
0x39, 0xd2, 0x32, 0x74, 0x02, 0xab, 0xa1, 0x31, 0x20, 0x7a, 0xc8, 0xea, 0x1d, 0x99, 0x9b, 0xe7,
0xe9, 0xc3, 0x2c, 0xee, 0x8b, 0x8a, 0x24, 0xbc, 0x1c, 0x5e, 0x54, 0x3a, 0x59, 0x70, 0x8b, 0x27,
0xc8, 0xb8, 0xce, 0x92, 0x1d, 0x15, 0x2f, 0xdf, 0x68, 0x26, 0xce, 0x41, 0x7c, 0xd3, 0x4e, 0x0b,
0x24, 0x47, 0x3a, 0xac, 0x48, 0xfb, 0x98, 0xe4, 0xa2, 0xcc, 0x5c, 0x7c, 0xeb, 0xad, 0x7b, 0x99,
0xbc, 0x10, 0xcd, 0x0b, 0x0e, 0x9a, 0x06, 0xcc, 0xa5, 0xf6, 0x34, 0xf6, 0x06, 0x72, 0x49, 0xaa,
0xcb, 0x9b, 0x19, 0xae, 0xc8, 0xdb, 0x18, 0xad, 0x4f, 0x48, 0x10, 0x78, 0x01, 0x2b, 0xaf, 0xa4,
0xfa, 0x24, 0xf0, 0xcd, 0xcd, 0x2e, 0x7b, 0xdd, 0xc6, 0xdc, 0x00, 0x1d, 0x88, 0xc7, 0xcd, 0xd3,
0xa8, 0xba, 0xc2, 0x6c, 0x37, 0x2f, 0x0d, 0xd5, 0xb9, 0xbd, 0x03, 0xc7, 0x70, 0xf5, 0x8f, 0xd2,
0xa6, 0xb9, 0x67, 0x3b, 0xe3, 0x0d, 0x61, 0x0f, 0x2a, 0xb6, 0xeb, 0x8f, 0x22, 0xfe, 0xae, 0x66,
0xbd, 0xed, 0xbc, 0x69, 0x50, 0x5b, 0xf6, 0xca, 0x66, 0xe1, 0xb2, 0x3d, 0x6e, 0xa0, 0xe7, 0x50,
0x0a, 0x04, 0x67, 0x9c, 0xfa, 0xdf, 0xce, 0x22, 0xb9, 0x70, 0x6b, 0xc2, 0x63, 0xbc, 0x3a, 0x80,
0xb5, 0x1d, 0x23, 0x4a, 0x56, 0x12, 0x37, 0x0c, 0xe3, 0x7d, 0xfe, 0x00, 0x8a, 0x01, 0xff, 0x19,
0xef, 0x5d, 0x0f, 0xaf, 0xe8, 0x89, 0x81, 0x70, 0x82, 0x56, 0x3f, 0x83, 0x5b, 0x17, 0xfa, 0x11,
0xb1, 0x49, 0x8d, 0x29, 0xf7, 0x3f, 0x8e, 0xe9, 0x2f, 0x79, 0xa8, 0xd6, 0xc2, 0x33, 0xd7, 0x4c,
0x4f, 0x03, 0x1f, 0xd2, 0xd7, 0x35, 0x0b, 0xff, 0x27, 0xa7, 0x19, 0xa5, 0xf2, 0x46, 0x91, 0x34,
0xa0, 0xc2, 0xe5, 0x54, 0x6d, 0x66, 0x2c, 0x46, 0x54, 0xf1, 0xa4, 0x96, 0x3a, 0x80, 0x9b, 0x17,
0x84, 0x4d, 0xcc, 0xd0, 0x39, 0x3f, 0xb9, 0xaf, 0xec, 0xc7, 0x85, 0xbb, 0xcc, 0x4f, 0x6a, 0x41,
0x50, 0x67, 0xc9, 0xba, 0x6b, 0x9e, 0x5b, 0x77, 0x99, 0xf5, 0x77, 0xd6, 0x44, 0x4b, 0x6b, 0x2f,
0x80, 0x7b, 0x99, 0xfe, 0xc4, 0xe8, 0xda, 0xe7, 0xd7, 0xdf, 0xa3, 0x6b, 0x78, 0x3c, 0xbf, 0x06,
0x1d, 0x28, 0x4b, 0x4b, 0x87, 0xde, 0x99, 0x2d, 0x33, 0xd4, 0xc5, 0x57, 0x12, 0x1e, 0xba, 0xcc,
0x9b, 0xca, 0xbe, 0x19, 0x8a, 0x6f, 0x24, 0x25, 0x2b, 0xfe, 0x89, 0x6e, 0x41, 0x69, 0x68, 0x0f,
0x89, 0xce, 0x9e, 0x45, 0xc5, 0x37, 0x1a, 0x2a, 0xe8, 0x9d, 0xf9, 0x44, 0xfd, 0x39, 0x54, 0xe4,
0x78, 0xa3, 0x36, 0x2c, 0x50, 0x77, 0x7d, 0x12, 0x46, 0xb6, 0xcb, 0x77, 0xe7, 0xdc, 0xe5, 0xa7,
0xd8, 0xbe, 0x19, 0xee, 0x8e, 0xad, 0xf1, 0xbc, 0x95, 0x6a, 0xa3, 0x3b, 0x00, 0x27, 0x34, 0x7a,
0x7a, 0x68, 0x7f, 0x41, 0x44, 0x19, 0x54, 0x62, 0x92, 0xae, 0xfd, 0x05, 0x51, 0xef, 0x40, 0x29,
0xe9, 0xf4, 0xf9, 0x2a, 0x4a, 0x55, 0x61, 0x3e, 0xcd, 0x7f, 0x81, 0xcd, 0x1f, 0xf2, 0xb0, 0xd8,
0x8e, 0x3f, 0x57, 0x1e, 0x92, 0xc8, 0xe8, 0x1b, 0x91, 0x81, 0x34, 0x98, 0x0e, 0x69, 0x98, 0xc5,
0x83, 0x40, 0xe6, 0xa7, 0x96, 0x73, 0x48, 0xb6, 0xbd, 0x13, 0xcc, 0xd1, 0xe8, 0x29, 0x94, 0xcd,
0x80, 0x18, 0x11, 0xd1, 0x23, 0x7b, 0xc8, 0x9f, 0x60, 0xca, 0xdb, 0x6b, 0x31, 0x59, 0xfc, 0x31,
0x74, 0xb3, 0x17, 0x7f, 0x0c, 0xc5, 0xc0, 0xcd, 0xa9, 0x80, 0x82, 0x47, 0x7e, 0x3f, 0x01, 0xcf,
0xbc, 0x1d, 0xcc, 0xcd, 0xa9, 0x40, 0xfd, 0x18, 0xa6, 0x59, 0x4f, 0xd0, 0x0a, 0x2c, 0x76, 0x7b,
0xb5, 0xde, 0xe4, 0x77, 0xc8, 0x32, 0xcc, 0xd6, 0xb1, 0x56, 0xeb, 0x69, 0xbb, 0x4a, 0x8e, 0x36,
0xf0, 0x51, 0xab, 0xd5, 0x68, 0xed, 0x2b, 0x79, 0x54, 0x84, 0xc2, 0x6e, 0xbb, 0xa5, 0x29, 0x53,
0x68, 0x0e, 0x4a, 0xf5, 0x5a, 0xab, 0xae, 0x35, 0x9b, 0xda, 0xae, 0x52, 0x78, 0x40, 0x00, 0xa4,
0xb7, 0xf8, 0x32, 0xcc, 0x8a, 0x87, 0x69, 0xe5, 0x1d, 0xb4, 0x08, 0x73, 0x2f, 0x34, 0x7c, 0xac,
0x1f, 0xb5, 0x9a, 0x8d, 0xe7, 0x5a, 0xf3, 0x58, 0xc9, 0xa1, 0x0a, 0x14, 0x93, 0x56, 0x9e, 0xb6,
0x3a, 0xed, 0x6e, 0xb7, 0xb1, 0xd3, 0xa4, 0xc4, 0x00, 0x33, 0x42, 0x53, 0x40, 0x0b, 0x50, 0x66,
0x50, 0x21, 0x98, 0xde, 0xfe, 0x7b, 0x1e, 0xe6, 0xe5, 0xb3, 0xce, 0x0b, 0xd0, 0x6f, 0x73, 0xb0,
0x74, 0xc1, 0x2e, 0x8e, 0xb6, 0x33, 0xaf, 0xad, 0x99, 0x47, 0xcb, 0xda, 0x07, 0xd7, 0xc2, 0xf0,
0xb4, 0x52, 0xef, 0xfe, 0xe2, 0xcb, 0x7f, 0xfe, 0x3a, 0x5f, 0x55, 0x97, 0x92, 0xaf, 0xf7, 0xe1,
0x13, 0x51, 0x81, 0x90, 0x27, 0xb9, 0x07, 0xe8, 0x37, 0x39, 0xb8, 0x91, 0x91, 0xea, 0xe8, 0xf1,
0xa5, 0xf9, 0x9c, 0xb9, 0x17, 0xad, 0x25, 0x97, 0x1b, 0xe9, 0xc3, 0xfa, 0x78, 0xbd, 0xa9, 0xef,
0xb3, 0x2e, 0xdd, 0x57, 0x6f, 0xd3, 0x2e, 0x0d, 0x28, 0xf0, 0x89, 0x71, 0x8e, 0xf0, 0x49, 0xee,
0xc1, 0xce, 0xcf, 0x60, 0xcd, 0xf4, 0x86, 0x19, 0x9d, 0xd8, 0x59, 0x4a, 0x87, 0xba, 0x43, 0x57,
0x55, 0x27, 0xf7, 0xa3, 0x67, 0xc2, 0xdc, 0xf2, 0xe8, 0x65, 0x72, 0xd3, 0x0b, 0xac, 0x2d, 0x8b,
0xb8, 0x6c, 0xcd, 0x6d, 0x71, 0x95, 0xe1, 0xdb, 0xe1, 0xe4, 0xff, 0x07, 0x3c, 0xe5, 0xbf, 0xfe,
0x93, 0xcb, 0xfd, 0x2e, 0x5f, 0xd8, 0xaf, 0xbf, 0x68, 0x9d, 0xcc, 0x30, 0xc8, 0x07, 0xff, 0x0d,
0x00, 0x00, 0xff, 0xff, 0x7a, 0xea, 0x20, 0x54, 0x0a, 0x21, 0x00, 0x00,
var fileDescriptor_image_annotator_52d0bce80b1d0b0a = []byte{
// 3080 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x73, 0xdb, 0xc8,
0x95, 0x1f, 0xfe, 0x91, 0x44, 0x3e, 0x52, 0x14, 0xd4, 0x94, 0x64, 0x5a, 0xfe, 0x27, 0x63, 0x76,
0x76, 0x54, 0x1e, 0xaf, 0xb4, 0xf6, 0xcc, 0xba, 0x66, 0x6d, 0xd7, 0xee, 0x50, 0x24, 0x24, 0x71,
0x4d, 0x11, 0x9c, 0x26, 0x65, 0x8f, 0x67, 0xa7, 0x16, 0x05, 0x81, 0x4d, 0x1a, 0x1e, 0x10, 0xc0,
0x02, 0xa0, 0x2d, 0xcd, 0x56, 0xed, 0x21, 0xb7, 0x5c, 0x93, 0x53, 0x2e, 0xa9, 0x54, 0x52, 0x95,
0x1c, 0x72, 0x4d, 0xee, 0xb9, 0xa5, 0x72, 0xc8, 0x21, 0x35, 0x5f, 0x21, 0x87, 0x7c, 0x84, 0x1c,
0x53, 0xdd, 0x68, 0x80, 0x0d, 0x4a, 0xa0, 0xa5, 0xc9, 0x1c, 0x72, 0x12, 0xfb, 0xbd, 0xf7, 0xfb,
0x75, 0xf7, 0xeb, 0xee, 0xf7, 0x5e, 0x37, 0x04, 0xf7, 0x47, 0x8e, 0x33, 0xb2, 0xc8, 0xae, 0x61,
0x39, 0x93, 0xc1, 0xee, 0x1b, 0xd3, 0x37, 0x1d, 0x7b, 0xf7, 0xcd, 0x83, 0x5d, 0x73, 0xac, 0x8f,
0x88, 0xa6, 0xdb, 0xb6, 0x13, 0xe8, 0x81, 0xe3, 0xed, 0xb8, 0x9e, 0x13, 0x38, 0x68, 0x23, 0xb4,
0xde, 0x61, 0xd6, 0x3b, 0xa1, 0xf5, 0xce, 0x9b, 0x07, 0x9b, 0x37, 0x39, 0x8b, 0xee, 0x9a, 0xbb,
0x1c, 0x63, 0x3a, 0xb6, 0x1f, 0xa2, 0x36, 0x3f, 0x48, 0xe9, 0x63, 0x44, 0x9c, 0x31, 0x09, 0xbc,
0x33, 0x6e, 0xf6, 0x51, 0x8a, 0x99, 0xeb, 0x39, 0x83, 0x89, 0x11, 0x68, 0x3e, 0xd1, 0x3d, 0xe3,
0x15, 0x37, 0x4e, 0x1b, 0x77, 0x40, 0x4e, 0x03, 0x6d, 0x3a, 0x04, 0x6e, 0x7d, 0x2f, 0xc5, 0xfa,
0x2d, 0x39, 0xd1, 0x06, 0x24, 0x20, 0x86, 0x60, 0xfb, 0x3e, 0xb7, 0xb5, 0x1c, 0x7b, 0xe4, 0x4d,
0x6c, 0xdb, 0xb4, 0x47, 0xbb, 0x8e, 0x4b, 0xbc, 0xc4, 0x94, 0xb6, 0xb8, 0x11, 0x6b, 0x9d, 0x4c,
0x86, 0xbb, 0x43, 0x93, 0x58, 0x03, 0x6d, 0xac, 0xfb, 0x5f, 0x73, 0x8b, 0x3b, 0xb3, 0x16, 0x81,
0x39, 0x26, 0x7e, 0xa0, 0x8f, 0x5d, 0x6e, 0x70, 0x8d, 0x1b, 0x78, 0xae, 0xb1, 0xeb, 0x07, 0x7a,
0x30, 0xf1, 0x67, 0x14, 0xc1, 0x99, 0x4b, 0x76, 0x0d, 0xc7, 0x8a, 0xbc, 0xbf, 0x59, 0x13, 0x15,
0x96, 0x1e, 0x58, 0xf6, 0x28, 0xd4, 0xc8, 0x3f, 0xcb, 0xc1, 0xd2, 0x3e, 0xd1, 0x83, 0x89, 0x47,
0xd0, 0xa7, 0x90, 0xa7, 0x06, 0xb5, 0xcc, 0x56, 0x66, 0xbb, 0xf2, 0xf0, 0x9f, 0x76, 0x2e, 0x5e,
0xb2, 0x1d, 0x6e, 0xbe, 0xd3, 0x3f, 0x73, 0x09, 0x66, 0x08, 0x74, 0x07, 0x4a, 0x63, 0xfd, 0x54,
0xf3, 0x88, 0x3f, 0xb1, 0x02, 0xbf, 0x96, 0xdd, 0xca, 0x6c, 0x2f, 0x60, 0x18, 0xeb, 0xa7, 0x38,
0x94, 0xa0, 0x35, 0x58, 0x18, 0x3b, 0x03, 0x62, 0xd5, 0x72, 0x5b, 0x99, 0xed, 0x22, 0x0e, 0x1b,
0xf2, 0x2f, 0xb2, 0x90, 0xa7, 0x2c, 0x68, 0x0d, 0xa4, 0xfe, 0xcb, 0xae, 0xa2, 0x1d, 0x77, 0x7a,
0x5d, 0xa5, 0xd1, 0xda, 0x6f, 0x29, 0x4d, 0xe9, 0x3d, 0x84, 0xa0, 0xb2, 0x5f, 0x6f, 0x28, 0x5a,
0x53, 0xe9, 0x2b, 0x8d, 0x7e, 0x4b, 0xed, 0x48, 0x19, 0xb4, 0x01, 0xa8, 0x5d, 0xef, 0x34, 0x8f,
0xea, 0xf8, 0x99, 0x20, 0xcf, 0x52, 0xdb, 0xb6, 0x7a, 0xa0, 0x0a, 0xb2, 0x1c, 0xaa, 0xc2, 0x4a,
0xbb, 0xbe, 0xa7, 0xb4, 0x05, 0x61, 0x9e, 0x1a, 0xf6, 0x95, 0x2f, 0xfa, 0x82, 0x6c, 0x01, 0xdd,
0x80, 0x6b, 0x4d, 0xb5, 0x71, 0x7c, 0xa4, 0x74, 0xfa, 0xda, 0x8c, 0xb2, 0x84, 0xae, 0xc3, 0x7a,
0xaf, 0xbe, 0xaf, 0x68, 0x3d, 0xa5, 0x8e, 0x1b, 0x87, 0x82, 0x6a, 0x91, 0x0e, 0xbb, 0x75, 0x54,
0x3f, 0x50, 0xb4, 0x2e, 0x56, 0xbb, 0x0a, 0xee, 0xb7, 0x94, 0x9e, 0xb4, 0x84, 0x2a, 0x00, 0x0d,
0xac, 0x76, 0xb5, 0xc3, 0x56, 0xa7, 0xdf, 0x93, 0x8a, 0x68, 0x15, 0x96, 0x5f, 0x28, 0x7b, 0x02,
0x10, 0xe8, 0x20, 0xba, 0x58, 0x6d, 0x1e, 0x37, 0xfa, 0x9c, 0x56, 0x2a, 0xa3, 0x6b, 0x50, 0x55,
0xf7, 0xfe, 0x4b, 0x69, 0xf4, 0xb5, 0xb6, 0xda, 0xa8, 0xb7, 0x5b, 0x5f, 0xd6, 0x99, 0x71, 0x55,
0xee, 0x40, 0xa9, 0x45, 0xcf, 0x54, 0xcf, 0x99, 0x78, 0x06, 0x41, 0x32, 0x2c, 0x8f, 0x0c, 0x5f,
0x0b, 0x8f, 0xd9, 0xc4, 0x33, 0xd9, 0x72, 0x15, 0x71, 0x69, 0x64, 0xf8, 0xcc, 0xec, 0xd8, 0x33,
0xd1, 0x0d, 0x28, 0x4e, 0xf5, 0x59, 0xa6, 0x2f, 0x98, 0x5c, 0x29, 0xff, 0x0f, 0x2c, 0x30, 0x43,
0x54, 0x83, 0x25, 0xc3, 0xb1, 0x03, 0x62, 0x07, 0x8c, 0xa3, 0x8c, 0xa3, 0x26, 0x7a, 0x02, 0x8b,
0x3e, 0xeb, 0x8d, 0x81, 0x4b, 0x0f, 0xdf, 0x4f, 0xdb, 0x0b, 0xc2, 0xc0, 0x30, 0x87, 0xc8, 0x7f,
0x5a, 0x81, 0xca, 0xbe, 0x6e, 0x90, 0x7a, 0x7c, 0x96, 0x50, 0x0b, 0x96, 0x4f, 0x9c, 0x89, 0x3d,
0x30, 0xed, 0x91, 0xe6, 0x3a, 0xd6, 0x19, 0xeb, 0xaf, 0x94, 0xbe, 0xc5, 0xf6, 0xb8, 0x71, 0xd7,
0xb1, 0xce, 0x70, 0xf9, 0x44, 0x68, 0xa1, 0x0e, 0x48, 0xc3, 0x81, 0x96, 0x64, 0xcb, 0x5e, 0x81,
0xad, 0x32, 0x1c, 0x88, 0x6d, 0x74, 0x04, 0x45, 0x4b, 0xb7, 0x07, 0x63, 0xdd, 0xfb, 0xda, 0xaf,
0xe5, 0xb6, 0x72, 0xdb, 0xa5, 0x87, 0xbb, 0xa9, 0x3b, 0x3f, 0x31, 0xab, 0x9d, 0x36, 0xc7, 0xe1,
0x29, 0x03, 0xba, 0x05, 0xe0, 0x39, 0x96, 0xa5, 0xe9, 0xf6, 0xc8, 0x22, 0xb5, 0xfc, 0x56, 0x66,
0x3b, 0x8b, 0x8b, 0x54, 0x52, 0xa7, 0x02, 0xba, 0x30, 0xae, 0x6e, 0x73, 0xed, 0x02, 0xd3, 0x16,
0x5c, 0xdd, 0x0e, 0x95, 0xb7, 0x00, 0x02, 0xd3, 0x0a, 0xb8, 0x76, 0x31, 0xc4, 0x52, 0x49, 0xa8,
0x7e, 0x00, 0x6b, 0x71, 0xc4, 0xd1, 0x0c, 0xc7, 0x1e, 0x9a, 0x03, 0x62, 0x1b, 0xa4, 0xb6, 0xc4,
0x0c, 0xab, 0xb1, 0xae, 0x11, 0xab, 0xd0, 0xbf, 0xc1, 0x46, 0x34, 0x34, 0xea, 0x2c, 0x01, 0x54,
0x60, 0xa0, 0x75, 0x41, 0x2b, 0xc0, 0x5a, 0x50, 0x79, 0xed, 0x9c, 0x69, 0x96, 0xf9, 0x35, 0xb1,
0xcc, 0x57, 0x8e, 0x33, 0xa8, 0x15, 0x59, 0x48, 0x90, 0xd3, 0x1c, 0xd3, 0x8e, 0x2d, 0xf1, 0xf2,
0x6b, 0xe7, 0x6c, 0xda, 0x44, 0x2a, 0xac, 0xfa, 0x8e, 0xe7, 0x39, 0x6f, 0x45, 0x36, 0xb8, 0x34,
0x9b, 0x14, 0x82, 0x05, 0xc2, 0x23, 0x90, 0x74, 0x7b, 0x44, 0x3c, 0x91, 0xaf, 0x74, 0x69, 0xbe,
0x15, 0x86, 0x15, 0xe8, 0x7a, 0x50, 0xf5, 0x27, 0x9e, 0xeb, 0x99, 0x3e, 0x11, 0x19, 0xcb, 0x97,
0x66, 0x44, 0x11, 0x5c, 0x20, 0xfd, 0x0a, 0x6a, 0x13, 0x7b, 0x40, 0x3c, 0x8d, 0x9c, 0xba, 0x8e,
0x4f, 0x06, 0x22, 0xf3, 0xf2, 0xa5, 0x99, 0x37, 0x18, 0x87, 0x12, 0x52, 0x08, 0xec, 0x9f, 0x03,
0x3a, 0xb1, 0x26, 0x9e, 0x97, 0xe4, 0xad, 0x5c, 0x9a, 0x77, 0x95, 0xa3, 0x93, 0x5e, 0x78, 0x45,
0xf4, 0xc1, 0x5b, 0xa2, 0x27, 0xfc, 0xba, 0x72, 0x79, 0x2f, 0x44, 0xf0, 0xa9, 0x6c, 0xf3, 0x0f,
0x4b, 0x50, 0x88, 0x8e, 0x08, 0x3a, 0xe4, 0xb9, 0x25, 0xc7, 0x28, 0x3f, 0xb9, 0xe2, 0x09, 0x13,
0x73, 0xcd, 0x53, 0x28, 0xb8, 0x8e, 0x6f, 0x52, 0x3d, 0x3b, 0x5f, 0xa5, 0x87, 0x5b, 0x69, 0x6c,
0x5d, 0x6e, 0x87, 0x63, 0x84, 0xfc, 0x9b, 0xc5, 0x69, 0xca, 0x39, 0xee, 0x3c, 0xeb, 0xa8, 0x2f,
0x3a, 0x5a, 0x94, 0x50, 0xa4, 0xf7, 0x50, 0x19, 0x0a, 0x6d, 0x65, 0xbf, 0xaf, 0x29, 0x2f, 0x15,
0x29, 0x83, 0x96, 0xa1, 0x88, 0x5b, 0x07, 0x87, 0x61, 0x33, 0x8b, 0x6a, 0xb0, 0xc6, 0x94, 0xea,
0xbe, 0x16, 0x19, 0xed, 0x61, 0xf5, 0x85, 0x94, 0xa3, 0x39, 0x22, 0x34, 0x9c, 0x55, 0xe5, 0xa9,
0x2a, 0x02, 0xc5, 0x5c, 0x4c, 0xb5, 0x80, 0x36, 0x61, 0x23, 0x46, 0x25, 0x75, 0x8b, 0x14, 0x76,
0xd4, 0x6a, 0x76, 0xd5, 0x56, 0xa7, 0xaf, 0xed, 0x29, 0xfd, 0x17, 0x8a, 0xd2, 0xa1, 0x5a, 0x9a,
0x5f, 0xca, 0x50, 0xe8, 0xa8, 0x3d, 0x45, 0xeb, 0xb7, 0xba, 0x52, 0x81, 0x8e, 0xf1, 0xb8, 0xdb,
0x55, 0xb0, 0xd6, 0x6e, 0x75, 0xa5, 0x22, 0x6d, 0xb6, 0xd5, 0x17, 0xbc, 0x09, 0x34, 0x17, 0x1d,
0xa9, 0xc7, 0xfd, 0x43, 0x36, 0x2a, 0xa9, 0x84, 0x56, 0xa0, 0x14, 0xb6, 0x59, 0x7f, 0x52, 0x19,
0x49, 0x50, 0x0e, 0x05, 0x0d, 0xa5, 0xd3, 0x57, 0xb0, 0xb4, 0x8c, 0xd6, 0x61, 0x95, 0xd1, 0xef,
0xa9, 0xfd, 0xbe, 0x7a, 0xc4, 0x0d, 0x2b, 0xd4, 0x5f, 0xa2, 0x98, 0xf1, 0xad, 0xd0, 0x74, 0x2c,
0x4a, 0x39, 0x89, 0x14, 0xcf, 0x5a, 0x79, 0xa9, 0x68, 0x7d, 0xb5, 0xab, 0xed, 0xa9, 0xc7, 0x9d,
0x66, 0x1d, 0xbf, 0x94, 0x56, 0x13, 0xaa, 0x70, 0xd6, 0x0d, 0x15, 0x77, 0x14, 0x2c, 0x21, 0x74,
0x13, 0x6a, 0xb1, 0x8a, 0x33, 0xc6, 0xc0, 0x6a, 0xec, 0x7e, 0xaa, 0x65, 0x3f, 0x38, 0x6e, 0x6d,
0xea, 0xc8, 0x73, 0xdd, 0xad, 0x27, 0x75, 0x89, 0xfe, 0x36, 0xd0, 0x2d, 0xb8, 0x3e, 0xd5, 0xcd,
0x76, 0x78, 0x6d, 0xba, 0xaa, 0xb3, 0x3d, 0xd6, 0xd0, 0x1d, 0xb8, 0x21, 0xae, 0xb3, 0x16, 0x2e,
0x41, 0xb4, 0x62, 0xd2, 0x75, 0xb4, 0x05, 0x37, 0x13, 0x4b, 0x3a, 0x6b, 0xb1, 0x49, 0x1d, 0x1a,
0x52, 0xd4, 0xb1, 0xd6, 0xc7, 0xf5, 0x03, 0x9a, 0xec, 0x6f, 0x50, 0xef, 0x73, 0x9c, 0x20, 0xbe,
0xc9, 0xca, 0x9b, 0x68, 0xee, 0xdd, 0xe3, 0x6e, 0xab, 0x2d, 0xdd, 0xa2, 0xe5, 0xcd, 0x74, 0x78,
0xa1, 0xf0, 0x36, 0xc5, 0xef, 0xab, 0x58, 0x39, 0x54, 0xea, 0x4d, 0xed, 0x80, 0x55, 0x3f, 0xed,
0xba, 0x74, 0x87, 0xd6, 0x20, 0x8d, 0xc3, 0x56, 0x47, 0x3b, 0xe8, 0xd4, 0xfb, 0x87, 0x94, 0x72,
0x8b, 0xf6, 0xcf, 0x44, 0x8c, 0xf7, 0x40, 0xed, 0x50, 0xe9, 0x5d, 0x8a, 0x67, 0xd2, 0x90, 0x99,
0x8b, 0x65, 0xf9, 0x29, 0x94, 0xdb, 0x8e, 0xc1, 0x0e, 0x65, 0xcb, 0x1e, 0x3a, 0xe8, 0x3e, 0x2c,
0x59, 0x7a, 0xa0, 0x59, 0xf6, 0x88, 0xa7, 0xf2, 0x6a, 0x74, 0x06, 0xe9, 0x19, 0xdd, 0x69, 0xeb,
0x41, 0xdb, 0x1e, 0xe1, 0x45, 0x8b, 0xfd, 0x95, 0x5f, 0x40, 0xa1, 0xeb, 0xd1, 0x4a, 0x38, 0x38,
0x43, 0x08, 0xf2, 0xb6, 0x3e, 0x26, 0xbc, 0x6a, 0x61, 0xbf, 0x69, 0x75, 0xf8, 0x46, 0xb7, 0x26,
0x84, 0x97, 0x2a, 0x61, 0x03, 0xdd, 0x85, 0xf2, 0xc4, 0xb4, 0x83, 0x47, 0x9f, 0x68, 0xa1, 0x92,
0x86, 0x8e, 0x3c, 0x2e, 0x85, 0xb2, 0xe7, 0x54, 0x24, 0xff, 0x30, 0x07, 0x92, 0x62, 0x07, 0x66,
0x70, 0x26, 0x14, 0x1b, 0x12, 0xe4, 0xc6, 0xe6, 0x80, 0x77, 0x40, 0x7f, 0xa2, 0x0d, 0x58, 0xb4,
0x1c, 0x43, 0xb7, 0xa2, 0x0e, 0x78, 0x0b, 0x6d, 0x41, 0x69, 0x40, 0x7c, 0xc3, 0x33, 0x5d, 0x16,
0x4d, 0xc2, 0xda, 0x54, 0x14, 0xd1, 0x91, 0xf9, 0x86, 0xe3, 0x45, 0x99, 0x3c, 0x6c, 0x20, 0x19,
0x40, 0x48, 0xa5, 0x2c, 0x8d, 0xef, 0x65, 0x6b, 0x19, 0x2c, 0x48, 0xd1, 0x6d, 0x80, 0xc0, 0x71,
0x4d, 0x43, 0xb7, 0xcc, 0xe0, 0x8c, 0x27, 0x73, 0x41, 0x72, 0xbe, 0x24, 0x5a, 0xfa, 0xce, 0x25,
0xd1, 0x1e, 0x14, 0x2d, 0xbe, 0x38, 0x7e, 0xad, 0xc0, 0x4a, 0x98, 0x54, 0x1a, 0x71, 0x15, 0xf1,
0x14, 0x86, 0x3e, 0x03, 0x70, 0xc3, 0x25, 0x32, 0x89, 0x5f, 0x2b, 0x32, 0x92, 0xf4, 0xb8, 0xca,
0x17, 0x13, 0x0b, 0x18, 0xf9, 0xf7, 0x19, 0xb8, 0x4e, 0xd9, 0x2d, 0xf3, 0x1b, 0x32, 0x50, 0x4f,
0x5e, 0x13, 0x23, 0x98, 0xbb, 0x28, 0xef, 0xc3, 0xb2, 0xa5, 0xdb, 0xa3, 0x09, 0x2d, 0x53, 0x0d,
0x67, 0x10, 0xad, 0x4d, 0x39, 0x12, 0x36, 0x9c, 0x01, 0x89, 0x77, 0x4b, 0x2e, 0xb9, 0x5b, 0x2e,
0x58, 0x93, 0x73, 0xfe, 0x5c, 0xf8, 0xae, 0xfe, 0x94, 0x7f, 0x97, 0x85, 0xb5, 0x9e, 0x3e, 0x24,
0x3d, 0x76, 0x6d, 0x14, 0x26, 0xf1, 0x29, 0x2c, 0xe8, 0x83, 0x89, 0x15, 0xf0, 0x1b, 0xd2, 0x65,
0x12, 0x63, 0x08, 0xa0, 0x48, 0xdf, 0x75, 0x9c, 0x21, 0x9b, 0xe4, 0x25, 0x91, 0x0c, 0x80, 0x9e,
0xc2, 0xd2, 0x98, 0x0c, 0xe8, 0xae, 0xe1, 0xb9, 0xf3, 0x32, 0xd8, 0x08, 0x82, 0xfe, 0x03, 0x0a,
0x6f, 0x4c, 0xc7, 0x62, 0xfb, 0x34, 0x7f, 0x69, 0x78, 0x8c, 0x41, 0x8f, 0x20, 0xef, 0xe9, 0xc6,
0xd9, 0x15, 0xea, 0x3f, 0x66, 0x2f, 0xbf, 0x85, 0x12, 0x8d, 0x01, 0x8e, 0x3d, 0xc2, 0xc4, 0x08,
0xd0, 0xc7, 0x50, 0x1a, 0x9b, 0xb6, 0x76, 0x89, 0x90, 0x51, 0x1c, 0x9b, 0x76, 0xf8, 0x93, 0x81,
0xf4, 0xd3, 0x18, 0x94, 0x9d, 0x07, 0xd2, 0x4f, 0xc3, 0x9f, 0xb2, 0x07, 0xc5, 0x06, 0xbd, 0xf8,
0xb2, 0x28, 0xb5, 0x0d, 0x0b, 0xec, 0x16, 0xcc, 0x3b, 0x44, 0x09, 0x2c, 0x33, 0xc3, 0xa1, 0xc1,
0x74, 0x4f, 0x65, 0xc5, 0x3d, 0xf5, 0x01, 0x54, 0x5c, 0xf3, 0x94, 0x58, 0xda, 0xd0, 0xd3, 0x8d,
0x38, 0x44, 0x64, 0xf1, 0x32, 0x93, 0xee, 0x73, 0xa1, 0x7c, 0x0c, 0xb5, 0xa6, 0x33, 0x36, 0x6d,
0xdd, 0x0e, 0x18, 0xa9, 0x2f, 0x6c, 0x99, 0x7f, 0x87, 0x45, 0xd6, 0x83, 0x5f, 0xcb, 0xb0, 0x33,
0x75, 0x37, 0xcd, 0x85, 0xf1, 0xa8, 0x31, 0x07, 0xc8, 0x16, 0xac, 0xb0, 0xeb, 0x55, 0x37, 0x3e,
0x63, 0xe8, 0x25, 0xac, 0x0c, 0x78, 0x4f, 0x5a, 0x4c, 0x4b, 0xa7, 0xf6, 0xaf, 0x69, 0xb4, 0x69,
0x03, 0xc3, 0x95, 0x41, 0x42, 0x23, 0xff, 0x32, 0x03, 0x85, 0x86, 0xe7, 0xb8, 0x87, 0xa6, 0x1d,
0x7c, 0x9f, 0xf7, 0xb5, 0xdb, 0x89, 0x58, 0x19, 0xba, 0x57, 0x8c, 0x93, 0xbb, 0x50, 0x35, 0xc7,
0xae, 0xe3, 0x05, 0xba, 0x6d, 0x90, 0x59, 0x47, 0xa3, 0xa9, 0x2a, 0xf6, 0xf6, 0x73, 0xa8, 0x46,
0xe3, 0x14, 0x1d, 0xfd, 0x9f, 0x00, 0x86, 0xe7, 0xb8, 0xda, 0x2b, 0x2a, 0xe7, 0xce, 0x4e, 0x0d,
0x60, 0x11, 0x01, 0x2e, 0x1a, 0x11, 0x95, 0xfc, 0x08, 0x56, 0x62, 0xde, 0xae, 0xee, 0xe9, 0x63,
0x9f, 0x86, 0x28, 0xdd, 0x77, 0x89, 0x11, 0x68, 0xec, 0x0d, 0x27, 0xa4, 0xcd, 0xe2, 0x72, 0x28,
0xc4, 0x4c, 0x26, 0x37, 0x01, 0xbd, 0x20, 0x27, 0xcd, 0xe8, 0xf6, 0xc5, 0xa1, 0x3b, 0x50, 0x35,
0x6d, 0xc3, 0x9a, 0x0c, 0x88, 0x36, 0x22, 0x4e, 0xe2, 0x65, 0xa4, 0x80, 0x57, 0xb9, 0xea, 0x80,
0x38, 0xfc, 0x81, 0x44, 0xfe, 0x51, 0x0e, 0xca, 0x6c, 0xb5, 0x1b, 0xf4, 0x0a, 0x7e, 0x1a, 0xa0,
0x03, 0x1a, 0x1e, 0x03, 0xcd, 0x72, 0xec, 0x91, 0xe6, 0x11, 0x23, 0xe0, 0x4b, 0x90, 0x7a, 0x13,
0x17, 0x8e, 0x1b, 0x2e, 0x59, 0xc2, 0xd9, 0xfb, 0x00, 0x2a, 0x71, 0x9c, 0x0d, 0x9d, 0x93, 0xdd,
0xca, 0x6d, 0x17, 0x71, 0x1c, 0x7d, 0xd9, 0x8c, 0x51, 0x0f, 0x56, 0xa7, 0xfe, 0xd3, 0x5c, 0x36,
0x0b, 0x5e, 0x5f, 0x7f, 0xf8, 0x2e, 0x37, 0x72, 0x7f, 0xe1, 0x15, 0x63, 0xc6, 0x81, 0x1a, 0xac,
0x27, 0xdf, 0xe0, 0x22, 0xe2, 0x30, 0x38, 0x7f, 0x34, 0x27, 0xc1, 0x50, 0x50, 0x18, 0x80, 0x39,
0x79, 0xd5, 0x3d, 0x2f, 0x44, 0x5f, 0xc1, 0x5a, 0xe2, 0x25, 0x2e, 0xe2, 0x5f, 0x64, 0xfc, 0xf7,
0xd2, 0xf8, 0xcf, 0x2f, 0x18, 0x46, 0x6f, 0xcf, 0xc9, 0xe4, 0x6f, 0x33, 0xb0, 0xc6, 0xb7, 0x18,
0x61, 0x8b, 0x83, 0xc9, 0xff, 0x4e, 0x88, 0x4f, 0xe3, 0xd9, 0x02, 0x7b, 0x4e, 0xe1, 0x8b, 0x72,
0x6b, 0xee, 0xf3, 0x08, 0x0e, 0x6d, 0xd1, 0x13, 0x28, 0x0c, 0xc3, 0xa7, 0xb3, 0x70, 0x09, 0x4a,
0x0f, 0xef, 0xbc, 0xe3, 0x89, 0x0d, 0xc7, 0x00, 0x7a, 0x22, 0xc3, 0x17, 0x1d, 0x23, 0xdc, 0x1f,
0xec, 0x80, 0xcc, 0x39, 0x91, 0xe2, 0x5e, 0xc2, 0x65, 0x53, 0x68, 0xc9, 0xcf, 0x60, 0x83, 0x69,
0xa7, 0x87, 0x27, 0xda, 0x73, 0x12, 0xe4, 0xa6, 0x0f, 0x4a, 0xf4, 0x27, 0xba, 0x03, 0x25, 0x97,
0xf6, 0x6a, 0x4f, 0xc6, 0x27, 0xc4, 0x8b, 0x1e, 0xf6, 0xa8, 0xa8, 0xc3, 0x24, 0xf2, 0x5f, 0x8a,
0xb0, 0x3e, 0xe3, 0x22, 0xdf, 0x75, 0x6c, 0x9f, 0xa0, 0xcf, 0x41, 0x1a, 0xea, 0x06, 0x11, 0x9e,
0x54, 0xa3, 0x63, 0xf9, 0xcf, 0x97, 0xbb, 0xfd, 0xe1, 0x95, 0x61, 0xa2, 0xed, 0xa3, 0xff, 0x86,
0xb5, 0xe8, 0xc1, 0x22, 0x41, 0x1b, 0x7a, 0x73, 0x3b, 0x8d, 0x76, 0xb6, 0x42, 0xc4, 0xd5, 0x88,
0x45, 0x24, 0xef, 0x81, 0x64, 0x39, 0x23, 0x27, 0x41, 0x9c, 0xbb, 0x22, 0xf1, 0x0a, 0x65, 0x10,
0x49, 0x8f, 0x61, 0xd5, 0xd2, 0x4f, 0x88, 0x95, 0x60, 0xcd, 0x5f, 0x91, 0x55, 0x62, 0x14, 0x22,
0xad, 0x0f, 0x37, 0xad, 0xa8, 0xd4, 0xd2, 0x1c, 0x56, 0x6b, 0x25, 0x7a, 0xd8, 0x60, 0x3d, 0x3c,
0x98, 0x57, 0x04, 0x5e, 0x58, 0xa6, 0xe1, 0x4d, 0x2b, 0x4d, 0xc5, 0x1c, 0x34, 0xf3, 0x46, 0x4e,
0xcf, 0xf1, 0x15, 0x1d, 0x44, 0x19, 0x44, 0xd2, 0x2f, 0x60, 0x6d, 0x38, 0xb1, 0x2c, 0x6d, 0x86,
0x99, 0x3d, 0xc0, 0xcc, 0xd9, 0x29, 0xfd, 0x04, 0x0d, 0x46, 0x94, 0x23, 0x29, 0x43, 0x27, 0xb0,
0xe1, 0xeb, 0x43, 0x12, 0x05, 0x1e, 0x81, 0x3b, 0x0c, 0x0e, 0xf7, 0xd3, 0xb8, 0x2f, 0x2a, 0xfd,
0xf0, 0x9a, 0x7f, 0x51, 0x41, 0x38, 0x82, 0x1b, 0xe1, 0xa9, 0x9c, 0xd6, 0xc1, 0x62, 0x47, 0x85,
0xf9, 0xe1, 0x73, 0x26, 0xbb, 0xe3, 0xeb, 0x66, 0x52, 0x20, 0x74, 0xa4, 0xc1, 0xba, 0x10, 0x9d,
0x85, 0x2e, 0x4a, 0xf3, 0x03, 0xe9, 0x05, 0x99, 0x12, 0x57, 0x8d, 0x0b, 0xd2, 0x67, 0x0b, 0x96,
0x13, 0x81, 0x94, 0xbd, 0x53, 0xcd, 0x89, 0x2f, 0x62, 0x04, 0xc5, 0x65, 0x31, 0x76, 0x52, 0xc7,
0xcf, 0x04, 0xfd, 0x28, 0xfb, 0x55, 0xe6, 0x3b, 0x3e, 0x11, 0xf5, 0x79, 0x62, 0xc4, 0x6b, 0xee,
0x05, 0x52, 0x5a, 0xd9, 0x11, 0xcf, 0x73, 0x3c, 0x56, 0x98, 0x0a, 0x95, 0x9d, 0xe7, 0x1a, 0x3b,
0x3d, 0xf6, 0x49, 0x04, 0x87, 0x06, 0xe8, 0x90, 0x3f, 0x72, 0x9f, 0x06, 0xb5, 0x75, 0x66, 0xbb,
0x33, 0x77, 0x39, 0xce, 0x05, 0x45, 0x1c, 0xc1, 0xe5, 0x5f, 0x0b, 0xd9, 0x60, 0xdf, 0xb4, 0xa6,
0x91, 0x6e, 0x1f, 0xca, 0xa6, 0xed, 0x4e, 0x82, 0xf0, 0x7d, 0x75, 0xf4, 0xae, 0x4c, 0xdd, 0xa2,
0xb6, 0xec, 0xb5, 0x75, 0x84, 0x4b, 0xe6, 0xb4, 0x81, 0x9e, 0x41, 0xd1, 0xe3, 0x9c, 0x51, 0x4c,
0xfb, 0x97, 0x34, 0x92, 0x0b, 0x63, 0x2e, 0x9e, 0xe2, 0xe5, 0x21, 0x6c, 0xee, 0xe9, 0x41, 0xbc,
0x5b, 0x43, 0x43, 0x3f, 0x4a, 0x60, 0x87, 0x50, 0xf0, 0xc2, 0x9f, 0x51, 0x50, 0xbe, 0x7f, 0xc9,
0x9e, 0x18, 0x08, 0xc7, 0x68, 0xf9, 0x35, 0xdc, 0xb8, 0xb0, 0x1f, 0xee, 0x9b, 0xc4, 0x9c, 0x32,
0x7f, 0xe7, 0x9c, 0x7e, 0x9b, 0x85, 0x5a, 0xdd, 0x3f, 0xb3, 0x8d, 0xe4, 0x32, 0x84, 0x53, 0xfa,
0xbe, 0x56, 0xe1, 0x1f, 0x24, 0x4d, 0x53, 0x2a, 0x67, 0x12, 0x08, 0x13, 0xca, 0xcf, 0xa7, 0x52,
0x99, 0x31, 0x9f, 0x51, 0xd9, 0x11, 0x5a, 0xf2, 0x10, 0xae, 0x5f, 0xe0, 0x36, 0xbe, 0x42, 0xe7,
0xfa, 0xc9, 0x7c, 0xe7, 0x7e, 0x6c, 0xb8, 0xcd, 0xfa, 0x49, 0x6c, 0x08, 0xda, 0x59, 0xbc, 0xef,
0xda, 0xe7, 0xf6, 0x5d, 0xea, 0xcd, 0x25, 0x6d, 0xa1, 0x85, 0xbd, 0xe7, 0xc1, 0x9d, 0xd4, 0xfe,
0xf8, 0xec, 0xd4, 0xf3, 0xfb, 0xef, 0xc1, 0x15, 0x7a, 0x3c, 0xbf, 0x07, 0x2d, 0x28, 0x09, 0x5b,
0x07, 0x7d, 0x06, 0x30, 0x32, 0x7c, 0x8d, 0x7f, 0x2d, 0x0b, 0x5d, 0x97, 0x7a, 0xc7, 0x3b, 0x30,
0x7c, 0xfe, 0xad, 0xac, 0x38, 0x8a, 0x7e, 0xa2, 0x1b, 0x50, 0x1c, 0x9b, 0x63, 0xa2, 0xb1, 0xe7,
0x71, 0xfe, 0xad, 0x8e, 0x0a, 0xfa, 0x67, 0x2e, 0x91, 0xff, 0x1f, 0xca, 0xa2, 0xbf, 0x91, 0x0a,
0x2b, 0xb4, 0xbb, 0x01, 0xf1, 0x03, 0xd3, 0x0e, 0x33, 0x40, 0x66, 0x7e, 0xa6, 0x3c, 0x30, 0xfc,
0xe6, 0xd4, 0x1a, 0x57, 0x46, 0x89, 0x36, 0xba, 0x05, 0x70, 0x42, 0xbd, 0xa7, 0xf9, 0xe6, 0x37,
0x84, 0xd7, 0x77, 0x45, 0x26, 0xe9, 0x99, 0xdf, 0x10, 0xf9, 0x16, 0x14, 0xe3, 0x41, 0x9f, 0x2f,
0x0f, 0x65, 0x19, 0x2a, 0x49, 0xfe, 0x0b, 0x6c, 0x7e, 0x95, 0x85, 0x55, 0x35, 0xfa, 0x0a, 0x7e,
0x44, 0x02, 0x7d, 0xa0, 0x07, 0x3a, 0x52, 0x60, 0xc1, 0xa7, 0x6e, 0xe6, 0x4f, 0x29, 0xa9, 0x9f,
0xdc, 0xce, 0x21, 0x59, 0x78, 0x27, 0x38, 0x44, 0xa3, 0x27, 0x50, 0x32, 0x3c, 0xa2, 0x07, 0x44,
0x0b, 0xcc, 0x31, 0xe1, 0xd7, 0x8a, 0xcd, 0x88, 0x2c, 0xfa, 0x82, 0xbe, 0xd3, 0x8f, 0xbe, 0xa0,
0x63, 0x08, 0xcd, 0xa9, 0x80, 0x82, 0x27, 0xee, 0x20, 0x06, 0x2f, 0xbe, 0x1b, 0x1c, 0x9a, 0x53,
0x81, 0xfc, 0x39, 0x2c, 0xb0, 0x91, 0xa0, 0x75, 0x58, 0xed, 0xf5, 0xeb, 0xfd, 0xd9, 0x8f, 0xd7,
0x25, 0x58, 0x6a, 0x60, 0xa5, 0xde, 0x57, 0x9a, 0x52, 0x86, 0x36, 0xf0, 0x71, 0xa7, 0xd3, 0xea,
0x1c, 0x48, 0x59, 0x54, 0x80, 0x7c, 0x53, 0xed, 0x28, 0x52, 0x0e, 0x2d, 0x43, 0xb1, 0x51, 0xef,
0x34, 0x94, 0x76, 0x5b, 0x69, 0x4a, 0xf9, 0x7b, 0x04, 0x40, 0xf8, 0x26, 0x53, 0x82, 0x25, 0xfe,
0x81, 0x42, 0x7a, 0x0f, 0xad, 0xc2, 0xf2, 0x73, 0x05, 0xbf, 0xd4, 0x8e, 0x3b, 0xed, 0xd6, 0x33,
0xa5, 0xfd, 0x52, 0xca, 0xa0, 0x32, 0x14, 0xe2, 0x56, 0x96, 0xb6, 0xba, 0x6a, 0xaf, 0xd7, 0xda,
0x6b, 0x53, 0x62, 0x80, 0x45, 0xae, 0xc9, 0xa3, 0x15, 0x28, 0x31, 0x28, 0x17, 0x2c, 0x3c, 0xfc,
0x63, 0x16, 0x2a, 0x62, 0xae, 0x73, 0x3c, 0xf4, 0xd3, 0x0c, 0x54, 0x2f, 0x88, 0xe2, 0xe8, 0x61,
0xea, 0x85, 0x3f, 0x35, 0xb5, 0x6c, 0x7e, 0x7c, 0x25, 0x4c, 0x78, 0xac, 0xe4, 0xdb, 0x3f, 0xf8,
0xf6, 0xcf, 0x3f, 0xce, 0xd6, 0xe4, 0x6a, 0xfc, 0x1f, 0x24, 0xfe, 0x63, 0x5e, 0xe5, 0x90, 0xc7,
0x99, 0x7b, 0xe8, 0x27, 0x19, 0xb8, 0x96, 0x72, 0xd4, 0xd1, 0xa3, 0xb9, 0xe7, 0x39, 0x35, 0x16,
0x6d, 0xc6, 0xb7, 0x36, 0xe1, 0xff, 0x35, 0xa6, 0xfb, 0x4d, 0xfe, 0x90, 0x0d, 0xe9, 0xae, 0x7c,
0x93, 0x0e, 0x69, 0x48, 0x81, 0x8f, 0xf5, 0x73, 0x84, 0x8f, 0x33, 0xf7, 0xf6, 0xfe, 0x0f, 0x36,
0x0d, 0x67, 0x9c, 0x32, 0x88, 0xbd, 0x6a, 0xd2, 0xd5, 0x5d, 0xba, 0xab, 0xba, 0x99, 0x2f, 0x9f,
0x72, 0xf3, 0x91, 0x43, 0xaf, 0xe1, 0x3b, 0x8e, 0x37, 0xda, 0x1d, 0x11, 0x9b, 0xed, 0xb9, 0xdd,
0x50, 0xa5, 0xbb, 0xa6, 0x3f, 0xfb, 0x6f, 0x27, 0x4f, 0xc2, 0x5f, 0x7f, 0xcd, 0x64, 0x7e, 0x9e,
0xcd, 0x1f, 0x34, 0x9e, 0x77, 0x4e, 0x16, 0x19, 0xe4, 0xe3, 0xbf, 0x05, 0x00, 0x00, 0xff, 0xff,
0x3b, 0x54, 0xc8, 0x94, 0x8e, 0x23, 0x00, 0x00,
}

View File

@ -0,0 +1,317 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/vision/v1/product_search.proto
package vision // import "google.golang.org/genproto/googleapis/cloud/vision/v1"
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
import _ "google.golang.org/genproto/googleapis/api/annotations"
// 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
// Parameters for a product search request.
type ProductSearchParams struct {
// The bounding polygon around the area of interest in the image.
// Optional. If it is not specified, system discretion will be applied.
BoundingPoly *BoundingPoly `protobuf:"bytes,9,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
// The resource name of a [ProductSet][google.cloud.vision.v1.ProductSet] to be searched for similar images.
//
// Format is:
// `projects/PROJECT_ID/locations/LOC_ID/productSets/PRODUCT_SET_ID`.
ProductSet string `protobuf:"bytes,6,opt,name=product_set,json=productSet,proto3" json:"product_set,omitempty"`
// The list of product categories to search in. Currently, we only consider
// the first category, and either "homegoods", "apparel", or "toys" should be
// specified.
ProductCategories []string `protobuf:"bytes,7,rep,name=product_categories,json=productCategories,proto3" json:"product_categories,omitempty"`
// The filtering expression. This can be used to restrict search results based
// on Product labels. We currently support an AND of OR of key-value
// expressions, where each expression within an OR must have the same key.
//
// For example, "(color = red OR color = blue) AND brand = Google" is
// acceptable, but not "(color = red OR brand = Google)" or "color: red".
Filter string `protobuf:"bytes,8,opt,name=filter,proto3" json:"filter,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProductSearchParams) Reset() { *m = ProductSearchParams{} }
func (m *ProductSearchParams) String() string { return proto.CompactTextString(m) }
func (*ProductSearchParams) ProtoMessage() {}
func (*ProductSearchParams) Descriptor() ([]byte, []int) {
return fileDescriptor_product_search_ab4ebb8085b92f42, []int{0}
}
func (m *ProductSearchParams) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProductSearchParams.Unmarshal(m, b)
}
func (m *ProductSearchParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProductSearchParams.Marshal(b, m, deterministic)
}
func (dst *ProductSearchParams) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProductSearchParams.Merge(dst, src)
}
func (m *ProductSearchParams) XXX_Size() int {
return xxx_messageInfo_ProductSearchParams.Size(m)
}
func (m *ProductSearchParams) XXX_DiscardUnknown() {
xxx_messageInfo_ProductSearchParams.DiscardUnknown(m)
}
var xxx_messageInfo_ProductSearchParams proto.InternalMessageInfo
func (m *ProductSearchParams) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
func (m *ProductSearchParams) GetProductSet() string {
if m != nil {
return m.ProductSet
}
return ""
}
func (m *ProductSearchParams) GetProductCategories() []string {
if m != nil {
return m.ProductCategories
}
return nil
}
func (m *ProductSearchParams) GetFilter() string {
if m != nil {
return m.Filter
}
return ""
}
// Results for a product search request.
type ProductSearchResults struct {
// Timestamp of the index which provided these results. Changes made after
// this time are not reflected in the current results.
IndexTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=index_time,json=indexTime,proto3" json:"index_time,omitempty"`
// List of results, one for each product match.
Results []*ProductSearchResults_Result `protobuf:"bytes,5,rep,name=results,proto3" json:"results,omitempty"`
// List of results grouped by products detected in the query image. Each entry
// corresponds to one bounding polygon in the query image, and contains the
// matching products specific to that region. There may be duplicate product
// matches in the union of all the per-product results.
ProductGroupedResults []*ProductSearchResults_GroupedResult `protobuf:"bytes,6,rep,name=product_grouped_results,json=productGroupedResults,proto3" json:"product_grouped_results,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProductSearchResults) Reset() { *m = ProductSearchResults{} }
func (m *ProductSearchResults) String() string { return proto.CompactTextString(m) }
func (*ProductSearchResults) ProtoMessage() {}
func (*ProductSearchResults) Descriptor() ([]byte, []int) {
return fileDescriptor_product_search_ab4ebb8085b92f42, []int{1}
}
func (m *ProductSearchResults) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProductSearchResults.Unmarshal(m, b)
}
func (m *ProductSearchResults) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProductSearchResults.Marshal(b, m, deterministic)
}
func (dst *ProductSearchResults) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProductSearchResults.Merge(dst, src)
}
func (m *ProductSearchResults) XXX_Size() int {
return xxx_messageInfo_ProductSearchResults.Size(m)
}
func (m *ProductSearchResults) XXX_DiscardUnknown() {
xxx_messageInfo_ProductSearchResults.DiscardUnknown(m)
}
var xxx_messageInfo_ProductSearchResults proto.InternalMessageInfo
func (m *ProductSearchResults) GetIndexTime() *timestamp.Timestamp {
if m != nil {
return m.IndexTime
}
return nil
}
func (m *ProductSearchResults) GetResults() []*ProductSearchResults_Result {
if m != nil {
return m.Results
}
return nil
}
func (m *ProductSearchResults) GetProductGroupedResults() []*ProductSearchResults_GroupedResult {
if m != nil {
return m.ProductGroupedResults
}
return nil
}
// Information about a product.
type ProductSearchResults_Result struct {
// The Product.
Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
// A confidence level on the match, ranging from 0 (no confidence) to
// 1 (full confidence).
Score float32 `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
// The resource name of the image from the product that is the closest match
// to the query.
Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProductSearchResults_Result) Reset() { *m = ProductSearchResults_Result{} }
func (m *ProductSearchResults_Result) String() string { return proto.CompactTextString(m) }
func (*ProductSearchResults_Result) ProtoMessage() {}
func (*ProductSearchResults_Result) Descriptor() ([]byte, []int) {
return fileDescriptor_product_search_ab4ebb8085b92f42, []int{1, 0}
}
func (m *ProductSearchResults_Result) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProductSearchResults_Result.Unmarshal(m, b)
}
func (m *ProductSearchResults_Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProductSearchResults_Result.Marshal(b, m, deterministic)
}
func (dst *ProductSearchResults_Result) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProductSearchResults_Result.Merge(dst, src)
}
func (m *ProductSearchResults_Result) XXX_Size() int {
return xxx_messageInfo_ProductSearchResults_Result.Size(m)
}
func (m *ProductSearchResults_Result) XXX_DiscardUnknown() {
xxx_messageInfo_ProductSearchResults_Result.DiscardUnknown(m)
}
var xxx_messageInfo_ProductSearchResults_Result proto.InternalMessageInfo
func (m *ProductSearchResults_Result) GetProduct() *Product {
if m != nil {
return m.Product
}
return nil
}
func (m *ProductSearchResults_Result) GetScore() float32 {
if m != nil {
return m.Score
}
return 0
}
func (m *ProductSearchResults_Result) GetImage() string {
if m != nil {
return m.Image
}
return ""
}
// Information about the products similar to a single product in a query
// image.
type ProductSearchResults_GroupedResult struct {
// The bounding polygon around the product detected in the query image.
BoundingPoly *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_poly,json=boundingPoly,proto3" json:"bounding_poly,omitempty"`
// List of results, one for each product match.
Results []*ProductSearchResults_Result `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ProductSearchResults_GroupedResult) Reset() { *m = ProductSearchResults_GroupedResult{} }
func (m *ProductSearchResults_GroupedResult) String() string { return proto.CompactTextString(m) }
func (*ProductSearchResults_GroupedResult) ProtoMessage() {}
func (*ProductSearchResults_GroupedResult) Descriptor() ([]byte, []int) {
return fileDescriptor_product_search_ab4ebb8085b92f42, []int{1, 1}
}
func (m *ProductSearchResults_GroupedResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ProductSearchResults_GroupedResult.Unmarshal(m, b)
}
func (m *ProductSearchResults_GroupedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ProductSearchResults_GroupedResult.Marshal(b, m, deterministic)
}
func (dst *ProductSearchResults_GroupedResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_ProductSearchResults_GroupedResult.Merge(dst, src)
}
func (m *ProductSearchResults_GroupedResult) XXX_Size() int {
return xxx_messageInfo_ProductSearchResults_GroupedResult.Size(m)
}
func (m *ProductSearchResults_GroupedResult) XXX_DiscardUnknown() {
xxx_messageInfo_ProductSearchResults_GroupedResult.DiscardUnknown(m)
}
var xxx_messageInfo_ProductSearchResults_GroupedResult proto.InternalMessageInfo
func (m *ProductSearchResults_GroupedResult) GetBoundingPoly() *BoundingPoly {
if m != nil {
return m.BoundingPoly
}
return nil
}
func (m *ProductSearchResults_GroupedResult) GetResults() []*ProductSearchResults_Result {
if m != nil {
return m.Results
}
return nil
}
func init() {
proto.RegisterType((*ProductSearchParams)(nil), "google.cloud.vision.v1.ProductSearchParams")
proto.RegisterType((*ProductSearchResults)(nil), "google.cloud.vision.v1.ProductSearchResults")
proto.RegisterType((*ProductSearchResults_Result)(nil), "google.cloud.vision.v1.ProductSearchResults.Result")
proto.RegisterType((*ProductSearchResults_GroupedResult)(nil), "google.cloud.vision.v1.ProductSearchResults.GroupedResult")
}
func init() {
proto.RegisterFile("google/cloud/vision/v1/product_search.proto", fileDescriptor_product_search_ab4ebb8085b92f42)
}
var fileDescriptor_product_search_ab4ebb8085b92f42 = []byte{
// 485 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0xcf, 0x6f, 0xd3, 0x30,
0x14, 0xc7, 0x95, 0x76, 0x4b, 0xa9, 0xcb, 0x0e, 0x98, 0x31, 0xa2, 0x08, 0xa9, 0xd5, 0x04, 0x52,
0x25, 0x84, 0xa3, 0xad, 0xa7, 0x01, 0xa7, 0xee, 0x30, 0x71, 0x00, 0x55, 0x01, 0x71, 0xe0, 0x12,
0xb9, 0x89, 0x67, 0x2c, 0x25, 0x7e, 0x91, 0xed, 0x54, 0x94, 0x3f, 0x87, 0x1b, 0x47, 0xfe, 0x0b,
0xfe, 0x24, 0x8e, 0xa8, 0xfe, 0x01, 0x2b, 0xac, 0xe2, 0xc7, 0x4e, 0xc9, 0xb3, 0xbf, 0xef, 0xf3,
0xfc, 0x7d, 0x7e, 0x46, 0x8f, 0x39, 0x00, 0xaf, 0x59, 0x56, 0xd6, 0xd0, 0x55, 0xd9, 0x4a, 0x68,
0x01, 0x32, 0x5b, 0x9d, 0x64, 0xad, 0x82, 0xaa, 0x2b, 0x4d, 0xa1, 0x19, 0x55, 0xe5, 0x7b, 0xd2,
0x2a, 0x30, 0x80, 0x8f, 0x9c, 0x98, 0x58, 0x31, 0x71, 0x62, 0xb2, 0x3a, 0x49, 0x1f, 0x78, 0x08,
0x6d, 0x45, 0x46, 0xa5, 0x04, 0x43, 0x8d, 0x00, 0xa9, 0x5d, 0x56, 0xfa, 0x68, 0x47, 0x09, 0xce,
0xa0, 0x61, 0x46, 0xad, 0xbd, 0x6c, 0xf6, 0x57, 0x27, 0x29, 0x34, 0x53, 0x2b, 0x51, 0x32, 0x9f,
0x34, 0xf6, 0x49, 0x36, 0x5a, 0x76, 0x97, 0x99, 0x11, 0x0d, 0xd3, 0x86, 0x36, 0xad, 0x13, 0x1c,
0x7f, 0x8d, 0xd0, 0xdd, 0x85, 0x23, 0xbc, 0xb6, 0x80, 0x05, 0x55, 0xb4, 0xd1, 0xf8, 0x05, 0x3a,
0x58, 0x42, 0x27, 0x2b, 0x21, 0x79, 0xd1, 0x42, 0xbd, 0x4e, 0x86, 0x93, 0x68, 0x3a, 0x3a, 0x7d,
0x48, 0xae, 0xb7, 0x48, 0xe6, 0x5e, 0xbc, 0x80, 0x7a, 0x9d, 0xdf, 0x5e, 0x5e, 0x89, 0xf0, 0x18,
0x8d, 0x7e, 0x9e, 0xd1, 0x24, 0xf1, 0x24, 0x9a, 0x0e, 0x73, 0xd4, 0x86, 0xa2, 0x06, 0x3f, 0x41,
0x38, 0x08, 0x4a, 0x6a, 0x18, 0x07, 0x25, 0x98, 0x4e, 0x06, 0x93, 0xfe, 0x74, 0x98, 0xdf, 0xf1,
0x3b, 0xe7, 0x3f, 0x36, 0xf0, 0x11, 0x8a, 0x2f, 0x45, 0x6d, 0x98, 0x4a, 0x6e, 0x59, 0x94, 0x8f,
0x8e, 0xbf, 0xec, 0xa1, 0xc3, 0x2d, 0x2b, 0x39, 0xd3, 0x5d, 0x6d, 0x34, 0x3e, 0x43, 0x48, 0xc8,
0x8a, 0x7d, 0x28, 0x36, 0xe6, 0x93, 0x9e, 0x35, 0x92, 0x06, 0x23, 0xa1, 0x33, 0xe4, 0x4d, 0xe8,
0x4c, 0x3e, 0xb4, 0xea, 0x4d, 0x8c, 0x5f, 0xa2, 0x81, 0x72, 0x94, 0x64, 0x7f, 0xd2, 0x9f, 0x8e,
0x4e, 0x67, 0xbb, 0x1a, 0x70, 0x5d, 0x65, 0xe2, 0xbe, 0x79, 0x60, 0x60, 0x85, 0xee, 0x07, 0xa7,
0x5c, 0x41, 0xd7, 0xb2, 0xaa, 0x08, 0xf8, 0xd8, 0xe2, 0x9f, 0xfe, 0x13, 0xfe, 0xc2, 0x31, 0x7c,
0x95, 0x7b, 0x1e, 0xbd, 0xb5, 0xaa, 0x53, 0x40, 0xb1, 0xfb, 0xc5, 0x67, 0x68, 0xe0, 0x25, 0x49,
0x64, 0x9b, 0x30, 0xfe, 0x43, 0xb5, 0x3c, 0xe8, 0xf1, 0x21, 0xda, 0xd7, 0x25, 0x28, 0xd7, 0xbd,
0x5e, 0xee, 0x82, 0xcd, 0xaa, 0x68, 0x28, 0x67, 0x49, 0xdf, 0x5e, 0x84, 0x0b, 0xd2, 0xcf, 0x11,
0x3a, 0xd8, 0x3a, 0xc3, 0xef, 0xc3, 0x14, 0xfd, 0xf7, 0x30, 0x5d, 0xb9, 0x90, 0xde, 0xcd, 0x2f,
0x64, 0xfe, 0x11, 0xa5, 0x25, 0x34, 0x3b, 0x10, 0x73, 0xbc, 0xfd, 0x32, 0x36, 0x93, 0xb2, 0x88,
0xde, 0x3d, 0xf7, 0x6a, 0x0e, 0x35, 0x95, 0x9c, 0x80, 0xe2, 0x19, 0x67, 0xd2, 0xce, 0x51, 0xe6,
0xb6, 0x68, 0x2b, 0xf4, 0xaf, 0xef, 0xf4, 0x99, 0xfb, 0xfb, 0x16, 0x45, 0x9f, 0x7a, 0x7b, 0x17,
0xe7, 0x6f, 0x5f, 0x2d, 0x63, 0x9b, 0x32, 0xfb, 0x1e, 0x00, 0x00, 0xff, 0xff, 0x93, 0xfe, 0xaa,
0xbb, 0x63, 0x04, 0x00, 0x00,
}

File diff suppressed because it is too large Load Diff

View File

@ -59,7 +59,7 @@ func (x TextAnnotation_DetectedBreak_BreakType) String() string {
return proto.EnumName(TextAnnotation_DetectedBreak_BreakType_name, int32(x))
}
func (TextAnnotation_DetectedBreak_BreakType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{0, 1, 0}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{0, 1, 0}
}
// Type of a block (text, image etc) as identified by OCR.
@ -101,7 +101,7 @@ func (x Block_BlockType) String() string {
return proto.EnumName(Block_BlockType_name, int32(x))
}
func (Block_BlockType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{2, 0}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{2, 0}
}
// TextAnnotation contains a structured representation of OCR extracted text.
@ -125,7 +125,7 @@ func (m *TextAnnotation) Reset() { *m = TextAnnotation{} }
func (m *TextAnnotation) String() string { return proto.CompactTextString(m) }
func (*TextAnnotation) ProtoMessage() {}
func (*TextAnnotation) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{0}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{0}
}
func (m *TextAnnotation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TextAnnotation.Unmarshal(m, b)
@ -176,7 +176,7 @@ func (m *TextAnnotation_DetectedLanguage) Reset() { *m = TextAnnotation_
func (m *TextAnnotation_DetectedLanguage) String() string { return proto.CompactTextString(m) }
func (*TextAnnotation_DetectedLanguage) ProtoMessage() {}
func (*TextAnnotation_DetectedLanguage) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{0, 0}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{0, 0}
}
func (m *TextAnnotation_DetectedLanguage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TextAnnotation_DetectedLanguage.Unmarshal(m, b)
@ -225,7 +225,7 @@ func (m *TextAnnotation_DetectedBreak) Reset() { *m = TextAnnotation_Det
func (m *TextAnnotation_DetectedBreak) String() string { return proto.CompactTextString(m) }
func (*TextAnnotation_DetectedBreak) ProtoMessage() {}
func (*TextAnnotation_DetectedBreak) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{0, 1}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{0, 1}
}
func (m *TextAnnotation_DetectedBreak) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TextAnnotation_DetectedBreak.Unmarshal(m, b)
@ -274,7 +274,7 @@ func (m *TextAnnotation_TextProperty) Reset() { *m = TextAnnotation_Text
func (m *TextAnnotation_TextProperty) String() string { return proto.CompactTextString(m) }
func (*TextAnnotation_TextProperty) ProtoMessage() {}
func (*TextAnnotation_TextProperty) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{0, 2}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{0, 2}
}
func (m *TextAnnotation_TextProperty) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TextAnnotation_TextProperty.Unmarshal(m, b)
@ -331,7 +331,7 @@ func (m *Page) Reset() { *m = Page{} }
func (m *Page) String() string { return proto.CompactTextString(m) }
func (*Page) ProtoMessage() {}
func (*Page) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{1}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{1}
}
func (m *Page) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Page.Unmarshal(m, b)
@ -409,7 +409,7 @@ type Block struct {
// | |
// 1----0
//
// and the vertice order will still be (0, 1, 2, 3).
// and the vertex order will still be (0, 1, 2, 3).
BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
// List of paragraphs in this block (if this blocks is of type text).
Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs,proto3" json:"paragraphs,omitempty"`
@ -426,7 +426,7 @@ func (m *Block) Reset() { *m = Block{} }
func (m *Block) String() string { return proto.CompactTextString(m) }
func (*Block) ProtoMessage() {}
func (*Block) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{2}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{2}
}
func (m *Block) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Block.Unmarshal(m, b)
@ -499,7 +499,7 @@ type Paragraph struct {
// 2----3
// | |
// 1----0
// and the vertice order will still be (0, 1, 2, 3).
// and the vertex order will still be (0, 1, 2, 3).
BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
// List of words in this paragraph.
Words []*Word `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"`
@ -514,7 +514,7 @@ func (m *Paragraph) Reset() { *m = Paragraph{} }
func (m *Paragraph) String() string { return proto.CompactTextString(m) }
func (*Paragraph) ProtoMessage() {}
func (*Paragraph) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{3}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{3}
}
func (m *Paragraph) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Paragraph.Unmarshal(m, b)
@ -580,7 +580,7 @@ type Word struct {
// 2----3
// | |
// 1----0
// and the vertice order will still be (0, 1, 2, 3).
// and the vertex order will still be (0, 1, 2, 3).
BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
// List of symbols in the word.
// The order of the symbols follows the natural reading order.
@ -596,7 +596,7 @@ func (m *Word) Reset() { *m = Word{} }
func (m *Word) String() string { return proto.CompactTextString(m) }
func (*Word) ProtoMessage() {}
func (*Word) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{4}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{4}
}
func (m *Word) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Word.Unmarshal(m, b)
@ -677,7 +677,7 @@ func (m *Symbol) Reset() { *m = Symbol{} }
func (m *Symbol) String() string { return proto.CompactTextString(m) }
func (*Symbol) ProtoMessage() {}
func (*Symbol) Descriptor() ([]byte, []int) {
return fileDescriptor_text_annotation_5ca1a16a28ef616a, []int{5}
return fileDescriptor_text_annotation_3bf7848435d00cc6, []int{5}
}
func (m *Symbol) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Symbol.Unmarshal(m, b)
@ -740,10 +740,10 @@ func init() {
}
func init() {
proto.RegisterFile("google/cloud/vision/v1/text_annotation.proto", fileDescriptor_text_annotation_5ca1a16a28ef616a)
proto.RegisterFile("google/cloud/vision/v1/text_annotation.proto", fileDescriptor_text_annotation_3bf7848435d00cc6)
}
var fileDescriptor_text_annotation_5ca1a16a28ef616a = []byte{
var fileDescriptor_text_annotation_3bf7848435d00cc6 = []byte{
// 774 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcf, 0x6f, 0xd3, 0x58,
0x10, 0x5e, 0x27, 0x76, 0x1a, 0x4f, 0xda, 0xc8, 0xfb, 0x76, 0x55, 0x45, 0xd9, 0x6e, 0xd5, 0xcd,

View File

@ -34,7 +34,8 @@ type WebDetection struct {
PagesWithMatchingImages []*WebDetection_WebPage `protobuf:"bytes,4,rep,name=pages_with_matching_images,json=pagesWithMatchingImages,proto3" json:"pages_with_matching_images,omitempty"`
// The visually similar image results.
VisuallySimilarImages []*WebDetection_WebImage `protobuf:"bytes,6,rep,name=visually_similar_images,json=visuallySimilarImages,proto3" json:"visually_similar_images,omitempty"`
// Best guess text labels for the request image.
// The service's best guess as to the topic of the request image.
// Inferred from similar images on the open web.
BestGuessLabels []*WebDetection_WebLabel `protobuf:"bytes,8,rep,name=best_guess_labels,json=bestGuessLabels,proto3" json:"best_guess_labels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@ -45,7 +46,7 @@ func (m *WebDetection) Reset() { *m = WebDetection{} }
func (m *WebDetection) String() string { return proto.CompactTextString(m) }
func (*WebDetection) ProtoMessage() {}
func (*WebDetection) Descriptor() ([]byte, []int) {
return fileDescriptor_web_detection_cd347bf1f824d1ac, []int{0}
return fileDescriptor_web_detection_dedc4c65ef68a35a, []int{0}
}
func (m *WebDetection) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetection.Unmarshal(m, b)
@ -125,7 +126,7 @@ func (m *WebDetection_WebEntity) Reset() { *m = WebDetection_WebEntity{}
func (m *WebDetection_WebEntity) String() string { return proto.CompactTextString(m) }
func (*WebDetection_WebEntity) ProtoMessage() {}
func (*WebDetection_WebEntity) Descriptor() ([]byte, []int) {
return fileDescriptor_web_detection_cd347bf1f824d1ac, []int{0, 0}
return fileDescriptor_web_detection_dedc4c65ef68a35a, []int{0, 0}
}
func (m *WebDetection_WebEntity) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetection_WebEntity.Unmarshal(m, b)
@ -181,7 +182,7 @@ func (m *WebDetection_WebImage) Reset() { *m = WebDetection_WebImage{} }
func (m *WebDetection_WebImage) String() string { return proto.CompactTextString(m) }
func (*WebDetection_WebImage) ProtoMessage() {}
func (*WebDetection_WebImage) Descriptor() ([]byte, []int) {
return fileDescriptor_web_detection_cd347bf1f824d1ac, []int{0, 1}
return fileDescriptor_web_detection_dedc4c65ef68a35a, []int{0, 1}
}
func (m *WebDetection_WebImage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetection_WebImage.Unmarshal(m, b)
@ -240,7 +241,7 @@ func (m *WebDetection_WebPage) Reset() { *m = WebDetection_WebPage{} }
func (m *WebDetection_WebPage) String() string { return proto.CompactTextString(m) }
func (*WebDetection_WebPage) ProtoMessage() {}
func (*WebDetection_WebPage) Descriptor() ([]byte, []int) {
return fileDescriptor_web_detection_cd347bf1f824d1ac, []int{0, 2}
return fileDescriptor_web_detection_dedc4c65ef68a35a, []int{0, 2}
}
func (m *WebDetection_WebPage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetection_WebPage.Unmarshal(m, b)
@ -312,7 +313,7 @@ func (m *WebDetection_WebLabel) Reset() { *m = WebDetection_WebLabel{} }
func (m *WebDetection_WebLabel) String() string { return proto.CompactTextString(m) }
func (*WebDetection_WebLabel) ProtoMessage() {}
func (*WebDetection_WebLabel) Descriptor() ([]byte, []int) {
return fileDescriptor_web_detection_cd347bf1f824d1ac, []int{0, 3}
return fileDescriptor_web_detection_dedc4c65ef68a35a, []int{0, 3}
}
func (m *WebDetection_WebLabel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WebDetection_WebLabel.Unmarshal(m, b)
@ -355,10 +356,10 @@ func init() {
}
func init() {
proto.RegisterFile("google/cloud/vision/v1/web_detection.proto", fileDescriptor_web_detection_cd347bf1f824d1ac)
proto.RegisterFile("google/cloud/vision/v1/web_detection.proto", fileDescriptor_web_detection_dedc4c65ef68a35a)
}
var fileDescriptor_web_detection_cd347bf1f824d1ac = []byte{
var fileDescriptor_web_detection_dedc4c65ef68a35a = []byte{
// 512 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0x51, 0x6f, 0xd3, 0x30,
0x10, 0xc7, 0x95, 0xb6, 0x1b, 0xad, 0x5b, 0x04, 0xb3, 0x06, 0x8b, 0x02, 0x48, 0x15, 0xbc, 0x54,