// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test.proto

package test

import (
	proto "github.com/golang/protobuf/proto"
	protoreflect "github.com/golang/protobuf/v2/reflect/protoreflect"
	prototype "github.com/golang/protobuf/v2/reflect/prototype"
	protoimpl "github.com/golang/protobuf/v2/runtime/protoimpl"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

type TestAllTypes_NestedEnum int32

const (
	TestAllTypes_FOO TestAllTypes_NestedEnum = 0
	TestAllTypes_BAR TestAllTypes_NestedEnum = 1
	TestAllTypes_BAZ TestAllTypes_NestedEnum = 2
	TestAllTypes_NEG TestAllTypes_NestedEnum = -1
)

func (e TestAllTypes_NestedEnum) Type() protoreflect.EnumType {
	return xxx_Test_ProtoFile_EnumTypes[0]
}
func (e TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(e)
}

var TestAllTypes_NestedEnum_name = map[int32]string{
	0:  "FOO",
	1:  "BAR",
	2:  "BAZ",
	-1: "NEG",
}

var TestAllTypes_NestedEnum_value = map[string]int32{
	"FOO": 0,
	"BAR": 1,
	"BAZ": 2,
	"NEG": -1,
}

func (x TestAllTypes_NestedEnum) Enum() *TestAllTypes_NestedEnum {
	p := new(TestAllTypes_NestedEnum)
	*p = x
	return p
}

func (x TestAllTypes_NestedEnum) String() string {
	return proto.EnumName(TestAllTypes_NestedEnum_name, int32(x))
}

func (x *TestAllTypes_NestedEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(TestAllTypes_NestedEnum_value, data, "TestAllTypes_NestedEnum")
	if err != nil {
		return err
	}
	*x = TestAllTypes_NestedEnum(value)
	return nil
}

func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 0}
}

type TestAllTypes struct {
	OptionalInt32          *int32                                 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"`
	OptionalInt64          *int64                                 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"`
	OptionalUint32         *uint32                                `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"`
	OptionalUint64         *uint64                                `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"`
	OptionalSint32         *int32                                 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"`
	OptionalSint64         *int64                                 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"`
	OptionalFixed32        *uint32                                `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"`
	OptionalFixed64        *uint64                                `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"`
	OptionalSfixed32       *int32                                 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"`
	OptionalSfixed64       *int64                                 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"`
	OptionalFloat          *float32                               `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"`
	OptionalDouble         *float64                               `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"`
	OptionalBool           *bool                                  `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"`
	OptionalString         *string                                `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"`
	OptionalBytes          []byte                                 `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"`
	Optionalgroup          *TestAllTypes_OptionalGroup            `protobuf:"group,16,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"`
	OptionalNestedMessage  *TestAllTypes_NestedMessage            `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	OptionalNestedEnum     *TestAllTypes_NestedEnum               `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"`
	RepeatedInt32          []int32                                `protobuf:"varint,31,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
	RepeatedInt64          []int64                                `protobuf:"varint,32,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"`
	RepeatedUint32         []uint32                               `protobuf:"varint,33,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"`
	RepeatedUint64         []uint64                               `protobuf:"varint,34,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"`
	RepeatedSint32         []int32                                `protobuf:"zigzag32,35,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"`
	RepeatedSint64         []int64                                `protobuf:"zigzag64,36,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"`
	RepeatedFixed32        []uint32                               `protobuf:"fixed32,37,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"`
	RepeatedFixed64        []uint64                               `protobuf:"fixed64,38,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"`
	RepeatedSfixed32       []int32                                `protobuf:"fixed32,39,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"`
	RepeatedSfixed64       []int64                                `protobuf:"fixed64,40,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"`
	RepeatedFloat          []float32                              `protobuf:"fixed32,41,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"`
	RepeatedDouble         []float64                              `protobuf:"fixed64,42,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"`
	RepeatedBool           []bool                                 `protobuf:"varint,43,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
	RepeatedString         []string                               `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"`
	RepeatedBytes          [][]byte                               `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"`
	Repeatedgroup          []*TestAllTypes_RepeatedGroup          `protobuf:"group,46,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"`
	RepeatedNestedMessage  []*TestAllTypes_NestedMessage          `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"`
	RepeatedNestedEnum     []TestAllTypes_NestedEnum              `protobuf:"varint,51,rep,name=repeated_nested_enum,json=repeatedNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"`
	MapInt32Int32          map[int32]int32                        `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapInt64Int64          map[int64]int64                        `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapUint32Uint32        map[uint32]uint32                      `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapUint64Uint64        map[uint64]uint64                      `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapSint32Sint32        map[int32]int32                        `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"`
	MapSint64Sint64        map[int64]int64                        `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"`
	MapFixed32Fixed32      map[uint32]uint32                      `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapFixed64Fixed64      map[uint64]uint64                      `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapSfixed32Sfixed32    map[int32]int32                        `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapSfixed64Sfixed64    map[int64]int64                        `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapInt32Float          map[int32]float32                      `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapInt32Double         map[int32]float64                      `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapBoolBool            map[bool]bool                          `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapStringString        map[string]string                      `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringBytes         map[string][]byte                      `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringNestedMessage map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringNestedEnum    map[string]TestAllTypes_NestedEnum     `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=goproto.proto.test.TestAllTypes_NestedEnum"`
	// Types that are valid to be assigned to OneofField:
	//	*TestAllTypes_OneofUint32
	//	*TestAllTypes_OneofNestedMessage
	//	*TestAllTypes_OneofString
	//	*TestAllTypes_OneofBytes
	//	*TestAllTypes_OneofBool
	//	*TestAllTypes_OneofUint64
	//	*TestAllTypes_OneofFloat
	//	*TestAllTypes_OneofDouble
	//	*TestAllTypes_OneofEnum
	OneofField           isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

type xxx_TestAllTypes struct{ m *TestAllTypes }

func (m *TestAllTypes) ProtoReflect() protoreflect.Message {
	return xxx_TestAllTypes{m}
}
func (m xxx_TestAllTypes) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[0].Type
}
func (m xxx_TestAllTypes) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[0].KnownFieldsOf(m.m)
}
func (m xxx_TestAllTypes) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[0].UnknownFieldsOf(m.m)
}
func (m xxx_TestAllTypes) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *TestAllTypes) Reset()         { *m = TestAllTypes{} }
func (m *TestAllTypes) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes) ProtoMessage()    {}
func (*TestAllTypes) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{0}
}

func (m *TestAllTypes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestAllTypes.Unmarshal(m, b)
}
func (m *TestAllTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestAllTypes.Marshal(b, m, deterministic)
}
func (m *TestAllTypes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestAllTypes.Merge(m, src)
}
func (m *TestAllTypes) XXX_Size() int {
	return xxx_messageInfo_TestAllTypes.Size(m)
}
func (m *TestAllTypes) XXX_DiscardUnknown() {
	xxx_messageInfo_TestAllTypes.DiscardUnknown(m)
}

var xxx_messageInfo_TestAllTypes proto.InternalMessageInfo

func (m *TestAllTypes) GetOptionalInt32() int32 {
	if m != nil && m.OptionalInt32 != nil {
		return *m.OptionalInt32
	}
	return 0
}

func (m *TestAllTypes) GetOptionalInt64() int64 {
	if m != nil && m.OptionalInt64 != nil {
		return *m.OptionalInt64
	}
	return 0
}

func (m *TestAllTypes) GetOptionalUint32() uint32 {
	if m != nil && m.OptionalUint32 != nil {
		return *m.OptionalUint32
	}
	return 0
}

func (m *TestAllTypes) GetOptionalUint64() uint64 {
	if m != nil && m.OptionalUint64 != nil {
		return *m.OptionalUint64
	}
	return 0
}

func (m *TestAllTypes) GetOptionalSint32() int32 {
	if m != nil && m.OptionalSint32 != nil {
		return *m.OptionalSint32
	}
	return 0
}

func (m *TestAllTypes) GetOptionalSint64() int64 {
	if m != nil && m.OptionalSint64 != nil {
		return *m.OptionalSint64
	}
	return 0
}

func (m *TestAllTypes) GetOptionalFixed32() uint32 {
	if m != nil && m.OptionalFixed32 != nil {
		return *m.OptionalFixed32
	}
	return 0
}

func (m *TestAllTypes) GetOptionalFixed64() uint64 {
	if m != nil && m.OptionalFixed64 != nil {
		return *m.OptionalFixed64
	}
	return 0
}

func (m *TestAllTypes) GetOptionalSfixed32() int32 {
	if m != nil && m.OptionalSfixed32 != nil {
		return *m.OptionalSfixed32
	}
	return 0
}

func (m *TestAllTypes) GetOptionalSfixed64() int64 {
	if m != nil && m.OptionalSfixed64 != nil {
		return *m.OptionalSfixed64
	}
	return 0
}

func (m *TestAllTypes) GetOptionalFloat() float32 {
	if m != nil && m.OptionalFloat != nil {
		return *m.OptionalFloat
	}
	return 0
}

func (m *TestAllTypes) GetOptionalDouble() float64 {
	if m != nil && m.OptionalDouble != nil {
		return *m.OptionalDouble
	}
	return 0
}

func (m *TestAllTypes) GetOptionalBool() bool {
	if m != nil && m.OptionalBool != nil {
		return *m.OptionalBool
	}
	return false
}

func (m *TestAllTypes) GetOptionalString() string {
	if m != nil && m.OptionalString != nil {
		return *m.OptionalString
	}
	return ""
}

func (m *TestAllTypes) GetOptionalBytes() []byte {
	if m != nil {
		return m.OptionalBytes
	}
	return nil
}

func (m *TestAllTypes) GetOptionalgroup() *TestAllTypes_OptionalGroup {
	if m != nil {
		return m.Optionalgroup
	}
	return nil
}

func (m *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
	if m != nil {
		return m.OptionalNestedMessage
	}
	return nil
}

func (m *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum {
	if m != nil && m.OptionalNestedEnum != nil {
		return *m.OptionalNestedEnum
	}
	return TestAllTypes_FOO
}

func (m *TestAllTypes) GetRepeatedInt32() []int32 {
	if m != nil {
		return m.RepeatedInt32
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedInt64() []int64 {
	if m != nil {
		return m.RepeatedInt64
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedUint32() []uint32 {
	if m != nil {
		return m.RepeatedUint32
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedUint64() []uint64 {
	if m != nil {
		return m.RepeatedUint64
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedSint32() []int32 {
	if m != nil {
		return m.RepeatedSint32
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedSint64() []int64 {
	if m != nil {
		return m.RepeatedSint64
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedFixed32() []uint32 {
	if m != nil {
		return m.RepeatedFixed32
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedFixed64() []uint64 {
	if m != nil {
		return m.RepeatedFixed64
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedSfixed32() []int32 {
	if m != nil {
		return m.RepeatedSfixed32
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedSfixed64() []int64 {
	if m != nil {
		return m.RepeatedSfixed64
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedFloat() []float32 {
	if m != nil {
		return m.RepeatedFloat
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedDouble() []float64 {
	if m != nil {
		return m.RepeatedDouble
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedBool() []bool {
	if m != nil {
		return m.RepeatedBool
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedString() []string {
	if m != nil {
		return m.RepeatedString
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedBytes() [][]byte {
	if m != nil {
		return m.RepeatedBytes
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedgroup() []*TestAllTypes_RepeatedGroup {
	if m != nil {
		return m.Repeatedgroup
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage {
	if m != nil {
		return m.RepeatedNestedMessage
	}
	return nil
}

func (m *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum {
	if m != nil {
		return m.RepeatedNestedEnum
	}
	return nil
}

func (m *TestAllTypes) GetMapInt32Int32() map[int32]int32 {
	if m != nil {
		return m.MapInt32Int32
	}
	return nil
}

func (m *TestAllTypes) GetMapInt64Int64() map[int64]int64 {
	if m != nil {
		return m.MapInt64Int64
	}
	return nil
}

func (m *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 {
	if m != nil {
		return m.MapUint32Uint32
	}
	return nil
}

func (m *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 {
	if m != nil {
		return m.MapUint64Uint64
	}
	return nil
}

func (m *TestAllTypes) GetMapSint32Sint32() map[int32]int32 {
	if m != nil {
		return m.MapSint32Sint32
	}
	return nil
}

func (m *TestAllTypes) GetMapSint64Sint64() map[int64]int64 {
	if m != nil {
		return m.MapSint64Sint64
	}
	return nil
}

func (m *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 {
	if m != nil {
		return m.MapFixed32Fixed32
	}
	return nil
}

func (m *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 {
	if m != nil {
		return m.MapFixed64Fixed64
	}
	return nil
}

func (m *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 {
	if m != nil {
		return m.MapSfixed32Sfixed32
	}
	return nil
}

func (m *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 {
	if m != nil {
		return m.MapSfixed64Sfixed64
	}
	return nil
}

func (m *TestAllTypes) GetMapInt32Float() map[int32]float32 {
	if m != nil {
		return m.MapInt32Float
	}
	return nil
}

func (m *TestAllTypes) GetMapInt32Double() map[int32]float64 {
	if m != nil {
		return m.MapInt32Double
	}
	return nil
}

func (m *TestAllTypes) GetMapBoolBool() map[bool]bool {
	if m != nil {
		return m.MapBoolBool
	}
	return nil
}

func (m *TestAllTypes) GetMapStringString() map[string]string {
	if m != nil {
		return m.MapStringString
	}
	return nil
}

func (m *TestAllTypes) GetMapStringBytes() map[string][]byte {
	if m != nil {
		return m.MapStringBytes
	}
	return nil
}

func (m *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage {
	if m != nil {
		return m.MapStringNestedMessage
	}
	return nil
}

func (m *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum {
	if m != nil {
		return m.MapStringNestedEnum
	}
	return nil
}

type isTestAllTypes_OneofField interface {
	isTestAllTypes_OneofField()
}

type TestAllTypes_OneofUint32 struct {
	OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"`
}

type TestAllTypes_OneofNestedMessage struct {
	OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"`
}

type TestAllTypes_OneofString struct {
	OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"`
}

type TestAllTypes_OneofBytes struct {
	OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,oneof"`
}

type TestAllTypes_OneofBool struct {
	OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"`
}

type TestAllTypes_OneofUint64 struct {
	OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"`
}

type TestAllTypes_OneofFloat struct {
	OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"`
}

type TestAllTypes_OneofDouble struct {
	OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"`
}

type TestAllTypes_OneofEnum struct {
	OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum,oneof"`
}

func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofString) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField() {}

func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField {
	if m != nil {
		return m.OneofField
	}
	return nil
}

func (m *TestAllTypes) GetOneofUint32() uint32 {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint32); ok {
		return x.OneofUint32
	}
	return 0
}

func (m *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok {
		return x.OneofNestedMessage
	}
	return nil
}

func (m *TestAllTypes) GetOneofString() string {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofString); ok {
		return x.OneofString
	}
	return ""
}

func (m *TestAllTypes) GetOneofBytes() []byte {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBytes); ok {
		return x.OneofBytes
	}
	return nil
}

func (m *TestAllTypes) GetOneofBool() bool {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofBool); ok {
		return x.OneofBool
	}
	return false
}

func (m *TestAllTypes) GetOneofUint64() uint64 {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint64); ok {
		return x.OneofUint64
	}
	return 0
}

func (m *TestAllTypes) GetOneofFloat() float32 {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofFloat); ok {
		return x.OneofFloat
	}
	return 0
}

func (m *TestAllTypes) GetOneofDouble() float64 {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofDouble); ok {
		return x.OneofDouble
	}
	return 0
}

func (m *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum {
	if x, ok := m.GetOneofField().(*TestAllTypes_OneofEnum); ok {
		return x.OneofEnum
	}
	return TestAllTypes_FOO
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TestAllTypes) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TestAllTypes_OneofUint32)(nil),
		(*TestAllTypes_OneofNestedMessage)(nil),
		(*TestAllTypes_OneofString)(nil),
		(*TestAllTypes_OneofBytes)(nil),
		(*TestAllTypes_OneofBool)(nil),
		(*TestAllTypes_OneofUint64)(nil),
		(*TestAllTypes_OneofFloat)(nil),
		(*TestAllTypes_OneofDouble)(nil),
		(*TestAllTypes_OneofEnum)(nil),
	}
}

type TestAllExtensions struct {
	XXX_NoUnkeyedLiteral         struct{} `json:"-"`
	proto.XXX_InternalExtensions `json:"-"`
	XXX_unrecognized             []byte `json:"-"`
	XXX_sizecache                int32  `json:"-"`
}

type xxx_TestAllExtensions struct{ m *TestAllExtensions }

func (m *TestAllExtensions) ProtoReflect() protoreflect.Message {
	return xxx_TestAllExtensions{m}
}
func (m xxx_TestAllExtensions) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[1].Type
}
func (m xxx_TestAllExtensions) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[1].KnownFieldsOf(m.m)
}
func (m xxx_TestAllExtensions) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[1].UnknownFieldsOf(m.m)
}
func (m xxx_TestAllExtensions) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *TestAllExtensions) Reset()         { *m = TestAllExtensions{} }
func (m *TestAllExtensions) String() string { return proto.CompactTextString(m) }
func (*TestAllExtensions) ProtoMessage()    {}
func (*TestAllExtensions) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{1}
}

var extRange_TestAllExtensions = []proto.ExtensionRange{
	{Start: 1, End: 536870911},
}

func (*TestAllExtensions) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_TestAllExtensions
}

func (m *TestAllExtensions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestAllExtensions.Unmarshal(m, b)
}
func (m *TestAllExtensions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestAllExtensions.Marshal(b, m, deterministic)
}
func (m *TestAllExtensions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestAllExtensions.Merge(m, src)
}
func (m *TestAllExtensions) XXX_Size() int {
	return xxx_messageInfo_TestAllExtensions.Size(m)
}
func (m *TestAllExtensions) XXX_DiscardUnknown() {
	xxx_messageInfo_TestAllExtensions.DiscardUnknown(m)
}

var xxx_messageInfo_TestAllExtensions proto.InternalMessageInfo

type OptionalGroupExtension struct {
	A                    *int32   `protobuf:"varint,17,opt,name=a" json:"a,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

type xxx_OptionalGroupExtension struct{ m *OptionalGroupExtension }

func (m *OptionalGroupExtension) ProtoReflect() protoreflect.Message {
	return xxx_OptionalGroupExtension{m}
}
func (m xxx_OptionalGroupExtension) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[2].Type
}
func (m xxx_OptionalGroupExtension) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[2].KnownFieldsOf(m.m)
}
func (m xxx_OptionalGroupExtension) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[2].UnknownFieldsOf(m.m)
}
func (m xxx_OptionalGroupExtension) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *OptionalGroupExtension) Reset()         { *m = OptionalGroupExtension{} }
func (m *OptionalGroupExtension) String() string { return proto.CompactTextString(m) }
func (*OptionalGroupExtension) ProtoMessage()    {}
func (*OptionalGroupExtension) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{2}
}

func (m *OptionalGroupExtension) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OptionalGroupExtension.Unmarshal(m, b)
}
func (m *OptionalGroupExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OptionalGroupExtension.Marshal(b, m, deterministic)
}
func (m *OptionalGroupExtension) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OptionalGroupExtension.Merge(m, src)
}
func (m *OptionalGroupExtension) XXX_Size() int {
	return xxx_messageInfo_OptionalGroupExtension.Size(m)
}
func (m *OptionalGroupExtension) XXX_DiscardUnknown() {
	xxx_messageInfo_OptionalGroupExtension.DiscardUnknown(m)
}

var xxx_messageInfo_OptionalGroupExtension proto.InternalMessageInfo

func (m *OptionalGroupExtension) GetA() int32 {
	if m != nil && m.A != nil {
		return *m.A
	}
	return 0
}

type RepeatedGroupExtension struct {
	A                    *int32   `protobuf:"varint,47,opt,name=a" json:"a,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

type xxx_RepeatedGroupExtension struct{ m *RepeatedGroupExtension }

func (m *RepeatedGroupExtension) ProtoReflect() protoreflect.Message {
	return xxx_RepeatedGroupExtension{m}
}
func (m xxx_RepeatedGroupExtension) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[3].Type
}
func (m xxx_RepeatedGroupExtension) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[3].KnownFieldsOf(m.m)
}
func (m xxx_RepeatedGroupExtension) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[3].UnknownFieldsOf(m.m)
}
func (m xxx_RepeatedGroupExtension) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *RepeatedGroupExtension) Reset()         { *m = RepeatedGroupExtension{} }
func (m *RepeatedGroupExtension) String() string { return proto.CompactTextString(m) }
func (*RepeatedGroupExtension) ProtoMessage()    {}
func (*RepeatedGroupExtension) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{3}
}

func (m *RepeatedGroupExtension) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RepeatedGroupExtension.Unmarshal(m, b)
}
func (m *RepeatedGroupExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RepeatedGroupExtension.Marshal(b, m, deterministic)
}
func (m *RepeatedGroupExtension) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RepeatedGroupExtension.Merge(m, src)
}
func (m *RepeatedGroupExtension) XXX_Size() int {
	return xxx_messageInfo_RepeatedGroupExtension.Size(m)
}
func (m *RepeatedGroupExtension) XXX_DiscardUnknown() {
	xxx_messageInfo_RepeatedGroupExtension.DiscardUnknown(m)
}

var xxx_messageInfo_RepeatedGroupExtension proto.InternalMessageInfo

func (m *RepeatedGroupExtension) GetA() int32 {
	if m != nil && m.A != nil {
		return *m.A
	}
	return 0
}

type TestAllTypes_NestedMessage struct {
	A                    *int32        `protobuf:"varint,1,opt,name=a" json:"a,omitempty"`
	Corecursive          *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

type xxx_TestAllTypes_NestedMessage struct{ m *TestAllTypes_NestedMessage }

func (m *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message {
	return xxx_TestAllTypes_NestedMessage{m}
}
func (m xxx_TestAllTypes_NestedMessage) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[4].Type
}
func (m xxx_TestAllTypes_NestedMessage) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[4].KnownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_NestedMessage) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[4].UnknownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_NestedMessage) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *TestAllTypes_NestedMessage) Reset()         { *m = TestAllTypes_NestedMessage{} }
func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes_NestedMessage) ProtoMessage()    {}
func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 0}
}

func (m *TestAllTypes_NestedMessage) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestAllTypes_NestedMessage.Unmarshal(m, b)
}
func (m *TestAllTypes_NestedMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestAllTypes_NestedMessage.Marshal(b, m, deterministic)
}
func (m *TestAllTypes_NestedMessage) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestAllTypes_NestedMessage.Merge(m, src)
}
func (m *TestAllTypes_NestedMessage) XXX_Size() int {
	return xxx_messageInfo_TestAllTypes_NestedMessage.Size(m)
}
func (m *TestAllTypes_NestedMessage) XXX_DiscardUnknown() {
	xxx_messageInfo_TestAllTypes_NestedMessage.DiscardUnknown(m)
}

var xxx_messageInfo_TestAllTypes_NestedMessage proto.InternalMessageInfo

func (m *TestAllTypes_NestedMessage) GetA() int32 {
	if m != nil && m.A != nil {
		return *m.A
	}
	return 0
}

func (m *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes {
	if m != nil {
		return m.Corecursive
	}
	return nil
}

type TestAllTypes_OptionalGroup struct {
	A                    *int32   `protobuf:"varint,17,opt,name=a" json:"a,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

type xxx_TestAllTypes_OptionalGroup struct{ m *TestAllTypes_OptionalGroup }

func (m *TestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message {
	return xxx_TestAllTypes_OptionalGroup{m}
}
func (m xxx_TestAllTypes_OptionalGroup) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[5].Type
}
func (m xxx_TestAllTypes_OptionalGroup) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[5].KnownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_OptionalGroup) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[5].UnknownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_OptionalGroup) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *TestAllTypes_OptionalGroup) Reset()         { *m = TestAllTypes_OptionalGroup{} }
func (m *TestAllTypes_OptionalGroup) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes_OptionalGroup) ProtoMessage()    {}
func (*TestAllTypes_OptionalGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 1}
}

func (m *TestAllTypes_OptionalGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestAllTypes_OptionalGroup.Unmarshal(m, b)
}
func (m *TestAllTypes_OptionalGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestAllTypes_OptionalGroup.Marshal(b, m, deterministic)
}
func (m *TestAllTypes_OptionalGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestAllTypes_OptionalGroup.Merge(m, src)
}
func (m *TestAllTypes_OptionalGroup) XXX_Size() int {
	return xxx_messageInfo_TestAllTypes_OptionalGroup.Size(m)
}
func (m *TestAllTypes_OptionalGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_TestAllTypes_OptionalGroup.DiscardUnknown(m)
}

var xxx_messageInfo_TestAllTypes_OptionalGroup proto.InternalMessageInfo

func (m *TestAllTypes_OptionalGroup) GetA() int32 {
	if m != nil && m.A != nil {
		return *m.A
	}
	return 0
}

type TestAllTypes_RepeatedGroup struct {
	A                    *int32   `protobuf:"varint,47,opt,name=a" json:"a,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

type xxx_TestAllTypes_RepeatedGroup struct{ m *TestAllTypes_RepeatedGroup }

func (m *TestAllTypes_RepeatedGroup) ProtoReflect() protoreflect.Message {
	return xxx_TestAllTypes_RepeatedGroup{m}
}
func (m xxx_TestAllTypes_RepeatedGroup) Type() protoreflect.MessageType {
	return xxx_Test_ProtoFile_MessageTypes[6].Type
}
func (m xxx_TestAllTypes_RepeatedGroup) KnownFields() protoreflect.KnownFields {
	return xxx_Test_ProtoFile_MessageTypes[6].KnownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_RepeatedGroup) UnknownFields() protoreflect.UnknownFields {
	return xxx_Test_ProtoFile_MessageTypes[6].UnknownFieldsOf(m.m)
}
func (m xxx_TestAllTypes_RepeatedGroup) Interface() protoreflect.ProtoMessage {
	return m.m
}

func (m *TestAllTypes_RepeatedGroup) Reset()         { *m = TestAllTypes_RepeatedGroup{} }
func (m *TestAllTypes_RepeatedGroup) String() string { return proto.CompactTextString(m) }
func (*TestAllTypes_RepeatedGroup) ProtoMessage()    {}
func (*TestAllTypes_RepeatedGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_c161fcfdc0c3ff1e, []int{0, 2}
}

func (m *TestAllTypes_RepeatedGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestAllTypes_RepeatedGroup.Unmarshal(m, b)
}
func (m *TestAllTypes_RepeatedGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestAllTypes_RepeatedGroup.Marshal(b, m, deterministic)
}
func (m *TestAllTypes_RepeatedGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestAllTypes_RepeatedGroup.Merge(m, src)
}
func (m *TestAllTypes_RepeatedGroup) XXX_Size() int {
	return xxx_messageInfo_TestAllTypes_RepeatedGroup.Size(m)
}
func (m *TestAllTypes_RepeatedGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_TestAllTypes_RepeatedGroup.DiscardUnknown(m)
}

var xxx_messageInfo_TestAllTypes_RepeatedGroup proto.InternalMessageInfo

func (m *TestAllTypes_RepeatedGroup) GetA() int32 {
	if m != nil && m.A != nil {
		return *m.A
	}
	return 0
}

var E_OptionalInt32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int32)(nil),
	Field:         1,
	Name:          "goproto.proto.test.optional_int32_extension",
	Tag:           "varint,1,opt,name=optional_int32_extension",
	Filename:      "test.proto",
}

var E_OptionalInt64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int64)(nil),
	Field:         2,
	Name:          "goproto.proto.test.optional_int64_extension",
	Tag:           "varint,2,opt,name=optional_int64_extension",
	Filename:      "test.proto",
}

var E_OptionalUint32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         3,
	Name:          "goproto.proto.test.optional_uint32_extension",
	Tag:           "varint,3,opt,name=optional_uint32_extension",
	Filename:      "test.proto",
}

var E_OptionalUint64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         4,
	Name:          "goproto.proto.test.optional_uint64_extension",
	Tag:           "varint,4,opt,name=optional_uint64_extension",
	Filename:      "test.proto",
}

var E_OptionalSint32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int32)(nil),
	Field:         5,
	Name:          "goproto.proto.test.optional_sint32_extension",
	Tag:           "zigzag32,5,opt,name=optional_sint32_extension",
	Filename:      "test.proto",
}

var E_OptionalSint64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int64)(nil),
	Field:         6,
	Name:          "goproto.proto.test.optional_sint64_extension",
	Tag:           "zigzag64,6,opt,name=optional_sint64_extension",
	Filename:      "test.proto",
}

var E_OptionalFixed32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         7,
	Name:          "goproto.proto.test.optional_fixed32_extension",
	Tag:           "fixed32,7,opt,name=optional_fixed32_extension",
	Filename:      "test.proto",
}

var E_OptionalFixed64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         8,
	Name:          "goproto.proto.test.optional_fixed64_extension",
	Tag:           "fixed64,8,opt,name=optional_fixed64_extension",
	Filename:      "test.proto",
}

var E_OptionalSfixed32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int32)(nil),
	Field:         9,
	Name:          "goproto.proto.test.optional_sfixed32_extension",
	Tag:           "fixed32,9,opt,name=optional_sfixed32_extension",
	Filename:      "test.proto",
}

var E_OptionalSfixed64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*int64)(nil),
	Field:         10,
	Name:          "goproto.proto.test.optional_sfixed64_extension",
	Tag:           "fixed64,10,opt,name=optional_sfixed64_extension",
	Filename:      "test.proto",
}

var E_OptionalFloatExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*float32)(nil),
	Field:         11,
	Name:          "goproto.proto.test.optional_float_extension",
	Tag:           "fixed32,11,opt,name=optional_float_extension",
	Filename:      "test.proto",
}

var E_OptionalDoubleExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*float64)(nil),
	Field:         12,
	Name:          "goproto.proto.test.optional_double_extension",
	Tag:           "fixed64,12,opt,name=optional_double_extension",
	Filename:      "test.proto",
}

var E_OptionalBoolExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*bool)(nil),
	Field:         13,
	Name:          "goproto.proto.test.optional_bool_extension",
	Tag:           "varint,13,opt,name=optional_bool_extension",
	Filename:      "test.proto",
}

var E_OptionalStringExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*string)(nil),
	Field:         14,
	Name:          "goproto.proto.test.optional_string_extension",
	Tag:           "bytes,14,opt,name=optional_string_extension",
	Filename:      "test.proto",
}

var E_OptionalBytesExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]byte)(nil),
	Field:         15,
	Name:          "goproto.proto.test.optional_bytes_extension",
	Tag:           "bytes,15,opt,name=optional_bytes_extension",
	Filename:      "test.proto",
}

var E_OptionalgroupExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*OptionalGroupExtension)(nil),
	Field:         16,
	Name:          "goproto.proto.test.optionalgroup_extension",
	Tag:           "group,16,opt,name=OptionalGroup_extension",
	Filename:      "test.proto",
}

var E_OptionalNestedMessageExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*TestAllTypes_NestedMessage)(nil),
	Field:         18,
	Name:          "goproto.proto.test.optional_nested_message_extension",
	Tag:           "bytes,18,opt,name=optional_nested_message_extension",
	Filename:      "test.proto",
}

var E_OptionalNestedEnumExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: (*TestAllTypes_NestedEnum)(nil),
	Field:         21,
	Name:          "goproto.proto.test.optional_nested_enum_extension",
	Tag:           "varint,21,opt,name=optional_nested_enum_extension,enum=goproto.proto.test.TestAllTypes_NestedEnum",
	Filename:      "test.proto",
}

var E_RepeatedInt32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int32)(nil),
	Field:         31,
	Name:          "goproto.proto.test.repeated_int32_extension",
	Tag:           "varint,31,rep,name=repeated_int32_extension",
	Filename:      "test.proto",
}

var E_RepeatedInt64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int64)(nil),
	Field:         32,
	Name:          "goproto.proto.test.repeated_int64_extension",
	Tag:           "varint,32,rep,name=repeated_int64_extension",
	Filename:      "test.proto",
}

var E_RepeatedUint32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]uint32)(nil),
	Field:         33,
	Name:          "goproto.proto.test.repeated_uint32_extension",
	Tag:           "varint,33,rep,name=repeated_uint32_extension",
	Filename:      "test.proto",
}

var E_RepeatedUint64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]uint64)(nil),
	Field:         34,
	Name:          "goproto.proto.test.repeated_uint64_extension",
	Tag:           "varint,34,rep,name=repeated_uint64_extension",
	Filename:      "test.proto",
}

var E_RepeatedSint32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int32)(nil),
	Field:         35,
	Name:          "goproto.proto.test.repeated_sint32_extension",
	Tag:           "zigzag32,35,rep,name=repeated_sint32_extension",
	Filename:      "test.proto",
}

var E_RepeatedSint64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int64)(nil),
	Field:         36,
	Name:          "goproto.proto.test.repeated_sint64_extension",
	Tag:           "zigzag64,36,rep,name=repeated_sint64_extension",
	Filename:      "test.proto",
}

var E_RepeatedFixed32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]uint32)(nil),
	Field:         37,
	Name:          "goproto.proto.test.repeated_fixed32_extension",
	Tag:           "fixed32,37,rep,name=repeated_fixed32_extension",
	Filename:      "test.proto",
}

var E_RepeatedFixed64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]uint64)(nil),
	Field:         38,
	Name:          "goproto.proto.test.repeated_fixed64_extension",
	Tag:           "fixed64,38,rep,name=repeated_fixed64_extension",
	Filename:      "test.proto",
}

var E_RepeatedSfixed32Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int32)(nil),
	Field:         39,
	Name:          "goproto.proto.test.repeated_sfixed32_extension",
	Tag:           "fixed32,39,rep,name=repeated_sfixed32_extension",
	Filename:      "test.proto",
}

var E_RepeatedSfixed64Extension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]int64)(nil),
	Field:         40,
	Name:          "goproto.proto.test.repeated_sfixed64_extension",
	Tag:           "fixed64,40,rep,name=repeated_sfixed64_extension",
	Filename:      "test.proto",
}

var E_RepeatedFloatExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]float32)(nil),
	Field:         41,
	Name:          "goproto.proto.test.repeated_float_extension",
	Tag:           "fixed32,41,rep,name=repeated_float_extension",
	Filename:      "test.proto",
}

var E_RepeatedDoubleExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]float64)(nil),
	Field:         42,
	Name:          "goproto.proto.test.repeated_double_extension",
	Tag:           "fixed64,42,rep,name=repeated_double_extension",
	Filename:      "test.proto",
}

var E_RepeatedBoolExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]bool)(nil),
	Field:         43,
	Name:          "goproto.proto.test.repeated_bool_extension",
	Tag:           "varint,43,rep,name=repeated_bool_extension",
	Filename:      "test.proto",
}

var E_RepeatedStringExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]string)(nil),
	Field:         44,
	Name:          "goproto.proto.test.repeated_string_extension",
	Tag:           "bytes,44,rep,name=repeated_string_extension",
	Filename:      "test.proto",
}

var E_RepeatedBytesExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([][]byte)(nil),
	Field:         45,
	Name:          "goproto.proto.test.repeated_bytes_extension",
	Tag:           "bytes,45,rep,name=repeated_bytes_extension",
	Filename:      "test.proto",
}

var E_RepeatedgroupExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]*RepeatedGroupExtension)(nil),
	Field:         46,
	Name:          "goproto.proto.test.repeatedgroup_extension",
	Tag:           "group,46,rep,name=RepeatedGroup_extension",
	Filename:      "test.proto",
}

var E_RepeatedNestedMessageExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]*TestAllTypes_NestedMessage)(nil),
	Field:         48,
	Name:          "goproto.proto.test.repeated_nested_message_extension",
	Tag:           "bytes,48,rep,name=repeated_nested_message_extension",
	Filename:      "test.proto",
}

var E_RepeatedNestedEnumExtension = &proto.ExtensionDesc{
	ExtendedType:  (*TestAllExtensions)(nil),
	ExtensionType: ([]TestAllTypes_NestedEnum)(nil),
	Field:         51,
	Name:          "goproto.proto.test.repeated_nested_enum_extension",
	Tag:           "varint,51,rep,name=repeated_nested_enum_extension,enum=goproto.proto.test.TestAllTypes_NestedEnum",
	Filename:      "test.proto",
}

func init() {
	proto.RegisterFile("test.proto", fileDescriptor_c161fcfdc0c3ff1e)
	proto.RegisterEnum("goproto.proto.test.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value)
	proto.RegisterType((*TestAllTypes)(nil), "goproto.proto.test.TestAllTypes")
	proto.RegisterMapType((map[bool]bool)(nil), "goproto.proto.test.TestAllTypes.MapBoolBoolEntry")
	proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry")
	proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry")
	proto.RegisterMapType((map[int32]float64)(nil), "goproto.proto.test.TestAllTypes.MapInt32DoubleEntry")
	proto.RegisterMapType((map[int32]float32)(nil), "goproto.proto.test.TestAllTypes.MapInt32FloatEntry")
	proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapInt32Int32Entry")
	proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapInt64Int64Entry")
	proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry")
	proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry")
	proto.RegisterMapType((map[int32]int32)(nil), "goproto.proto.test.TestAllTypes.MapSint32Sint32Entry")
	proto.RegisterMapType((map[int64]int64)(nil), "goproto.proto.test.TestAllTypes.MapSint64Sint64Entry")
	proto.RegisterMapType((map[string][]byte)(nil), "goproto.proto.test.TestAllTypes.MapStringBytesEntry")
	proto.RegisterMapType((map[string]TestAllTypes_NestedEnum)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry")
	proto.RegisterMapType((map[string]*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry")
	proto.RegisterMapType((map[string]string)(nil), "goproto.proto.test.TestAllTypes.MapStringStringEntry")
	proto.RegisterMapType((map[uint32]uint32)(nil), "goproto.proto.test.TestAllTypes.MapUint32Uint32Entry")
	proto.RegisterMapType((map[uint64]uint64)(nil), "goproto.proto.test.TestAllTypes.MapUint64Uint64Entry")
	proto.RegisterType((*TestAllExtensions)(nil), "goproto.proto.test.TestAllExtensions")
	proto.RegisterType((*OptionalGroupExtension)(nil), "goproto.proto.test.OptionalGroup_extension")
	proto.RegisterType((*RepeatedGroupExtension)(nil), "goproto.proto.test.RepeatedGroup_extension")
	proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "goproto.proto.test.TestAllTypes.NestedMessage")
	proto.RegisterType((*TestAllTypes_OptionalGroup)(nil), "goproto.proto.test.TestAllTypes.OptionalGroup")
	proto.RegisterType((*TestAllTypes_RepeatedGroup)(nil), "goproto.proto.test.TestAllTypes.RepeatedGroup")
	proto.RegisterExtension(E_OptionalInt32Extension)
	proto.RegisterExtension(E_OptionalInt64Extension)
	proto.RegisterExtension(E_OptionalUint32Extension)
	proto.RegisterExtension(E_OptionalUint64Extension)
	proto.RegisterExtension(E_OptionalSint32Extension)
	proto.RegisterExtension(E_OptionalSint64Extension)
	proto.RegisterExtension(E_OptionalFixed32Extension)
	proto.RegisterExtension(E_OptionalFixed64Extension)
	proto.RegisterExtension(E_OptionalSfixed32Extension)
	proto.RegisterExtension(E_OptionalSfixed64Extension)
	proto.RegisterExtension(E_OptionalFloatExtension)
	proto.RegisterExtension(E_OptionalDoubleExtension)
	proto.RegisterExtension(E_OptionalBoolExtension)
	proto.RegisterExtension(E_OptionalStringExtension)
	proto.RegisterExtension(E_OptionalBytesExtension)
	proto.RegisterExtension(E_OptionalgroupExtension)
	proto.RegisterExtension(E_OptionalNestedMessageExtension)
	proto.RegisterExtension(E_OptionalNestedEnumExtension)
	proto.RegisterExtension(E_RepeatedInt32Extension)
	proto.RegisterExtension(E_RepeatedInt64Extension)
	proto.RegisterExtension(E_RepeatedUint32Extension)
	proto.RegisterExtension(E_RepeatedUint64Extension)
	proto.RegisterExtension(E_RepeatedSint32Extension)
	proto.RegisterExtension(E_RepeatedSint64Extension)
	proto.RegisterExtension(E_RepeatedFixed32Extension)
	proto.RegisterExtension(E_RepeatedFixed64Extension)
	proto.RegisterExtension(E_RepeatedSfixed32Extension)
	proto.RegisterExtension(E_RepeatedSfixed64Extension)
	proto.RegisterExtension(E_RepeatedFloatExtension)
	proto.RegisterExtension(E_RepeatedDoubleExtension)
	proto.RegisterExtension(E_RepeatedBoolExtension)
	proto.RegisterExtension(E_RepeatedStringExtension)
	proto.RegisterExtension(E_RepeatedBytesExtension)
	proto.RegisterExtension(E_RepeatedgroupExtension)
	proto.RegisterExtension(E_RepeatedNestedMessageExtension)
	proto.RegisterExtension(E_RepeatedNestedEnumExtension)
}

var fileDescriptor_c161fcfdc0c3ff1e = []byte{
	// 2015 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x59, 0x5f, 0x53, 0xdb, 0xce,
	0x15, 0x45, 0x88, 0xbf, 0x0b, 0x06, 0xa3, 0x1f, 0xd8, 0x22, 0xcc, 0x2f, 0xd9, 0x90, 0xa6, 0x51,
	0x92, 0xd6, 0xb4, 0xa0, 0xaa, 0x49, 0x9a, 0xa6, 0xc1, 0x05, 0x42, 0x66, 0x9a, 0x64, 0x46, 0x24,
	0x2f, 0xe9, 0xa4, 0x8c, 0x01, 0xe1, 0x7a, 0x6a, 0x5b, 0xae, 0x65, 0x93, 0xf0, 0xc6, 0x7b, 0x3f,
	0x40, 0x5f, 0xfb, 0x91, 0xfa, 0x8d, 0xda, 0xd9, 0xbd, 0xda, 0xd5, 0xde, 0xf5, 0x1a, 0x2c, 0x65,
	0x26, 0xc6, 0xbe, 0xba, 0x3a, 0x67, 0x77, 0xb5, 0x67, 0xaf, 0x76, 0x0f, 0x21, 0x83, 0x28, 0x19,
	0xd4, 0x7a, 0xfd, 0x78, 0x10, 0x3b, 0x4e, 0x33, 0xe6, 0x5f, 0xe0, 0x67, 0x8d, 0x5d, 0xd9, 0xfe,
	0xef, 0x33, 0xb2, 0xfc, 0x39, 0x4a, 0x06, 0xfb, 0xed, 0xf6, 0xe7, 0xeb, 0x5e, 0x94, 0x38, 0x8f,
	0xc9, 0x4a, 0xdc, 0x1b, 0xb4, 0xe2, 0x6e, 0xa3, 0x7d, 0xda, 0xea, 0x0e, 0xf6, 0x76, 0x5d, 0x8b,
	0x5a, 0xde, 0x6c, 0x58, 0x12, 0xd1, 0xf7, 0x2c, 0xa8, 0xa7, 0x05, 0xbe, 0x3b, 0x4d, 0x2d, 0xcf,
	0x46, 0x69, 0x81, 0xef, 0x3c, 0x21, 0xab, 0x32, 0x6d, 0x08, 0x70, 0x36, 0xb5, 0xbc, 0x52, 0x28,
	0xef, 0xfe, 0xc2, 0xa3, 0x23, 0x89, 0x81, 0xef, 0xce, 0x50, 0xcb, 0x9b, 0xc1, 0x89, 0x1a, 0x62,
	0x02, 0x88, 0xb3, 0xd4, 0xf2, 0xd6, 0xb2, 0xc4, 0x93, 0x51, 0xc4, 0x04, 0x10, 0xe7, 0xa8, 0xe5,
	0x39, 0x38, 0x31, 0xf0, 0x9d, 0xa7, 0xa4, 0x2c, 0x13, 0x2f, 0x5b, 0x3f, 0xa2, 0x8b, 0xbd, 0x5d,
	0x77, 0x9e, 0x5a, 0xde, 0x7c, 0x28, 0x01, 0x8e, 0x20, 0x3c, 0x9a, 0x1a, 0xf8, 0xee, 0x02, 0xb5,
	0xbc, 0x39, 0x2d, 0x35, 0xf0, 0x9d, 0xe7, 0x64, 0x2d, 0xa3, 0x17, 0xb0, 0x8b, 0xd4, 0xf2, 0x56,
	0x43, 0x89, 0x71, 0x92, 0xc6, 0x0d, 0xc9, 0x81, 0xef, 0x12, 0x6a, 0x79, 0x65, 0x3d, 0x39, 0xf0,
	0xd1, 0xd0, 0x5f, 0xb6, 0xe3, 0xc6, 0xc0, 0x5d, 0xa2, 0x96, 0x37, 0x9d, 0x0d, 0xfd, 0x11, 0x0b,
	0xa2, 0xfe, 0x5f, 0xc4, 0xc3, 0xb3, 0x76, 0xe4, 0x2e, 0x53, 0xcb, 0xb3, 0xb2, 0xfe, 0x1f, 0xf0,
	0xa8, 0xf3, 0x88, 0xc8, 0x3b, 0x4f, 0xcf, 0xe2, 0xb8, 0xed, 0x96, 0xa8, 0xe5, 0x2d, 0x84, 0xcb,
	0x22, 0x58, 0x8f, 0xe3, 0x36, 0x1e, 0xcd, 0x41, 0xbf, 0xd5, 0x6d, 0xba, 0x2b, 0xd4, 0xf2, 0x16,
	0x95, 0xd1, 0xe4, 0x51, 0xd4, 0xba, 0xb3, 0xeb, 0x41, 0x94, 0xb8, 0xab, 0xd4, 0xf2, 0x96, 0xb3,
	0xd6, 0xd5, 0x59, 0xd0, 0xf9, 0x9c, 0x91, 0x36, 0xfb, 0xf1, 0xb0, 0xe7, 0x96, 0xa9, 0xe5, 0x91,
	0xdd, 0x5a, 0x6d, 0x74, 0x8e, 0xd6, 0xd4, 0xf9, 0x59, 0xfb, 0x94, 0xde, 0xf5, 0x8e, 0xdd, 0x15,
	0x62, 0x10, 0xe7, 0x92, 0x54, 0x25, 0x79, 0x37, 0x4a, 0x06, 0xd1, 0xc5, 0x69, 0x27, 0x4a, 0x92,
	0x46, 0x33, 0x72, 0x1d, 0x6a, 0x79, 0x4b, 0x13, 0xe0, 0x7f, 0xe4, 0xb7, 0x7d, 0x80, 0xbb, 0xc2,
	0x0d, 0x01, 0x87, 0xc2, 0xce, 0x37, 0xb2, 0xae, 0xf3, 0x44, 0xdd, 0x61, 0xc7, 0xdd, 0xa0, 0x96,
	0xb7, 0xb2, 0xfb, 0x7c, 0x42, 0x92, 0xc3, 0xee, 0xb0, 0x13, 0x3a, 0x98, 0x81, 0xc5, 0xd8, 0x18,
	0xf6, 0xa3, 0x5e, 0xd4, 0x60, 0xb8, 0x30, 0xc5, 0x1f, 0x50, 0x9b, 0x69, 0x50, 0x44, 0xa5, 0x06,
	0xd5, 0xb4, 0xc0, 0x77, 0x29, 0xb5, 0x99, 0x06, 0x95, 0x34, 0x50, 0x8c, 0x4c, 0x4b, 0x35, 0xf8,
	0x90, 0xda, 0x4c, 0x83, 0x22, 0x9c, 0x69, 0x10, 0x25, 0x06, 0xbe, 0xbb, 0x4d, 0x6d, 0xa6, 0x41,
	0x35, 0x51, 0x43, 0x4c, 0x35, 0xf8, 0x88, 0xda, 0x4c, 0x83, 0x22, 0x7c, 0x32, 0x8a, 0x98, 0x6a,
	0xf0, 0x17, 0xd4, 0x66, 0x1a, 0x54, 0x13, 0x41, 0x83, 0x32, 0x51, 0x88, 0xe5, 0x31, 0xb5, 0x99,
	0x06, 0x45, 0x5c, 0xd1, 0x20, 0x4e, 0x0d, 0x7c, 0xf7, 0x97, 0xd4, 0x66, 0x1a, 0x44, 0xa9, 0xa0,
	0xc1, 0x8c, 0x5e, 0xc0, 0x3e, 0xa1, 0x36, 0xd3, 0xa0, 0x6c, 0x80, 0xa2, 0x41, 0x2d, 0x39, 0xf0,
	0x5d, 0x8f, 0xda, 0x4c, 0x83, 0x38, 0x19, 0x34, 0x98, 0x35, 0x82, 0x6b, 0xf0, 0x29, 0xb5, 0x99,
	0x06, 0x65, 0x13, 0x84, 0x06, 0x65, 0x5a, 0xaa, 0xc1, 0x67, 0xd4, 0x66, 0x1a, 0x14, 0xe1, 0x4c,
	0x83, 0x32, 0x91, 0x6b, 0xf0, 0x39, 0xb5, 0x99, 0x06, 0x45, 0x50, 0x68, 0x30, 0x6b, 0x21, 0x68,
	0xf0, 0x57, 0xd4, 0x66, 0x1a, 0x94, 0xed, 0x93, 0x1a, 0xcc, 0xd0, 0xb8, 0x06, 0x7f, 0x4d, 0x6d,
	0xa6, 0x41, 0x09, 0x27, 0x34, 0x28, 0x02, 0xa0, 0xc1, 0x1a, 0xb5, 0x27, 0xd2, 0x60, 0x98, 0xde,
	0x95, 0x6a, 0x10, 0x81, 0x30, 0x0d, 0x4a, 0x72, 0x4d, 0x83, 0xbf, 0xa1, 0x76, 0x11, 0x0d, 0x0a,
	0xb8, 0x11, 0x0d, 0xea, 0x3c, 0x5c, 0x83, 0x7b, 0xd4, 0xce, 0xad, 0x41, 0xcc, 0xc0, 0x35, 0xf8,
	0x57, 0xb2, 0xda, 0x69, 0xf4, 0x40, 0x7e, 0xa9, 0x08, 0x5f, 0xf0, 0xe6, 0xef, 0xdd, 0x89, 0xfc,
	0xa1, 0xd1, 0xe3, 0x02, 0xe5, 0x1f, 0x87, 0xdd, 0x41, 0xff, 0x3a, 0x2c, 0x75, 0xd4, 0x98, 0x02,
	0x1e, 0xf8, 0xa9, 0x74, 0x5f, 0xe6, 0x02, 0x0f, 0x7c, 0xfe, 0x81, 0xc0, 0xd3, 0x98, 0xd3, 0x20,
	0x6b, 0x0c, 0x1c, 0xa4, 0x2e, 0x14, 0xff, 0x8a, 0xc3, 0xff, 0x6e, 0x12, 0x78, 0x58, 0x0d, 0xe0,
	0x13, 0x08, 0x58, 0x63, 0xd5, 0xa8, 0x4a, 0x11, 0xf8, 0x62, 0xad, 0xf8, 0x43, 0x3e, 0x8a, 0xc0,
	0x87, 0x4f, 0x4c, 0x21, 0xa2, 0x82, 0x02, 0x96, 0x17, 0xb1, 0xca, 0xbc, 0x9e, 0x9c, 0x02, 0x56,
	0xa0, 0x13, 0xad, 0x17, 0x6a, 0x54, 0xa5, 0x08, 0x7c, 0xb1, 0x3e, 0xfd, 0x31, 0x1f, 0x45, 0xe0,
	0x9f, 0x68, 0xbd, 0x50, 0xa3, 0x4e, 0x93, 0xfc, 0xc4, 0x28, 0xd2, 0x35, 0x46, 0x2e, 0x6d, 0x6f,
	0x38, 0xc9, 0xef, 0x27, 0x21, 0x49, 0x97, 0xbd, 0xf4, 0x0f, 0xd0, 0xb0, 0x66, 0xe3, 0x38, 0x22,
	0x0a, 0x7c, 0xb9, 0x30, 0xfe, 0x29, 0x27, 0x51, 0xe0, 0xa7, 0x7f, 0x34, 0x22, 0x19, 0x77, 0x3a,
	0x64, 0x83, 0x0f, 0x9a, 0xe8, 0x92, 0x5c, 0x57, 0xdf, 0x72, 0xaa, 0x97, 0x13, 0x0d, 0x5c, 0x7a,
	0x8f, 0xf8, 0x0b, 0x64, 0xac, 0x03, 0xfa, 0x15, 0x4c, 0xc7, 0x9e, 0x92, 0xe8, 0xd9, 0x7e, 0x5e,
	0xba, 0xc0, 0x17, 0x7f, 0x75, 0xba, 0xec, 0x0a, 0x56, 0x3d, 0x2c, 0xec, 0xf5, 0x9c, 0xaa, 0xe7,
	0x2b, 0xbf, 0xa6, 0x7a, 0xa8, 0x06, 0x7f, 0x23, 0xe5, 0x0c, 0x3c, 0x2d, 0x07, 0x7f, 0xe6, 0xe8,
	0xfe, 0xc4, 0xe8, 0x50, 0x2f, 0x00, 0x7e, 0xa5, 0x83, 0x82, 0xce, 0x17, 0xc2, 0x08, 0x79, 0xfd,
	0x80, 0x22, 0x72, 0xc0, 0xc1, 0x7f, 0x3b, 0x09, 0x38, 0x2b, 0x30, 0xec, 0x3f, 0x20, 0x2f, 0x75,
	0xb2, 0x88, 0x94, 0x09, 0xaf, 0x2d, 0xa2, 0xf0, 0x1c, 0xe6, 0x90, 0x09, 0xbf, 0x03, 0x3e, 0x15,
	0x99, 0x28, 0x51, 0x31, 0x32, 0x29, 0x05, 0x94, 0xac, 0xa3, 0xc9, 0x47, 0x06, 0x50, 0x78, 0x51,
	0xcb, 0x46, 0x46, 0x09, 0x3a, 0xdf, 0xc9, 0xa6, 0x82, 0xaf, 0x55, 0xa5, 0x77, 0x9c, 0xe8, 0xf5,
	0xe4, 0x44, 0xa8, 0x0e, 0x01, 0x61, 0xa5, 0x63, 0xbc, 0xe8, 0x74, 0x49, 0x65, 0x94, 0x98, 0x97,
	0xa9, 0xf7, 0x39, 0xe6, 0xaf, 0x02, 0xcc, 0x6a, 0x93, 0x32, 0x7f, 0xb5, 0x2b, 0xce, 0x23, 0xb2,
	0x1c, 0x77, 0xa3, 0xf8, 0x52, 0x2c, 0xfb, 0x31, 0xdb, 0x6c, 0x1d, 0x4f, 0x85, 0x4b, 0x3c, 0x9a,
	0xae, 0xde, 0x67, 0x64, 0x1d, 0x92, 0xb4, 0x81, 0xe8, 0x15, 0x79, 0x45, 0x3e, 0x9e, 0x0a, 0x1d,
	0x8e, 0x86, 0x3b, 0x2e, 0x1b, 0x92, 0xce, 0x97, 0x7f, 0xb2, 0xcd, 0x82, 0x6c, 0x48, 0xfa, 0xd8,
	0x1f, 0x12, 0xf8, 0x99, 0x3e, 0xf1, 0x3e, 0xdb, 0x28, 0x1c, 0x4f, 0x85, 0x84, 0x07, 0xe1, 0xc9,
	0x3d, 0x20, 0x24, 0x4d, 0x61, 0x13, 0x3a, 0x61, 0x3b, 0x93, 0xe3, 0xa9, 0x70, 0x11, 0x32, 0xd8,
	0xec, 0x44, 0x3d, 0x0e, 0x7c, 0x77, 0xc0, 0x76, 0x8d, 0xa8, 0xc7, 0x81, 0x9f, 0x11, 0x81, 0xa4,
	0x87, 0x6c, 0xbf, 0x24, 0x89, 0x40, 0x9c, 0x12, 0x27, 0x15, 0xe6, 0x15, 0xdb, 0x2b, 0x49, 0x9c,
	0x54, 0x61, 0x7f, 0x11, 0xad, 0xe1, 0x8f, 0xf0, 0x7b, 0xee, 0xb7, 0x7d, 0xd9, 0x74, 0xf6, 0xe3,
	0x5e, 0x83, 0x94, 0xf0, 0xa0, 0x2d, 0x13, 0xab, 0x91, 0x6e, 0xb7, 0xad, 0x86, 0x53, 0x27, 0x4b,
	0xe7, 0x71, 0x3f, 0x3a, 0x1f, 0xf6, 0x93, 0xd6, 0x55, 0xc4, 0xf7, 0xd7, 0x4b, 0xbb, 0xf4, 0x2e,
	0xb6, 0x50, 0xbd, 0xe9, 0xde, 0xcf, 0xa4, 0x84, 0x36, 0x4c, 0x40, 0xb1, 0x96, 0x52, 0xb0, 0xcb,
	0xe8, 0x5d, 0x0e, 0x2e, 0xef, 0x88, 0xcb, 0x6f, 0x89, 0x33, 0xfa, 0x2e, 0xe3, 0x94, 0x89, 0xfd,
	0x8f, 0xe8, 0x3a, 0x6d, 0x27, 0xfb, 0xea, 0xac, 0x93, 0xd9, 0xab, 0x46, 0x7b, 0x08, 0x6d, 0x9c,
	0x0d, 0xe1, 0xc7, 0xab, 0xe9, 0x17, 0x56, 0x86, 0xa0, 0xbe, 0xb0, 0xa8, 0x08, 0xb6, 0x01, 0xc1,
	0x56, 0x11, 0xea, 0x64, 0xdd, 0xf4, 0x4e, 0xa2, 0x62, 0x94, 0x0c, 0x18, 0x25, 0x33, 0x06, 0x7a,
	0xe9, 0x50, 0x31, 0x66, 0x0c, 0x18, 0x33, 0xa3, 0x18, 0x23, 0x6f, 0x15, 0x2a, 0xc6, 0x9a, 0x01,
	0x63, 0xcd, 0x8c, 0x81, 0x5e, 0x1b, 0x54, 0x0c, 0xc7, 0x80, 0xe1, 0xa8, 0x18, 0x07, 0xa4, 0x62,
	0x7e, 0x2b, 0x50, 0x51, 0xe6, 0x0d, 0x28, 0xf3, 0x63, 0x50, 0x70, 0xc9, 0x57, 0x51, 0xe6, 0x0c,
	0x28, 0x73, 0x2a, 0xca, 0x11, 0x71, 0xc7, 0x55, 0x73, 0x15, 0x67, 0xd5, 0x80, 0xb3, 0x3a, 0x0e,
	0x47, 0x2b, 0xd3, 0x2a, 0x4e, 0xd9, 0x80, 0x53, 0x36, 0xce, 0x36, 0xb5, 0x0a, 0xdf, 0x35, 0x5f,
	0xa7, 0x55, 0x84, 0x7d, 0xf2, 0x93, 0xa1, 0xd2, 0xde, 0x05, 0x61, 0xa9, 0x10, 0x6f, 0x48, 0x59,
	0xaf, 0xa7, 0xea, 0xfd, 0x0b, 0x86, 0xfb, 0x17, 0x0c, 0x93, 0x44, 0x2f, 0x9a, 0x2a, 0xc6, 0xa2,
	0x01, 0x63, 0x71, 0xb4, 0x1b, 0x7a, 0x59, 0xbc, 0x0b, 0x62, 0x59, 0x85, 0xb8, 0x26, 0x5b, 0xb7,
	0x14, 0x3c, 0x03, 0xd4, 0x81, 0x0a, 0x95, 0x7f, 0x97, 0xa7, 0x50, 0x27, 0x30, 0x1d, 0x4c, 0x55,
	0xcf, 0xc0, 0xbb, 0xaf, 0xf2, 0xe6, 0xdc, 0xf8, 0x65, 0xa4, 0xdb, 0x2f, 0x09, 0x51, 0xea, 0xe8,
	0x3c, 0xb1, 0x8f, 0x3e, 0x7d, 0x2a, 0x4f, 0xb1, 0x2f, 0xf5, 0xfd, 0xb0, 0x6c, 0xc1, 0x97, 0xaf,
	0xe5, 0x69, 0xd6, 0x82, 0x8f, 0x87, 0xef, 0xca, 0xff, 0x13, 0xff, 0xac, 0x7a, 0x49, 0x56, 0x97,
	0x56, 0xd4, 0xbe, 0xd8, 0xfe, 0x99, 0xac, 0xa5, 0x7c, 0x87, 0x3f, 0x06, 0x51, 0x37, 0x69, 0xc5,
	0xdd, 0xe4, 0xd9, 0xc2, 0x82, 0x55, 0xbe, 0xb9, 0xb9, 0xb9, 0x99, 0xde, 0x7e, 0x42, 0xaa, 0x68,
	0x49, 0x3e, 0x8d, 0x44, 0x16, 0x5e, 0x9c, 0x59, 0x22, 0x5a, 0x9c, 0xf5, 0x44, 0xb1, 0x4c, 0xbf,
	0x3a, 0x25, 0x2e, 0x3e, 0xb2, 0x55, 0x32, 0x1f, 0xdf, 0x32, 0x1c, 0x59, 0xf3, 0xd2, 0x99, 0x5d,
	0x41, 0x67, 0xbc, 0xf2, 0xb2, 0x4e, 0x10, 0xf8, 0xf9, 0x09, 0x60, 0x5d, 0xaf, 0xa0, 0xd3, 0xe1,
	0x8c, 0xa0, 0x41, 0x36, 0xb5, 0x63, 0xe2, 0xfc, 0x0c, 0x70, 0xae, 0x5c, 0xc5, 0xe7, 0xca, 0xe3,
	0x29, 0x8a, 0x74, 0x02, 0x4e, 0xa4, 0xab, 0xf8, 0x44, 0xda, 0x4c, 0x91, 0x14, 0xec, 0x05, 0x9c,
	0x65, 0x57, 0xf1, 0x59, 0xf6, 0x78, 0x8a, 0x22, 0xbd, 0x80, 0x53, 0xf0, 0x2a, 0x3e, 0x05, 0xcf,
	0x28, 0xce, 0xc9, 0x3d, 0xfd, 0x38, 0x3c, 0x3f, 0x07, 0x9c, 0x9f, 0xbb, 0xda, 0xf9, 0xf9, 0x2d,
	0x24, 0x45, 0x3a, 0x02, 0x27, 0xef, 0xae, 0x76, 0xf2, 0x9e, 0x91, 0x44, 0x64, 0x6b, 0xe4, 0x08,
	0x3e, 0x3f, 0x0b, 0x9c, 0xd9, 0x6f, 0xea, 0x67, 0xf6, 0xb7, 0xd1, 0x14, 0xe9, 0x0c, 0x9c, 0xf6,
	0x6f, 0xea, 0xa7, 0xfd, 0x66, 0x11, 0xf2, 0xd7, 0xd8, 0xfc, 0x1c, 0xe0, 0x13, 0x54, 0x90, 0x4f,
	0x60, 0x9e, 0x5b, 0xf0, 0x12, 0x9c, 0x9f, 0x01, 0x1c, 0x86, 0x2a, 0x76, 0x18, 0x32, 0x8a, 0x6f,
	0xca, 0xf9, 0x3c, 0xdf, 0xa6, 0xe6, 0x26, 0x00, 0x6f, 0x62, 0x43, 0xf5, 0x26, 0xc6, 0xa8, 0x03,
	0xb6, 0x5c, 0xb9, 0x09, 0xc0, 0xd5, 0xa8, 0x62, 0x57, 0xc3, 0xfc, 0x14, 0xf8, 0xae, 0x25, 0x3f,
	0x03, 0xf8, 0x21, 0x15, 0xe4, 0x87, 0x64, 0x04, 0xff, 0xb2, 0xb2, 0x31, 0x6a, 0x6a, 0xcb, 0xfe,
	0x84, 0x04, 0x60, 0xa5, 0x18, 0x0b, 0xe1, 0x98, 0xca, 0x93, 0xb5, 0x86, 0x53, 0x66, 0xad, 0xf9,
	0x8f, 0x45, 0x1e, 0x8e, 0x71, 0x54, 0xf2, 0xb7, 0xab, 0x98, 0x05, 0x73, 0xdf, 0x68, 0xc1, 0x64,
	0x4d, 0xfc, 0xb7, 0x45, 0xee, 0x9b, 0xcc, 0x98, 0xfc, 0xed, 0x2b, 0xe0, 0xde, 0x6c, 0x8d, 0xba,
	0x37, 0x68, 0xae, 0x60, 0x1b, 0x27, 0x7f, 0x93, 0xc0, 0xf7, 0xa9, 0x20, 0xdf, 0x67, 0x2c, 0x41,
	0x91, 0x65, 0x07, 0x1c, 0xa3, 0x0a, 0x72, 0x8c, 0x90, 0xa0, 0x34, 0xeb, 0x28, 0x3f, 0x03, 0x78,
	0x4d, 0x55, 0xec, 0x35, 0x8d, 0xa7, 0x28, 0xd2, 0x09, 0x70, 0xa9, 0xaa, 0xd8, 0xa5, 0x32, 0x53,
	0x14, 0xad, 0xcb, 0xe0, 0x6f, 0x55, 0xb1, 0xbf, 0x35, 0x9e, 0xa2, 0x48, 0x2f, 0xc0, 0x19, 0xab,
	0x62, 0x67, 0x0c, 0x95, 0x4c, 0xdd, 0x22, 0xcb, 0xcf, 0x01, 0x9e, 0x9a, 0xab, 0x79, 0x6a, 0xb7,
	0x90, 0x14, 0xe9, 0x08, 0xb8, 0x71, 0xae, 0xe6, 0xc6, 0xa1, 0x82, 0x39, 0x62, 0xcb, 0xe5, 0x67,
	0x01, 0x1f, 0x6f, 0x53, 0xf7, 0xf1, 0x6e, 0xa3, 0x29, 0xd2, 0x19, 0x70, 0x00, 0x37, 0x75, 0x07,
	0xd0, 0x2c, 0xc2, 0x82, 0x75, 0x19, 0xbc, 0xc3, 0x0a, 0xf2, 0x0e, 0xcd, 0x73, 0xab, 0x68, 0x5d,
	0x06, 0xd7, 0xb1, 0x8a, 0x5d, 0x47, 0x54, 0x97, 0x91, 0xfd, 0x98, 0x9f, 0x00, 0xfc, 0xca, 0x0d,
	0xd5, 0xaf, 0x1c, 0xa3, 0x8e, 0x82, 0x75, 0x19, 0x9c, 0xce, 0x2a, 0x76, 0x3a, 0xcd, 0x4f, 0xa1,
	0x60, 0x5d, 0x06, 0x8f, 0xb4, 0x82, 0x3c, 0x52, 0x5c, 0x97, 0x91, 0xd1, 0x99, 0x9f, 0x00, 0xec,
	0x55, 0x63, 0x7d, 0x19, 0xb3, 0xd1, 0xcb, 0x5a, 0x63, 0xa8, 0xcb, 0x63, 0x5c, 0xd6, 0xfc, 0xed,
	0x2a, 0x66, 0xcb, 0xde, 0x37, 0xda, 0xb2, 0xb8, 0x2e, 0x9b, 0x0c, 0xda, 0xfc, 0xed, 0x2b, 0xe0,
	0xe8, 0x6e, 0x8d, 0x3a, 0xba, 0x12, 0xb0, 0xfe, 0xe2, 0x6b, 0xd0, 0x6c, 0x0d, 0xfe, 0x3e, 0x3c,
	0xab, 0x9d, 0xc7, 0x9d, 0x9d, 0x66, 0xdc, 0x6e, 0x74, 0x9b, 0x3b, 0x1c, 0xf4, 0x6c, 0x78, 0xb9,
	0x73, 0xb5, 0xbb, 0xd3, 0xea, 0x0e, 0xa2, 0x7e, 0xb7, 0xd1, 0xde, 0x61, 0x1c, 0xfc, 0x42, 0xc2,
	0xbf, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x2d, 0x9b, 0x88, 0x4e, 0x25, 0x00, 0x00,
}

func init() {
	xxx_Test_ProtoFile_FileDesc.Messages = xxx_Test_ProtoFile_MessageDescs[0:4]
	xxx_Test_ProtoFile_MessageDescs[0].Enums = xxx_Test_ProtoFile_EnumDescs[0:1]
	xxx_Test_ProtoFile_MessageDescs[0].Messages = xxx_Test_ProtoFile_MessageDescs[4:24]
	xxx_Test_ProtoFile_MessageDescs[0].Fields[15].MessageType = xxx_Test_ProtoFile_MessageTypes[5].Type
	xxx_Test_ProtoFile_MessageDescs[0].Fields[16].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
	xxx_Test_ProtoFile_MessageDescs[0].Fields[17].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
	xxx_Test_ProtoFile_MessageDescs[0].Fields[33].MessageType = xxx_Test_ProtoFile_MessageTypes[6].Type
	xxx_Test_ProtoFile_MessageDescs[0].Fields[34].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
	xxx_Test_ProtoFile_MessageDescs[0].Fields[35].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
	xxx_Test_ProtoFile_MessageDescs[0].Fields[36].MessageType = xxx_Test_ProtoFile_MessageDescs[7].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[37].MessageType = xxx_Test_ProtoFile_MessageDescs[8].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[38].MessageType = xxx_Test_ProtoFile_MessageDescs[9].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[39].MessageType = xxx_Test_ProtoFile_MessageDescs[10].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[40].MessageType = xxx_Test_ProtoFile_MessageDescs[11].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[41].MessageType = xxx_Test_ProtoFile_MessageDescs[12].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[42].MessageType = xxx_Test_ProtoFile_MessageDescs[13].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[43].MessageType = xxx_Test_ProtoFile_MessageDescs[14].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[44].MessageType = xxx_Test_ProtoFile_MessageDescs[15].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[45].MessageType = xxx_Test_ProtoFile_MessageDescs[16].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[46].MessageType = xxx_Test_ProtoFile_MessageDescs[17].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[47].MessageType = xxx_Test_ProtoFile_MessageDescs[18].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[48].MessageType = xxx_Test_ProtoFile_MessageDescs[19].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[49].MessageType = xxx_Test_ProtoFile_MessageDescs[20].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[50].MessageType = xxx_Test_ProtoFile_MessageDescs[21].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[51].MessageType = xxx_Test_ProtoFile_MessageDescs[22].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[52].MessageType = xxx_Test_ProtoFile_MessageDescs[23].Reference()
	xxx_Test_ProtoFile_MessageDescs[0].Fields[54].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
	xxx_Test_ProtoFile_MessageDescs[0].Fields[61].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
	xxx_Test_ProtoFile_MessageDescs[4].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[0].Type
	xxx_Test_ProtoFile_MessageDescs[22].Fields[1].MessageType = xxx_Test_ProtoFile_MessageTypes[4].Type
	xxx_Test_ProtoFile_MessageDescs[23].Fields[1].EnumType = xxx_Test_ProtoFile_EnumTypes[0]
	var err error
	Test_ProtoFile, err = prototype.NewFile(&xxx_Test_ProtoFile_FileDesc)
	if err != nil {
		panic(err)
	}
}

const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)

var Test_ProtoFile protoreflect.FileDescriptor

var xxx_Test_ProtoFile_FileDesc = prototype.File{
	Syntax:  protoreflect.Proto2,
	Path:    "test.proto",
	Package: "goproto.proto.test",
}
var xxx_Test_ProtoFile_EnumTypes = [1]protoreflect.EnumType{
	prototype.GoEnum(
		xxx_Test_ProtoFile_EnumDescs[0].Reference(),
		func(_ protoreflect.EnumType, n protoreflect.EnumNumber) protoreflect.Enum {
			return TestAllTypes_NestedEnum(n)
		},
	),
}
var xxx_Test_ProtoFile_EnumDescs = [1]prototype.Enum{
	{
		Name: "NestedEnum",
		Values: []prototype.EnumValue{
			{Name: "FOO", Number: 0},
			{Name: "BAR", Number: 1},
			{Name: "BAZ", Number: 2},
			{Name: "NEG", Number: -1},
		},
	},
}
var xxx_Test_ProtoFile_MessageTypes = [24]protoimpl.MessageType{
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[0].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_TestAllTypes{new(TestAllTypes)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[1].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_TestAllExtensions{new(TestAllExtensions)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[2].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_OptionalGroupExtension{new(OptionalGroupExtension)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[3].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_RepeatedGroupExtension{new(RepeatedGroupExtension)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[4].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_TestAllTypes_NestedMessage{new(TestAllTypes_NestedMessage)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[5].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_TestAllTypes_OptionalGroup{new(TestAllTypes_OptionalGroup)}
		},
	)},
	{Type: prototype.GoMessage(
		xxx_Test_ProtoFile_MessageDescs[6].Reference(),
		func(protoreflect.MessageType) protoreflect.Message {
			return xxx_TestAllTypes_RepeatedGroup{new(TestAllTypes_RepeatedGroup)}
		},
	)},
	{ /* no message type for TestAllTypes_MapInt32Int32Entry */ },
	{ /* no message type for TestAllTypes_MapInt64Int64Entry */ },
	{ /* no message type for TestAllTypes_MapUint32Uint32Entry */ },
	{ /* no message type for TestAllTypes_MapUint64Uint64Entry */ },
	{ /* no message type for TestAllTypes_MapSint32Sint32Entry */ },
	{ /* no message type for TestAllTypes_MapSint64Sint64Entry */ },
	{ /* no message type for TestAllTypes_MapFixed32Fixed32Entry */ },
	{ /* no message type for TestAllTypes_MapFixed64Fixed64Entry */ },
	{ /* no message type for TestAllTypes_MapSfixed32Sfixed32Entry */ },
	{ /* no message type for TestAllTypes_MapSfixed64Sfixed64Entry */ },
	{ /* no message type for TestAllTypes_MapInt32FloatEntry */ },
	{ /* no message type for TestAllTypes_MapInt32DoubleEntry */ },
	{ /* no message type for TestAllTypes_MapBoolBoolEntry */ },
	{ /* no message type for TestAllTypes_MapStringStringEntry */ },
	{ /* no message type for TestAllTypes_MapStringBytesEntry */ },
	{ /* no message type for TestAllTypes_MapStringNestedMessageEntry */ },
	{ /* no message type for TestAllTypes_MapStringNestedEnumEntry */ },
}
var xxx_Test_ProtoFile_MessageDescs = [24]prototype.Message{
	{
		Name: "TestAllTypes",
		Fields: []prototype.Field{
			{
				Name:        "optional_int32",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "optionalInt32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_int64",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int64Kind,
				JSONName:    "optionalInt64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_uint32",
				Number:      3,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint32Kind,
				JSONName:    "optionalUint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_uint64",
				Number:      4,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint64Kind,
				JSONName:    "optionalUint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_sint32",
				Number:      5,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint32Kind,
				JSONName:    "optionalSint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_sint64",
				Number:      6,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint64Kind,
				JSONName:    "optionalSint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_fixed32",
				Number:      7,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed32Kind,
				JSONName:    "optionalFixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_fixed64",
				Number:      8,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed64Kind,
				JSONName:    "optionalFixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_sfixed32",
				Number:      9,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed32Kind,
				JSONName:    "optionalSfixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_sfixed64",
				Number:      10,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed64Kind,
				JSONName:    "optionalSfixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_float",
				Number:      11,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.FloatKind,
				JSONName:    "optionalFloat",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_double",
				Number:      12,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.DoubleKind,
				JSONName:    "optionalDouble",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_bool",
				Number:      13,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BoolKind,
				JSONName:    "optionalBool",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_string",
				Number:      14,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "optionalString",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_bytes",
				Number:      15,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BytesKind,
				JSONName:    "optionalBytes",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optionalgroup",
				Number:      16,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.GroupKind,
				JSONName:    "optionalgroup",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_nested_message",
				Number:      18,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.MessageKind,
				JSONName:    "optionalNestedMessage",
				IsPacked:    prototype.False,
			},
			{
				Name:        "optional_nested_enum",
				Number:      21,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.EnumKind,
				JSONName:    "optionalNestedEnum",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_int32",
				Number:      31,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "repeatedInt32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_int64",
				Number:      32,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Int64Kind,
				JSONName:    "repeatedInt64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_uint32",
				Number:      33,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Uint32Kind,
				JSONName:    "repeatedUint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_uint64",
				Number:      34,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Uint64Kind,
				JSONName:    "repeatedUint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_sint32",
				Number:      35,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Sint32Kind,
				JSONName:    "repeatedSint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_sint64",
				Number:      36,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Sint64Kind,
				JSONName:    "repeatedSint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_fixed32",
				Number:      37,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Fixed32Kind,
				JSONName:    "repeatedFixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_fixed64",
				Number:      38,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Fixed64Kind,
				JSONName:    "repeatedFixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_sfixed32",
				Number:      39,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Sfixed32Kind,
				JSONName:    "repeatedSfixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_sfixed64",
				Number:      40,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.Sfixed64Kind,
				JSONName:    "repeatedSfixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_float",
				Number:      41,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.FloatKind,
				JSONName:    "repeatedFloat",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_double",
				Number:      42,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.DoubleKind,
				JSONName:    "repeatedDouble",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_bool",
				Number:      43,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.BoolKind,
				JSONName:    "repeatedBool",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_string",
				Number:      44,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.StringKind,
				JSONName:    "repeatedString",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_bytes",
				Number:      45,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.BytesKind,
				JSONName:    "repeatedBytes",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeatedgroup",
				Number:      46,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.GroupKind,
				JSONName:    "repeatedgroup",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_nested_message",
				Number:      48,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "repeatedNestedMessage",
				IsPacked:    prototype.False,
			},
			{
				Name:        "repeated_nested_enum",
				Number:      51,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.EnumKind,
				JSONName:    "repeatedNestedEnum",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_int32_int32",
				Number:      56,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapInt32Int32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_int64_int64",
				Number:      57,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapInt64Int64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_uint32_uint32",
				Number:      58,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapUint32Uint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_uint64_uint64",
				Number:      59,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapUint64Uint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_sint32_sint32",
				Number:      60,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapSint32Sint32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_sint64_sint64",
				Number:      61,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapSint64Sint64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_fixed32_fixed32",
				Number:      62,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapFixed32Fixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_fixed64_fixed64",
				Number:      63,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapFixed64Fixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_sfixed32_sfixed32",
				Number:      64,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapSfixed32Sfixed32",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_sfixed64_sfixed64",
				Number:      65,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapSfixed64Sfixed64",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_int32_float",
				Number:      66,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapInt32Float",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_int32_double",
				Number:      67,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapInt32Double",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_bool_bool",
				Number:      68,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapBoolBool",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_string_string",
				Number:      69,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapStringString",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_string_bytes",
				Number:      70,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapStringBytes",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_string_nested_message",
				Number:      71,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapStringNestedMessage",
				IsPacked:    prototype.False,
			},
			{
				Name:        "map_string_nested_enum",
				Number:      73,
				Cardinality: protoreflect.Repeated,
				Kind:        protoreflect.MessageKind,
				JSONName:    "mapStringNestedEnum",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_uint32",
				Number:      111,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint32Kind,
				JSONName:    "oneofUint32",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_nested_message",
				Number:      112,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.MessageKind,
				JSONName:    "oneofNestedMessage",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_string",
				Number:      113,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "oneofString",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_bytes",
				Number:      114,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BytesKind,
				JSONName:    "oneofBytes",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_bool",
				Number:      115,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BoolKind,
				JSONName:    "oneofBool",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_uint64",
				Number:      116,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint64Kind,
				JSONName:    "oneofUint64",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_float",
				Number:      117,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.FloatKind,
				JSONName:    "oneofFloat",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_double",
				Number:      118,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.DoubleKind,
				JSONName:    "oneofDouble",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
			{
				Name:        "oneof_enum",
				Number:      119,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.EnumKind,
				JSONName:    "oneofEnum",
				OneofName:   "oneof_field",
				IsPacked:    prototype.False,
			},
		},
		Oneofs: []prototype.Oneof{
			{Name: "oneof_field"},
		},
	},
	{
		Name:            "TestAllExtensions",
		ExtensionRanges: [][2]protoreflect.FieldNumber{{1, 536870912}},
	},
	{
		Name: "OptionalGroup_extension",
		Fields: []prototype.Field{
			{
				Name:        "a",
				Number:      17,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "a",
				IsPacked:    prototype.False,
			},
		},
	},
	{
		Name: "RepeatedGroup_extension",
		Fields: []prototype.Field{
			{
				Name:        "a",
				Number:      47,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "a",
				IsPacked:    prototype.False,
			},
		},
	},
	{
		Name: "NestedMessage",
		Fields: []prototype.Field{
			{
				Name:        "a",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "a",
				IsPacked:    prototype.False,
			},
			{
				Name:        "corecursive",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.MessageKind,
				JSONName:    "corecursive",
				IsPacked:    prototype.False,
			},
		},
	},
	{
		Name: "OptionalGroup",
		Fields: []prototype.Field{
			{
				Name:        "a",
				Number:      17,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "a",
				IsPacked:    prototype.False,
			},
		},
	},
	{
		Name: "RepeatedGroup",
		Fields: []prototype.Field{
			{
				Name:        "a",
				Number:      47,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "a",
				IsPacked:    prototype.False,
			},
		},
	},
	{
		Name: "MapInt32Int32Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapInt64Int64Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int64Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int64Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapUint32Uint32Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint32Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapUint64Uint64Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint64Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Uint64Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapSint32Sint32Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint32Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapSint64Sint64Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint64Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sint64Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapFixed32Fixed32Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed32Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapFixed64Fixed64Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed64Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Fixed64Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapSfixed32Sfixed32Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed32Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapSfixed64Sfixed64Entry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed64Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Sfixed64Kind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapInt32FloatEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.FloatKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapInt32DoubleEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.Int32Kind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.DoubleKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapBoolBoolEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BoolKind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BoolKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapStringStringEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapStringBytesEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.BytesKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapStringNestedMessageEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.MessageKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
	{
		Name: "MapStringNestedEnumEntry",
		Fields: []prototype.Field{
			{
				Name:        "key",
				Number:      1,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.StringKind,
				JSONName:    "key",
				IsPacked:    prototype.False,
			},
			{
				Name:        "value",
				Number:      2,
				Cardinality: protoreflect.Optional,
				Kind:        protoreflect.EnumKind,
				JSONName:    "value",
				IsPacked:    prototype.False,
			},
		},
		IsMapEntry: true,
	},
}
