// Code generated by protoc-gen-gogo.
// source: combos/neither/one.proto
// DO NOT EDIT!

/*
Package one is a generated protocol buffer package.

It is generated from these files:
	combos/neither/one.proto

It has these top-level messages:
	Subby
	AllTypesOneOf
	TwoOneofs
	CustomOneof
*/
package one

import proto "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/proto"
import fmt "fmt"
import math "math"

// discarding unused import gogoproto "github.com/gogo/protobuf/gogoproto"

import github_com_gogo_protobuf_test_custom "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/test/custom"
import github_com_gogo_protobuf_test_casttype "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/test/casttype"

import google_protobuf "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/protoc-gen-gogo/descriptor"

import bytes "bytes"

import strings "strings"
import github_com_gogo_protobuf_proto "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/proto"
import sort "sort"
import strconv "strconv"
import reflect "reflect"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

type Subby struct {
	Sub              *string `protobuf:"bytes,1,opt,name=sub" json:"sub,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *Subby) Reset()      { *m = Subby{} }
func (*Subby) ProtoMessage() {}

type AllTypesOneOf struct {
	// Types that are valid to be assigned to TestOneof:
	//	*AllTypesOneOf_Field1
	//	*AllTypesOneOf_Field2
	//	*AllTypesOneOf_Field3
	//	*AllTypesOneOf_Field4
	//	*AllTypesOneOf_Field5
	//	*AllTypesOneOf_Field6
	//	*AllTypesOneOf_Field7
	//	*AllTypesOneOf_Field8
	//	*AllTypesOneOf_Field9
	//	*AllTypesOneOf_Field10
	//	*AllTypesOneOf_Field11
	//	*AllTypesOneOf_Field12
	//	*AllTypesOneOf_Field13
	//	*AllTypesOneOf_Field14
	//	*AllTypesOneOf_Field15
	//	*AllTypesOneOf_SubMessage
	TestOneof        isAllTypesOneOf_TestOneof `protobuf_oneof:"test_oneof"`
	XXX_unrecognized []byte                    `json:"-"`
}

func (m *AllTypesOneOf) Reset()      { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}

type isAllTypesOneOf_TestOneof interface {
	isAllTypesOneOf_TestOneof()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
}

type AllTypesOneOf_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"`
}
type AllTypesOneOf_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"`
}
type AllTypesOneOf_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"`
}
type AllTypesOneOf_Field4 struct {
	Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"`
}
type AllTypesOneOf_Field5 struct {
	Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"`
}
type AllTypesOneOf_Field6 struct {
	Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"`
}
type AllTypesOneOf_Field7 struct {
	Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"`
}
type AllTypesOneOf_Field8 struct {
	Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"`
}
type AllTypesOneOf_Field9 struct {
	Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"`
}
type AllTypesOneOf_Field10 struct {
	Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"`
}
type AllTypesOneOf_Field11 struct {
	Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"`
}
type AllTypesOneOf_Field12 struct {
	Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"`
}
type AllTypesOneOf_Field13 struct {
	Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"`
}
type AllTypesOneOf_Field14 struct {
	Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"`
}
type AllTypesOneOf_Field15 struct {
	Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"`
}
type AllTypesOneOf_SubMessage struct {
	SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,oneof"`
}

func (*AllTypesOneOf_Field1) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field2) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field3) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field4) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field5) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field6) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field7) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field8) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field9) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field10) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field11) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field12) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field13) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field14) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field15) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_SubMessage) isAllTypesOneOf_TestOneof() {}

func (m *AllTypesOneOf) GetTestOneof() isAllTypesOneOf_TestOneof {
	if m != nil {
		return m.TestOneof
	}
	return nil
}

func (m *AllTypesOneOf) GetField1() float64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field1); ok {
		return x.Field1
	}
	return 0
}

func (m *AllTypesOneOf) GetField2() float32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field2); ok {
		return x.Field2
	}
	return 0
}

func (m *AllTypesOneOf) GetField3() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field3); ok {
		return x.Field3
	}
	return 0
}

func (m *AllTypesOneOf) GetField4() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field4); ok {
		return x.Field4
	}
	return 0
}

func (m *AllTypesOneOf) GetField5() uint32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field5); ok {
		return x.Field5
	}
	return 0
}

func (m *AllTypesOneOf) GetField6() uint64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field6); ok {
		return x.Field6
	}
	return 0
}

func (m *AllTypesOneOf) GetField7() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field7); ok {
		return x.Field7
	}
	return 0
}

func (m *AllTypesOneOf) GetField8() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field8); ok {
		return x.Field8
	}
	return 0
}

func (m *AllTypesOneOf) GetField9() uint32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field9); ok {
		return x.Field9
	}
	return 0
}

func (m *AllTypesOneOf) GetField10() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field10); ok {
		return x.Field10
	}
	return 0
}

func (m *AllTypesOneOf) GetField11() uint64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field11); ok {
		return x.Field11
	}
	return 0
}

func (m *AllTypesOneOf) GetField12() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field12); ok {
		return x.Field12
	}
	return 0
}

func (m *AllTypesOneOf) GetField13() bool {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field13); ok {
		return x.Field13
	}
	return false
}

func (m *AllTypesOneOf) GetField14() string {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field14); ok {
		return x.Field14
	}
	return ""
}

func (m *AllTypesOneOf) GetField15() []byte {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field15); ok {
		return x.Field15
	}
	return nil
}

func (m *AllTypesOneOf) GetSubMessage() *Subby {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_SubMessage); ok {
		return x.SubMessage
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*AllTypesOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) {
	return _AllTypesOneOf_OneofMarshaler, _AllTypesOneOf_OneofUnmarshaler, []interface{}{
		(*AllTypesOneOf_Field1)(nil),
		(*AllTypesOneOf_Field2)(nil),
		(*AllTypesOneOf_Field3)(nil),
		(*AllTypesOneOf_Field4)(nil),
		(*AllTypesOneOf_Field5)(nil),
		(*AllTypesOneOf_Field6)(nil),
		(*AllTypesOneOf_Field7)(nil),
		(*AllTypesOneOf_Field8)(nil),
		(*AllTypesOneOf_Field9)(nil),
		(*AllTypesOneOf_Field10)(nil),
		(*AllTypesOneOf_Field11)(nil),
		(*AllTypesOneOf_Field12)(nil),
		(*AllTypesOneOf_Field13)(nil),
		(*AllTypesOneOf_Field14)(nil),
		(*AllTypesOneOf_Field15)(nil),
		(*AllTypesOneOf_SubMessage)(nil),
	}
}

func _AllTypesOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*AllTypesOneOf)
	// test_oneof
	switch x := m.TestOneof.(type) {
	case *AllTypesOneOf_Field1:
		_ = b.EncodeVarint(1<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.Field1))
	case *AllTypesOneOf_Field2:
		_ = b.EncodeVarint(2<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2)))
	case *AllTypesOneOf_Field3:
		_ = b.EncodeVarint(3<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field3))
	case *AllTypesOneOf_Field4:
		_ = b.EncodeVarint(4<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field4))
	case *AllTypesOneOf_Field5:
		_ = b.EncodeVarint(5<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field5))
	case *AllTypesOneOf_Field6:
		_ = b.EncodeVarint(6<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field6))
	case *AllTypesOneOf_Field7:
		_ = b.EncodeVarint(7<<3 | proto.WireVarint)
		_ = b.EncodeZigzag32(uint64(x.Field7))
	case *AllTypesOneOf_Field8:
		_ = b.EncodeVarint(8<<3 | proto.WireVarint)
		_ = b.EncodeZigzag64(uint64(x.Field8))
	case *AllTypesOneOf_Field9:
		_ = b.EncodeVarint(9<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field9))
	case *AllTypesOneOf_Field10:
		_ = b.EncodeVarint(10<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field10))
	case *AllTypesOneOf_Field11:
		_ = b.EncodeVarint(11<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field11))
	case *AllTypesOneOf_Field12:
		_ = b.EncodeVarint(12<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field12))
	case *AllTypesOneOf_Field13:
		t := uint64(0)
		if x.Field13 {
			t = 1
		}
		_ = b.EncodeVarint(13<<3 | proto.WireVarint)
		_ = b.EncodeVarint(t)
	case *AllTypesOneOf_Field14:
		_ = b.EncodeVarint(14<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Field14)
	case *AllTypesOneOf_Field15:
		_ = b.EncodeVarint(15<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Field15)
	case *AllTypesOneOf_SubMessage:
		_ = b.EncodeVarint(16<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SubMessage); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("AllTypesOneOf.TestOneof has unexpected type %T", x)
	}
	return nil
}

func _AllTypesOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*AllTypesOneOf)
	switch tag {
	case 1: // test_oneof.Field1
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field1{math.Float64frombits(x)}
		return true, err
	case 2: // test_oneof.Field2
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field2{math.Float32frombits(uint32(x))}
		return true, err
	case 3: // test_oneof.Field3
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field3{int32(x)}
		return true, err
	case 4: // test_oneof.Field4
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field4{int64(x)}
		return true, err
	case 5: // test_oneof.Field5
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field5{uint32(x)}
		return true, err
	case 6: // test_oneof.Field6
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field6{x}
		return true, err
	case 7: // test_oneof.Field7
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag32()
		m.TestOneof = &AllTypesOneOf_Field7{int32(x)}
		return true, err
	case 8: // test_oneof.Field8
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag64()
		m.TestOneof = &AllTypesOneOf_Field8{int64(x)}
		return true, err
	case 9: // test_oneof.Field9
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field9{uint32(x)}
		return true, err
	case 10: // test_oneof.Field10
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field10{int32(x)}
		return true, err
	case 11: // test_oneof.Field11
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field11{x}
		return true, err
	case 12: // test_oneof.Field12
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field12{int64(x)}
		return true, err
	case 13: // test_oneof.Field13
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field13{x != 0}
		return true, err
	case 14: // test_oneof.Field14
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.TestOneof = &AllTypesOneOf_Field14{x}
		return true, err
	case 15: // test_oneof.Field15
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.TestOneof = &AllTypesOneOf_Field15{x}
		return true, err
	case 16: // test_oneof.sub_message
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Subby)
		err := b.DecodeMessage(msg)
		m.TestOneof = &AllTypesOneOf_SubMessage{msg}
		return true, err
	default:
		return false, nil
	}
}

type TwoOneofs struct {
	// Types that are valid to be assigned to One:
	//	*TwoOneofs_Field1
	//	*TwoOneofs_Field2
	//	*TwoOneofs_Field3
	One isTwoOneofs_One `protobuf_oneof:"one"`
	// Types that are valid to be assigned to Two:
	//	*TwoOneofs_Field34
	//	*TwoOneofs_Field35
	//	*TwoOneofs_SubMessage2
	Two              isTwoOneofs_Two `protobuf_oneof:"two"`
	XXX_unrecognized []byte          `json:"-"`
}

func (m *TwoOneofs) Reset()      { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}

type isTwoOneofs_One interface {
	isTwoOneofs_One()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
}
type isTwoOneofs_Two interface {
	isTwoOneofs_Two()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
}

type TwoOneofs_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"`
}
type TwoOneofs_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"`
}
type TwoOneofs_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"`
}
type TwoOneofs_Field34 struct {
	Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"`
}
type TwoOneofs_Field35 struct {
	Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"`
}
type TwoOneofs_SubMessage2 struct {
	SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,oneof"`
}

func (*TwoOneofs_Field1) isTwoOneofs_One()      {}
func (*TwoOneofs_Field2) isTwoOneofs_One()      {}
func (*TwoOneofs_Field3) isTwoOneofs_One()      {}
func (*TwoOneofs_Field34) isTwoOneofs_Two()     {}
func (*TwoOneofs_Field35) isTwoOneofs_Two()     {}
func (*TwoOneofs_SubMessage2) isTwoOneofs_Two() {}

func (m *TwoOneofs) GetOne() isTwoOneofs_One {
	if m != nil {
		return m.One
	}
	return nil
}
func (m *TwoOneofs) GetTwo() isTwoOneofs_Two {
	if m != nil {
		return m.Two
	}
	return nil
}

func (m *TwoOneofs) GetField1() float64 {
	if x, ok := m.GetOne().(*TwoOneofs_Field1); ok {
		return x.Field1
	}
	return 0
}

func (m *TwoOneofs) GetField2() float32 {
	if x, ok := m.GetOne().(*TwoOneofs_Field2); ok {
		return x.Field2
	}
	return 0
}

func (m *TwoOneofs) GetField3() int32 {
	if x, ok := m.GetOne().(*TwoOneofs_Field3); ok {
		return x.Field3
	}
	return 0
}

func (m *TwoOneofs) GetField34() string {
	if x, ok := m.GetTwo().(*TwoOneofs_Field34); ok {
		return x.Field34
	}
	return ""
}

func (m *TwoOneofs) GetField35() []byte {
	if x, ok := m.GetTwo().(*TwoOneofs_Field35); ok {
		return x.Field35
	}
	return nil
}

func (m *TwoOneofs) GetSubMessage2() *Subby {
	if x, ok := m.GetTwo().(*TwoOneofs_SubMessage2); ok {
		return x.SubMessage2
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*TwoOneofs) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) {
	return _TwoOneofs_OneofMarshaler, _TwoOneofs_OneofUnmarshaler, []interface{}{
		(*TwoOneofs_Field1)(nil),
		(*TwoOneofs_Field2)(nil),
		(*TwoOneofs_Field3)(nil),
		(*TwoOneofs_Field34)(nil),
		(*TwoOneofs_Field35)(nil),
		(*TwoOneofs_SubMessage2)(nil),
	}
}

func _TwoOneofs_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*TwoOneofs)
	// one
	switch x := m.One.(type) {
	case *TwoOneofs_Field1:
		_ = b.EncodeVarint(1<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.Field1))
	case *TwoOneofs_Field2:
		_ = b.EncodeVarint(2<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2)))
	case *TwoOneofs_Field3:
		_ = b.EncodeVarint(3<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field3))
	case nil:
	default:
		return fmt.Errorf("TwoOneofs.One has unexpected type %T", x)
	}
	// two
	switch x := m.Two.(type) {
	case *TwoOneofs_Field34:
		_ = b.EncodeVarint(34<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Field34)
	case *TwoOneofs_Field35:
		_ = b.EncodeVarint(35<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Field35)
	case *TwoOneofs_SubMessage2:
		_ = b.EncodeVarint(36<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SubMessage2); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("TwoOneofs.Two has unexpected type %T", x)
	}
	return nil
}

func _TwoOneofs_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*TwoOneofs)
	switch tag {
	case 1: // one.Field1
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.One = &TwoOneofs_Field1{math.Float64frombits(x)}
		return true, err
	case 2: // one.Field2
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.One = &TwoOneofs_Field2{math.Float32frombits(uint32(x))}
		return true, err
	case 3: // one.Field3
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.One = &TwoOneofs_Field3{int32(x)}
		return true, err
	case 34: // two.Field34
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Two = &TwoOneofs_Field34{x}
		return true, err
	case 35: // two.Field35
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.Two = &TwoOneofs_Field35{x}
		return true, err
	case 36: // two.sub_message2
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Subby)
		err := b.DecodeMessage(msg)
		m.Two = &TwoOneofs_SubMessage2{msg}
		return true, err
	default:
		return false, nil
	}
}

type CustomOneof struct {
	// Types that are valid to be assigned to Custom:
	//	*CustomOneof_Stringy
	//	*CustomOneof_CustomType
	//	*CustomOneof_CastType
	//	*CustomOneof_MyCustomName
	Custom           isCustomOneof_Custom `protobuf_oneof:"custom"`
	XXX_unrecognized []byte               `json:"-"`
}

func (m *CustomOneof) Reset()      { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}

type isCustomOneof_Custom interface {
	isCustomOneof_Custom()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
}

type CustomOneof_Stringy struct {
	Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"`
}
type CustomOneof_CustomType struct {
	CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"`
}
type CustomOneof_CastType struct {
	CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"`
}
type CustomOneof_MyCustomName struct {
	MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"`
}

func (*CustomOneof_Stringy) isCustomOneof_Custom()      {}
func (*CustomOneof_CustomType) isCustomOneof_Custom()   {}
func (*CustomOneof_CastType) isCustomOneof_Custom()     {}
func (*CustomOneof_MyCustomName) isCustomOneof_Custom() {}

func (m *CustomOneof) GetCustom() isCustomOneof_Custom {
	if m != nil {
		return m.Custom
	}
	return nil
}

func (m *CustomOneof) GetStringy() string {
	if x, ok := m.GetCustom().(*CustomOneof_Stringy); ok {
		return x.Stringy
	}
	return ""
}

func (m *CustomOneof) GetCastType() github_com_gogo_protobuf_test_casttype.MyUint64Type {
	if x, ok := m.GetCustom().(*CustomOneof_CastType); ok {
		return x.CastType
	}
	return 0
}

func (m *CustomOneof) GetMyCustomName() int64 {
	if x, ok := m.GetCustom().(*CustomOneof_MyCustomName); ok {
		return x.MyCustomName
	}
	return 0
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*CustomOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) {
	return _CustomOneof_OneofMarshaler, _CustomOneof_OneofUnmarshaler, []interface{}{
		(*CustomOneof_Stringy)(nil),
		(*CustomOneof_CustomType)(nil),
		(*CustomOneof_CastType)(nil),
		(*CustomOneof_MyCustomName)(nil),
	}
}

func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*CustomOneof)
	// custom
	switch x := m.Custom.(type) {
	case *CustomOneof_Stringy:
		_ = b.EncodeVarint(34<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Stringy)
	case *CustomOneof_CustomType:
		_ = b.EncodeVarint(35<<3 | proto.WireBytes)
		data, err := x.CustomType.Marshal()
		if err != nil {
			return err
		}
		_ = b.EncodeRawBytes(data)
	case *CustomOneof_CastType:
		_ = b.EncodeVarint(36<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.CastType))
	case *CustomOneof_MyCustomName:
		_ = b.EncodeVarint(37<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.MyCustomName))
	case nil:
	default:
		return fmt.Errorf("CustomOneof.Custom has unexpected type %T", x)
	}
	return nil
}

func _CustomOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*CustomOneof)
	switch tag {
	case 34: // custom.Stringy
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Custom = &CustomOneof_Stringy{x}
		return true, err
	case 35: // custom.CustomType
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		if err != nil {
			return true, err
		}
		var cc github_com_gogo_protobuf_test_custom.Uint128
		c := &cc
		err = c.Unmarshal(x)
		m.Custom = &CustomOneof_CustomType{*c}
		return true, err
	case 36: // custom.CastType
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Custom = &CustomOneof_CastType{github_com_gogo_protobuf_test_casttype.MyUint64Type(x)}
		return true, err
	case 37: // custom.CustomName
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Custom = &CustomOneof_MyCustomName{int64(x)}
		return true, err
	default:
		return false, nil
	}
}

func (this *Subby) Description() (desc *google_protobuf.FileDescriptorSet) {
	return OneDescription()
}
func (this *AllTypesOneOf) Description() (desc *google_protobuf.FileDescriptorSet) {
	return OneDescription()
}
func (this *TwoOneofs) Description() (desc *google_protobuf.FileDescriptorSet) {
	return OneDescription()
}
func (this *CustomOneof) Description() (desc *google_protobuf.FileDescriptorSet) {
	return OneDescription()
}
func OneDescription() (desc *google_protobuf.FileDescriptorSet) {
	return &google_protobuf.FileDescriptorSet{File: []*google_protobuf.FileDescriptorProto{{Name: func(v string) *string { return &v }("google/protobuf/descriptor.proto"),
		Package: func(v string) *string { return &v }("google.protobuf"),
		MessageType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("FileDescriptorSet"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("file"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FileDescriptorProto"),
			}},
		}, {Name: func(v string) *string { return &v }("FileDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("package"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("dependency"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("public_dependency"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("weak_dependency"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("message_type"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto"),
			}, {Name: func(v string) *string { return &v }("enum_type"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("service"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.ServiceDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
			}, {Name: func(v string) *string { return &v }("source_code_info"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.SourceCodeInfo"),
			}, {Name: func(v string) *string { return &v }("syntax"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
		}, {Name: func(v string) *string { return &v }("DescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("field"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("nested_type"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto"),
			}, {Name: func(v string) *string { return &v }("enum_type"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension_range"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto.ExtensionRange"),
			}, {Name: func(v string) *string { return &v }("oneof_decl"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.OneofDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("ExtensionRange"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("start"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
				}, {Name: func(v string) *string { return &v }("end"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("FieldDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("number"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("label"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto.Label"),
			}, {Name: func(v string) *string { return &v }("type"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto.Type"),
			}, {Name: func(v string) *string { return &v }("type_name"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("extendee"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("default_value"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("oneof_index"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("Type"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("TYPE_DOUBLE"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("TYPE_FLOAT"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("TYPE_INT64"),
					Number: func(v int32) *int32 { return &v }(3),
				}, {Name: func(v string) *string { return &v }("TYPE_UINT64"),
					Number: func(v int32) *int32 { return &v }(4),
				}, {Name: func(v string) *string { return &v }("TYPE_INT32"),
					Number: func(v int32) *int32 { return &v }(5),
				}, {Name: func(v string) *string { return &v }("TYPE_FIXED64"),
					Number: func(v int32) *int32 { return &v }(6),
				}, {Name: func(v string) *string { return &v }("TYPE_FIXED32"),
					Number: func(v int32) *int32 { return &v }(7),
				}, {Name: func(v string) *string { return &v }("TYPE_BOOL"),
					Number: func(v int32) *int32 { return &v }(8),
				}, {Name: func(v string) *string { return &v }("TYPE_STRING"),
					Number: func(v int32) *int32 { return &v }(9),
				}, {Name: func(v string) *string { return &v }("TYPE_GROUP"),
					Number: func(v int32) *int32 { return &v }(10),
				}, {Name: func(v string) *string { return &v }("TYPE_MESSAGE"),
					Number: func(v int32) *int32 { return &v }(11),
				}, {Name: func(v string) *string { return &v }("TYPE_BYTES"),
					Number: func(v int32) *int32 { return &v }(12),
				}, {Name: func(v string) *string { return &v }("TYPE_UINT32"),
					Number: func(v int32) *int32 { return &v }(13),
				}, {Name: func(v string) *string { return &v }("TYPE_ENUM"),
					Number: func(v int32) *int32 { return &v }(14),
				}, {Name: func(v string) *string { return &v }("TYPE_SFIXED32"),
					Number: func(v int32) *int32 { return &v }(15),
				}, {Name: func(v string) *string { return &v }("TYPE_SFIXED64"),
					Number: func(v int32) *int32 { return &v }(16),
				}, {Name: func(v string) *string { return &v }("TYPE_SINT32"),
					Number: func(v int32) *int32 { return &v }(17),
				}, {Name: func(v string) *string { return &v }("TYPE_SINT64"),
					Number: func(v int32) *int32 { return &v }(18),
				}},
			}, {Name: func(v string) *string { return &v }("Label"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("LABEL_OPTIONAL"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("LABEL_REQUIRED"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("LABEL_REPEATED"),
					Number: func(v int32) *int32 { return &v }(3),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("OneofDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
		}, {Name: func(v string) *string { return &v }("EnumDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumValueDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("EnumValueDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("number"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumValueOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("ServiceDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("method"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MethodDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.ServiceOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("MethodDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("input_type"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("output_type"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MethodOptions"),
			}, {Name: func(v string) *string { return &v }("client_streaming"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("server_streaming"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}},
		}, {Name: func(v string) *string { return &v }("FileOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("java_package"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("java_outer_classname"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("java_multiple_files"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_generate_equals_and_hash"),
				Number: func(v int32) *int32 { return &v }(20),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_string_check_utf8"),
				Number: func(v int32) *int32 { return &v }(27),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("optimize_for"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".google.protobuf.FileOptions.OptimizeMode"),
				DefaultValue: func(v string) *string { return &v }("SPEED"),
			}, {Name: func(v string) *string { return &v }("go_package"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("cc_generic_services"),
				Number: func(v int32) *int32 { return &v }(16),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_generic_services"),
				Number: func(v int32) *int32 { return &v }(17),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("py_generic_services"),
				Number: func(v int32) *int32 { return &v }(18),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(23),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("cc_enable_arenas"),
				Number: func(v int32) *int32 { return &v }(31),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("OptimizeMode"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("SPEED"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("CODE_SIZE"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("LITE_RUNTIME"),
					Number: func(v int32) *int32 { return &v }(3),
				}},
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("MessageOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("message_set_wire_format"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("no_standard_descriptor_accessor"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("map_entry"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("FieldOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("ctype"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".google.protobuf.FieldOptions.CType"),
				DefaultValue: func(v string) *string { return &v }("STRING"),
			}, {Name: func(v string) *string { return &v }("packed"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("lazy"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("weak"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("CType"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("STRING"),
					Number: func(v int32) *int32 { return &v }(0),
				}, {Name: func(v string) *string { return &v }("CORD"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("STRING_PIECE"),
					Number: func(v int32) *int32 { return &v }(2),
				}},
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("EnumOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("allow_alias"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("EnumValueOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("ServiceOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(33),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("MethodOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(33),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("UninterpretedOption"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption.NamePart"),
			}, {Name: func(v string) *string { return &v }("identifier_value"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("positive_int_value"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("negative_int_value"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("double_value"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("string_value"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}, {Name: func(v string) *string { return &v }("aggregate_value"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("NamePart"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name_part"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(2),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}, {Name: func(v string) *string { return &v }("is_extension"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(2),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(8),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("SourceCodeInfo"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("location"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.SourceCodeInfo.Location"),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("Location"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("path"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(3),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
					Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
						XXX_extensions: map[int32]proto.Extension{},
					},
				}, {Name: func(v string) *string { return &v }("span"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(3),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
					Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
						XXX_extensions: map[int32]proto.Extension{},
					},
				}, {Name: func(v string) *string { return &v }("leading_comments"),
					Number: func(v int32) *int32 { return &v }(3),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}, {Name: func(v string) *string { return &v }("trailing_comments"),
					Number: func(v int32) *int32 { return &v }(4),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}},
			}},
		}},
		Options: &google_protobuf.FileOptions{JavaPackage: func(v string) *string { return &v }("com.google.protobuf"),
			JavaOuterClassname: func(v string) *string { return &v }("DescriptorProtos"),
			OptimizeFor:        func(v google_protobuf.FileOptions_OptimizeMode) *google_protobuf.FileOptions_OptimizeMode { return &v }(1),
			XXX_extensions:     map[int32]proto.Extension{},
		},
	}, {Name: func(v string) *string { return &v }("github.com/gogo/protobuf/gogoproto/gogo.proto"),
		Package:    func(v string) *string { return &v }("gogoproto"),
		Dependency: []string{"google/protobuf/descriptor.proto"},
		Extension: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("goproto_enum_prefix"),
			Number: func(v int32) *int32 { return &v }(62001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_stringer"),
			Number: func(v int32) *int32 { return &v }(62021),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("enum_stringer"),
			Number: func(v int32) *int32 { return &v }(62022),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_getters_all"),
			Number: func(v int32) *int32 { return &v }(63001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_prefix_all"),
			Number: func(v int32) *int32 { return &v }(63002),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("verbose_equal_all"),
			Number: func(v int32) *int32 { return &v }(63004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("face_all"),
			Number: func(v int32) *int32 { return &v }(63005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("gostring_all"),
			Number: func(v int32) *int32 { return &v }(63006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("populate_all"),
			Number: func(v int32) *int32 { return &v }(63007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("stringer_all"),
			Number: func(v int32) *int32 { return &v }(63008),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("onlyone_all"),
			Number: func(v int32) *int32 { return &v }(63009),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("equal_all"),
			Number: func(v int32) *int32 { return &v }(63013),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("description_all"),
			Number: func(v int32) *int32 { return &v }(63014),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("testgen_all"),
			Number: func(v int32) *int32 { return &v }(63015),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("benchgen_all"),
			Number: func(v int32) *int32 { return &v }(63016),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("marshaler_all"),
			Number: func(v int32) *int32 { return &v }(63017),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unmarshaler_all"),
			Number: func(v int32) *int32 { return &v }(63018),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("sizer_all"),
			Number: func(v int32) *int32 { return &v }(63020),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63021),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("enum_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63022),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_marshaler_all"),
			Number: func(v int32) *int32 { return &v }(63023),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_unmarshaler_all"),
			Number: func(v int32) *int32 { return &v }(63024),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_extensions_map_all"),
			Number: func(v int32) *int32 { return &v }(63025),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_unrecognized_all"),
			Number: func(v int32) *int32 { return &v }(63026),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("gogoproto_import"),
			Number: func(v int32) *int32 { return &v }(63027),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_getters"),
			Number: func(v int32) *int32 { return &v }(64001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_stringer"),
			Number: func(v int32) *int32 { return &v }(64003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("verbose_equal"),
			Number: func(v int32) *int32 { return &v }(64004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("face"),
			Number: func(v int32) *int32 { return &v }(64005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("gostring"),
			Number: func(v int32) *int32 { return &v }(64006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("populate"),
			Number: func(v int32) *int32 { return &v }(64007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("stringer"),
			Number: func(v int32) *int32 { return &v }(67008),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("onlyone"),
			Number: func(v int32) *int32 { return &v }(64009),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("equal"),
			Number: func(v int32) *int32 { return &v }(64013),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("description"),
			Number: func(v int32) *int32 { return &v }(64014),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("testgen"),
			Number: func(v int32) *int32 { return &v }(64015),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("benchgen"),
			Number: func(v int32) *int32 { return &v }(64016),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("marshaler"),
			Number: func(v int32) *int32 { return &v }(64017),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unmarshaler"),
			Number: func(v int32) *int32 { return &v }(64018),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("sizer"),
			Number: func(v int32) *int32 { return &v }(64020),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_marshaler"),
			Number: func(v int32) *int32 { return &v }(64023),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_unmarshaler"),
			Number: func(v int32) *int32 { return &v }(64024),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_extensions_map"),
			Number: func(v int32) *int32 { return &v }(64025),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_unrecognized"),
			Number: func(v int32) *int32 { return &v }(64026),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("nullable"),
			Number: func(v int32) *int32 { return &v }(65001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("embed"),
			Number: func(v int32) *int32 { return &v }(65002),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("customtype"),
			Number: func(v int32) *int32 { return &v }(65003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("customname"),
			Number: func(v int32) *int32 { return &v }(65004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("jsontag"),
			Number: func(v int32) *int32 { return &v }(65005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("moretags"),
			Number: func(v int32) *int32 { return &v }(65006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("casttype"),
			Number: func(v int32) *int32 { return &v }(65007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}},
		Options: &google_protobuf.FileOptions{JavaPackage: func(v string) *string { return &v }("com.google.protobuf"),
			JavaOuterClassname: func(v string) *string { return &v }("GoGoProtos"),
			XXX_extensions:     map[int32]proto.Extension{},
		},
	}, {Name: func(v string) *string { return &v }("combos/neither/one.proto"),
		Package:    func(v string) *string { return &v }("one"),
		Dependency: []string{"github.com/gogo/protobuf/gogoproto/gogo.proto"},
		MessageType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("Subby"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("sub"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
		}, {Name: func(v string) *string { return &v }("AllTypesOneOf"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("sub_message"),
				Number: func(v int32) *int32 { return &v }(16),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName:   func(v string) *string { return &v }(".one.Subby"),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}},
			OneofDecl: []*google_protobuf.OneofDescriptorProto{{Name: func(v string) *string { return &v }("test_oneof")}},
		}, {Name: func(v string) *string { return &v }("TwoOneofs"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("Field34"),
				Number: func(v int32) *int32 { return &v }(34),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				OneofIndex: func(v int32) *int32 { return &v }(1),
			}, {Name: func(v string) *string { return &v }("Field35"),
				Number: func(v int32) *int32 { return &v }(35),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				OneofIndex: func(v int32) *int32 { return &v }(1),
			}, {Name: func(v string) *string { return &v }("sub_message2"),
				Number: func(v int32) *int32 { return &v }(36),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName:   func(v string) *string { return &v }(".one.Subby"),
				OneofIndex: func(v int32) *int32 { return &v }(1),
			}},
			OneofDecl: []*google_protobuf.OneofDescriptorProto{{Name: func(v string) *string { return &v }("one")}, {Name: func(v string) *string { return &v }("two")}},
		}, {Name: func(v string) *string { return &v }("CustomOneof"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Stringy"),
				Number: func(v int32) *int32 { return &v }(34),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				OneofIndex: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("CustomType"),
				Number: func(v int32) *int32 { return &v }(35),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				OneofIndex: func(v int32) *int32 { return &v }(0),
				Options:    &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38})}},
			}, {Name: func(v string) *string { return &v }("CastType"),
				Number: func(v int32) *int32 { return &v }(36),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				OneofIndex: func(v int32) *int32 { return &v }(0),
				Options:    &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65007: proto.NewExtension([]byte{0xfa, 0xde, 0x1f, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x61, 0x73, 0x74, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x79, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x79, 0x70, 0x65})}},
			}, {Name: func(v string) *string { return &v }("CustomName"),
				Number: func(v int32) *int32 { return &v }(37),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				OneofIndex: func(v int32) *int32 { return &v }(0),
				Options:    &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0xc, 0x4d, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65})}},
			}},
			OneofDecl: []*google_protobuf.OneofDescriptorProto{{Name: func(v string) *string { return &v }("custom")}},
		}},
		Options: &google_protobuf.FileOptions{XXX_extensions: map[int32]proto.Extension{63001: proto.NewExtension([]byte{0xc8, 0xe1, 0x1e, 0x0}), 63002: proto.NewExtension([]byte{0xd0, 0xe1, 0x1e, 0x0}), 63003: proto.NewExtension([]byte{0xd8, 0xe1, 0x1e, 0x0}), 63004: proto.NewExtension([]byte{0xe0, 0xe1, 0x1e, 0x1}), 63006: proto.NewExtension([]byte{0xf0, 0xe1, 0x1e, 0x1}), 63007: proto.NewExtension([]byte{0xf8, 0xe1, 0x1e, 0x1}), 63008: proto.NewExtension([]byte{0x80, 0xe2, 0x1e, 0x1}), 63013: proto.NewExtension([]byte{0xa8, 0xe2, 0x1e, 0x1}), 63014: proto.NewExtension([]byte{0xb0, 0xe2, 0x1e, 0x1}), 63015: proto.NewExtension([]byte{0xb8, 0xe2, 0x1e, 0x1}), 63017: proto.NewExtension([]byte{0xc8, 0xe2, 0x1e, 0x0}), 63018: proto.NewExtension([]byte{0xd0, 0xe2, 0x1e, 0x0}), 63020: proto.NewExtension([]byte{0xe0, 0xe2, 0x1e, 0x1}), 63021: proto.NewExtension([]byte{0xe8, 0xe2, 0x1e, 0x0}), 63022: proto.NewExtension([]byte{0xf0, 0xe2, 0x1e, 0x1}), 63023: proto.NewExtension([]byte{0xf8, 0xe2, 0x1e, 0x0}), 63024: proto.NewExtension([]byte{0x80, 0xe3, 0x1e, 0x0})}},
	}},
	}
}
func (this *Subby) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Subby)
	if !ok {
		return fmt.Errorf("that is not of type *Subby")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Subby but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Subbybut is not nil && this == nil")
	}
	if this.Sub != nil && that1.Sub != nil {
		if *this.Sub != *that1.Sub {
			return fmt.Errorf("Sub this(%v) Not Equal that(%v)", *this.Sub, *that1.Sub)
		}
	} else if this.Sub != nil {
		return fmt.Errorf("this.Sub == nil && that.Sub != nil")
	} else if that1.Sub != nil {
		return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub)
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *Subby) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Subby)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Sub != nil && that1.Sub != nil {
		if *this.Sub != *that1.Sub {
			return false
		}
	} else if this.Sub != nil {
		return false
	} else if that1.Sub != nil {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AllTypesOneOf) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOfbut is not nil && this == nil")
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil")
		}
	} else if this.TestOneof == nil {
		return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil")
	} else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil {
		return err
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *AllTypesOneOf_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field1)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field1")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field1 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field1but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *AllTypesOneOf_Field2) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field2)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field2")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field2 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field2but is not nil && this == nil")
	}
	if this.Field2 != that1.Field2 {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	return nil
}
func (this *AllTypesOneOf_Field3) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field3)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field3")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field3 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field3but is not nil && this == nil")
	}
	if this.Field3 != that1.Field3 {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	return nil
}
func (this *AllTypesOneOf_Field4) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field4)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field4")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field4 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field4but is not nil && this == nil")
	}
	if this.Field4 != that1.Field4 {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	return nil
}
func (this *AllTypesOneOf_Field5) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field5)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field5")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field5 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field5but is not nil && this == nil")
	}
	if this.Field5 != that1.Field5 {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	return nil
}
func (this *AllTypesOneOf_Field6) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field6)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field6")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field6 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field6but is not nil && this == nil")
	}
	if this.Field6 != that1.Field6 {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	return nil
}
func (this *AllTypesOneOf_Field7) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field7)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field7")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field7 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field7but is not nil && this == nil")
	}
	if this.Field7 != that1.Field7 {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	return nil
}
func (this *AllTypesOneOf_Field8) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field8)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field8")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field8 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field8but is not nil && this == nil")
	}
	if this.Field8 != that1.Field8 {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	return nil
}
func (this *AllTypesOneOf_Field9) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field9)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field9")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field9 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field9but is not nil && this == nil")
	}
	if this.Field9 != that1.Field9 {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9)
	}
	return nil
}
func (this *AllTypesOneOf_Field10) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field10)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field10")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field10 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field10but is not nil && this == nil")
	}
	if this.Field10 != that1.Field10 {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10)
	}
	return nil
}
func (this *AllTypesOneOf_Field11) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field11)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field11")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field11 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field11but is not nil && this == nil")
	}
	if this.Field11 != that1.Field11 {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11)
	}
	return nil
}
func (this *AllTypesOneOf_Field12) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field12)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field12")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field12 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field12but is not nil && this == nil")
	}
	if this.Field12 != that1.Field12 {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12)
	}
	return nil
}
func (this *AllTypesOneOf_Field13) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field13)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field13")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field13 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field13but is not nil && this == nil")
	}
	if this.Field13 != that1.Field13 {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	return nil
}
func (this *AllTypesOneOf_Field14) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field14)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field14")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field14 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field14but is not nil && this == nil")
	}
	if this.Field14 != that1.Field14 {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	return nil
}
func (this *AllTypesOneOf_Field15) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_Field15)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_Field15")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_Field15 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_Field15but is not nil && this == nil")
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	return nil
}
func (this *AllTypesOneOf_SubMessage) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*AllTypesOneOf_SubMessage)
	if !ok {
		return fmt.Errorf("that is not of type *AllTypesOneOf_SubMessage")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf_SubMessage but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf_SubMessagebut is not nil && this == nil")
	}
	if !this.SubMessage.Equal(that1.SubMessage) {
		return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage)
	}
	return nil
}
func (this *AllTypesOneOf) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return false
		}
	} else if this.TestOneof == nil {
		return false
	} else if !this.TestOneof.Equal(that1.TestOneof) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field1) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field1)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field2) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field2)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field3) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field3)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field4) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field4)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field4 != that1.Field4 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field5) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field5)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field5 != that1.Field5 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field6) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field6)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field6 != that1.Field6 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field7) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field7)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field7 != that1.Field7 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field8) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field8)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field8 != that1.Field8 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field9) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field9)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field9 != that1.Field9 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field10) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field10)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field10 != that1.Field10 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field11) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field11)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field11 != that1.Field11 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field12) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field12)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field12 != that1.Field12 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field13) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field13)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field13 != that1.Field13 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field14) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field14)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field14 != that1.Field14 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field15) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_Field15)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	return true
}
func (this *AllTypesOneOf_SubMessage) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*AllTypesOneOf_SubMessage)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !this.SubMessage.Equal(that1.SubMessage) {
		return false
	}
	return true
}
func (this *TwoOneofs) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofsbut is not nil && this == nil")
	}
	if that1.One == nil {
		if this.One != nil {
			return fmt.Errorf("this.One != nil && that1.One == nil")
		}
	} else if this.One == nil {
		return fmt.Errorf("this.One == nil && that1.One != nil")
	} else if err := this.One.VerboseEqual(that1.One); err != nil {
		return err
	}
	if that1.Two == nil {
		if this.Two != nil {
			return fmt.Errorf("this.Two != nil && that1.Two == nil")
		}
	} else if this.Two == nil {
		return fmt.Errorf("this.Two == nil && that1.Two != nil")
	} else if err := this.Two.VerboseEqual(that1.Two); err != nil {
		return err
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *TwoOneofs_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_Field1)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_Field1")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_Field1 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_Field1but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *TwoOneofs_Field2) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_Field2)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_Field2")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_Field2 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_Field2but is not nil && this == nil")
	}
	if this.Field2 != that1.Field2 {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	return nil
}
func (this *TwoOneofs_Field3) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_Field3)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_Field3")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_Field3 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_Field3but is not nil && this == nil")
	}
	if this.Field3 != that1.Field3 {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	return nil
}
func (this *TwoOneofs_Field34) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_Field34)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_Field34")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_Field34 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_Field34but is not nil && this == nil")
	}
	if this.Field34 != that1.Field34 {
		return fmt.Errorf("Field34 this(%v) Not Equal that(%v)", this.Field34, that1.Field34)
	}
	return nil
}
func (this *TwoOneofs_Field35) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_Field35)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_Field35")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_Field35 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_Field35but is not nil && this == nil")
	}
	if !bytes.Equal(this.Field35, that1.Field35) {
		return fmt.Errorf("Field35 this(%v) Not Equal that(%v)", this.Field35, that1.Field35)
	}
	return nil
}
func (this *TwoOneofs_SubMessage2) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*TwoOneofs_SubMessage2)
	if !ok {
		return fmt.Errorf("that is not of type *TwoOneofs_SubMessage2")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs_SubMessage2 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs_SubMessage2but is not nil && this == nil")
	}
	if !this.SubMessage2.Equal(that1.SubMessage2) {
		return fmt.Errorf("SubMessage2 this(%v) Not Equal that(%v)", this.SubMessage2, that1.SubMessage2)
	}
	return nil
}
func (this *TwoOneofs) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if that1.One == nil {
		if this.One != nil {
			return false
		}
	} else if this.One == nil {
		return false
	} else if !this.One.Equal(that1.One) {
		return false
	}
	if that1.Two == nil {
		if this.Two != nil {
			return false
		}
	} else if this.Two == nil {
		return false
	} else if !this.Two.Equal(that1.Two) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *TwoOneofs_Field1) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_Field1)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field2) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_Field2)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field3) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_Field3)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field34) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_Field34)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field34 != that1.Field34 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field35) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_Field35)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Field35, that1.Field35) {
		return false
	}
	return true
}
func (this *TwoOneofs_SubMessage2) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*TwoOneofs_SubMessage2)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !this.SubMessage2.Equal(that1.SubMessage2) {
		return false
	}
	return true
}
func (this *CustomOneof) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomOneof)
	if !ok {
		return fmt.Errorf("that is not of type *CustomOneof")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneofbut is not nil && this == nil")
	}
	if that1.Custom == nil {
		if this.Custom != nil {
			return fmt.Errorf("this.Custom != nil && that1.Custom == nil")
		}
	} else if this.Custom == nil {
		return fmt.Errorf("this.Custom == nil && that1.Custom != nil")
	} else if err := this.Custom.VerboseEqual(that1.Custom); err != nil {
		return err
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
	}
	return nil
}
func (this *CustomOneof_Stringy) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomOneof_Stringy)
	if !ok {
		return fmt.Errorf("that is not of type *CustomOneof_Stringy")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof_Stringy but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneof_Stringybut is not nil && this == nil")
	}
	if this.Stringy != that1.Stringy {
		return fmt.Errorf("Stringy this(%v) Not Equal that(%v)", this.Stringy, that1.Stringy)
	}
	return nil
}
func (this *CustomOneof_CustomType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomOneof_CustomType)
	if !ok {
		return fmt.Errorf("that is not of type *CustomOneof_CustomType")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof_CustomType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneof_CustomTypebut is not nil && this == nil")
	}
	if !this.CustomType.Equal(that1.CustomType) {
		return fmt.Errorf("CustomType this(%v) Not Equal that(%v)", this.CustomType, that1.CustomType)
	}
	return nil
}
func (this *CustomOneof_CastType) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomOneof_CastType)
	if !ok {
		return fmt.Errorf("that is not of type *CustomOneof_CastType")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof_CastType but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneof_CastTypebut is not nil && this == nil")
	}
	if this.CastType != that1.CastType {
		return fmt.Errorf("CastType this(%v) Not Equal that(%v)", this.CastType, that1.CastType)
	}
	return nil
}
func (this *CustomOneof_MyCustomName) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*CustomOneof_MyCustomName)
	if !ok {
		return fmt.Errorf("that is not of type *CustomOneof_MyCustomName")
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof_MyCustomName but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneof_MyCustomNamebut is not nil && this == nil")
	}
	if this.MyCustomName != that1.MyCustomName {
		return fmt.Errorf("MyCustomName this(%v) Not Equal that(%v)", this.MyCustomName, that1.MyCustomName)
	}
	return nil
}
func (this *CustomOneof) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomOneof)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if that1.Custom == nil {
		if this.Custom != nil {
			return false
		}
	} else if this.Custom == nil {
		return false
	} else if !this.Custom.Equal(that1.Custom) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomOneof_Stringy) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomOneof_Stringy)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Stringy != that1.Stringy {
		return false
	}
	return true
}
func (this *CustomOneof_CustomType) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomOneof_CustomType)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !this.CustomType.Equal(that1.CustomType) {
		return false
	}
	return true
}
func (this *CustomOneof_CastType) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomOneof_CastType)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.CastType != that1.CastType {
		return false
	}
	return true
}
func (this *CustomOneof_MyCustomName) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*CustomOneof_MyCustomName)
	if !ok {
		return false
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.MyCustomName != that1.MyCustomName {
		return false
	}
	return true
}
func (this *Subby) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&one.Subby{")
	if this.Sub != nil {
		s = append(s, "Sub: "+valueToGoStringOne(this.Sub, "string")+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AllTypesOneOf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 20)
	s = append(s, "&one.AllTypesOneOf{")
	if this.TestOneof != nil {
		s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *AllTypesOneOf_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field4) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field4{` +
		`Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field5) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field5{` +
		`Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field6) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field6{` +
		`Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field7) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field7{` +
		`Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field8) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field8{` +
		`Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field9) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field9{` +
		`Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field10) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field10{` +
		`Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field11) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field11{` +
		`Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field12) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field12{` +
		`Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field13) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field13{` +
		`Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field14) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field14{` +
		`Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field15) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field15{` +
		`Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_SubMessage) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_SubMessage{` +
		`SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ")
	return s
}
func (this *TwoOneofs) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 10)
	s = append(s, "&one.TwoOneofs{")
	if this.One != nil {
		s = append(s, "One: "+fmt.Sprintf("%#v", this.One)+",\n")
	}
	if this.Two != nil {
		s = append(s, "Two: "+fmt.Sprintf("%#v", this.Two)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *TwoOneofs_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field34) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field34{` +
		`Field34:` + fmt.Sprintf("%#v", this.Field34) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field35) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field35{` +
		`Field35:` + fmt.Sprintf("%#v", this.Field35) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_SubMessage2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_SubMessage2{` +
		`SubMessage2:` + fmt.Sprintf("%#v", this.SubMessage2) + `}`}, ", ")
	return s
}
func (this *CustomOneof) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 8)
	s = append(s, "&one.CustomOneof{")
	if this.Custom != nil {
		s = append(s, "Custom: "+fmt.Sprintf("%#v", this.Custom)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *CustomOneof_Stringy) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_Stringy{` +
		`Stringy:` + fmt.Sprintf("%#v", this.Stringy) + `}`}, ", ")
	return s
}
func (this *CustomOneof_CustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_CustomType{` +
		`CustomType:` + fmt.Sprintf("%#v", this.CustomType) + `}`}, ", ")
	return s
}
func (this *CustomOneof_CastType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_CastType{` +
		`CastType:` + fmt.Sprintf("%#v", this.CastType) + `}`}, ", ")
	return s
}
func (this *CustomOneof_MyCustomName) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_MyCustomName{` +
		`MyCustomName:` + fmt.Sprintf("%#v", this.MyCustomName) + `}`}, ", ")
	return s
}
func valueToGoStringOne(v interface{}, typ string) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
}
func extensionToGoStringOne(e map[int32]github_com_gogo_protobuf_proto.Extension) string {
	if e == nil {
		return "nil"
	}
	s := "map[int32]proto.Extension{"
	keys := make([]int, 0, len(e))
	for k := range e {
		keys = append(keys, int(k))
	}
	sort.Ints(keys)
	ss := []string{}
	for _, k := range keys {
		ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString())
	}
	s += strings.Join(ss, ",") + "}"
	return s
}
func NewPopulatedSubby(r randyOne, easy bool) *Subby {
	this := &Subby{}
	if r.Intn(10) != 0 {
		v1 := randStringOne(r)
		this.Sub = &v1
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 2)
	}
	return this
}

func NewPopulatedAllTypesOneOf(r randyOne, easy bool) *AllTypesOneOf {
	this := &AllTypesOneOf{}
	oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)]
	switch oneofNumber_TestOneof {
	case 1:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field1(r, easy)
	case 2:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field2(r, easy)
	case 3:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field3(r, easy)
	case 4:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field4(r, easy)
	case 5:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field5(r, easy)
	case 6:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field6(r, easy)
	case 7:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field7(r, easy)
	case 8:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field8(r, easy)
	case 9:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field9(r, easy)
	case 10:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field10(r, easy)
	case 11:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field11(r, easy)
	case 12:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field12(r, easy)
	case 13:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field13(r, easy)
	case 14:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field14(r, easy)
	case 15:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field15(r, easy)
	case 16:
		this.TestOneof = NewPopulatedAllTypesOneOf_SubMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 17)
	}
	return this
}

func NewPopulatedAllTypesOneOf_Field1(r randyOne, easy bool) *AllTypesOneOf_Field1 {
	this := &AllTypesOneOf_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field2(r randyOne, easy bool) *AllTypesOneOf_Field2 {
	this := &AllTypesOneOf_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field3(r randyOne, easy bool) *AllTypesOneOf_Field3 {
	this := &AllTypesOneOf_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field4(r randyOne, easy bool) *AllTypesOneOf_Field4 {
	this := &AllTypesOneOf_Field4{}
	this.Field4 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field4 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field5(r randyOne, easy bool) *AllTypesOneOf_Field5 {
	this := &AllTypesOneOf_Field5{}
	this.Field5 = uint32(r.Uint32())
	return this
}
func NewPopulatedAllTypesOneOf_Field6(r randyOne, easy bool) *AllTypesOneOf_Field6 {
	this := &AllTypesOneOf_Field6{}
	this.Field6 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedAllTypesOneOf_Field7(r randyOne, easy bool) *AllTypesOneOf_Field7 {
	this := &AllTypesOneOf_Field7{}
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field8(r randyOne, easy bool) *AllTypesOneOf_Field8 {
	this := &AllTypesOneOf_Field8{}
	this.Field8 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field8 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field9(r randyOne, easy bool) *AllTypesOneOf_Field9 {
	this := &AllTypesOneOf_Field9{}
	this.Field9 = uint32(r.Uint32())
	return this
}
func NewPopulatedAllTypesOneOf_Field10(r randyOne, easy bool) *AllTypesOneOf_Field10 {
	this := &AllTypesOneOf_Field10{}
	this.Field10 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field10 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field11(r randyOne, easy bool) *AllTypesOneOf_Field11 {
	this := &AllTypesOneOf_Field11{}
	this.Field11 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedAllTypesOneOf_Field12(r randyOne, easy bool) *AllTypesOneOf_Field12 {
	this := &AllTypesOneOf_Field12{}
	this.Field12 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field12 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Field13 {
	this := &AllTypesOneOf_Field13{}
	this.Field13 = bool(bool(r.Intn(2) == 0))
	return this
}
func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 {
	this := &AllTypesOneOf_Field14{}
	this.Field14 = randStringOne(r)
	return this
}
func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 {
	this := &AllTypesOneOf_Field15{}
	v2 := r.Intn(100)
	this.Field15 = make([]byte, v2)
	for i := 0; i < v2; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedAllTypesOneOf_SubMessage(r randyOne, easy bool) *AllTypesOneOf_SubMessage {
	this := &AllTypesOneOf_SubMessage{}
	this.SubMessage = NewPopulatedSubby(r, easy)
	return this
}
func NewPopulatedTwoOneofs(r randyOne, easy bool) *TwoOneofs {
	this := &TwoOneofs{}
	oneofNumber_One := []int32{1, 2, 3}[r.Intn(3)]
	switch oneofNumber_One {
	case 1:
		this.One = NewPopulatedTwoOneofs_Field1(r, easy)
	case 2:
		this.One = NewPopulatedTwoOneofs_Field2(r, easy)
	case 3:
		this.One = NewPopulatedTwoOneofs_Field3(r, easy)
	}
	oneofNumber_Two := []int32{34, 35, 36}[r.Intn(3)]
	switch oneofNumber_Two {
	case 34:
		this.Two = NewPopulatedTwoOneofs_Field34(r, easy)
	case 35:
		this.Two = NewPopulatedTwoOneofs_Field35(r, easy)
	case 36:
		this.Two = NewPopulatedTwoOneofs_SubMessage2(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 37)
	}
	return this
}

func NewPopulatedTwoOneofs_Field1(r randyOne, easy bool) *TwoOneofs_Field1 {
	this := &TwoOneofs_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field2(r randyOne, easy bool) *TwoOneofs_Field2 {
	this := &TwoOneofs_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 {
	this := &TwoOneofs_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 {
	this := &TwoOneofs_Field34{}
	this.Field34 = randStringOne(r)
	return this
}
func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 {
	this := &TwoOneofs_Field35{}
	v3 := r.Intn(100)
	this.Field35 = make([]byte, v3)
	for i := 0; i < v3; i++ {
		this.Field35[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedTwoOneofs_SubMessage2(r randyOne, easy bool) *TwoOneofs_SubMessage2 {
	this := &TwoOneofs_SubMessage2{}
	this.SubMessage2 = NewPopulatedSubby(r, easy)
	return this
}
func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof {
	this := &CustomOneof{}
	oneofNumber_Custom := []int32{34, 35, 36, 37}[r.Intn(4)]
	switch oneofNumber_Custom {
	case 34:
		this.Custom = NewPopulatedCustomOneof_Stringy(r, easy)
	case 35:
		this.Custom = NewPopulatedCustomOneof_CustomType(r, easy)
	case 36:
		this.Custom = NewPopulatedCustomOneof_CastType(r, easy)
	case 37:
		this.Custom = NewPopulatedCustomOneof_MyCustomName(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 38)
	}
	return this
}

func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy {
	this := &CustomOneof_Stringy{}
	this.Stringy = randStringOne(r)
	return this
}
func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType {
	this := &CustomOneof_CustomType{}
	v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	this.CustomType = *v4
	return this
}
func NewPopulatedCustomOneof_CastType(r randyOne, easy bool) *CustomOneof_CastType {
	this := &CustomOneof_CastType{}
	this.CastType = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
	return this
}
func NewPopulatedCustomOneof_MyCustomName(r randyOne, easy bool) *CustomOneof_MyCustomName {
	this := &CustomOneof_MyCustomName{}
	this.MyCustomName = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.MyCustomName *= -1
	}
	return this
}

type randyOne interface {
	Float32() float32
	Float64() float64
	Int63() int64
	Int31() int32
	Uint32() uint32
	Intn(n int) int
}

func randUTF8RuneOne(r randyOne) rune {
	ru := r.Intn(62)
	if ru < 10 {
		return rune(ru + 48)
	} else if ru < 36 {
		return rune(ru + 55)
	}
	return rune(ru + 61)
}
func randStringOne(r randyOne) string {
	v5 := r.Intn(100)
	tmps := make([]rune, v5)
	for i := 0; i < v5; i++ {
		tmps[i] = randUTF8RuneOne(r)
	}
	return string(tmps)
}
func randUnrecognizedOne(r randyOne, maxFieldNumber int) (data []byte) {
	l := r.Intn(5)
	for i := 0; i < l; i++ {
		wire := r.Intn(4)
		if wire == 3 {
			wire = 5
		}
		fieldNumber := maxFieldNumber + r.Intn(100)
		data = randFieldOne(data, r, fieldNumber, wire)
	}
	return data
}
func randFieldOne(data []byte, r randyOne, fieldNumber int, wire int) []byte {
	key := uint32(fieldNumber)<<3 | uint32(wire)
	switch wire {
	case 0:
		data = encodeVarintPopulateOne(data, uint64(key))
		v6 := r.Int63()
		if r.Intn(2) == 0 {
			v6 *= -1
		}
		data = encodeVarintPopulateOne(data, uint64(v6))
	case 1:
		data = encodeVarintPopulateOne(data, uint64(key))
		data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	case 2:
		data = encodeVarintPopulateOne(data, uint64(key))
		ll := r.Intn(100)
		data = encodeVarintPopulateOne(data, uint64(ll))
		for j := 0; j < ll; j++ {
			data = append(data, byte(r.Intn(256)))
		}
	default:
		data = encodeVarintPopulateOne(data, uint64(key))
		data = append(data, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	}
	return data
}
func encodeVarintPopulateOne(data []byte, v uint64) []byte {
	for v >= 1<<7 {
		data = append(data, uint8(uint64(v)&0x7f|0x80))
		v >>= 7
	}
	data = append(data, uint8(v))
	return data
}
func (m *Subby) Size() (n int) {
	var l int
	_ = l
	if m.Sub != nil {
		l = len(*m.Sub)
		n += 1 + l + sovOne(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AllTypesOneOf) Size() (n int) {
	var l int
	_ = l
	if m.TestOneof != nil {
		n += m.TestOneof.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AllTypesOneOf_Field1) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field2) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field3) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *AllTypesOneOf_Field4) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field4))
	return n
}
func (m *AllTypesOneOf_Field5) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field5))
	return n
}
func (m *AllTypesOneOf_Field6) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field6))
	return n
}
func (m *AllTypesOneOf_Field7) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field7))
	return n
}
func (m *AllTypesOneOf_Field8) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field8))
	return n
}
func (m *AllTypesOneOf_Field9) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field10) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field11) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field12) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field13) Size() (n int) {
	var l int
	_ = l
	n += 2
	return n
}
func (m *AllTypesOneOf_Field14) Size() (n int) {
	var l int
	_ = l
	l = len(m.Field14)
	n += 1 + l + sovOne(uint64(l))
	return n
}
func (m *AllTypesOneOf_Field15) Size() (n int) {
	var l int
	_ = l
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovOne(uint64(l))
	}
	return n
}
func (m *AllTypesOneOf_SubMessage) Size() (n int) {
	var l int
	_ = l
	if m.SubMessage != nil {
		l = m.SubMessage.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *TwoOneofs) Size() (n int) {
	var l int
	_ = l
	if m.One != nil {
		n += m.One.Size()
	}
	if m.Two != nil {
		n += m.Two.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *TwoOneofs_Field1) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *TwoOneofs_Field2) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *TwoOneofs_Field3) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *TwoOneofs_Field34) Size() (n int) {
	var l int
	_ = l
	l = len(m.Field34)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *TwoOneofs_Field35) Size() (n int) {
	var l int
	_ = l
	if m.Field35 != nil {
		l = len(m.Field35)
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *TwoOneofs_SubMessage2) Size() (n int) {
	var l int
	_ = l
	if m.SubMessage2 != nil {
		l = m.SubMessage2.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *CustomOneof) Size() (n int) {
	var l int
	_ = l
	if m.Custom != nil {
		n += m.Custom.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomOneof_Stringy) Size() (n int) {
	var l int
	_ = l
	l = len(m.Stringy)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CustomType) Size() (n int) {
	var l int
	_ = l
	l = m.CustomType.Size()
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CastType) Size() (n int) {
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.CastType))
	return n
}
func (m *CustomOneof_MyCustomName) Size() (n int) {
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.MyCustomName))
	return n
}

func sovOne(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozOne(x uint64) (n int) {
	return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Subby) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Subby{`,
		`Sub:` + valueToStringOne(this.Sub) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf{`,
		`TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field4) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field4{`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field5) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field5{`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field6) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field6{`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field7) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field7{`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field8) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field8{`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field9) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field9{`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field10) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field10{`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field11) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field11{`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field12) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field12{`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field13) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field13{`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field14) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field14{`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field15) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field15{`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_SubMessage) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_SubMessage{`,
		`SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs{`,
		`One:` + fmt.Sprintf("%v", this.One) + `,`,
		`Two:` + fmt.Sprintf("%v", this.Two) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field34) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field34{`,
		`Field34:` + fmt.Sprintf("%v", this.Field34) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field35) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field35{`,
		`Field35:` + fmt.Sprintf("%v", this.Field35) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_SubMessage2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_SubMessage2{`,
		`SubMessage2:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage2), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof{`,
		`Custom:` + fmt.Sprintf("%v", this.Custom) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_Stringy) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_Stringy{`,
		`Stringy:` + fmt.Sprintf("%v", this.Stringy) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_CustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_CustomType{`,
		`CustomType:` + fmt.Sprintf("%v", this.CustomType) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_CastType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_CastType{`,
		`CastType:` + fmt.Sprintf("%v", this.CastType) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_MyCustomName) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_MyCustomName{`,
		`MyCustomName:` + fmt.Sprintf("%v", this.MyCustomName) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringOne(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
