// Custom options for defining: // - Maximum size of string/bytes // - Maximum number of elements in array // // These are used by nanopb to generate statically allocable structures // for memory-limited environments. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.21.12 // source: protobufs/nanopb.proto package protobufs import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" descriptorpb "google.golang.org/protobuf/types/descriptorpb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type FieldType int32 const ( FieldType_FT_DEFAULT FieldType = 0 // Automatically decide field type, generate static field if possible. FieldType_FT_CALLBACK FieldType = 1 // Always generate a callback field. FieldType_FT_POINTER FieldType = 4 // Always generate a dynamically allocated field. FieldType_FT_STATIC FieldType = 2 // Generate a static field or raise an exception if not possible. FieldType_FT_IGNORE FieldType = 3 // Ignore the field completely. FieldType_FT_INLINE FieldType = 5 // Legacy option, use the separate 'fixed_length' option instead ) // Enum value maps for FieldType. var ( FieldType_name = map[int32]string{ 0: "FT_DEFAULT", 1: "FT_CALLBACK", 4: "FT_POINTER", 2: "FT_STATIC", 3: "FT_IGNORE", 5: "FT_INLINE", } FieldType_value = map[string]int32{ "FT_DEFAULT": 0, "FT_CALLBACK": 1, "FT_POINTER": 4, "FT_STATIC": 2, "FT_IGNORE": 3, "FT_INLINE": 5, } ) func (x FieldType) Enum() *FieldType { p := new(FieldType) *p = x return p } func (x FieldType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FieldType) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_nanopb_proto_enumTypes[0].Descriptor() } func (FieldType) Type() protoreflect.EnumType { return &file_protobufs_nanopb_proto_enumTypes[0] } func (x FieldType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *FieldType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = FieldType(num) return nil } // Deprecated: Use FieldType.Descriptor instead. func (FieldType) EnumDescriptor() ([]byte, []int) { return file_protobufs_nanopb_proto_rawDescGZIP(), []int{0} } type IntSize int32 const ( IntSize_IS_DEFAULT IntSize = 0 // Default, 32/64bit based on type in .proto IntSize_IS_8 IntSize = 8 IntSize_IS_16 IntSize = 16 IntSize_IS_32 IntSize = 32 IntSize_IS_64 IntSize = 64 ) // Enum value maps for IntSize. var ( IntSize_name = map[int32]string{ 0: "IS_DEFAULT", 8: "IS_8", 16: "IS_16", 32: "IS_32", 64: "IS_64", } IntSize_value = map[string]int32{ "IS_DEFAULT": 0, "IS_8": 8, "IS_16": 16, "IS_32": 32, "IS_64": 64, } ) func (x IntSize) Enum() *IntSize { p := new(IntSize) *p = x return p } func (x IntSize) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (IntSize) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_nanopb_proto_enumTypes[1].Descriptor() } func (IntSize) Type() protoreflect.EnumType { return &file_protobufs_nanopb_proto_enumTypes[1] } func (x IntSize) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *IntSize) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = IntSize(num) return nil } // Deprecated: Use IntSize.Descriptor instead. func (IntSize) EnumDescriptor() ([]byte, []int) { return file_protobufs_nanopb_proto_rawDescGZIP(), []int{1} } type TypenameMangling int32 const ( TypenameMangling_M_NONE TypenameMangling = 0 // Default, no typename mangling TypenameMangling_M_STRIP_PACKAGE TypenameMangling = 1 // Strip current package name TypenameMangling_M_FLATTEN TypenameMangling = 2 // Only use last path component TypenameMangling_M_PACKAGE_INITIALS TypenameMangling = 3 // Replace the package name by the initials ) // Enum value maps for TypenameMangling. var ( TypenameMangling_name = map[int32]string{ 0: "M_NONE", 1: "M_STRIP_PACKAGE", 2: "M_FLATTEN", 3: "M_PACKAGE_INITIALS", } TypenameMangling_value = map[string]int32{ "M_NONE": 0, "M_STRIP_PACKAGE": 1, "M_FLATTEN": 2, "M_PACKAGE_INITIALS": 3, } ) func (x TypenameMangling) Enum() *TypenameMangling { p := new(TypenameMangling) *p = x return p } func (x TypenameMangling) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TypenameMangling) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_nanopb_proto_enumTypes[2].Descriptor() } func (TypenameMangling) Type() protoreflect.EnumType { return &file_protobufs_nanopb_proto_enumTypes[2] } func (x TypenameMangling) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *TypenameMangling) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = TypenameMangling(num) return nil } // Deprecated: Use TypenameMangling.Descriptor instead. func (TypenameMangling) EnumDescriptor() ([]byte, []int) { return file_protobufs_nanopb_proto_rawDescGZIP(), []int{2} } type DescriptorSize int32 const ( DescriptorSize_DS_AUTO DescriptorSize = 0 // Select minimal size based on field type DescriptorSize_DS_1 DescriptorSize = 1 // 1 word; up to 15 byte fields, no arrays DescriptorSize_DS_2 DescriptorSize = 2 // 2 words; up to 4095 byte fields, 4095 entry arrays DescriptorSize_DS_4 DescriptorSize = 4 // 4 words; up to 2^32-1 byte fields, 2^16-1 entry arrays DescriptorSize_DS_8 DescriptorSize = 8 // 8 words; up to 2^32-1 entry arrays ) // Enum value maps for DescriptorSize. var ( DescriptorSize_name = map[int32]string{ 0: "DS_AUTO", 1: "DS_1", 2: "DS_2", 4: "DS_4", 8: "DS_8", } DescriptorSize_value = map[string]int32{ "DS_AUTO": 0, "DS_1": 1, "DS_2": 2, "DS_4": 4, "DS_8": 8, } ) func (x DescriptorSize) Enum() *DescriptorSize { p := new(DescriptorSize) *p = x return p } func (x DescriptorSize) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DescriptorSize) Descriptor() protoreflect.EnumDescriptor { return file_protobufs_nanopb_proto_enumTypes[3].Descriptor() } func (DescriptorSize) Type() protoreflect.EnumType { return &file_protobufs_nanopb_proto_enumTypes[3] } func (x DescriptorSize) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *DescriptorSize) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = DescriptorSize(num) return nil } // Deprecated: Use DescriptorSize.Descriptor instead. func (DescriptorSize) EnumDescriptor() ([]byte, []int) { return file_protobufs_nanopb_proto_rawDescGZIP(), []int{3} } // This is the inner options message, which basically defines options for // a field. When it is used in message or file scope, it applies to all // fields. type NanoPBOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Allocated size for 'bytes' and 'string' fields. // For string fields, this should include the space for null terminator. MaxSize *int32 `protobuf:"varint,1,opt,name=max_size,json=maxSize" json:"max_size,omitempty"` // Maximum length for 'string' fields. Setting this is equivalent // to setting max_size to a value of length+1. MaxLength *int32 `protobuf:"varint,14,opt,name=max_length,json=maxLength" json:"max_length,omitempty"` // Allocated number of entries in arrays ('repeated' fields) MaxCount *int32 `protobuf:"varint,2,opt,name=max_count,json=maxCount" json:"max_count,omitempty"` // Size of integer fields. Can save some memory if you don't need // full 32 bits for the value. IntSize *IntSize `protobuf:"varint,7,opt,name=int_size,json=intSize,enum=IntSize,def=0" json:"int_size,omitempty"` // Force type of field (callback or static allocation) Type *FieldType `protobuf:"varint,3,opt,name=type,enum=FieldType,def=0" json:"type,omitempty"` // Use long names for enums, i.e. EnumName_EnumValue. LongNames *bool `protobuf:"varint,4,opt,name=long_names,json=longNames,def=1" json:"long_names,omitempty"` // Add 'packed' attribute to generated structs. // Note: this cannot be used on CPUs that break on unaligned // accesses to variables. PackedStruct *bool `protobuf:"varint,5,opt,name=packed_struct,json=packedStruct,def=0" json:"packed_struct,omitempty"` // Add 'packed' attribute to generated enums. PackedEnum *bool `protobuf:"varint,10,opt,name=packed_enum,json=packedEnum,def=0" json:"packed_enum,omitempty"` // Skip this message SkipMessage *bool `protobuf:"varint,6,opt,name=skip_message,json=skipMessage,def=0" json:"skip_message,omitempty"` // Generate oneof fields as normal optional fields instead of union. NoUnions *bool `protobuf:"varint,8,opt,name=no_unions,json=noUnions,def=0" json:"no_unions,omitempty"` // integer type tag for a message Msgid *uint32 `protobuf:"varint,9,opt,name=msgid" json:"msgid,omitempty"` // decode oneof as anonymous union AnonymousOneof *bool `protobuf:"varint,11,opt,name=anonymous_oneof,json=anonymousOneof,def=0" json:"anonymous_oneof,omitempty"` // Proto3 singular field does not generate a "has_" flag Proto3 *bool `protobuf:"varint,12,opt,name=proto3,def=0" json:"proto3,omitempty"` // Force proto3 messages to have no "has_" flag. // This was default behavior until nanopb-0.4.0. Proto3SingularMsgs *bool `protobuf:"varint,21,opt,name=proto3_singular_msgs,json=proto3SingularMsgs,def=0" json:"proto3_singular_msgs,omitempty"` // Generate an enum->string mapping function (can take up lots of space). EnumToString *bool `protobuf:"varint,13,opt,name=enum_to_string,json=enumToString,def=0" json:"enum_to_string,omitempty"` // Generate bytes arrays with fixed length FixedLength *bool `protobuf:"varint,15,opt,name=fixed_length,json=fixedLength,def=0" json:"fixed_length,omitempty"` // Generate repeated field with fixed count FixedCount *bool `protobuf:"varint,16,opt,name=fixed_count,json=fixedCount,def=0" json:"fixed_count,omitempty"` // Generate message-level callback that is called before decoding submessages. // This can be used to set callback fields for submsgs inside oneofs. SubmsgCallback *bool `protobuf:"varint,22,opt,name=submsg_callback,json=submsgCallback,def=0" json:"submsg_callback,omitempty"` // Shorten or remove package names from type names. // This option applies only on the file level. MangleNames *TypenameMangling `protobuf:"varint,17,opt,name=mangle_names,json=mangleNames,enum=TypenameMangling,def=0" json:"mangle_names,omitempty"` // Data type for storage associated with callback fields. CallbackDatatype *string `protobuf:"bytes,18,opt,name=callback_datatype,json=callbackDatatype,def=pb_callback_t" json:"callback_datatype,omitempty"` // Callback function used for encoding and decoding. // Prior to nanopb-0.4.0, the callback was specified in per-field pb_callback_t // structure. This is still supported, but does not work inside e.g. oneof or pointer // fields. Instead, a new method allows specifying a per-message callback that // will be called for all callback fields in a message type. CallbackFunction *string `protobuf:"bytes,19,opt,name=callback_function,json=callbackFunction,def=pb_default_field_callback" json:"callback_function,omitempty"` // Select the size of field descriptors. This option has to be defined // for the whole message, not per-field. Usually automatic selection is // ok, but if it results in compilation errors you can increase the field // size here. Descriptorsize *DescriptorSize `protobuf:"varint,20,opt,name=descriptorsize,enum=DescriptorSize,def=0" json:"descriptorsize,omitempty"` // Set default value for has_ fields. DefaultHas *bool `protobuf:"varint,23,opt,name=default_has,json=defaultHas,def=0" json:"default_has,omitempty"` // Extra files to include in generated `.pb.h` Include []string `protobuf:"bytes,24,rep,name=include" json:"include,omitempty"` // Automatic includes to exclude from generated `.pb.h` // Same as nanopb_generator.py command line flag -x. Exclude []string `protobuf:"bytes,26,rep,name=exclude" json:"exclude,omitempty"` // Package name that applies only for nanopb. Package *string `protobuf:"bytes,25,opt,name=package" json:"package,omitempty"` // Override type of the field in generated C code. Only to be used with related field types TypeOverride *descriptorpb.FieldDescriptorProto_Type `protobuf:"varint,27,opt,name=type_override,json=typeOverride,enum=google.protobuf.FieldDescriptorProto_Type" json:"type_override,omitempty"` // Due to historical reasons, nanopb orders fields in structs by their tag number // instead of the order in .proto. Set this to false to keep the .proto order. // The default value will probably change to false in nanopb-0.5.0. SortByTag *bool `protobuf:"varint,28,opt,name=sort_by_tag,json=sortByTag,def=1" json:"sort_by_tag,omitempty"` // Set the FT_DEFAULT field conversion strategy. // A field that can become a static member of a c struct (e.g. int, bool, etc) // will be a a static field. // Fields with dynamic length are converted to either a pointer or a callback. FallbackType *FieldType `protobuf:"varint,29,opt,name=fallback_type,json=fallbackType,enum=FieldType,def=1" json:"fallback_type,omitempty"` } // Default values for NanoPBOptions fields. const ( Default_NanoPBOptions_IntSize = IntSize_IS_DEFAULT Default_NanoPBOptions_Type = FieldType_FT_DEFAULT Default_NanoPBOptions_LongNames = bool(true) Default_NanoPBOptions_PackedStruct = bool(false) Default_NanoPBOptions_PackedEnum = bool(false) Default_NanoPBOptions_SkipMessage = bool(false) Default_NanoPBOptions_NoUnions = bool(false) Default_NanoPBOptions_AnonymousOneof = bool(false) Default_NanoPBOptions_Proto3 = bool(false) Default_NanoPBOptions_Proto3SingularMsgs = bool(false) Default_NanoPBOptions_EnumToString = bool(false) Default_NanoPBOptions_FixedLength = bool(false) Default_NanoPBOptions_FixedCount = bool(false) Default_NanoPBOptions_SubmsgCallback = bool(false) Default_NanoPBOptions_MangleNames = TypenameMangling_M_NONE Default_NanoPBOptions_CallbackDatatype = string("pb_callback_t") Default_NanoPBOptions_CallbackFunction = string("pb_default_field_callback") Default_NanoPBOptions_Descriptorsize = DescriptorSize_DS_AUTO Default_NanoPBOptions_DefaultHas = bool(false) Default_NanoPBOptions_SortByTag = bool(true) Default_NanoPBOptions_FallbackType = FieldType_FT_CALLBACK ) func (x *NanoPBOptions) Reset() { *x = NanoPBOptions{} if protoimpl.UnsafeEnabled { mi := &file_protobufs_nanopb_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NanoPBOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*NanoPBOptions) ProtoMessage() {} func (x *NanoPBOptions) ProtoReflect() protoreflect.Message { mi := &file_protobufs_nanopb_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NanoPBOptions.ProtoReflect.Descriptor instead. func (*NanoPBOptions) Descriptor() ([]byte, []int) { return file_protobufs_nanopb_proto_rawDescGZIP(), []int{0} } func (x *NanoPBOptions) GetMaxSize() int32 { if x != nil && x.MaxSize != nil { return *x.MaxSize } return 0 } func (x *NanoPBOptions) GetMaxLength() int32 { if x != nil && x.MaxLength != nil { return *x.MaxLength } return 0 } func (x *NanoPBOptions) GetMaxCount() int32 { if x != nil && x.MaxCount != nil { return *x.MaxCount } return 0 } func (x *NanoPBOptions) GetIntSize() IntSize { if x != nil && x.IntSize != nil { return *x.IntSize } return Default_NanoPBOptions_IntSize } func (x *NanoPBOptions) GetType() FieldType { if x != nil && x.Type != nil { return *x.Type } return Default_NanoPBOptions_Type } func (x *NanoPBOptions) GetLongNames() bool { if x != nil && x.LongNames != nil { return *x.LongNames } return Default_NanoPBOptions_LongNames } func (x *NanoPBOptions) GetPackedStruct() bool { if x != nil && x.PackedStruct != nil { return *x.PackedStruct } return Default_NanoPBOptions_PackedStruct } func (x *NanoPBOptions) GetPackedEnum() bool { if x != nil && x.PackedEnum != nil { return *x.PackedEnum } return Default_NanoPBOptions_PackedEnum } func (x *NanoPBOptions) GetSkipMessage() bool { if x != nil && x.SkipMessage != nil { return *x.SkipMessage } return Default_NanoPBOptions_SkipMessage } func (x *NanoPBOptions) GetNoUnions() bool { if x != nil && x.NoUnions != nil { return *x.NoUnions } return Default_NanoPBOptions_NoUnions } func (x *NanoPBOptions) GetMsgid() uint32 { if x != nil && x.Msgid != nil { return *x.Msgid } return 0 } func (x *NanoPBOptions) GetAnonymousOneof() bool { if x != nil && x.AnonymousOneof != nil { return *x.AnonymousOneof } return Default_NanoPBOptions_AnonymousOneof } func (x *NanoPBOptions) GetProto3() bool { if x != nil && x.Proto3 != nil { return *x.Proto3 } return Default_NanoPBOptions_Proto3 } func (x *NanoPBOptions) GetProto3SingularMsgs() bool { if x != nil && x.Proto3SingularMsgs != nil { return *x.Proto3SingularMsgs } return Default_NanoPBOptions_Proto3SingularMsgs } func (x *NanoPBOptions) GetEnumToString() bool { if x != nil && x.EnumToString != nil { return *x.EnumToString } return Default_NanoPBOptions_EnumToString } func (x *NanoPBOptions) GetFixedLength() bool { if x != nil && x.FixedLength != nil { return *x.FixedLength } return Default_NanoPBOptions_FixedLength } func (x *NanoPBOptions) GetFixedCount() bool { if x != nil && x.FixedCount != nil { return *x.FixedCount } return Default_NanoPBOptions_FixedCount } func (x *NanoPBOptions) GetSubmsgCallback() bool { if x != nil && x.SubmsgCallback != nil { return *x.SubmsgCallback } return Default_NanoPBOptions_SubmsgCallback } func (x *NanoPBOptions) GetMangleNames() TypenameMangling { if x != nil && x.MangleNames != nil { return *x.MangleNames } return Default_NanoPBOptions_MangleNames } func (x *NanoPBOptions) GetCallbackDatatype() string { if x != nil && x.CallbackDatatype != nil { return *x.CallbackDatatype } return Default_NanoPBOptions_CallbackDatatype } func (x *NanoPBOptions) GetCallbackFunction() string { if x != nil && x.CallbackFunction != nil { return *x.CallbackFunction } return Default_NanoPBOptions_CallbackFunction } func (x *NanoPBOptions) GetDescriptorsize() DescriptorSize { if x != nil && x.Descriptorsize != nil { return *x.Descriptorsize } return Default_NanoPBOptions_Descriptorsize } func (x *NanoPBOptions) GetDefaultHas() bool { if x != nil && x.DefaultHas != nil { return *x.DefaultHas } return Default_NanoPBOptions_DefaultHas } func (x *NanoPBOptions) GetInclude() []string { if x != nil { return x.Include } return nil } func (x *NanoPBOptions) GetExclude() []string { if x != nil { return x.Exclude } return nil } func (x *NanoPBOptions) GetPackage() string { if x != nil && x.Package != nil { return *x.Package } return "" } func (x *NanoPBOptions) GetTypeOverride() descriptorpb.FieldDescriptorProto_Type { if x != nil && x.TypeOverride != nil { return *x.TypeOverride } return descriptorpb.FieldDescriptorProto_Type(1) } func (x *NanoPBOptions) GetSortByTag() bool { if x != nil && x.SortByTag != nil { return *x.SortByTag } return Default_NanoPBOptions_SortByTag } func (x *NanoPBOptions) GetFallbackType() FieldType { if x != nil && x.FallbackType != nil { return *x.FallbackType } return Default_NanoPBOptions_FallbackType } var file_protobufs_nanopb_proto_extTypes = []protoimpl.ExtensionInfo{ { ExtendedType: (*descriptorpb.FileOptions)(nil), ExtensionType: (*NanoPBOptions)(nil), Field: 1010, Name: "nanopb_fileopt", Tag: "bytes,1010,opt,name=nanopb_fileopt", Filename: "protobufs/nanopb.proto", }, { ExtendedType: (*descriptorpb.MessageOptions)(nil), ExtensionType: (*NanoPBOptions)(nil), Field: 1010, Name: "nanopb_msgopt", Tag: "bytes,1010,opt,name=nanopb_msgopt", Filename: "protobufs/nanopb.proto", }, { ExtendedType: (*descriptorpb.EnumOptions)(nil), ExtensionType: (*NanoPBOptions)(nil), Field: 1010, Name: "nanopb_enumopt", Tag: "bytes,1010,opt,name=nanopb_enumopt", Filename: "protobufs/nanopb.proto", }, { ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*NanoPBOptions)(nil), Field: 1010, Name: "nanopb", Tag: "bytes,1010,opt,name=nanopb", Filename: "protobufs/nanopb.proto", }, } // Extension fields to descriptorpb.FileOptions. var ( // optional NanoPBOptions nanopb_fileopt = 1010; E_NanopbFileopt = &file_protobufs_nanopb_proto_extTypes[0] ) // Extension fields to descriptorpb.MessageOptions. var ( // optional NanoPBOptions nanopb_msgopt = 1010; E_NanopbMsgopt = &file_protobufs_nanopb_proto_extTypes[1] ) // Extension fields to descriptorpb.EnumOptions. var ( // optional NanoPBOptions nanopb_enumopt = 1010; E_NanopbEnumopt = &file_protobufs_nanopb_proto_extTypes[2] ) // Extension fields to descriptorpb.FieldOptions. var ( // optional NanoPBOptions nanopb = 1010; E_Nanopb = &file_protobufs_nanopb_proto_extTypes[3] ) var File_protobufs_nanopb_proto protoreflect.FileDescriptor var file_protobufs_nanopb_proto_rawDesc = []byte{ 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x0a, 0x0a, 0x0d, 0x4e, 0x61, 0x6e, 0x6f, 0x50, 0x42, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x08, 0x2e, 0x49, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x0a, 0x49, 0x53, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x0a, 0x46, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x26, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x6e, 0x6f, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x0f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x12, 0x1d, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x53, 0x69, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x6d, 0x73, 0x67, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x6d, 0x73, 0x67, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x06, 0x4d, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x11, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x0d, 0x70, 0x62, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x19, 0x70, 0x62, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x07, 0x44, 0x53, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x61, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x42, 0x79, 0x54, 0x61, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x0b, 0x46, 0x54, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x52, 0x0c, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x2a, 0x69, 0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x54, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x54, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x54, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x54, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x54, 0x5f, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x05, 0x2a, 0x44, 0x0a, 0x07, 0x49, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x53, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x53, 0x5f, 0x38, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x53, 0x5f, 0x31, 0x36, 0x10, 0x10, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x53, 0x5f, 0x33, 0x32, 0x10, 0x20, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x53, 0x5f, 0x36, 0x34, 0x10, 0x40, 0x2a, 0x5a, 0x0a, 0x10, 0x54, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x50, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x54, 0x54, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0x45, 0x0a, 0x0e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x53, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x53, 0x5f, 0x38, 0x10, 0x08, 0x3a, 0x54, 0x0a, 0x0e, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6f, 0x70, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x61, 0x6e, 0x6f, 0x50, 0x42, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x6f, 0x70, 0x74, 0x3a, 0x55, 0x0a, 0x0d, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x5f, 0x6d, 0x73, 0x67, 0x6f, 0x70, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x61, 0x6e, 0x6f, 0x50, 0x42, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x4d, 0x73, 0x67, 0x6f, 0x70, 0x74, 0x3a, 0x54, 0x0a, 0x0e, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x6f, 0x70, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x61, 0x6e, 0x6f, 0x50, 0x42, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x45, 0x6e, 0x75, 0x6d, 0x6f, 0x70, 0x74, 0x3a, 0x46, 0x0a, 0x06, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x61, 0x6e, 0x6f, 0x50, 0x42, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x06, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, 0x42, 0x1a, 0x0a, 0x18, 0x66, 0x69, 0x2e, 0x6b, 0x61, 0x70, 0x73, 0x69, 0x2e, 0x6b, 0x6f, 0x74, 0x69, 0x2e, 0x6a, 0x70, 0x61, 0x2e, 0x6e, 0x61, 0x6e, 0x6f, 0x70, 0x62, } var ( file_protobufs_nanopb_proto_rawDescOnce sync.Once file_protobufs_nanopb_proto_rawDescData = file_protobufs_nanopb_proto_rawDesc ) func file_protobufs_nanopb_proto_rawDescGZIP() []byte { file_protobufs_nanopb_proto_rawDescOnce.Do(func() { file_protobufs_nanopb_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobufs_nanopb_proto_rawDescData) }) return file_protobufs_nanopb_proto_rawDescData } var file_protobufs_nanopb_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_protobufs_nanopb_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_protobufs_nanopb_proto_goTypes = []interface{}{ (FieldType)(0), // 0: FieldType (IntSize)(0), // 1: IntSize (TypenameMangling)(0), // 2: TypenameMangling (DescriptorSize)(0), // 3: DescriptorSize (*NanoPBOptions)(nil), // 4: NanoPBOptions (descriptorpb.FieldDescriptorProto_Type)(0), // 5: google.protobuf.FieldDescriptorProto.Type (*descriptorpb.FileOptions)(nil), // 6: google.protobuf.FileOptions (*descriptorpb.MessageOptions)(nil), // 7: google.protobuf.MessageOptions (*descriptorpb.EnumOptions)(nil), // 8: google.protobuf.EnumOptions (*descriptorpb.FieldOptions)(nil), // 9: google.protobuf.FieldOptions } var file_protobufs_nanopb_proto_depIdxs = []int32{ 1, // 0: NanoPBOptions.int_size:type_name -> IntSize 0, // 1: NanoPBOptions.type:type_name -> FieldType 2, // 2: NanoPBOptions.mangle_names:type_name -> TypenameMangling 3, // 3: NanoPBOptions.descriptorsize:type_name -> DescriptorSize 5, // 4: NanoPBOptions.type_override:type_name -> google.protobuf.FieldDescriptorProto.Type 0, // 5: NanoPBOptions.fallback_type:type_name -> FieldType 6, // 6: nanopb_fileopt:extendee -> google.protobuf.FileOptions 7, // 7: nanopb_msgopt:extendee -> google.protobuf.MessageOptions 8, // 8: nanopb_enumopt:extendee -> google.protobuf.EnumOptions 9, // 9: nanopb:extendee -> google.protobuf.FieldOptions 4, // 10: nanopb_fileopt:type_name -> NanoPBOptions 4, // 11: nanopb_msgopt:type_name -> NanoPBOptions 4, // 12: nanopb_enumopt:type_name -> NanoPBOptions 4, // 13: nanopb:type_name -> NanoPBOptions 14, // [14:14] is the sub-list for method output_type 14, // [14:14] is the sub-list for method input_type 10, // [10:14] is the sub-list for extension type_name 6, // [6:10] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name } func init() { file_protobufs_nanopb_proto_init() } func file_protobufs_nanopb_proto_init() { if File_protobufs_nanopb_proto != nil { return } if !protoimpl.UnsafeEnabled { file_protobufs_nanopb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NanoPBOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protobufs_nanopb_proto_rawDesc, NumEnums: 4, NumMessages: 1, NumExtensions: 4, NumServices: 0, }, GoTypes: file_protobufs_nanopb_proto_goTypes, DependencyIndexes: file_protobufs_nanopb_proto_depIdxs, EnumInfos: file_protobufs_nanopb_proto_enumTypes, MessageInfos: file_protobufs_nanopb_proto_msgTypes, ExtensionInfos: file_protobufs_nanopb_proto_extTypes, }.Build() File_protobufs_nanopb_proto = out.File file_protobufs_nanopb_proto_rawDesc = nil file_protobufs_nanopb_proto_goTypes = nil file_protobufs_nanopb_proto_depIdxs = nil }