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

package one

import (
	bytes "bytes"
	compress_gzip "compress/gzip"
	encoding_binary "encoding/binary"
	fmt "fmt"
	_ "github.com/gogo/protobuf/gogoproto"
	github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
	proto "github.com/gogo/protobuf/proto"
	github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
	io "io"
	io_ioutil "io/ioutil"
	math "math"
	math_bits "math/bits"
	reflect "reflect"
	strings "strings"
)

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

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

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

func (m *Subby) Reset()      { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
func (m *Subby) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
	return xxx_messageInfo_Subby.Size(m)
}
func (m *Subby) XXX_DiscardUnknown() {
	xxx_messageInfo_Subby.DiscardUnknown(m)
}

var xxx_messageInfo_Subby proto.InternalMessageInfo

type SampleOneOf struct {
	// Types that are valid to be assigned to TestOneof:
	//	*SampleOneOf_Field1
	//	*SampleOneOf_Field2
	//	*SampleOneOf_Field3
	//	*SampleOneOf_Field4
	//	*SampleOneOf_Field5
	//	*SampleOneOf_Field6
	//	*SampleOneOf_Field7
	//	*SampleOneOf_Field8
	//	*SampleOneOf_Field9
	//	*SampleOneOf_Field10
	//	*SampleOneOf_Field11
	//	*SampleOneOf_Field12
	//	*SampleOneOf_Field13
	//	*SampleOneOf_Field14
	//	*SampleOneOf_Field15
	//	*SampleOneOf_SubMessage
	TestOneof            isSampleOneOf_TestOneof `protobuf_oneof:"test_oneof"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *SampleOneOf) Reset()      { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage() {}
func (*SampleOneOf) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{1}
}
func (m *SampleOneOf) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SampleOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SampleOneOf.Marshal(b, m, deterministic)
}
func (m *SampleOneOf) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SampleOneOf.Merge(m, src)
}
func (m *SampleOneOf) XXX_Size() int {
	return xxx_messageInfo_SampleOneOf.Size(m)
}
func (m *SampleOneOf) XXX_DiscardUnknown() {
	xxx_messageInfo_SampleOneOf.DiscardUnknown(m)
}

var xxx_messageInfo_SampleOneOf proto.InternalMessageInfo

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

type SampleOneOf_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof" json:"Field1,omitempty"`
}
type SampleOneOf_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof" json:"Field2,omitempty"`
}
type SampleOneOf_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof" json:"Field3,omitempty"`
}
type SampleOneOf_Field4 struct {
	Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof" json:"Field4,omitempty"`
}
type SampleOneOf_Field5 struct {
	Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof" json:"Field5,omitempty"`
}
type SampleOneOf_Field6 struct {
	Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof" json:"Field6,omitempty"`
}
type SampleOneOf_Field7 struct {
	Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof" json:"Field7,omitempty"`
}
type SampleOneOf_Field8 struct {
	Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof" json:"Field8,omitempty"`
}
type SampleOneOf_Field9 struct {
	Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof" json:"Field9,omitempty"`
}
type SampleOneOf_Field10 struct {
	Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof" json:"Field10,omitempty"`
}
type SampleOneOf_Field11 struct {
	Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof" json:"Field11,omitempty"`
}
type SampleOneOf_Field12 struct {
	Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof" json:"Field12,omitempty"`
}
type SampleOneOf_Field13 struct {
	Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof" json:"Field13,omitempty"`
}
type SampleOneOf_Field14 struct {
	Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof" json:"Field14,omitempty"`
}
type SampleOneOf_Field15 struct {
	Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof" json:"Field15,omitempty"`
}
type SampleOneOf_SubMessage struct {
	SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,proto3,oneof" json:"sub_message,omitempty"`
}

func (*SampleOneOf_Field1) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field2) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field3) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field4) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field5) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field6) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field7) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field8) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field9) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field10) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field11) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field12) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field13) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field14) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field15) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_SubMessage) isSampleOneOf_TestOneof() {}

func (m *SampleOneOf) GetTestOneof() isSampleOneOf_TestOneof {
	if m != nil {
		return m.TestOneof
	}
	return nil
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// XXX_OneofWrappers is for the internal use of the proto package.
func (*SampleOneOf) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*SampleOneOf_Field1)(nil),
		(*SampleOneOf_Field2)(nil),
		(*SampleOneOf_Field3)(nil),
		(*SampleOneOf_Field4)(nil),
		(*SampleOneOf_Field5)(nil),
		(*SampleOneOf_Field6)(nil),
		(*SampleOneOf_Field7)(nil),
		(*SampleOneOf_Field8)(nil),
		(*SampleOneOf_Field9)(nil),
		(*SampleOneOf_Field10)(nil),
		(*SampleOneOf_Field11)(nil),
		(*SampleOneOf_Field12)(nil),
		(*SampleOneOf_Field13)(nil),
		(*SampleOneOf_Field14)(nil),
		(*SampleOneOf_Field15)(nil),
		(*SampleOneOf_SubMessage)(nil),
	}
}

func init() {
	proto.RegisterType((*Subby)(nil), "one.Subby")
	proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}

func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_9eef12518f7c4f58) }

var fileDescriptor_9eef12518f7c4f58 = []byte{
	// 411 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0xd2, 0xbf, 0x4f, 0x1b, 0x31,
	0x14, 0x07, 0x70, 0x3f, 0x8e, 0x24, 0xe0, 0x84, 0x92, 0xde, 0xf4, 0x8a, 0xaa, 0x27, 0x8b, 0xc9,
	0x0b, 0x49, 0x73, 0x97, 0xf0, 0x63, 0x65, 0xa8, 0xb2, 0x54, 0x48, 0xe1, 0x0f, 0x40, 0x31, 0x75,
	0x02, 0x52, 0xee, 0x8c, 0x72, 0xb9, 0xa1, 0x1b, 0x7f, 0x0e, 0x63, 0xc7, 0xfe, 0x09, 0x8c, 0x8c,
	0x1d, 0x3a, 0x70, 0x66, 0xe9, 0xc8, 0xc8, 0x58, 0xe5, 0x52, 0x9e, 0xb7, 0xf7, 0xf5, 0xc7, 0x1e,
	0x6c, 0x7f, 0xe5, 0xe7, 0x6b, 0x97, 0x19, 0x57, 0xf4, 0xcb, 0x3c, 0x9b, 0x2e, 0x8b, 0x9b, 0xe9,
	0xc2, 0x2e, 0xfb, 0x2e, 0xb7, 0xbd, 0xbb, 0xa5, 0x5b, 0xb9, 0x38, 0x72, 0xb9, 0x3d, 0x38, 0x9a,
	0xdf, 0xae, 0x6e, 0x4a, 0xd3, 0xbb, 0x76, 0x59, 0x7f, 0xee, 0xe6, 0xae, 0x5f, 0x9b, 0x29, 0x67,
	0x75, 0xaa, 0x43, 0x3d, 0x6d, 0xce, 0x1c, 0x7e, 0x92, 0x8d, 0xcb, 0xd2, 0x98, 0x1f, 0x71, 0x57,
	0x46, 0x45, 0x69, 0x10, 0x14, 0xe8, 0xdd, 0xc9, 0x7a, 0x3c, 0xfc, 0x13, 0xc9, 0xf6, 0xe5, 0x34,
	0xbb, 0x5b, 0xd8, 0x8b, 0xdc, 0x5e, 0xcc, 0x62, 0x94, 0xcd, 0xaf, 0xb7, 0x76, 0xf1, 0x7d, 0x50,
	0x6f, 0x82, 0xb1, 0x98, 0xfc, 0xcf, 0x2c, 0x09, 0x6e, 0x29, 0xd0, 0x5b, 0x2c, 0x09, 0x4b, 0x8a,
	0x91, 0x02, 0xdd, 0x60, 0x49, 0x59, 0x86, 0xb8, 0xad, 0x40, 0x47, 0x2c, 0x43, 0x96, 0x11, 0x36,
	0x14, 0xe8, 0x3d, 0x96, 0x11, 0xcb, 0x31, 0x36, 0x15, 0xe8, 0x6d, 0x96, 0x63, 0x96, 0x13, 0x6c,
	0x29, 0xd0, 0x1f, 0x59, 0x4e, 0x58, 0x4e, 0x71, 0x47, 0x81, 0x8e, 0x59, 0x4e, 0x59, 0xce, 0x70,
	0x57, 0x81, 0x6e, 0xb1, 0x9c, 0xc5, 0x07, 0xb2, 0xb5, 0xb9, 0xd9, 0x17, 0x94, 0x0a, 0xf4, 0xfe,
	0x58, 0x4c, 0xde, 0x17, 0x82, 0x0d, 0xb0, 0xad, 0x40, 0x37, 0x83, 0x0d, 0x82, 0x25, 0xd8, 0x51,
	0xa0, 0xbb, 0xc1, 0x92, 0x60, 0x29, 0xee, 0x29, 0xd0, 0x3b, 0xc1, 0xd2, 0x60, 0x43, 0xfc, 0xb0,
	0x7e, 0xff, 0x60, 0xc3, 0x60, 0x23, 0xdc, 0x57, 0xa0, 0x3b, 0xc1, 0x46, 0xf1, 0x91, 0x6c, 0x17,
	0xa5, 0xb9, 0xca, 0x6c, 0x51, 0x4c, 0xe7, 0x16, 0xbb, 0x0a, 0x74, 0x3b, 0x91, 0xbd, 0x75, 0x23,
	0xea, 0x4f, 0x1d, 0x8b, 0x89, 0x2c, 0x4a, 0xf3, 0x6d, 0xe3, 0xe7, 0x1d, 0x29, 0x57, 0xb6, 0x58,
	0x5d, 0xb9, 0xdc, 0xba, 0xd9, 0xf9, 0xf8, 0xb1, 0x22, 0xf1, 0x54, 0x91, 0xf8, 0x5d, 0x91, 0x78,
	0xae, 0x08, 0x5e, 0x2b, 0x82, 0xb7, 0x8a, 0xe0, 0xde, 0x13, 0x3c, 0x78, 0x82, 0x9f, 0x9e, 0xe0,
	0x97, 0x27, 0x78, 0xf4, 0x24, 0x9e, 0x3c, 0xc1, 0xb3, 0x27, 0xf8, 0xeb, 0x49, 0xbc, 0x7a, 0x82,
	0x37, 0x4f, 0xe2, 0xfe, 0x85, 0xc4, 0xc3, 0x0b, 0x81, 0x69, 0xd6, 0x55, 0x4a, 0xff, 0x05, 0x00,
	0x00, 0xff, 0xff, 0xa2, 0x4d, 0xbb, 0xd8, 0x9e, 0x02, 0x00, 0x00,
}

func (this *Subby) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*Subby)
	if !ok {
		that2, ok := that.(Subby)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Sub != that1.Sub {
		if this.Sub < that1.Sub {
			return -1
		}
		return 1
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *SampleOneOf) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf)
	if !ok {
		that2, ok := that.(SampleOneOf)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return 1
		}
	} else if this.TestOneof == nil {
		return -1
	} else {
		thisType := -1
		switch this.TestOneof.(type) {
		case *SampleOneOf_Field1:
			thisType = 0
		case *SampleOneOf_Field2:
			thisType = 1
		case *SampleOneOf_Field3:
			thisType = 2
		case *SampleOneOf_Field4:
			thisType = 3
		case *SampleOneOf_Field5:
			thisType = 4
		case *SampleOneOf_Field6:
			thisType = 5
		case *SampleOneOf_Field7:
			thisType = 6
		case *SampleOneOf_Field8:
			thisType = 7
		case *SampleOneOf_Field9:
			thisType = 8
		case *SampleOneOf_Field10:
			thisType = 9
		case *SampleOneOf_Field11:
			thisType = 10
		case *SampleOneOf_Field12:
			thisType = 11
		case *SampleOneOf_Field13:
			thisType = 12
		case *SampleOneOf_Field14:
			thisType = 13
		case *SampleOneOf_Field15:
			thisType = 14
		case *SampleOneOf_SubMessage:
			thisType = 15
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", this.TestOneof))
		}
		that1Type := -1
		switch that1.TestOneof.(type) {
		case *SampleOneOf_Field1:
			that1Type = 0
		case *SampleOneOf_Field2:
			that1Type = 1
		case *SampleOneOf_Field3:
			that1Type = 2
		case *SampleOneOf_Field4:
			that1Type = 3
		case *SampleOneOf_Field5:
			that1Type = 4
		case *SampleOneOf_Field6:
			that1Type = 5
		case *SampleOneOf_Field7:
			that1Type = 6
		case *SampleOneOf_Field8:
			that1Type = 7
		case *SampleOneOf_Field9:
			that1Type = 8
		case *SampleOneOf_Field10:
			that1Type = 9
		case *SampleOneOf_Field11:
			that1Type = 10
		case *SampleOneOf_Field12:
			that1Type = 11
		case *SampleOneOf_Field13:
			that1Type = 12
		case *SampleOneOf_Field14:
			that1Type = 13
		case *SampleOneOf_Field15:
			that1Type = 14
		case *SampleOneOf_SubMessage:
			that1Type = 15
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", that1.TestOneof))
		}
		if thisType == that1Type {
			if c := this.TestOneof.Compare(that1.TestOneof); c != 0 {
				return c
			}
		} else if thisType < that1Type {
			return -1
		} else if thisType > that1Type {
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *SampleOneOf_Field1) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field1)
	if !ok {
		that2, ok := that.(SampleOneOf_Field1)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field1 != that1.Field1 {
		if this.Field1 < that1.Field1 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field2) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field2)
	if !ok {
		that2, ok := that.(SampleOneOf_Field2)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field2 != that1.Field2 {
		if this.Field2 < that1.Field2 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field3) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field3)
	if !ok {
		that2, ok := that.(SampleOneOf_Field3)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field3 != that1.Field3 {
		if this.Field3 < that1.Field3 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field4) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field4)
	if !ok {
		that2, ok := that.(SampleOneOf_Field4)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field4 != that1.Field4 {
		if this.Field4 < that1.Field4 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field5) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field5)
	if !ok {
		that2, ok := that.(SampleOneOf_Field5)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field5 != that1.Field5 {
		if this.Field5 < that1.Field5 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field6) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field6)
	if !ok {
		that2, ok := that.(SampleOneOf_Field6)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field6 != that1.Field6 {
		if this.Field6 < that1.Field6 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field7) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field7)
	if !ok {
		that2, ok := that.(SampleOneOf_Field7)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field7 != that1.Field7 {
		if this.Field7 < that1.Field7 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field8) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field8)
	if !ok {
		that2, ok := that.(SampleOneOf_Field8)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field8 != that1.Field8 {
		if this.Field8 < that1.Field8 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field9) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field9)
	if !ok {
		that2, ok := that.(SampleOneOf_Field9)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field9 != that1.Field9 {
		if this.Field9 < that1.Field9 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field10) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field10)
	if !ok {
		that2, ok := that.(SampleOneOf_Field10)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field10 != that1.Field10 {
		if this.Field10 < that1.Field10 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field11) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field11)
	if !ok {
		that2, ok := that.(SampleOneOf_Field11)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field11 != that1.Field11 {
		if this.Field11 < that1.Field11 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field12) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field12)
	if !ok {
		that2, ok := that.(SampleOneOf_Field12)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field12 != that1.Field12 {
		if this.Field12 < that1.Field12 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field13) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field13)
	if !ok {
		that2, ok := that.(SampleOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field13 != that1.Field13 {
		if !this.Field13 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field14) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field14)
	if !ok {
		that2, ok := that.(SampleOneOf_Field14)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field14 != that1.Field14 {
		if this.Field14 < that1.Field14 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *SampleOneOf_Field15) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

	that1, ok := that.(*SampleOneOf_Field15)
	if !ok {
		that2, ok := that.(SampleOneOf_Field15)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if c := bytes.Compare(this.Field15, that1.Field15); c != 0 {
		return c
	}
	return 0
}
func (this *SampleOneOf_SubMessage) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

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

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

	that1, ok := that.(*SampleOneOf)
	if !ok {
		that2, ok := that.(SampleOneOf)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf but 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 *SampleOneOf_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field1)
	if !ok {
		that2, ok := that.(SampleOneOf_Field1)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field1")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field1 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field1 but 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 *SampleOneOf_Field2) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field2)
	if !ok {
		that2, ok := that.(SampleOneOf_Field2)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field2")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field2 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field2 but 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 *SampleOneOf_Field3) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field3)
	if !ok {
		that2, ok := that.(SampleOneOf_Field3)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field3")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field3 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field3 but 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 *SampleOneOf_Field4) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field4)
	if !ok {
		that2, ok := that.(SampleOneOf_Field4)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field4")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field4 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field4 but 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 *SampleOneOf_Field5) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field5)
	if !ok {
		that2, ok := that.(SampleOneOf_Field5)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field5")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field5 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field5 but 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 *SampleOneOf_Field6) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field6)
	if !ok {
		that2, ok := that.(SampleOneOf_Field6)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field6")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field6 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field6 but 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 *SampleOneOf_Field7) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field7)
	if !ok {
		that2, ok := that.(SampleOneOf_Field7)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field7")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field7 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field7 but 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 *SampleOneOf_Field8) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field8)
	if !ok {
		that2, ok := that.(SampleOneOf_Field8)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field8")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field8 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field8 but 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 *SampleOneOf_Field9) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field9)
	if !ok {
		that2, ok := that.(SampleOneOf_Field9)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field9")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field9 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field9 but 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 *SampleOneOf_Field10) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field10)
	if !ok {
		that2, ok := that.(SampleOneOf_Field10)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field10")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field10 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field10 but 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 *SampleOneOf_Field11) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field11)
	if !ok {
		that2, ok := that.(SampleOneOf_Field11)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field11")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field11 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field11 but 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 *SampleOneOf_Field12) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field12)
	if !ok {
		that2, ok := that.(SampleOneOf_Field12)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field12")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field12 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field12 but 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 *SampleOneOf_Field13) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field13)
	if !ok {
		that2, ok := that.(SampleOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field13")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field13 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field13 but 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 *SampleOneOf_Field14) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field14)
	if !ok {
		that2, ok := that.(SampleOneOf_Field14)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field14")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field14 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field14 but 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 *SampleOneOf_Field15) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field15)
	if !ok {
		that2, ok := that.(SampleOneOf_Field15)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field15")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field15 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field15 but 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 *SampleOneOf_SubMessage) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_SubMessage)
	if !ok {
		that2, ok := that.(SampleOneOf_SubMessage)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_SubMessage")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_SubMessage but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_SubMessage but 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 *SampleOneOf) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*SampleOneOf)
	if !ok {
		that2, ok := that.(SampleOneOf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} 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 *SampleOneOf_Field1) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	that1, ok := that.(*SampleOneOf_SubMessage)
	if !ok {
		that2, ok := that.(SampleOneOf_SubMessage)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.SubMessage.Equal(that1.SubMessage) {
		return false
	}
	return true
}
func (this *Subby) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&one.Subby{")
	s = append(s, "Sub: "+fmt.Sprintf("%#v", this.Sub)+",\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 *SampleOneOf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 20)
	s = append(s, "&one.SampleOneOf{")
	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 *SampleOneOf_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field4) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field4{` +
		`Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field5) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field5{` +
		`Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field6) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field6{` +
		`Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field7) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field7{` +
		`Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field8) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field8{` +
		`Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field9) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field9{` +
		`Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field10) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field10{` +
		`Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field11) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field11{` +
		`Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field12) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field12{` +
		`Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field13) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field13{` +
		`Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field14) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field14{` +
		`Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field15) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field15{` +
		`Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_SubMessage) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_SubMessage{` +
		`SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ")
	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 NewPopulatedSubby(r randyOne, easy bool) *Subby {
	this := &Subby{}
	this.Sub = string(randStringOne(r))
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 2)
	}
	return this
}

func NewPopulatedSampleOneOf(r randyOne, easy bool) *SampleOneOf {
	this := &SampleOneOf{}
	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 = NewPopulatedSampleOneOf_Field1(r, easy)
	case 2:
		this.TestOneof = NewPopulatedSampleOneOf_Field2(r, easy)
	case 3:
		this.TestOneof = NewPopulatedSampleOneOf_Field3(r, easy)
	case 4:
		this.TestOneof = NewPopulatedSampleOneOf_Field4(r, easy)
	case 5:
		this.TestOneof = NewPopulatedSampleOneOf_Field5(r, easy)
	case 6:
		this.TestOneof = NewPopulatedSampleOneOf_Field6(r, easy)
	case 7:
		this.TestOneof = NewPopulatedSampleOneOf_Field7(r, easy)
	case 8:
		this.TestOneof = NewPopulatedSampleOneOf_Field8(r, easy)
	case 9:
		this.TestOneof = NewPopulatedSampleOneOf_Field9(r, easy)
	case 10:
		this.TestOneof = NewPopulatedSampleOneOf_Field10(r, easy)
	case 11:
		this.TestOneof = NewPopulatedSampleOneOf_Field11(r, easy)
	case 12:
		this.TestOneof = NewPopulatedSampleOneOf_Field12(r, easy)
	case 13:
		this.TestOneof = NewPopulatedSampleOneOf_Field13(r, easy)
	case 14:
		this.TestOneof = NewPopulatedSampleOneOf_Field14(r, easy)
	case 15:
		this.TestOneof = NewPopulatedSampleOneOf_Field15(r, easy)
	case 16:
		this.TestOneof = NewPopulatedSampleOneOf_SubMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 17)
	}
	return this
}

func NewPopulatedSampleOneOf_Field1(r randyOne, easy bool) *SampleOneOf_Field1 {
	this := &SampleOneOf_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field2(r randyOne, easy bool) *SampleOneOf_Field2 {
	this := &SampleOneOf_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field3(r randyOne, easy bool) *SampleOneOf_Field3 {
	this := &SampleOneOf_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field4(r randyOne, easy bool) *SampleOneOf_Field4 {
	this := &SampleOneOf_Field4{}
	this.Field4 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field4 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field5(r randyOne, easy bool) *SampleOneOf_Field5 {
	this := &SampleOneOf_Field5{}
	this.Field5 = uint32(r.Uint32())
	return this
}
func NewPopulatedSampleOneOf_Field6(r randyOne, easy bool) *SampleOneOf_Field6 {
	this := &SampleOneOf_Field6{}
	this.Field6 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedSampleOneOf_Field7(r randyOne, easy bool) *SampleOneOf_Field7 {
	this := &SampleOneOf_Field7{}
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field8(r randyOne, easy bool) *SampleOneOf_Field8 {
	this := &SampleOneOf_Field8{}
	this.Field8 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field8 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field9(r randyOne, easy bool) *SampleOneOf_Field9 {
	this := &SampleOneOf_Field9{}
	this.Field9 = uint32(r.Uint32())
	return this
}
func NewPopulatedSampleOneOf_Field10(r randyOne, easy bool) *SampleOneOf_Field10 {
	this := &SampleOneOf_Field10{}
	this.Field10 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field10 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field11(r randyOne, easy bool) *SampleOneOf_Field11 {
	this := &SampleOneOf_Field11{}
	this.Field11 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedSampleOneOf_Field12(r randyOne, easy bool) *SampleOneOf_Field12 {
	this := &SampleOneOf_Field12{}
	this.Field12 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field12 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 {
	this := &SampleOneOf_Field13{}
	this.Field13 = bool(bool(r.Intn(2) == 0))
	return this
}
func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 {
	this := &SampleOneOf_Field14{}
	this.Field14 = string(randStringOne(r))
	return this
}
func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 {
	this := &SampleOneOf_Field15{}
	v1 := r.Intn(100)
	this.Field15 = make([]byte, v1)
	for i := 0; i < v1; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedSampleOneOf_SubMessage(r randyOne, easy bool) *SampleOneOf_SubMessage {
	this := &SampleOneOf_SubMessage{}
	this.SubMessage = NewPopulatedSubby(r, easy)
	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 {
	v2 := r.Intn(100)
	tmps := make([]rune, v2)
	for i := 0; i < v2; 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))
		v3 := r.Int63()
		if r.Intn(2) == 0 {
			v3 *= -1
		}
		dAtA = encodeVarintPopulateOne(dAtA, uint64(v3))
	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) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Sub)
	if l > 0 {
		n += 1 + l + sovOne(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *SampleOneOf) Size() (n int) {
	if m == nil {
		return 0
	}
	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 *SampleOneOf_Field1) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field2) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field3) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *SampleOneOf_Field4) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field4))
	return n
}
func (m *SampleOneOf_Field5) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field5))
	return n
}
func (m *SampleOneOf_Field6) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field6))
	return n
}
func (m *SampleOneOf_Field7) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field7))
	return n
}
func (m *SampleOneOf_Field8) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field8))
	return n
}
func (m *SampleOneOf_Field9) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field10) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field11) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field12) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field13) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 2
	return n
}
func (m *SampleOneOf_Field14) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Field14)
	n += 1 + l + sovOne(uint64(l))
	return n
}
func (m *SampleOneOf_Field15) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovOne(uint64(l))
	}
	return n
}
func (m *SampleOneOf_SubMessage) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SubMessage != nil {
		l = m.SubMessage.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}

func sovOne(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
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:` + fmt.Sprintf("%v", this.Sub) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf{`,
		`TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field4) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field4{`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field5) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field5{`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field6) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field6{`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field7) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field7{`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field8) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field8{`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field9) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field9{`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field10) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field10{`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field11) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field11{`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field12) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field12{`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field13) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field13{`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field14) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field14{`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field15) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field15{`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_SubMessage) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_SubMessage{`,
		`SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	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)
}
func (m *Subby) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowOne
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Subby: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Sub = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SampleOneOf) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowOne
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SampleOneOf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SampleOneOf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field1{float64(math.Float64frombits(v))}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field2{float32(math.Float32frombits(v))}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field3{v}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field4{v}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field5{v}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field6{v}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.TestOneof = &SampleOneOf_Field7{v}
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.TestOneof = &SampleOneOf_Field8{int64(v)}
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field9{v}
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			var v int32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field10{v}
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field11{v}
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field12{v}
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.TestOneof = &SampleOneOf_Field13{b}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := make([]byte, postIndex-iNdEx)
			copy(v, dAtA[iNdEx:postIndex])
			m.TestOneof = &SampleOneOf_Field15{v}
			iNdEx = postIndex
		case 16:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Subby{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.TestOneof = &SampleOneOf_SubMessage{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipOne(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowOne
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowOne
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowOne
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthOne
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupOne
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthOne
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthOne        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowOne          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupOne = fmt.Errorf("proto: unexpected end of group")
)
