proto, internal/protobuild: add test proto template builder
The proto package tests often test several variations of messages with a
similar shape. For example, most tests are performed with a proto2
message with a regular field, a proto2 message with an extension field,
and a proto3 message.
Add a protobuild package which can initialize all these variations from
a single template. For example, these three messages:
&testpb.TestAllTypes{OptionalInt32: proto.Int32(1)}
&test3pb.TestAllTypes{OptionalInt32: 1}
m := &testpb.TestAllExtensions{}
proto.SetExtension(m, &testpb.E_OptionalInt32, 1)
can all be constructed from the template:
protobuild.Message{"optional_int32": 1}
This reduces redundancy in tests and will make it more practical to
test alternative code generators.
Change-Id: I3245a4bf74ee1bce957bc772fed513d427720677
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/217457
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/internal/impl/extension_test.go b/internal/impl/extension_test.go
index 4bf0258..6f83d03 100644
--- a/internal/impl/extension_test.go
+++ b/internal/impl/extension_test.go
@@ -26,91 +26,91 @@
value interface{}
}{
{
- xt: testpb.E_OptionalInt32Extension,
+ xt: testpb.E_OptionalInt32,
value: int32(0),
},
{
- xt: testpb.E_OptionalInt64Extension,
+ xt: testpb.E_OptionalInt64,
value: int64(0),
},
{
- xt: testpb.E_OptionalUint32Extension,
+ xt: testpb.E_OptionalUint32,
value: uint32(0),
},
{
- xt: testpb.E_OptionalUint64Extension,
+ xt: testpb.E_OptionalUint64,
value: uint64(0),
},
{
- xt: testpb.E_OptionalFloatExtension,
+ xt: testpb.E_OptionalFloat,
value: float32(0),
},
{
- xt: testpb.E_OptionalDoubleExtension,
+ xt: testpb.E_OptionalDouble,
value: float64(0),
},
{
- xt: testpb.E_OptionalBoolExtension,
+ xt: testpb.E_OptionalBool,
value: true,
},
{
- xt: testpb.E_OptionalStringExtension,
+ xt: testpb.E_OptionalString,
value: "",
},
{
- xt: testpb.E_OptionalBytesExtension,
+ xt: testpb.E_OptionalBytes,
value: []byte{},
},
{
- xt: testpb.E_OptionalNestedMessageExtension,
+ xt: testpb.E_OptionalNestedMessage,
value: &testpb.TestAllExtensions_NestedMessage{},
},
{
- xt: testpb.E_OptionalNestedEnumExtension,
+ xt: testpb.E_OptionalNestedEnum,
value: testpb.TestAllTypes_FOO,
},
{
- xt: testpb.E_RepeatedInt32Extension,
+ xt: testpb.E_RepeatedInt32,
value: []int32{0},
},
{
- xt: testpb.E_RepeatedInt64Extension,
+ xt: testpb.E_RepeatedInt64,
value: []int64{0},
},
{
- xt: testpb.E_RepeatedUint32Extension,
+ xt: testpb.E_RepeatedUint32,
value: []uint32{0},
},
{
- xt: testpb.E_RepeatedUint64Extension,
+ xt: testpb.E_RepeatedUint64,
value: []uint64{0},
},
{
- xt: testpb.E_RepeatedFloatExtension,
+ xt: testpb.E_RepeatedFloat,
value: []float32{0},
},
{
- xt: testpb.E_RepeatedDoubleExtension,
+ xt: testpb.E_RepeatedDouble,
value: []float64{0},
},
{
- xt: testpb.E_RepeatedBoolExtension,
+ xt: testpb.E_RepeatedBool,
value: []bool{true},
},
{
- xt: testpb.E_RepeatedStringExtension,
+ xt: testpb.E_RepeatedString,
value: []string{""},
},
{
- xt: testpb.E_RepeatedBytesExtension,
+ xt: testpb.E_RepeatedBytes,
value: [][]byte{nil},
},
{
- xt: testpb.E_RepeatedNestedMessageExtension,
+ xt: testpb.E_RepeatedNestedMessage,
value: []*testpb.TestAllExtensions_NestedMessage{{}},
},
{
- xt: testpb.E_RepeatedNestedEnumExtension,
+ xt: testpb.E_RepeatedNestedEnum,
value: []testpb.TestAllTypes_NestedEnum{testpb.TestAllTypes_FOO},
},
} {
diff --git a/internal/protobuild/build.go b/internal/protobuild/build.go
new file mode 100644
index 0000000..645f0c1
--- /dev/null
+++ b/internal/protobuild/build.go
@@ -0,0 +1,149 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package protobuild constructs messages.
+//
+// This package is used to construct multiple types of message with a similar shape
+// from a common template.
+package protobuild
+
+import (
+ "fmt"
+ "math"
+ "reflect"
+
+ pref "google.golang.org/protobuf/reflect/protoreflect"
+ "google.golang.org/protobuf/reflect/protoregistry"
+)
+
+// A Value is a value assignable to a field.
+// A Value may be a value accepted by protoreflect.ValueOf. In addition:
+//
+// • An int may be assigned to any numeric field.
+//
+// • A float64 may be assigned to a double field.
+//
+// • Either a string or []byte may be assigned to a string or bytes field.
+//
+// • A string containing the value name may be assigned to an enum field.
+//
+// • A slice may be assigned to a list, and a map may be assigned to a map.
+type Value interface{}
+
+// A Message is a template to apply to a message. Keys are field names, including
+// extension names.
+type Message map[pref.Name]Value
+
+// Unknown is a key associated with the unknown fields of a message.
+// The value should be a []byte.
+const Unknown = "@unknown"
+
+// Build applies the template to a message.
+func (template Message) Build(m pref.Message) {
+ md := m.Descriptor()
+ fields := md.Fields()
+ exts := make(map[pref.Name]pref.FieldDescriptor)
+ protoregistry.GlobalTypes.RangeExtensionsByMessage(md.FullName(), func(xt pref.ExtensionType) bool {
+ xd := xt.TypeDescriptor()
+ exts[xd.Name()] = xd
+ return true
+ })
+ for k, v := range template {
+ if k == Unknown {
+ m.SetUnknown(pref.RawFields(v.([]byte)))
+ continue
+ }
+ fd := fields.ByName(k)
+ if fd == nil {
+ fd = exts[k]
+ }
+ if fd == nil {
+ panic(fmt.Sprintf("%v.%v: not found", md.FullName(), k))
+ }
+ switch {
+ case fd.IsList():
+ list := m.Mutable(fd).List()
+ s := reflect.ValueOf(v)
+ for i := 0; i < s.Len(); i++ {
+ if fd.Message() == nil {
+ list.Append(fieldValue(fd, s.Index(i).Interface()))
+ } else {
+ e := list.NewElement()
+ s.Index(i).Interface().(Message).Build(e.Message())
+ list.Append(e)
+ }
+ }
+ case fd.IsMap():
+ mapv := m.Mutable(fd).Map()
+ rm := reflect.ValueOf(v)
+ for _, k := range rm.MapKeys() {
+ mk := fieldValue(fd.MapKey(), k.Interface()).MapKey()
+ if fd.MapValue().Message() == nil {
+ mv := fieldValue(fd.MapValue(), rm.MapIndex(k).Interface())
+ mapv.Set(mk, mv)
+ } else if mapv.Has(mk) {
+ mv := mapv.Get(mk).Message()
+ rm.MapIndex(k).Interface().(Message).Build(mv)
+ } else {
+ mv := mapv.NewValue()
+ rm.MapIndex(k).Interface().(Message).Build(mv.Message())
+ mapv.Set(mk, mv)
+ }
+ }
+ default:
+ if fd.Message() == nil {
+ m.Set(fd, fieldValue(fd, v))
+ } else {
+ v.(Message).Build(m.Mutable(fd).Message())
+ }
+ }
+
+ }
+}
+
+func fieldValue(fd pref.FieldDescriptor, v interface{}) pref.Value {
+ switch o := v.(type) {
+ case int:
+ switch fd.Kind() {
+ case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind:
+ if min, max := math.MinInt32, math.MaxInt32; o < min || o > max {
+ panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, min, max))
+ }
+ v = int32(o)
+ case pref.Uint32Kind, pref.Fixed32Kind:
+ if min, max := 0, math.MaxUint32; o < min || o > max {
+ panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, min, max))
+ }
+ v = uint32(o)
+ case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind:
+ v = int64(o)
+ case pref.Uint64Kind, pref.Fixed64Kind:
+ if o < 0 {
+ panic(fmt.Sprintf("%v: value %v out of range [%v, %v]", fd.FullName(), o, 0, uint64(math.MaxUint64)))
+ }
+ v = uint64(o)
+ case pref.FloatKind:
+ v = float32(o)
+ case pref.DoubleKind:
+ v = float64(o)
+ case pref.EnumKind:
+ v = pref.EnumNumber(o)
+ default:
+ panic(fmt.Sprintf("%v: invalid value type int", fd.FullName()))
+ }
+ case float64:
+ switch fd.Kind() {
+ case pref.FloatKind:
+ v = float32(o)
+ }
+ case string:
+ switch fd.Kind() {
+ case pref.BytesKind:
+ v = []byte(o)
+ case pref.EnumKind:
+ v = fd.Enum().Values().ByName(pref.Name(o)).Number()
+ }
+ }
+ return pref.ValueOf(v)
+}
diff --git a/internal/testprotos/test/test.pb.go b/internal/testprotos/test/test.pb.go
index 9170ef1..09c22a3 100644
--- a/internal/testprotos/test/test.pb.go
+++ b/internal/testprotos/test/test.pb.go
@@ -1321,7 +1321,7 @@
return extRange_TestAllExtensions
}
-type OptionalGroupExtension struct {
+type OptionalGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1331,8 +1331,8 @@
OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1000,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
}
-func (x *OptionalGroupExtension) Reset() {
- *x = OptionalGroupExtension{}
+func (x *OptionalGroup) Reset() {
+ *x = OptionalGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_test_test_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1340,13 +1340,13 @@
}
}
-func (x *OptionalGroupExtension) String() string {
+func (x *OptionalGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*OptionalGroupExtension) ProtoMessage() {}
+func (*OptionalGroup) ProtoMessage() {}
-func (x *OptionalGroupExtension) ProtoReflect() protoreflect.Message {
+func (x *OptionalGroup) ProtoReflect() protoreflect.Message {
mi := &file_test_test_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1358,33 +1358,33 @@
return mi.MessageOf(x)
}
-// Deprecated: Use OptionalGroupExtension.ProtoReflect.Descriptor instead.
-func (*OptionalGroupExtension) Descriptor() ([]byte, []int) {
+// Deprecated: Use OptionalGroup.ProtoReflect.Descriptor instead.
+func (*OptionalGroup) Descriptor() ([]byte, []int) {
return file_test_test_proto_rawDescGZIP(), []int{5}
}
-func (x *OptionalGroupExtension) GetA() int32 {
+func (x *OptionalGroup) GetA() int32 {
if x != nil && x.A != nil {
return *x.A
}
return 0
}
-func (x *OptionalGroupExtension) GetSameFieldNumber() int32 {
+func (x *OptionalGroup) GetSameFieldNumber() int32 {
if x != nil && x.SameFieldNumber != nil {
return *x.SameFieldNumber
}
return 0
}
-func (x *OptionalGroupExtension) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
+func (x *OptionalGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
if x != nil {
return x.OptionalNestedMessage
}
return nil
}
-type RepeatedGroupExtension struct {
+type RepeatedGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1393,8 +1393,8 @@
OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1001,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
}
-func (x *RepeatedGroupExtension) Reset() {
- *x = RepeatedGroupExtension{}
+func (x *RepeatedGroup) Reset() {
+ *x = RepeatedGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_test_test_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1402,13 +1402,13 @@
}
}
-func (x *RepeatedGroupExtension) String() string {
+func (x *RepeatedGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*RepeatedGroupExtension) ProtoMessage() {}
+func (*RepeatedGroup) ProtoMessage() {}
-func (x *RepeatedGroupExtension) ProtoReflect() protoreflect.Message {
+func (x *RepeatedGroup) ProtoReflect() protoreflect.Message {
mi := &file_test_test_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1420,19 +1420,19 @@
return mi.MessageOf(x)
}
-// Deprecated: Use RepeatedGroupExtension.ProtoReflect.Descriptor instead.
-func (*RepeatedGroupExtension) Descriptor() ([]byte, []int) {
+// Deprecated: Use RepeatedGroup.ProtoReflect.Descriptor instead.
+func (*RepeatedGroup) Descriptor() ([]byte, []int) {
return file_test_test_proto_rawDescGZIP(), []int{6}
}
-func (x *RepeatedGroupExtension) GetA() int32 {
+func (x *RepeatedGroup) GetA() int32 {
if x != nil && x.A != nil {
return *x.A
}
return 0
}
-func (x *RepeatedGroupExtension) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
+func (x *RepeatedGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
if x != nil {
return x.OptionalNestedMessage
}
@@ -2611,632 +2611,632 @@
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 1,
- Name: "goproto.proto.test.optional_int32_extension",
- Tag: "varint,1,opt,name=optional_int32_extension",
+ Name: "goproto.proto.test.optional_int32",
+ Tag: "varint,1,opt,name=optional_int32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 2,
- Name: "goproto.proto.test.optional_int64_extension",
- Tag: "varint,2,opt,name=optional_int64_extension",
+ Name: "goproto.proto.test.optional_int64",
+ Tag: "varint,2,opt,name=optional_int64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint32)(nil),
Field: 3,
- Name: "goproto.proto.test.optional_uint32_extension",
- Tag: "varint,3,opt,name=optional_uint32_extension",
+ Name: "goproto.proto.test.optional_uint32",
+ Tag: "varint,3,opt,name=optional_uint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint64)(nil),
Field: 4,
- Name: "goproto.proto.test.optional_uint64_extension",
- Tag: "varint,4,opt,name=optional_uint64_extension",
+ Name: "goproto.proto.test.optional_uint64",
+ Tag: "varint,4,opt,name=optional_uint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 5,
- Name: "goproto.proto.test.optional_sint32_extension",
- Tag: "zigzag32,5,opt,name=optional_sint32_extension",
+ Name: "goproto.proto.test.optional_sint32",
+ Tag: "zigzag32,5,opt,name=optional_sint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 6,
- Name: "goproto.proto.test.optional_sint64_extension",
- Tag: "zigzag64,6,opt,name=optional_sint64_extension",
+ Name: "goproto.proto.test.optional_sint64",
+ Tag: "zigzag64,6,opt,name=optional_sint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint32)(nil),
Field: 7,
- Name: "goproto.proto.test.optional_fixed32_extension",
- Tag: "fixed32,7,opt,name=optional_fixed32_extension",
+ Name: "goproto.proto.test.optional_fixed32",
+ Tag: "fixed32,7,opt,name=optional_fixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint64)(nil),
Field: 8,
- Name: "goproto.proto.test.optional_fixed64_extension",
- Tag: "fixed64,8,opt,name=optional_fixed64_extension",
+ Name: "goproto.proto.test.optional_fixed64",
+ Tag: "fixed64,8,opt,name=optional_fixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 9,
- Name: "goproto.proto.test.optional_sfixed32_extension",
- Tag: "fixed32,9,opt,name=optional_sfixed32_extension",
+ Name: "goproto.proto.test.optional_sfixed32",
+ Tag: "fixed32,9,opt,name=optional_sfixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 10,
- Name: "goproto.proto.test.optional_sfixed64_extension",
- Tag: "fixed64,10,opt,name=optional_sfixed64_extension",
+ Name: "goproto.proto.test.optional_sfixed64",
+ Tag: "fixed64,10,opt,name=optional_sfixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*float32)(nil),
Field: 11,
- Name: "goproto.proto.test.optional_float_extension",
- Tag: "fixed32,11,opt,name=optional_float_extension",
+ Name: "goproto.proto.test.optional_float",
+ Tag: "fixed32,11,opt,name=optional_float",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*float64)(nil),
Field: 12,
- Name: "goproto.proto.test.optional_double_extension",
- Tag: "fixed64,12,opt,name=optional_double_extension",
+ Name: "goproto.proto.test.optional_double",
+ Tag: "fixed64,12,opt,name=optional_double",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*bool)(nil),
Field: 13,
- Name: "goproto.proto.test.optional_bool_extension",
- Tag: "varint,13,opt,name=optional_bool_extension",
+ Name: "goproto.proto.test.optional_bool",
+ Tag: "varint,13,opt,name=optional_bool",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*string)(nil),
Field: 14,
- Name: "goproto.proto.test.optional_string_extension",
- Tag: "bytes,14,opt,name=optional_string_extension",
+ Name: "goproto.proto.test.optional_string",
+ Tag: "bytes,14,opt,name=optional_string",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]byte)(nil),
Field: 15,
- Name: "goproto.proto.test.optional_bytes_extension",
- Tag: "bytes,15,opt,name=optional_bytes_extension",
+ Name: "goproto.proto.test.optional_bytes",
+ Tag: "bytes,15,opt,name=optional_bytes",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
- ExtensionType: (*OptionalGroupExtension)(nil),
+ ExtensionType: (*OptionalGroup)(nil),
Field: 16,
- Name: "goproto.proto.test.optionalgroup_extension",
- Tag: "group,16,opt,name=OptionalGroup_extension",
+ Name: "goproto.proto.test.optionalgroup",
+ Tag: "group,16,opt,name=OptionalGroup",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*TestAllExtensions_NestedMessage)(nil),
Field: 18,
- Name: "goproto.proto.test.optional_nested_message_extension",
- Tag: "bytes,18,opt,name=optional_nested_message_extension",
+ Name: "goproto.proto.test.optional_nested_message",
+ Tag: "bytes,18,opt,name=optional_nested_message",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*TestAllTypes_NestedEnum)(nil),
Field: 21,
- Name: "goproto.proto.test.optional_nested_enum_extension",
- Tag: "varint,21,opt,name=optional_nested_enum_extension,enum=goproto.proto.test.TestAllTypes_NestedEnum",
+ Name: "goproto.proto.test.optional_nested_enum",
+ Tag: "varint,21,opt,name=optional_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 31,
- Name: "goproto.proto.test.repeated_int32_extension",
- Tag: "varint,31,rep,name=repeated_int32_extension",
+ Name: "goproto.proto.test.repeated_int32",
+ Tag: "varint,31,rep,name=repeated_int32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 32,
- Name: "goproto.proto.test.repeated_int64_extension",
- Tag: "varint,32,rep,name=repeated_int64_extension",
+ Name: "goproto.proto.test.repeated_int64",
+ Tag: "varint,32,rep,name=repeated_int64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 33,
- Name: "goproto.proto.test.repeated_uint32_extension",
- Tag: "varint,33,rep,name=repeated_uint32_extension",
+ Name: "goproto.proto.test.repeated_uint32",
+ Tag: "varint,33,rep,name=repeated_uint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 34,
- Name: "goproto.proto.test.repeated_uint64_extension",
- Tag: "varint,34,rep,name=repeated_uint64_extension",
+ Name: "goproto.proto.test.repeated_uint64",
+ Tag: "varint,34,rep,name=repeated_uint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 35,
- Name: "goproto.proto.test.repeated_sint32_extension",
- Tag: "zigzag32,35,rep,name=repeated_sint32_extension",
+ Name: "goproto.proto.test.repeated_sint32",
+ Tag: "zigzag32,35,rep,name=repeated_sint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 36,
- Name: "goproto.proto.test.repeated_sint64_extension",
- Tag: "zigzag64,36,rep,name=repeated_sint64_extension",
+ Name: "goproto.proto.test.repeated_sint64",
+ Tag: "zigzag64,36,rep,name=repeated_sint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 37,
- Name: "goproto.proto.test.repeated_fixed32_extension",
- Tag: "fixed32,37,rep,name=repeated_fixed32_extension",
+ Name: "goproto.proto.test.repeated_fixed32",
+ Tag: "fixed32,37,rep,name=repeated_fixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 38,
- Name: "goproto.proto.test.repeated_fixed64_extension",
- Tag: "fixed64,38,rep,name=repeated_fixed64_extension",
+ Name: "goproto.proto.test.repeated_fixed64",
+ Tag: "fixed64,38,rep,name=repeated_fixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 39,
- Name: "goproto.proto.test.repeated_sfixed32_extension",
- Tag: "fixed32,39,rep,name=repeated_sfixed32_extension",
+ Name: "goproto.proto.test.repeated_sfixed32",
+ Tag: "fixed32,39,rep,name=repeated_sfixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 40,
- Name: "goproto.proto.test.repeated_sfixed64_extension",
- Tag: "fixed64,40,rep,name=repeated_sfixed64_extension",
+ Name: "goproto.proto.test.repeated_sfixed64",
+ Tag: "fixed64,40,rep,name=repeated_sfixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]float32)(nil),
Field: 41,
- Name: "goproto.proto.test.repeated_float_extension",
- Tag: "fixed32,41,rep,name=repeated_float_extension",
+ Name: "goproto.proto.test.repeated_float",
+ Tag: "fixed32,41,rep,name=repeated_float",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]float64)(nil),
Field: 42,
- Name: "goproto.proto.test.repeated_double_extension",
- Tag: "fixed64,42,rep,name=repeated_double_extension",
+ Name: "goproto.proto.test.repeated_double",
+ Tag: "fixed64,42,rep,name=repeated_double",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]bool)(nil),
Field: 43,
- Name: "goproto.proto.test.repeated_bool_extension",
- Tag: "varint,43,rep,name=repeated_bool_extension",
+ Name: "goproto.proto.test.repeated_bool",
+ Tag: "varint,43,rep,name=repeated_bool",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]string)(nil),
Field: 44,
- Name: "goproto.proto.test.repeated_string_extension",
- Tag: "bytes,44,rep,name=repeated_string_extension",
+ Name: "goproto.proto.test.repeated_string",
+ Tag: "bytes,44,rep,name=repeated_string",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([][]byte)(nil),
Field: 45,
- Name: "goproto.proto.test.repeated_bytes_extension",
- Tag: "bytes,45,rep,name=repeated_bytes_extension",
+ Name: "goproto.proto.test.repeated_bytes",
+ Tag: "bytes,45,rep,name=repeated_bytes",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
- ExtensionType: ([]*RepeatedGroupExtension)(nil),
+ ExtensionType: ([]*RepeatedGroup)(nil),
Field: 46,
- Name: "goproto.proto.test.repeatedgroup_extension",
- Tag: "group,46,rep,name=RepeatedGroup_extension",
+ Name: "goproto.proto.test.repeatedgroup",
+ Tag: "group,46,rep,name=RepeatedGroup",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]*TestAllExtensions_NestedMessage)(nil),
Field: 48,
- Name: "goproto.proto.test.repeated_nested_message_extension",
- Tag: "bytes,48,rep,name=repeated_nested_message_extension",
+ Name: "goproto.proto.test.repeated_nested_message",
+ Tag: "bytes,48,rep,name=repeated_nested_message",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]TestAllTypes_NestedEnum)(nil),
Field: 51,
- Name: "goproto.proto.test.repeated_nested_enum_extension",
- Tag: "varint,51,rep,name=repeated_nested_enum_extension,enum=goproto.proto.test.TestAllTypes_NestedEnum",
+ Name: "goproto.proto.test.repeated_nested_enum",
+ Tag: "varint,51,rep,name=repeated_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 81,
- Name: "goproto.proto.test.default_int32_extension",
- Tag: "varint,81,opt,name=default_int32_extension,def=81",
+ Name: "goproto.proto.test.default_int32",
+ Tag: "varint,81,opt,name=default_int32,def=81",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 82,
- Name: "goproto.proto.test.default_int64_extension",
- Tag: "varint,82,opt,name=default_int64_extension,def=82",
+ Name: "goproto.proto.test.default_int64",
+ Tag: "varint,82,opt,name=default_int64,def=82",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint32)(nil),
Field: 83,
- Name: "goproto.proto.test.default_uint32_extension",
- Tag: "varint,83,opt,name=default_uint32_extension,def=83",
+ Name: "goproto.proto.test.default_uint32",
+ Tag: "varint,83,opt,name=default_uint32,def=83",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint64)(nil),
Field: 84,
- Name: "goproto.proto.test.default_uint64_extension",
- Tag: "varint,84,opt,name=default_uint64_extension,def=84",
+ Name: "goproto.proto.test.default_uint64",
+ Tag: "varint,84,opt,name=default_uint64,def=84",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 85,
- Name: "goproto.proto.test.default_sint32_extension",
- Tag: "zigzag32,85,opt,name=default_sint32_extension,def=-85",
+ Name: "goproto.proto.test.default_sint32",
+ Tag: "zigzag32,85,opt,name=default_sint32,def=-85",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 86,
- Name: "goproto.proto.test.default_sint64_extension",
- Tag: "zigzag64,86,opt,name=default_sint64_extension,def=86",
+ Name: "goproto.proto.test.default_sint64",
+ Tag: "zigzag64,86,opt,name=default_sint64,def=86",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint32)(nil),
Field: 87,
- Name: "goproto.proto.test.default_fixed32_extension",
- Tag: "fixed32,87,opt,name=default_fixed32_extension,def=87",
+ Name: "goproto.proto.test.default_fixed32",
+ Tag: "fixed32,87,opt,name=default_fixed32,def=87",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*uint64)(nil),
Field: 88,
- Name: "goproto.proto.test.default_fixed64_extension",
- Tag: "fixed64,88,opt,name=default_fixed64_extension,def=88",
+ Name: "goproto.proto.test.default_fixed64",
+ Tag: "fixed64,88,opt,name=default_fixed64,def=88",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int32)(nil),
Field: 89,
- Name: "goproto.proto.test.default_sfixed32_extension",
- Tag: "fixed32,89,opt,name=default_sfixed32_extension,def=89",
+ Name: "goproto.proto.test.default_sfixed32",
+ Tag: "fixed32,89,opt,name=default_sfixed32,def=89",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*int64)(nil),
Field: 80,
- Name: "goproto.proto.test.default_sfixed64_extension",
- Tag: "fixed64,80,opt,name=default_sfixed64_extension,def=-90",
+ Name: "goproto.proto.test.default_sfixed64",
+ Tag: "fixed64,80,opt,name=default_sfixed64,def=-90",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*float32)(nil),
Field: 91,
- Name: "goproto.proto.test.default_float_extension",
- Tag: "fixed32,91,opt,name=default_float_extension,def=91.5",
+ Name: "goproto.proto.test.default_float",
+ Tag: "fixed32,91,opt,name=default_float,def=91.5",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*float64)(nil),
Field: 92,
- Name: "goproto.proto.test.default_double_extension",
- Tag: "fixed64,92,opt,name=default_double_extension,def=92000",
+ Name: "goproto.proto.test.default_double",
+ Tag: "fixed64,92,opt,name=default_double,def=92000",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*bool)(nil),
Field: 93,
- Name: "goproto.proto.test.default_bool_extension",
- Tag: "varint,93,opt,name=default_bool_extension,def=1",
+ Name: "goproto.proto.test.default_bool",
+ Tag: "varint,93,opt,name=default_bool,def=1",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: (*string)(nil),
Field: 94,
- Name: "goproto.proto.test.default_string_extension",
- Tag: "bytes,94,opt,name=default_string_extension,def=hello",
+ Name: "goproto.proto.test.default_string",
+ Tag: "bytes,94,opt,name=default_string,def=hello",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestAllExtensions)(nil),
ExtensionType: ([]byte)(nil),
Field: 95,
- Name: "goproto.proto.test.default_bytes_extension",
- Tag: "bytes,95,opt,name=default_bytes_extension,def=world",
+ Name: "goproto.proto.test.default_bytes",
+ Tag: "bytes,95,opt,name=default_bytes,def=world",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 90,
- Name: "goproto.proto.test.packed_int32_extension",
- Tag: "varint,90,rep,packed,name=packed_int32_extension",
+ Name: "goproto.proto.test.packed_int32",
+ Tag: "varint,90,rep,packed,name=packed_int32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 91,
- Name: "goproto.proto.test.packed_int64_extension",
- Tag: "varint,91,rep,packed,name=packed_int64_extension",
+ Name: "goproto.proto.test.packed_int64",
+ Tag: "varint,91,rep,packed,name=packed_int64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 92,
- Name: "goproto.proto.test.packed_uint32_extension",
- Tag: "varint,92,rep,packed,name=packed_uint32_extension",
+ Name: "goproto.proto.test.packed_uint32",
+ Tag: "varint,92,rep,packed,name=packed_uint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 93,
- Name: "goproto.proto.test.packed_uint64_extension",
- Tag: "varint,93,rep,packed,name=packed_uint64_extension",
+ Name: "goproto.proto.test.packed_uint64",
+ Tag: "varint,93,rep,packed,name=packed_uint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 94,
- Name: "goproto.proto.test.packed_sint32_extension",
- Tag: "zigzag32,94,rep,packed,name=packed_sint32_extension",
+ Name: "goproto.proto.test.packed_sint32",
+ Tag: "zigzag32,94,rep,packed,name=packed_sint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 95,
- Name: "goproto.proto.test.packed_sint64_extension",
- Tag: "zigzag64,95,rep,packed,name=packed_sint64_extension",
+ Name: "goproto.proto.test.packed_sint64",
+ Tag: "zigzag64,95,rep,packed,name=packed_sint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 96,
- Name: "goproto.proto.test.packed_fixed32_extension",
- Tag: "fixed32,96,rep,packed,name=packed_fixed32_extension",
+ Name: "goproto.proto.test.packed_fixed32",
+ Tag: "fixed32,96,rep,packed,name=packed_fixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 97,
- Name: "goproto.proto.test.packed_fixed64_extension",
- Tag: "fixed64,97,rep,packed,name=packed_fixed64_extension",
+ Name: "goproto.proto.test.packed_fixed64",
+ Tag: "fixed64,97,rep,packed,name=packed_fixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 98,
- Name: "goproto.proto.test.packed_sfixed32_extension",
- Tag: "fixed32,98,rep,packed,name=packed_sfixed32_extension",
+ Name: "goproto.proto.test.packed_sfixed32",
+ Tag: "fixed32,98,rep,packed,name=packed_sfixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 99,
- Name: "goproto.proto.test.packed_sfixed64_extension",
- Tag: "fixed64,99,rep,packed,name=packed_sfixed64_extension",
+ Name: "goproto.proto.test.packed_sfixed64",
+ Tag: "fixed64,99,rep,packed,name=packed_sfixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]float32)(nil),
Field: 100,
- Name: "goproto.proto.test.packed_float_extension",
- Tag: "fixed32,100,rep,packed,name=packed_float_extension",
+ Name: "goproto.proto.test.packed_float",
+ Tag: "fixed32,100,rep,packed,name=packed_float",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]float64)(nil),
Field: 101,
- Name: "goproto.proto.test.packed_double_extension",
- Tag: "fixed64,101,rep,packed,name=packed_double_extension",
+ Name: "goproto.proto.test.packed_double",
+ Tag: "fixed64,101,rep,packed,name=packed_double",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]bool)(nil),
Field: 102,
- Name: "goproto.proto.test.packed_bool_extension",
- Tag: "varint,102,rep,packed,name=packed_bool_extension",
+ Name: "goproto.proto.test.packed_bool",
+ Tag: "varint,102,rep,packed,name=packed_bool",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestPackedExtensions)(nil),
ExtensionType: ([]ForeignEnum)(nil),
Field: 103,
- Name: "goproto.proto.test.packed_enum_extension",
- Tag: "varint,103,rep,packed,name=packed_enum_extension,enum=goproto.proto.test.ForeignEnum",
+ Name: "goproto.proto.test.packed_enum",
+ Tag: "varint,103,rep,packed,name=packed_enum,enum=goproto.proto.test.ForeignEnum",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 90,
- Name: "goproto.proto.test.unpacked_int32_extension",
- Tag: "varint,90,rep,name=unpacked_int32_extension",
+ Name: "goproto.proto.test.unpacked_int32",
+ Tag: "varint,90,rep,name=unpacked_int32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 91,
- Name: "goproto.proto.test.unpacked_int64_extension",
- Tag: "varint,91,rep,name=unpacked_int64_extension",
+ Name: "goproto.proto.test.unpacked_int64",
+ Tag: "varint,91,rep,name=unpacked_int64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 92,
- Name: "goproto.proto.test.unpacked_uint32_extension",
- Tag: "varint,92,rep,name=unpacked_uint32_extension",
+ Name: "goproto.proto.test.unpacked_uint32",
+ Tag: "varint,92,rep,name=unpacked_uint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 93,
- Name: "goproto.proto.test.unpacked_uint64_extension",
- Tag: "varint,93,rep,name=unpacked_uint64_extension",
+ Name: "goproto.proto.test.unpacked_uint64",
+ Tag: "varint,93,rep,name=unpacked_uint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 94,
- Name: "goproto.proto.test.unpacked_sint32_extension",
- Tag: "zigzag32,94,rep,name=unpacked_sint32_extension",
+ Name: "goproto.proto.test.unpacked_sint32",
+ Tag: "zigzag32,94,rep,name=unpacked_sint32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 95,
- Name: "goproto.proto.test.unpacked_sint64_extension",
- Tag: "zigzag64,95,rep,name=unpacked_sint64_extension",
+ Name: "goproto.proto.test.unpacked_sint64",
+ Tag: "zigzag64,95,rep,name=unpacked_sint64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]uint32)(nil),
Field: 96,
- Name: "goproto.proto.test.unpacked_fixed32_extension",
- Tag: "fixed32,96,rep,name=unpacked_fixed32_extension",
+ Name: "goproto.proto.test.unpacked_fixed32",
+ Tag: "fixed32,96,rep,name=unpacked_fixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]uint64)(nil),
Field: 97,
- Name: "goproto.proto.test.unpacked_fixed64_extension",
- Tag: "fixed64,97,rep,name=unpacked_fixed64_extension",
+ Name: "goproto.proto.test.unpacked_fixed64",
+ Tag: "fixed64,97,rep,name=unpacked_fixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int32)(nil),
Field: 98,
- Name: "goproto.proto.test.unpacked_sfixed32_extension",
- Tag: "fixed32,98,rep,name=unpacked_sfixed32_extension",
+ Name: "goproto.proto.test.unpacked_sfixed32",
+ Tag: "fixed32,98,rep,name=unpacked_sfixed32",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]int64)(nil),
Field: 99,
- Name: "goproto.proto.test.unpacked_sfixed64_extension",
- Tag: "fixed64,99,rep,name=unpacked_sfixed64_extension",
+ Name: "goproto.proto.test.unpacked_sfixed64",
+ Tag: "fixed64,99,rep,name=unpacked_sfixed64",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]float32)(nil),
Field: 100,
- Name: "goproto.proto.test.unpacked_float_extension",
- Tag: "fixed32,100,rep,name=unpacked_float_extension",
+ Name: "goproto.proto.test.unpacked_float",
+ Tag: "fixed32,100,rep,name=unpacked_float",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]float64)(nil),
Field: 101,
- Name: "goproto.proto.test.unpacked_double_extension",
- Tag: "fixed64,101,rep,name=unpacked_double_extension",
+ Name: "goproto.proto.test.unpacked_double",
+ Tag: "fixed64,101,rep,name=unpacked_double",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]bool)(nil),
Field: 102,
- Name: "goproto.proto.test.unpacked_bool_extension",
- Tag: "varint,102,rep,name=unpacked_bool_extension",
+ Name: "goproto.proto.test.unpacked_bool",
+ Tag: "varint,102,rep,name=unpacked_bool",
Filename: "test/test.proto",
},
{
ExtendedType: (*TestUnpackedExtensions)(nil),
ExtensionType: ([]ForeignEnum)(nil),
Field: 103,
- Name: "goproto.proto.test.unpacked_enum_extension",
- Tag: "varint,103,rep,name=unpacked_enum_extension,enum=goproto.proto.test.ForeignEnum",
+ Name: "goproto.proto.test.unpacked_enum",
+ Tag: "varint,103,rep,name=unpacked_enum,enum=goproto.proto.test.ForeignEnum",
Filename: "test/test.proto",
},
{
@@ -3267,108 +3267,108 @@
// Extension fields to TestAllExtensions.
var (
- // optional int32 optional_int32_extension = 1;
- E_OptionalInt32Extension = &file_test_test_proto_extTypes[0]
- // optional int64 optional_int64_extension = 2;
- E_OptionalInt64Extension = &file_test_test_proto_extTypes[1]
- // optional uint32 optional_uint32_extension = 3;
- E_OptionalUint32Extension = &file_test_test_proto_extTypes[2]
- // optional uint64 optional_uint64_extension = 4;
- E_OptionalUint64Extension = &file_test_test_proto_extTypes[3]
- // optional sint32 optional_sint32_extension = 5;
- E_OptionalSint32Extension = &file_test_test_proto_extTypes[4]
- // optional sint64 optional_sint64_extension = 6;
- E_OptionalSint64Extension = &file_test_test_proto_extTypes[5]
- // optional fixed32 optional_fixed32_extension = 7;
- E_OptionalFixed32Extension = &file_test_test_proto_extTypes[6]
- // optional fixed64 optional_fixed64_extension = 8;
- E_OptionalFixed64Extension = &file_test_test_proto_extTypes[7]
- // optional sfixed32 optional_sfixed32_extension = 9;
- E_OptionalSfixed32Extension = &file_test_test_proto_extTypes[8]
- // optional sfixed64 optional_sfixed64_extension = 10;
- E_OptionalSfixed64Extension = &file_test_test_proto_extTypes[9]
- // optional float optional_float_extension = 11;
- E_OptionalFloatExtension = &file_test_test_proto_extTypes[10]
- // optional double optional_double_extension = 12;
- E_OptionalDoubleExtension = &file_test_test_proto_extTypes[11]
- // optional bool optional_bool_extension = 13;
- E_OptionalBoolExtension = &file_test_test_proto_extTypes[12]
- // optional string optional_string_extension = 14;
- E_OptionalStringExtension = &file_test_test_proto_extTypes[13]
- // optional bytes optional_bytes_extension = 15;
- E_OptionalBytesExtension = &file_test_test_proto_extTypes[14]
- // optional goproto.proto.test.OptionalGroup_extension optionalgroup_extension = 16;
- E_OptionalgroupExtension = &file_test_test_proto_extTypes[15]
- // optional goproto.proto.test.TestAllExtensions.NestedMessage optional_nested_message_extension = 18;
- E_OptionalNestedMessageExtension = &file_test_test_proto_extTypes[16]
- // optional goproto.proto.test.TestAllTypes.NestedEnum optional_nested_enum_extension = 21;
- E_OptionalNestedEnumExtension = &file_test_test_proto_extTypes[17]
- // repeated int32 repeated_int32_extension = 31;
- E_RepeatedInt32Extension = &file_test_test_proto_extTypes[18]
- // repeated int64 repeated_int64_extension = 32;
- E_RepeatedInt64Extension = &file_test_test_proto_extTypes[19]
- // repeated uint32 repeated_uint32_extension = 33;
- E_RepeatedUint32Extension = &file_test_test_proto_extTypes[20]
- // repeated uint64 repeated_uint64_extension = 34;
- E_RepeatedUint64Extension = &file_test_test_proto_extTypes[21]
- // repeated sint32 repeated_sint32_extension = 35;
- E_RepeatedSint32Extension = &file_test_test_proto_extTypes[22]
- // repeated sint64 repeated_sint64_extension = 36;
- E_RepeatedSint64Extension = &file_test_test_proto_extTypes[23]
- // repeated fixed32 repeated_fixed32_extension = 37;
- E_RepeatedFixed32Extension = &file_test_test_proto_extTypes[24]
- // repeated fixed64 repeated_fixed64_extension = 38;
- E_RepeatedFixed64Extension = &file_test_test_proto_extTypes[25]
- // repeated sfixed32 repeated_sfixed32_extension = 39;
- E_RepeatedSfixed32Extension = &file_test_test_proto_extTypes[26]
- // repeated sfixed64 repeated_sfixed64_extension = 40;
- E_RepeatedSfixed64Extension = &file_test_test_proto_extTypes[27]
- // repeated float repeated_float_extension = 41;
- E_RepeatedFloatExtension = &file_test_test_proto_extTypes[28]
- // repeated double repeated_double_extension = 42;
- E_RepeatedDoubleExtension = &file_test_test_proto_extTypes[29]
- // repeated bool repeated_bool_extension = 43;
- E_RepeatedBoolExtension = &file_test_test_proto_extTypes[30]
- // repeated string repeated_string_extension = 44;
- E_RepeatedStringExtension = &file_test_test_proto_extTypes[31]
- // repeated bytes repeated_bytes_extension = 45;
- E_RepeatedBytesExtension = &file_test_test_proto_extTypes[32]
- // repeated goproto.proto.test.RepeatedGroup_extension repeatedgroup_extension = 46;
- E_RepeatedgroupExtension = &file_test_test_proto_extTypes[33]
- // repeated goproto.proto.test.TestAllExtensions.NestedMessage repeated_nested_message_extension = 48;
- E_RepeatedNestedMessageExtension = &file_test_test_proto_extTypes[34]
- // repeated goproto.proto.test.TestAllTypes.NestedEnum repeated_nested_enum_extension = 51;
- E_RepeatedNestedEnumExtension = &file_test_test_proto_extTypes[35]
- // optional int32 default_int32_extension = 81;
- E_DefaultInt32Extension = &file_test_test_proto_extTypes[36]
- // optional int64 default_int64_extension = 82;
- E_DefaultInt64Extension = &file_test_test_proto_extTypes[37]
- // optional uint32 default_uint32_extension = 83;
- E_DefaultUint32Extension = &file_test_test_proto_extTypes[38]
- // optional uint64 default_uint64_extension = 84;
- E_DefaultUint64Extension = &file_test_test_proto_extTypes[39]
- // optional sint32 default_sint32_extension = 85;
- E_DefaultSint32Extension = &file_test_test_proto_extTypes[40]
- // optional sint64 default_sint64_extension = 86;
- E_DefaultSint64Extension = &file_test_test_proto_extTypes[41]
- // optional fixed32 default_fixed32_extension = 87;
- E_DefaultFixed32Extension = &file_test_test_proto_extTypes[42]
- // optional fixed64 default_fixed64_extension = 88;
- E_DefaultFixed64Extension = &file_test_test_proto_extTypes[43]
- // optional sfixed32 default_sfixed32_extension = 89;
- E_DefaultSfixed32Extension = &file_test_test_proto_extTypes[44]
- // optional sfixed64 default_sfixed64_extension = 80;
- E_DefaultSfixed64Extension = &file_test_test_proto_extTypes[45]
- // optional float default_float_extension = 91;
- E_DefaultFloatExtension = &file_test_test_proto_extTypes[46]
- // optional double default_double_extension = 92;
- E_DefaultDoubleExtension = &file_test_test_proto_extTypes[47]
- // optional bool default_bool_extension = 93;
- E_DefaultBoolExtension = &file_test_test_proto_extTypes[48]
- // optional string default_string_extension = 94;
- E_DefaultStringExtension = &file_test_test_proto_extTypes[49]
- // optional bytes default_bytes_extension = 95;
- E_DefaultBytesExtension = &file_test_test_proto_extTypes[50]
+ // optional int32 optional_int32 = 1;
+ E_OptionalInt32 = &file_test_test_proto_extTypes[0]
+ // optional int64 optional_int64 = 2;
+ E_OptionalInt64 = &file_test_test_proto_extTypes[1]
+ // optional uint32 optional_uint32 = 3;
+ E_OptionalUint32 = &file_test_test_proto_extTypes[2]
+ // optional uint64 optional_uint64 = 4;
+ E_OptionalUint64 = &file_test_test_proto_extTypes[3]
+ // optional sint32 optional_sint32 = 5;
+ E_OptionalSint32 = &file_test_test_proto_extTypes[4]
+ // optional sint64 optional_sint64 = 6;
+ E_OptionalSint64 = &file_test_test_proto_extTypes[5]
+ // optional fixed32 optional_fixed32 = 7;
+ E_OptionalFixed32 = &file_test_test_proto_extTypes[6]
+ // optional fixed64 optional_fixed64 = 8;
+ E_OptionalFixed64 = &file_test_test_proto_extTypes[7]
+ // optional sfixed32 optional_sfixed32 = 9;
+ E_OptionalSfixed32 = &file_test_test_proto_extTypes[8]
+ // optional sfixed64 optional_sfixed64 = 10;
+ E_OptionalSfixed64 = &file_test_test_proto_extTypes[9]
+ // optional float optional_float = 11;
+ E_OptionalFloat = &file_test_test_proto_extTypes[10]
+ // optional double optional_double = 12;
+ E_OptionalDouble = &file_test_test_proto_extTypes[11]
+ // optional bool optional_bool = 13;
+ E_OptionalBool = &file_test_test_proto_extTypes[12]
+ // optional string optional_string = 14;
+ E_OptionalString = &file_test_test_proto_extTypes[13]
+ // optional bytes optional_bytes = 15;
+ E_OptionalBytes = &file_test_test_proto_extTypes[14]
+ // optional goproto.proto.test.OptionalGroup optionalgroup = 16;
+ E_Optionalgroup = &file_test_test_proto_extTypes[15]
+ // optional goproto.proto.test.TestAllExtensions.NestedMessage optional_nested_message = 18;
+ E_OptionalNestedMessage = &file_test_test_proto_extTypes[16]
+ // optional goproto.proto.test.TestAllTypes.NestedEnum optional_nested_enum = 21;
+ E_OptionalNestedEnum = &file_test_test_proto_extTypes[17]
+ // repeated int32 repeated_int32 = 31;
+ E_RepeatedInt32 = &file_test_test_proto_extTypes[18]
+ // repeated int64 repeated_int64 = 32;
+ E_RepeatedInt64 = &file_test_test_proto_extTypes[19]
+ // repeated uint32 repeated_uint32 = 33;
+ E_RepeatedUint32 = &file_test_test_proto_extTypes[20]
+ // repeated uint64 repeated_uint64 = 34;
+ E_RepeatedUint64 = &file_test_test_proto_extTypes[21]
+ // repeated sint32 repeated_sint32 = 35;
+ E_RepeatedSint32 = &file_test_test_proto_extTypes[22]
+ // repeated sint64 repeated_sint64 = 36;
+ E_RepeatedSint64 = &file_test_test_proto_extTypes[23]
+ // repeated fixed32 repeated_fixed32 = 37;
+ E_RepeatedFixed32 = &file_test_test_proto_extTypes[24]
+ // repeated fixed64 repeated_fixed64 = 38;
+ E_RepeatedFixed64 = &file_test_test_proto_extTypes[25]
+ // repeated sfixed32 repeated_sfixed32 = 39;
+ E_RepeatedSfixed32 = &file_test_test_proto_extTypes[26]
+ // repeated sfixed64 repeated_sfixed64 = 40;
+ E_RepeatedSfixed64 = &file_test_test_proto_extTypes[27]
+ // repeated float repeated_float = 41;
+ E_RepeatedFloat = &file_test_test_proto_extTypes[28]
+ // repeated double repeated_double = 42;
+ E_RepeatedDouble = &file_test_test_proto_extTypes[29]
+ // repeated bool repeated_bool = 43;
+ E_RepeatedBool = &file_test_test_proto_extTypes[30]
+ // repeated string repeated_string = 44;
+ E_RepeatedString = &file_test_test_proto_extTypes[31]
+ // repeated bytes repeated_bytes = 45;
+ E_RepeatedBytes = &file_test_test_proto_extTypes[32]
+ // repeated goproto.proto.test.RepeatedGroup repeatedgroup = 46;
+ E_Repeatedgroup = &file_test_test_proto_extTypes[33]
+ // repeated goproto.proto.test.TestAllExtensions.NestedMessage repeated_nested_message = 48;
+ E_RepeatedNestedMessage = &file_test_test_proto_extTypes[34]
+ // repeated goproto.proto.test.TestAllTypes.NestedEnum repeated_nested_enum = 51;
+ E_RepeatedNestedEnum = &file_test_test_proto_extTypes[35]
+ // optional int32 default_int32 = 81;
+ E_DefaultInt32 = &file_test_test_proto_extTypes[36]
+ // optional int64 default_int64 = 82;
+ E_DefaultInt64 = &file_test_test_proto_extTypes[37]
+ // optional uint32 default_uint32 = 83;
+ E_DefaultUint32 = &file_test_test_proto_extTypes[38]
+ // optional uint64 default_uint64 = 84;
+ E_DefaultUint64 = &file_test_test_proto_extTypes[39]
+ // optional sint32 default_sint32 = 85;
+ E_DefaultSint32 = &file_test_test_proto_extTypes[40]
+ // optional sint64 default_sint64 = 86;
+ E_DefaultSint64 = &file_test_test_proto_extTypes[41]
+ // optional fixed32 default_fixed32 = 87;
+ E_DefaultFixed32 = &file_test_test_proto_extTypes[42]
+ // optional fixed64 default_fixed64 = 88;
+ E_DefaultFixed64 = &file_test_test_proto_extTypes[43]
+ // optional sfixed32 default_sfixed32 = 89;
+ E_DefaultSfixed32 = &file_test_test_proto_extTypes[44]
+ // optional sfixed64 default_sfixed64 = 80;
+ E_DefaultSfixed64 = &file_test_test_proto_extTypes[45]
+ // optional float default_float = 91;
+ E_DefaultFloat = &file_test_test_proto_extTypes[46]
+ // optional double default_double = 92;
+ E_DefaultDouble = &file_test_test_proto_extTypes[47]
+ // optional bool default_bool = 93;
+ E_DefaultBool = &file_test_test_proto_extTypes[48]
+ // optional string default_string = 94;
+ E_DefaultString = &file_test_test_proto_extTypes[49]
+ // optional bytes default_bytes = 95;
+ E_DefaultBytes = &file_test_test_proto_extTypes[50]
// optional string nested_string_extension = 1003;
E_TestNestedExtension_NestedStringExtension = &file_test_test_proto_extTypes[79]
// optional goproto.proto.test.TestRequired single = 1000;
@@ -3379,66 +3379,66 @@
// Extension fields to TestPackedExtensions.
var (
- // repeated int32 packed_int32_extension = 90;
- E_PackedInt32Extension = &file_test_test_proto_extTypes[51]
- // repeated int64 packed_int64_extension = 91;
- E_PackedInt64Extension = &file_test_test_proto_extTypes[52]
- // repeated uint32 packed_uint32_extension = 92;
- E_PackedUint32Extension = &file_test_test_proto_extTypes[53]
- // repeated uint64 packed_uint64_extension = 93;
- E_PackedUint64Extension = &file_test_test_proto_extTypes[54]
- // repeated sint32 packed_sint32_extension = 94;
- E_PackedSint32Extension = &file_test_test_proto_extTypes[55]
- // repeated sint64 packed_sint64_extension = 95;
- E_PackedSint64Extension = &file_test_test_proto_extTypes[56]
- // repeated fixed32 packed_fixed32_extension = 96;
- E_PackedFixed32Extension = &file_test_test_proto_extTypes[57]
- // repeated fixed64 packed_fixed64_extension = 97;
- E_PackedFixed64Extension = &file_test_test_proto_extTypes[58]
- // repeated sfixed32 packed_sfixed32_extension = 98;
- E_PackedSfixed32Extension = &file_test_test_proto_extTypes[59]
- // repeated sfixed64 packed_sfixed64_extension = 99;
- E_PackedSfixed64Extension = &file_test_test_proto_extTypes[60]
- // repeated float packed_float_extension = 100;
- E_PackedFloatExtension = &file_test_test_proto_extTypes[61]
- // repeated double packed_double_extension = 101;
- E_PackedDoubleExtension = &file_test_test_proto_extTypes[62]
- // repeated bool packed_bool_extension = 102;
- E_PackedBoolExtension = &file_test_test_proto_extTypes[63]
- // repeated goproto.proto.test.ForeignEnum packed_enum_extension = 103;
- E_PackedEnumExtension = &file_test_test_proto_extTypes[64]
+ // repeated int32 packed_int32 = 90;
+ E_PackedInt32 = &file_test_test_proto_extTypes[51]
+ // repeated int64 packed_int64 = 91;
+ E_PackedInt64 = &file_test_test_proto_extTypes[52]
+ // repeated uint32 packed_uint32 = 92;
+ E_PackedUint32 = &file_test_test_proto_extTypes[53]
+ // repeated uint64 packed_uint64 = 93;
+ E_PackedUint64 = &file_test_test_proto_extTypes[54]
+ // repeated sint32 packed_sint32 = 94;
+ E_PackedSint32 = &file_test_test_proto_extTypes[55]
+ // repeated sint64 packed_sint64 = 95;
+ E_PackedSint64 = &file_test_test_proto_extTypes[56]
+ // repeated fixed32 packed_fixed32 = 96;
+ E_PackedFixed32 = &file_test_test_proto_extTypes[57]
+ // repeated fixed64 packed_fixed64 = 97;
+ E_PackedFixed64 = &file_test_test_proto_extTypes[58]
+ // repeated sfixed32 packed_sfixed32 = 98;
+ E_PackedSfixed32 = &file_test_test_proto_extTypes[59]
+ // repeated sfixed64 packed_sfixed64 = 99;
+ E_PackedSfixed64 = &file_test_test_proto_extTypes[60]
+ // repeated float packed_float = 100;
+ E_PackedFloat = &file_test_test_proto_extTypes[61]
+ // repeated double packed_double = 101;
+ E_PackedDouble = &file_test_test_proto_extTypes[62]
+ // repeated bool packed_bool = 102;
+ E_PackedBool = &file_test_test_proto_extTypes[63]
+ // repeated goproto.proto.test.ForeignEnum packed_enum = 103;
+ E_PackedEnum = &file_test_test_proto_extTypes[64]
)
// Extension fields to TestUnpackedExtensions.
var (
- // repeated int32 unpacked_int32_extension = 90;
- E_UnpackedInt32Extension = &file_test_test_proto_extTypes[65]
- // repeated int64 unpacked_int64_extension = 91;
- E_UnpackedInt64Extension = &file_test_test_proto_extTypes[66]
- // repeated uint32 unpacked_uint32_extension = 92;
- E_UnpackedUint32Extension = &file_test_test_proto_extTypes[67]
- // repeated uint64 unpacked_uint64_extension = 93;
- E_UnpackedUint64Extension = &file_test_test_proto_extTypes[68]
- // repeated sint32 unpacked_sint32_extension = 94;
- E_UnpackedSint32Extension = &file_test_test_proto_extTypes[69]
- // repeated sint64 unpacked_sint64_extension = 95;
- E_UnpackedSint64Extension = &file_test_test_proto_extTypes[70]
- // repeated fixed32 unpacked_fixed32_extension = 96;
- E_UnpackedFixed32Extension = &file_test_test_proto_extTypes[71]
- // repeated fixed64 unpacked_fixed64_extension = 97;
- E_UnpackedFixed64Extension = &file_test_test_proto_extTypes[72]
- // repeated sfixed32 unpacked_sfixed32_extension = 98;
- E_UnpackedSfixed32Extension = &file_test_test_proto_extTypes[73]
- // repeated sfixed64 unpacked_sfixed64_extension = 99;
- E_UnpackedSfixed64Extension = &file_test_test_proto_extTypes[74]
- // repeated float unpacked_float_extension = 100;
- E_UnpackedFloatExtension = &file_test_test_proto_extTypes[75]
- // repeated double unpacked_double_extension = 101;
- E_UnpackedDoubleExtension = &file_test_test_proto_extTypes[76]
- // repeated bool unpacked_bool_extension = 102;
- E_UnpackedBoolExtension = &file_test_test_proto_extTypes[77]
- // repeated goproto.proto.test.ForeignEnum unpacked_enum_extension = 103;
- E_UnpackedEnumExtension = &file_test_test_proto_extTypes[78]
+ // repeated int32 unpacked_int32 = 90;
+ E_UnpackedInt32 = &file_test_test_proto_extTypes[65]
+ // repeated int64 unpacked_int64 = 91;
+ E_UnpackedInt64 = &file_test_test_proto_extTypes[66]
+ // repeated uint32 unpacked_uint32 = 92;
+ E_UnpackedUint32 = &file_test_test_proto_extTypes[67]
+ // repeated uint64 unpacked_uint64 = 93;
+ E_UnpackedUint64 = &file_test_test_proto_extTypes[68]
+ // repeated sint32 unpacked_sint32 = 94;
+ E_UnpackedSint32 = &file_test_test_proto_extTypes[69]
+ // repeated sint64 unpacked_sint64 = 95;
+ E_UnpackedSint64 = &file_test_test_proto_extTypes[70]
+ // repeated fixed32 unpacked_fixed32 = 96;
+ E_UnpackedFixed32 = &file_test_test_proto_extTypes[71]
+ // repeated fixed64 unpacked_fixed64 = 97;
+ E_UnpackedFixed64 = &file_test_test_proto_extTypes[72]
+ // repeated sfixed32 unpacked_sfixed32 = 98;
+ E_UnpackedSfixed32 = &file_test_test_proto_extTypes[73]
+ // repeated sfixed64 unpacked_sfixed64 = 99;
+ E_UnpackedSfixed64 = &file_test_test_proto_extTypes[74]
+ // repeated float unpacked_float = 100;
+ E_UnpackedFloat = &file_test_test_proto_extTypes[75]
+ // repeated double unpacked_double = 101;
+ E_UnpackedDouble = &file_test_test_proto_extTypes[76]
+ // repeated bool unpacked_bool = 102;
+ E_UnpackedBool = &file_test_test_proto_extTypes[77]
+ // repeated goproto.proto.test.ForeignEnum unpacked_enum = 103;
+ E_UnpackedEnum = &file_test_test_proto_extTypes[78]
)
var File_test_test_proto protoreflect.FileDescriptor
@@ -3938,762 +3938,666 @@
0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76,
- 0x65, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x01, 0x0a, 0x17,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x11, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69,
- 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65,
- 0x72, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65,
- 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe8, 0x07, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65,
- 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
- 0x95, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75,
- 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x61,
- 0x18, 0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x75, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x4e,
- 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x5e,
- 0x0a, 0x17, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x65, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x0d,
+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a,
+ 0x01, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x73,
+ 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
+ 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c,
+ 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53,
- 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf7,
- 0x01, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,
- 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c,
- 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
- 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x60, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
- 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
- 0x52, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x32, 0x5e, 0x0a, 0x05, 0x6d, 0x75, 0x6c, 0x74,
- 0x69, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
- 0x64, 0x52, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x22, 0xc2, 0x03, 0x0a, 0x13, 0x54, 0x65, 0x73,
- 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e,
- 0x12, 0x4b, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4b, 0x0a,
- 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x2f, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x01, 0x61, 0x12, 0x6c, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+ 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x61,
- 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x37, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
- 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52,
- 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x5f, 0x0a,
- 0x0f, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
- 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69,
- 0x72, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d,
- 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x99, 0x02,
- 0x0a, 0x17, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72,
- 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x0d, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0a,
- 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72,
- 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5f, 0x0a, 0x0d, 0x72, 0x65,
- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x0a, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69,
- 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x52,
- 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65,
- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x1d, 0x0a, 0x0d, 0x4f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01,
- 0x61, 0x18, 0x02, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x1a, 0x1d, 0x0a, 0x0d, 0x52, 0x65,
- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61,
- 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x22, 0xb6, 0x01, 0x0a, 0x08, 0x54, 0x65,
- 0x73, 0x74, 0x57, 0x65, 0x61, 0x6b, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e,
- 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
- 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f,
- 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c,
- 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x54, 0x0a, 0x0d,
- 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65,
- 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32,
- 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x32, 0x22, 0xee, 0x04, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65,
- 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01,
- 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a,
- 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20,
- 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49,
- 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75,
- 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52,
- 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a,
- 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5d,
- 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10,
- 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12,
- 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34,
- 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07,
- 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65,
- 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69,
- 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52,
- 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b,
- 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
- 0x32, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63,
- 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x63,
- 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02,
- 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12,
- 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65,
- 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10,
- 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x44, 0x0a,
- 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x03,
- 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45,
- 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45,
- 0x6e, 0x75, 0x6d, 0x22, 0xa8, 0x05, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61,
- 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28,
- 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49,
- 0x6e, 0x74, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00,
- 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12,
- 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74,
- 0x33, 0x32, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f,
- 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18,
- 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63,
- 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03,
- 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42,
- 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e,
- 0x74, 0x36, 0x34, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
- 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10,
- 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64,
- 0x33, 0x32, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66,
- 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00,
- 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66,
- 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00,
- 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
- 0x33, 0x32, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73,
- 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10,
- 0x00, 0x52, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65,
- 0x64, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
- 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52,
- 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b,
- 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c,
- 0x65, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x75,
- 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03,
- 0x28, 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00,
- 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20,
- 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02,
- 0x22, 0x22, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80,
- 0x80, 0x80, 0x80, 0x02, 0x22, 0x0c, 0x0a, 0x0a, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x22, 0x0d, 0x0a, 0x0b, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x61, 0x0a, 0x0c, 0x57, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
- 0x74, 0x12, 0x51, 0x0a, 0x0d, 0x77, 0x65, 0x69, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75,
- 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x2c, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c,
- 0x20, 0x5c, 0x22, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x5c, 0x22, 0x5c, 0x6e, 0x64, 0x65, 0x61,
- 0x64, 0x5c, 0x33, 0x33, 0x36, 0x5c, 0x32, 0x35, 0x35, 0x5c, 0x32, 0x37, 0x36, 0x5c, 0x33, 0x35,
- 0x37, 0x62, 0x65, 0x65, 0x66, 0x60, 0x52, 0x0c, 0x77, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66,
- 0x61, 0x75, 0x6c, 0x74, 0x2a, 0x40, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45,
- 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46,
- 0x4f, 0x4f, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f,
- 0x42, 0x41, 0x52, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e,
- 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x06, 0x2a, 0x47, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73,
- 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55,
- 0x4d, 0x10, 0x00, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x22,
- 0x04, 0x08, 0x09, 0x10, 0x0b, 0x2a, 0x03, 0x42, 0x41, 0x52, 0x2a, 0x03, 0x42, 0x41, 0x5a, 0x32,
- 0xa8, 0x01, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
- 0x46, 0x0a, 0x03, 0x46, 0x6f, 0x6f, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x53,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x32, 0x85, 0x01, 0x0a, 0x15, 0x54,
- 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
- 0x65, 0x64, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72,
- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x29, 0x2e,
- 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
- 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
- 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x1a, 0x03, 0x88,
- 0x02, 0x01, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69,
- 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
- 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12,
- 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
- 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17,
- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x11, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69,
- 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a,
- 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34,
- 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
- 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x63, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78,
- 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x18, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
- 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06,
- 0x52, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x19, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
- 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66,
- 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x10, 0x52, 0x19, 0x6f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
- 0x02, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
- 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x75,
- 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5d, 0x0a, 0x17,
- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f,
- 0x6f, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x6f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53,
- 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f,
- 0x0a, 0x18, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
- 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
- 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
- 0x8b, 0x01, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75,
- 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67,
- 0x72, 0x6f, 0x75, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0xa5, 0x01,
- 0x0a, 0x21, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65,
- 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e,
- 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x97, 0x01, 0x0a, 0x1e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x65,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e,
+ 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x22, 0x75, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x73, 0x74, 0x65,
+ 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x5e, 0x0a, 0x17, 0x6e, 0x65,
+ 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
- 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e,
- 0x75, 0x6d, 0x52, 0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74,
- 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
- 0x5f, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33,
- 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x5f, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74,
- 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67,
+ 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xeb, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x15, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x0c, 0x54,
+ 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72,
+ 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20,
+ 0x02, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x32, 0x60, 0x0a, 0x06, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67,
0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69,
- 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x17, 0x72, 0x65, 0x70,
- 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
- 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x17,
- 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28,
- 0x11, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33,
- 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65,
- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x24,
- 0x20, 0x03, 0x28, 0x12, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69,
- 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a,
- 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
- 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x1a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66,
- 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x18, 0x72,
- 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
- 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20,
- 0x03, 0x28, 0x0f, 0x52, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69,
- 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65,
- 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65,
- 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
+ 0x6f, 0x6e, 0x73, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x06, 0x73, 0x69,
+ 0x6e, 0x67, 0x6c, 0x65, 0x32, 0x5e, 0x0a, 0x05, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x25, 0x2e,
0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x19, 0x72, 0x65, 0x70, 0x65,
- 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
- 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x16,
- 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x05, 0x6d,
+ 0x75, 0x6c, 0x74, 0x69, 0x22, 0xc2, 0x03, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x12, 0x4b, 0x0a, 0x10,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x70,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x69, 0x72, 0x65, 0x64, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x61, 0x70, 0x5f, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72,
+ 0x65, 0x69, 0x67, 0x6e, 0x2e, 0x4d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x47, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x6e, 0x65,
+ 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x5f, 0x0a, 0x0f, 0x4d, 0x61, 0x70,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36,
+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x6e,
+ 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x99, 0x02, 0x0a, 0x17, 0x54, 0x65,
+ 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46,
+ 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x5f, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+ 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x39, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72,
+ 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61,
+ 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5f, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x39, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x47,
+ 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x1d, 0x0a, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20,
+ 0x02, 0x28, 0x05, 0x52, 0x01, 0x61, 0x1a, 0x1d, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x04, 0x20, 0x02,
+ 0x28, 0x05, 0x52, 0x01, 0x61, 0x22, 0xb6, 0x01, 0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x57, 0x65,
+ 0x61, 0x6b, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77,
+ 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x42, 0x02, 0x50, 0x01, 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x54, 0x0a, 0x0d, 0x77, 0x65, 0x61, 0x6b,
+ 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x77, 0x65, 0x61, 0x6b, 0x2e, 0x57, 0x65, 0x61, 0x6b, 0x49, 0x6d,
+ 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x42, 0x02, 0x50, 0x01,
+ 0x52, 0x0c, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0xee,
+ 0x04, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74,
+ 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42,
+ 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34,
+ 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33,
+ 0x32, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04,
+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74,
+ 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e,
+ 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0d, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5f, 0x20, 0x03,
+ 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69,
+ 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66,
+ 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01,
+ 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12,
+ 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
+ 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x62, 0x20,
+ 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53,
+ 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10,
+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78,
+ 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66,
+ 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x03,
+ 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f,
+ 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62,
+ 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x0b, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42,
+ 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22,
+ 0xa8, 0x05, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10,
+ 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32,
+ 0x12, 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74,
+ 0x36, 0x34, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75,
+ 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5c,
+ 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b,
+ 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5d, 0x20, 0x03, 0x28,
+ 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55,
+ 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02,
+ 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74,
+ 0x33, 0x32, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73,
+ 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52,
+ 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12,
+ 0x2d, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65,
+ 0x64, 0x33, 0x32, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75,
+ 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2d,
+ 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x36, 0x34, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2f, 0x0a,
+ 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x33, 0x32, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2f,
+ 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65,
+ 0x64, 0x36, 0x34, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75,
+ 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12,
+ 0x29, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61,
+ 0x74, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x65, 0x20,
+ 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02,
+ 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c,
+ 0x12, 0x48, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75,
+ 0x6d, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72,
+ 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x20, 0x0a, 0x14, 0x54, 0x65,
+ 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x22, 0x0a, 0x16,
+ 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x08, 0x08, 0x01, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02,
+ 0x22, 0x0c, 0x0a, 0x0a, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0d,
+ 0x0a, 0x0b, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a,
+ 0x0c, 0x57, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a,
+ 0x0d, 0x77, 0x65, 0x69, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x2c, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x5c, 0x22, 0x77,
+ 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x5c, 0x22, 0x5c, 0x6e, 0x64, 0x65, 0x61, 0x64, 0x5c, 0x33, 0x33,
+ 0x36, 0x5c, 0x32, 0x35, 0x35, 0x5c, 0x32, 0x37, 0x36, 0x5c, 0x33, 0x35, 0x37, 0x62, 0x65, 0x65,
+ 0x66, 0x60, 0x52, 0x0c, 0x77, 0x65, 0x69, 0x72, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x2a, 0x40, 0x0a, 0x0b, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12,
+ 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x04,
+ 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x52, 0x10,
+ 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x5f, 0x42, 0x41, 0x5a,
+ 0x10, 0x06, 0x2a, 0x47, 0x0a, 0x16, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x11, 0x0a, 0x0d,
+ 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x00, 0x22,
+ 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x22, 0x04, 0x08, 0x09, 0x10,
+ 0x0b, 0x2a, 0x03, 0x42, 0x41, 0x52, 0x2a, 0x03, 0x42, 0x41, 0x5a, 0x32, 0xa8, 0x01, 0x0a, 0x0b,
+ 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x03, 0x46,
+ 0x6f, 0x6f, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x32, 0x85, 0x01, 0x0a, 0x15, 0x54, 0x65, 0x73, 0x74, 0x44,
+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x29,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
+ 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x1a, 0x03, 0x88, 0x02, 0x01, 0x3a, 0x4c,
+ 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32,
+ 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
+ 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4c, 0x0a, 0x0e,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x10, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0f, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x10,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34,
+ 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
+ 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0f, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x52,
+ 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65,
+ 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f,
+ 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x33, 0x32, 0x3a, 0x52, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73,
+ 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x10, 0x52, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x66,
+ 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x61, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46,
+ 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x6f,
+ 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4a, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+ 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6f, 0x6f, 0x6c,
+ 0x3a, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+ 0x3a, 0x4c, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74,
+ 0x65, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x6e,
+ 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12,
+ 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0a, 0x32, 0x21, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
+ 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x92,
+ 0x01, 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x73, 0x74,
+ 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e,
+ 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x3a, 0x84, 0x01, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74,
+ 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
+ 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x21, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
+ 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x52, 0x0a, 0x11, 0x72, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12,
+ 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, 0x10, 0x72, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x52,
+ 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65,
+ 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10,
+ 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x36, 0x34, 0x3a, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66,
+ 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
+ 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28,
+ 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74,
+ 0x3a, 0x4e, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75,
+ 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01,
- 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5d, 0x0a, 0x17, 0x72, 0x65, 0x70,
- 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28,
- 0x08, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x19, 0x72, 0x65, 0x70, 0x65,
- 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
- 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2c, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69,
- 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x5f, 0x0a, 0x18, 0x72,
- 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2d,
- 0x20, 0x03, 0x28, 0x0c, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79,
- 0x74, 0x65, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x8b, 0x01, 0x0a,
- 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x2e, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x52, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75,
- 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0xa5, 0x01, 0x0a, 0x21, 0x72,
- 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e,
- 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
- 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x52, 0x1e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74,
- 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x3a, 0x97, 0x01, 0x0a, 0x1e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
- 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
- 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x33, 0x20, 0x03,
- 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52,
- 0x1b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45,
- 0x6e, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x17,
- 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x51,
- 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x38, 0x31, 0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
- 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a,
- 0x61, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34,
- 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x52, 0x20, 0x01, 0x28, 0x03, 0x3a, 0x02, 0x38, 0x32, 0x52, 0x15, 0x64, 0x65, 0x66,
- 0x61, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69,
- 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x53, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x02, 0x38, 0x33, 0x52,
- 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75,
- 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x54, 0x20, 0x01, 0x28, 0x04,
- 0x3a, 0x02, 0x38, 0x34, 0x52, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e,
- 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x64, 0x0a, 0x18,
- 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
- 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x55, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x16, 0x64, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69,
- 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25,
- 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x56, 0x20, 0x01, 0x28, 0x12, 0x3a, 0x02, 0x38, 0x36, 0x52,
- 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75,
- 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28,
- 0x07, 0x3a, 0x02, 0x38, 0x37, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69,
- 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x65,
- 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x58, 0x20, 0x01, 0x28, 0x06, 0x3a, 0x02, 0x38, 0x38, 0x52, 0x17, 0x64, 0x65,
- 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x67, 0x0a, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
- 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0f,
- 0x3a, 0x02, 0x38, 0x39, 0x52, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69,
- 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x68,
- 0x0a, 0x1a, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64,
- 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67,
- 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
- 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, 0x10, 0x3a, 0x03, 0x2d, 0x39, 0x30, 0x52, 0x18,
- 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x02,
- 0x3a, 0x04, 0x39, 0x31, 0x2e, 0x35, 0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46,
- 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x0a,
- 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x05, 0x39, 0x32, 0x30, 0x30, 0x30, 0x52, 0x16, 0x64,
- 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x0a, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
- 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65,
+ 0x3a, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f,
+ 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c,
+ 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x4e, 0x0a, 0x0f,
+ 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12,
0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72,
- 0x75, 0x65, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x0a, 0x18, 0x64, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c,
- 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x01, 0x28,
- 0x09, 0x3a, 0x05, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
- 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x64, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65,
- 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x67, 0x6f,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x4c, 0x0a, 0x0e,
+ 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x3a, 0x6e, 0x0a, 0x0d, 0x72, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x67, 0x6f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x05, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52,
- 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x62, 0x0a, 0x16, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05,
- 0x42, 0x02, 0x10, 0x01, 0x52, 0x14, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33,
- 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x62, 0x0a, 0x16, 0x70, 0x61,
- 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+ 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65,
+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x70,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x92, 0x01, 0x0a, 0x17, 0x72,
+ 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x30, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65,
+ 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a,
+ 0x84, 0x01, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73,
+ 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+ 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e,
+ 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x73, 0x74,
+ 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4e, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x51,
+ 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x38, 0x31, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4e, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
+ 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x52,
+ 0x20, 0x01, 0x28, 0x03, 0x3a, 0x02, 0x38, 0x32, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x53, 0x20, 0x01, 0x28, 0x0d, 0x3a, 0x02, 0x38, 0x33, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x50, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x54, 0x20, 0x01, 0x28, 0x04, 0x3a, 0x02, 0x38, 0x34, 0x52, 0x0d, 0x64, 0x65, 0x66,
+ 0x61, 0x75, 0x6c, 0x74, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0e, 0x64, 0x65,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x55, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x0d,
+ 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x50, 0x0a,
+ 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12,
+ 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x56, 0x20, 0x01, 0x28, 0x12, 0x3a, 0x02, 0x38, 0x36,
+ 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a,
+ 0x52, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, 0x07, 0x3a,
+ 0x02, 0x38, 0x37, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x69, 0x78, 0x65,
+ 0x64, 0x33, 0x32, 0x3a, 0x52, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66,
+ 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x58, 0x20,
+ 0x01, 0x28, 0x06, 0x3a, 0x02, 0x38, 0x38, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x59, 0x20, 0x01, 0x28, 0x0f, 0x3a, 0x02, 0x38, 0x39, 0x52, 0x0f, 0x64, 0x65,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x55, 0x0a,
+ 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
+ 0x34, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, 0x10, 0x3a, 0x03,
+ 0x2d, 0x39, 0x30, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x66, 0x69, 0x78,
+ 0x65, 0x64, 0x36, 0x34, 0x3a, 0x50, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
+ 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41,
+ 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x01,
+ 0x28, 0x02, 0x3a, 0x04, 0x39, 0x31, 0x2e, 0x35, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x5c, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x05, 0x39, 0x32, 0x30, 0x30, 0x30, 0x52, 0x0d, 0x64, 0x65,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4e, 0x0a, 0x0c, 0x64,
+ 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x25, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0b,
+ 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x53, 0x0a, 0x0e, 0x64,
+ 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x05, 0x68, 0x65, 0x6c, 0x6c,
+ 0x6f, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
+ 0x3a, 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65,
+ 0x73, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x0c, 0x3a, 0x05,
+ 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x79,
+ 0x74, 0x65, 0x73, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e,
+ 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5a, 0x20,
+ 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49,
+ 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69,
+ 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61,
0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b,
- 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x14, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x64,
- 0x0a, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
+ 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b,
+ 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b,
+ 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x15, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x64, 0x0a, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75,
- 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x51, 0x0a, 0x0d, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01,
+ 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x51,
+ 0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12,
0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42,
- 0x02, 0x10, 0x01, 0x52, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x64, 0x0a, 0x17, 0x70, 0x61,
- 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42,
+ 0x02, 0x10, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36,
+ 0x34, 0x3a, 0x53, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65,
+ 0x64, 0x33, 0x32, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60, 0x20,
+ 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46,
+ 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x53, 0x0a, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x55, 0x0a, 0x0f, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x28,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02,
+ 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69,
+ 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50,
0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65,
- 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x64, 0x0a, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36,
- 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x01, 0x52,
- 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x0a, 0x18, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60, 0x20, 0x03,
- 0x28, 0x07, 0x42, 0x02, 0x10, 0x01, 0x52, 0x16, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69,
- 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x66,
- 0x0a, 0x18, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34,
- 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x01, 0x52, 0x16,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x0a, 0x19, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63,
- 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x62, 0x20,
- 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x01, 0x52, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53,
- 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x68, 0x0a, 0x19, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65,
- 0x64, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e,
- 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
- 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10,
- 0x01, 0x52, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x62, 0x0a, 0x16, 0x70, 0x61,
- 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61,
- 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x64,
- 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x14, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x64,
- 0x0a, 0x17, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x4f, 0x0a, 0x0c, 0x70, 0x61, 0x63,
+ 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52, 0x15, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x60, 0x0a, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62,
- 0x6f, 0x6f, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e,
+ 0x6f, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x51, 0x0a, 0x0d, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x01, 0x52,
+ 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x4d, 0x0a,
+ 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x28, 0x2e, 0x67,
+ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
+ 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10, 0x01,
+ 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x3a, 0x6e, 0x0a, 0x0b,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x28, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
+ 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x01,
+ 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x55, 0x0a, 0x0e,
+ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a,
+ 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05,
+ 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e,
+ 0x74, 0x33, 0x32, 0x3a, 0x55, 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55,
+ 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x5b, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x2a, 0x2e,
0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
- 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10,
- 0x01, 0x52, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x81, 0x01, 0x0a, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65,
- 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0e,
- 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75,
- 0x6d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75,
- 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x0a, 0x18, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42,
+ 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e,
+ 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x5a, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x00, 0x52, 0x16, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x0a, 0x18, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5b, 0x20, 0x03,
- 0x28, 0x03, 0x42, 0x02, 0x10, 0x00, 0x52, 0x16, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6a,
- 0x0a, 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33,
- 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5c, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10,
- 0x00, 0x52, 0x17, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33,
- 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6a, 0x0a, 0x19, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73,
- 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x17, 0x75,
- 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6a, 0x0a, 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b,
- 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x5e, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x17, 0x75, 0x6e, 0x70, 0x61, 0x63,
- 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x3a, 0x6a, 0x0a, 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73,
- 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x6e, 0x73, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x57, 0x0a, 0x0f,
+ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12,
0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
- 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28,
- 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x17, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53,
- 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6c,
- 0x0a, 0x1a, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
- 0x33, 0x32, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67,
- 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73,
- 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78,
- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60, 0x20, 0x03, 0x28, 0x07, 0x42, 0x02,
- 0x10, 0x00, 0x52, 0x18, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65,
- 0x64, 0x33, 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6c, 0x0a, 0x1a,
- 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34,
- 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
- 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42, 0x02, 0x10, 0x00,
- 0x52, 0x18, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x0a, 0x1b, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72,
+ 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5e, 0x20, 0x03, 0x28,
+ 0x11, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53,
+ 0x69, 0x6e, 0x74, 0x33, 0x32, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x12, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e,
+ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x3a, 0x59,
+ 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64,
+ 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61,
+ 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x60,
+ 0x20, 0x03, 0x28, 0x07, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b,
+ 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x3a, 0x59, 0x0a, 0x10, 0x75, 0x6e, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e,
+ 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45,
+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x61, 0x20, 0x03, 0x28, 0x06, 0x42,
+ 0x02, 0x10, 0x00, 0x52, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x78,
+ 0x65, 0x64, 0x36, 0x34, 0x3a, 0x5b, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0f, 0x42, 0x02, 0x10, 0x00, 0x52,
- 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
- 0x32, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x0a, 0x1b, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x5f,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54,
- 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52,
- 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
- 0x34, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x68, 0x0a, 0x18, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x10, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33,
+ 0x32, 0x3a, 0x5b, 0x0a, 0x11, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x66,
+ 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74,
0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x16, 0x75, 0x6e,
- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6a, 0x0a, 0x19, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63,
- 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20,
- 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x17, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
- 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
- 0x3a, 0x66, 0x0a, 0x17, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f,
- 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28, 0x08, 0x42, 0x02, 0x10,
- 0x00, 0x52, 0x15, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x45,
- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x87, 0x01, 0x0a, 0x17, 0x75, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
+ 0x6e, 0x73, 0x18, 0x63, 0x20, 0x03, 0x28, 0x10, 0x42, 0x02, 0x10, 0x00, 0x52, 0x10, 0x75, 0x6e,
+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x3a, 0x55,
+ 0x0a, 0x0e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74,
+ 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b,
+ 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03,
+ 0x28, 0x02, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64,
+ 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x57, 0x0a, 0x0f, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65,
+ 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x65, 0x20, 0x03, 0x28, 0x01, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0e,
+ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x3a, 0x53,
+ 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x12,
+ 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+ 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x66, 0x20, 0x03, 0x28,
+ 0x08, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x42,
+ 0x6f, 0x6f, 0x6c, 0x3a, 0x74, 0x0a, 0x0d, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x55, 0x6e,
0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x67, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x65,
- 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x15, 0x75, 0x6e, 0x70,
- 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
- 0x6f, 0x6e, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c,
- 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x50, 0x01, 0x58, 0x02, 0x58, 0x03,
+ 0x69, 0x67, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x02, 0x10, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x70,
+ 0x61, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+ 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74,
+ 0x50, 0x01, 0x58, 0x02, 0x58, 0x03,
}
var (
@@ -4720,8 +4624,8 @@
(*ForeignMessage)(nil), // 6: goproto.proto.test.ForeignMessage
(*TestReservedFields)(nil), // 7: goproto.proto.test.TestReservedFields
(*TestAllExtensions)(nil), // 8: goproto.proto.test.TestAllExtensions
- (*OptionalGroupExtension)(nil), // 9: goproto.proto.test.OptionalGroup_extension
- (*RepeatedGroupExtension)(nil), // 10: goproto.proto.test.RepeatedGroup_extension
+ (*OptionalGroup)(nil), // 9: goproto.proto.test.OptionalGroup
+ (*RepeatedGroup)(nil), // 10: goproto.proto.test.RepeatedGroup
(*TestNestedExtension)(nil), // 11: goproto.proto.test.TestNestedExtension
(*TestRequired)(nil), // 12: goproto.proto.test.TestRequired
(*TestRequiredForeign)(nil), // 13: goproto.proto.test.TestRequiredForeign
@@ -4797,8 +4701,8 @@
0, // 32: goproto.proto.test.TestAllTypes.default_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
23, // 33: goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
2, // 34: goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
- 43, // 35: goproto.proto.test.OptionalGroup_extension.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
- 43, // 36: goproto.proto.test.RepeatedGroup_extension.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
+ 43, // 35: goproto.proto.test.OptionalGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
+ 43, // 36: goproto.proto.test.RepeatedGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
12, // 37: goproto.proto.test.TestRequiredForeign.optional_message:type_name -> goproto.proto.test.TestRequired
12, // 38: goproto.proto.test.TestRequiredForeign.repeated_message:type_name -> goproto.proto.test.TestRequired
44, // 39: goproto.proto.test.TestRequiredForeign.map_message:type_name -> goproto.proto.test.TestRequiredForeign.MapMessageEntry
@@ -4814,96 +4718,96 @@
2, // 49: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
8, // 50: goproto.proto.test.TestAllExtensions.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllExtensions
12, // 51: goproto.proto.test.TestRequiredForeign.MapMessageEntry.value:type_name -> goproto.proto.test.TestRequired
- 8, // 52: goproto.proto.test.optional_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 53: goproto.proto.test.optional_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 54: goproto.proto.test.optional_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 55: goproto.proto.test.optional_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 56: goproto.proto.test.optional_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 57: goproto.proto.test.optional_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 58: goproto.proto.test.optional_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 59: goproto.proto.test.optional_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 60: goproto.proto.test.optional_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 61: goproto.proto.test.optional_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 62: goproto.proto.test.optional_float_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 63: goproto.proto.test.optional_double_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 64: goproto.proto.test.optional_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 65: goproto.proto.test.optional_string_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 66: goproto.proto.test.optional_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 67: goproto.proto.test.optionalgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 68: goproto.proto.test.optional_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 69: goproto.proto.test.optional_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 70: goproto.proto.test.repeated_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 71: goproto.proto.test.repeated_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 72: goproto.proto.test.repeated_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 73: goproto.proto.test.repeated_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 74: goproto.proto.test.repeated_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 75: goproto.proto.test.repeated_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 76: goproto.proto.test.repeated_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 77: goproto.proto.test.repeated_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 78: goproto.proto.test.repeated_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 79: goproto.proto.test.repeated_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 80: goproto.proto.test.repeated_float_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 81: goproto.proto.test.repeated_double_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 82: goproto.proto.test.repeated_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 83: goproto.proto.test.repeated_string_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 84: goproto.proto.test.repeated_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 85: goproto.proto.test.repeatedgroup_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 86: goproto.proto.test.repeated_nested_message_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 87: goproto.proto.test.repeated_nested_enum_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 88: goproto.proto.test.default_int32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 89: goproto.proto.test.default_int64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 90: goproto.proto.test.default_uint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 91: goproto.proto.test.default_uint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 92: goproto.proto.test.default_sint32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 93: goproto.proto.test.default_sint64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 94: goproto.proto.test.default_fixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 95: goproto.proto.test.default_fixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 96: goproto.proto.test.default_sfixed32_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 97: goproto.proto.test.default_sfixed64_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 98: goproto.proto.test.default_float_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 99: goproto.proto.test.default_double_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 100: goproto.proto.test.default_bool_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 101: goproto.proto.test.default_string_extension:extendee -> goproto.proto.test.TestAllExtensions
- 8, // 102: goproto.proto.test.default_bytes_extension:extendee -> goproto.proto.test.TestAllExtensions
- 18, // 103: goproto.proto.test.packed_int32_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 104: goproto.proto.test.packed_int64_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 105: goproto.proto.test.packed_uint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 106: goproto.proto.test.packed_uint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 107: goproto.proto.test.packed_sint32_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 108: goproto.proto.test.packed_sint64_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 109: goproto.proto.test.packed_fixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 110: goproto.proto.test.packed_fixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 111: goproto.proto.test.packed_sfixed32_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 112: goproto.proto.test.packed_sfixed64_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 113: goproto.proto.test.packed_float_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 114: goproto.proto.test.packed_double_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 115: goproto.proto.test.packed_bool_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 18, // 116: goproto.proto.test.packed_enum_extension:extendee -> goproto.proto.test.TestPackedExtensions
- 19, // 117: goproto.proto.test.unpacked_int32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 118: goproto.proto.test.unpacked_int64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 119: goproto.proto.test.unpacked_uint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 120: goproto.proto.test.unpacked_uint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 121: goproto.proto.test.unpacked_sint32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 122: goproto.proto.test.unpacked_sint64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 123: goproto.proto.test.unpacked_fixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 124: goproto.proto.test.unpacked_fixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 125: goproto.proto.test.unpacked_sfixed32_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 126: goproto.proto.test.unpacked_sfixed64_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 127: goproto.proto.test.unpacked_float_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 128: goproto.proto.test.unpacked_double_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 129: goproto.proto.test.unpacked_bool_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
- 19, // 130: goproto.proto.test.unpacked_enum_extension:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 8, // 52: goproto.proto.test.optional_int32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 53: goproto.proto.test.optional_int64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 54: goproto.proto.test.optional_uint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 55: goproto.proto.test.optional_uint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 56: goproto.proto.test.optional_sint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 57: goproto.proto.test.optional_sint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 58: goproto.proto.test.optional_fixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 59: goproto.proto.test.optional_fixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 60: goproto.proto.test.optional_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 61: goproto.proto.test.optional_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 62: goproto.proto.test.optional_float:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 63: goproto.proto.test.optional_double:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 64: goproto.proto.test.optional_bool:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 65: goproto.proto.test.optional_string:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 66: goproto.proto.test.optional_bytes:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 67: goproto.proto.test.optionalgroup:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 68: goproto.proto.test.optional_nested_message:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 69: goproto.proto.test.optional_nested_enum:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 70: goproto.proto.test.repeated_int32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 71: goproto.proto.test.repeated_int64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 72: goproto.proto.test.repeated_uint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 73: goproto.proto.test.repeated_uint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 74: goproto.proto.test.repeated_sint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 75: goproto.proto.test.repeated_sint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 76: goproto.proto.test.repeated_fixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 77: goproto.proto.test.repeated_fixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 78: goproto.proto.test.repeated_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 79: goproto.proto.test.repeated_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 80: goproto.proto.test.repeated_float:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 81: goproto.proto.test.repeated_double:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 82: goproto.proto.test.repeated_bool:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 83: goproto.proto.test.repeated_string:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 84: goproto.proto.test.repeated_bytes:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 85: goproto.proto.test.repeatedgroup:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 86: goproto.proto.test.repeated_nested_message:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 87: goproto.proto.test.repeated_nested_enum:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 88: goproto.proto.test.default_int32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 89: goproto.proto.test.default_int64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 90: goproto.proto.test.default_uint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 91: goproto.proto.test.default_uint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 92: goproto.proto.test.default_sint32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 93: goproto.proto.test.default_sint64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 94: goproto.proto.test.default_fixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 95: goproto.proto.test.default_fixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 96: goproto.proto.test.default_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 97: goproto.proto.test.default_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 98: goproto.proto.test.default_float:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 99: goproto.proto.test.default_double:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 100: goproto.proto.test.default_bool:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 101: goproto.proto.test.default_string:extendee -> goproto.proto.test.TestAllExtensions
+ 8, // 102: goproto.proto.test.default_bytes:extendee -> goproto.proto.test.TestAllExtensions
+ 18, // 103: goproto.proto.test.packed_int32:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 104: goproto.proto.test.packed_int64:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 105: goproto.proto.test.packed_uint32:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 106: goproto.proto.test.packed_uint64:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 107: goproto.proto.test.packed_sint32:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 108: goproto.proto.test.packed_sint64:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 109: goproto.proto.test.packed_fixed32:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 110: goproto.proto.test.packed_fixed64:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 111: goproto.proto.test.packed_sfixed32:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 112: goproto.proto.test.packed_sfixed64:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 113: goproto.proto.test.packed_float:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 114: goproto.proto.test.packed_double:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 115: goproto.proto.test.packed_bool:extendee -> goproto.proto.test.TestPackedExtensions
+ 18, // 116: goproto.proto.test.packed_enum:extendee -> goproto.proto.test.TestPackedExtensions
+ 19, // 117: goproto.proto.test.unpacked_int32:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 118: goproto.proto.test.unpacked_int64:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 119: goproto.proto.test.unpacked_uint32:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 120: goproto.proto.test.unpacked_uint64:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 121: goproto.proto.test.unpacked_sint32:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 122: goproto.proto.test.unpacked_sint64:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 123: goproto.proto.test.unpacked_fixed32:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 124: goproto.proto.test.unpacked_fixed64:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 125: goproto.proto.test.unpacked_sfixed32:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 126: goproto.proto.test.unpacked_sfixed64:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 127: goproto.proto.test.unpacked_float:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 128: goproto.proto.test.unpacked_double:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 129: goproto.proto.test.unpacked_bool:extendee -> goproto.proto.test.TestUnpackedExtensions
+ 19, // 130: goproto.proto.test.unpacked_enum:extendee -> goproto.proto.test.TestUnpackedExtensions
8, // 131: goproto.proto.test.TestNestedExtension.nested_string_extension:extendee -> goproto.proto.test.TestAllExtensions
8, // 132: goproto.proto.test.TestRequired.single:extendee -> goproto.proto.test.TestAllExtensions
8, // 133: goproto.proto.test.TestRequired.multi:extendee -> goproto.proto.test.TestAllExtensions
- 9, // 134: goproto.proto.test.optionalgroup_extension:type_name -> goproto.proto.test.OptionalGroup_extension
- 43, // 135: goproto.proto.test.optional_nested_message_extension:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
- 2, // 136: goproto.proto.test.optional_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
- 10, // 137: goproto.proto.test.repeatedgroup_extension:type_name -> goproto.proto.test.RepeatedGroup_extension
- 43, // 138: goproto.proto.test.repeated_nested_message_extension:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
- 2, // 139: goproto.proto.test.repeated_nested_enum_extension:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
- 0, // 140: goproto.proto.test.packed_enum_extension:type_name -> goproto.proto.test.ForeignEnum
- 0, // 141: goproto.proto.test.unpacked_enum_extension:type_name -> goproto.proto.test.ForeignEnum
+ 9, // 134: goproto.proto.test.optionalgroup:type_name -> goproto.proto.test.OptionalGroup
+ 43, // 135: goproto.proto.test.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
+ 2, // 136: goproto.proto.test.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+ 10, // 137: goproto.proto.test.repeatedgroup:type_name -> goproto.proto.test.RepeatedGroup
+ 43, // 138: goproto.proto.test.repeated_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
+ 2, // 139: goproto.proto.test.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
+ 0, // 140: goproto.proto.test.packed_enum:type_name -> goproto.proto.test.ForeignEnum
+ 0, // 141: goproto.proto.test.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum
12, // 142: goproto.proto.test.TestRequired.single:type_name -> goproto.proto.test.TestRequired
12, // 143: goproto.proto.test.TestRequired.multi:type_name -> goproto.proto.test.TestRequired
20, // 144: goproto.proto.test.TestService.Foo:input_type -> goproto.proto.test.FooRequest
@@ -4990,7 +4894,7 @@
}
}
file_test_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*OptionalGroupExtension); i {
+ switch v := v.(*OptionalGroup); i {
case 0:
return &v.state
case 1:
@@ -5002,7 +4906,7 @@
}
}
file_test_test_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RepeatedGroupExtension); i {
+ switch v := v.(*RepeatedGroup); i {
case 0:
return &v.state
case 1:
diff --git a/internal/testprotos/test/test.proto b/internal/testprotos/test/test.proto
index 081567d..3e37e8b 100644
--- a/internal/testprotos/test/test.proto
+++ b/internal/testprotos/test/test.proto
@@ -178,70 +178,70 @@
}
extend TestAllExtensions {
- optional int32 optional_int32_extension = 1;
- optional int64 optional_int64_extension = 2;
- optional uint32 optional_uint32_extension = 3;
- optional uint64 optional_uint64_extension = 4;
- optional sint32 optional_sint32_extension = 5;
- optional sint64 optional_sint64_extension = 6;
- optional fixed32 optional_fixed32_extension = 7;
- optional fixed64 optional_fixed64_extension = 8;
- optional sfixed32 optional_sfixed32_extension = 9;
- optional sfixed64 optional_sfixed64_extension = 10;
- optional float optional_float_extension = 11;
- optional double optional_double_extension = 12;
- optional bool optional_bool_extension = 13;
- optional string optional_string_extension = 14;
- optional bytes optional_bytes_extension = 15;
+ optional int32 optional_int32 = 1;
+ optional int64 optional_int64 = 2;
+ optional uint32 optional_uint32 = 3;
+ optional uint64 optional_uint64 = 4;
+ optional sint32 optional_sint32 = 5;
+ optional sint64 optional_sint64 = 6;
+ optional fixed32 optional_fixed32 = 7;
+ optional fixed64 optional_fixed64 = 8;
+ optional sfixed32 optional_sfixed32 = 9;
+ optional sfixed64 optional_sfixed64 = 10;
+ optional float optional_float = 11;
+ optional double optional_double = 12;
+ optional bool optional_bool = 13;
+ optional string optional_string = 14;
+ optional bytes optional_bytes = 15;
- optional group OptionalGroup_extension = 16 {
+ optional group OptionalGroup = 16 {
optional int32 a = 17;
optional int32 same_field_number = 16;
optional TestAllExtensions.NestedMessage optional_nested_message = 1000;
}
- optional TestAllExtensions.NestedMessage optional_nested_message_extension = 18;
- optional TestAllTypes.NestedEnum optional_nested_enum_extension = 21;
+ optional TestAllExtensions.NestedMessage optional_nested_message = 18;
+ optional TestAllTypes.NestedEnum optional_nested_enum = 21;
- repeated int32 repeated_int32_extension = 31;
- repeated int64 repeated_int64_extension = 32;
- repeated uint32 repeated_uint32_extension = 33;
- repeated uint64 repeated_uint64_extension = 34;
- repeated sint32 repeated_sint32_extension = 35;
- repeated sint64 repeated_sint64_extension = 36;
- repeated fixed32 repeated_fixed32_extension = 37;
- repeated fixed64 repeated_fixed64_extension = 38;
- repeated sfixed32 repeated_sfixed32_extension = 39;
- repeated sfixed64 repeated_sfixed64_extension = 40;
- repeated float repeated_float_extension = 41;
- repeated double repeated_double_extension = 42;
- repeated bool repeated_bool_extension = 43;
- repeated string repeated_string_extension = 44;
- repeated bytes repeated_bytes_extension = 45;
+ repeated int32 repeated_int32 = 31;
+ repeated int64 repeated_int64 = 32;
+ repeated uint32 repeated_uint32 = 33;
+ repeated uint64 repeated_uint64 = 34;
+ repeated sint32 repeated_sint32 = 35;
+ repeated sint64 repeated_sint64 = 36;
+ repeated fixed32 repeated_fixed32 = 37;
+ repeated fixed64 repeated_fixed64 = 38;
+ repeated sfixed32 repeated_sfixed32 = 39;
+ repeated sfixed64 repeated_sfixed64 = 40;
+ repeated float repeated_float = 41;
+ repeated double repeated_double = 42;
+ repeated bool repeated_bool = 43;
+ repeated string repeated_string = 44;
+ repeated bytes repeated_bytes = 45;
- repeated group RepeatedGroup_extension = 46 {
+ repeated group RepeatedGroup = 46 {
optional int32 a = 47;
optional TestAllExtensions.NestedMessage optional_nested_message = 1001;
}
- repeated TestAllExtensions.NestedMessage repeated_nested_message_extension = 48;
- repeated TestAllTypes.NestedEnum repeated_nested_enum_extension = 51;
+ repeated TestAllExtensions.NestedMessage repeated_nested_message = 48;
+ repeated TestAllTypes.NestedEnum repeated_nested_enum = 51;
- optional int32 default_int32_extension = 81 [default = 81 ];
- optional int64 default_int64_extension = 82 [default = 82 ];
- optional uint32 default_uint32_extension = 83 [default = 83 ];
- optional uint64 default_uint64_extension = 84 [default = 84 ];
- optional sint32 default_sint32_extension = 85 [default = -85 ];
- optional sint64 default_sint64_extension = 86 [default = 86 ];
- optional fixed32 default_fixed32_extension = 87 [default = 87 ];
- optional fixed64 default_fixed64_extension = 88 [default = 88 ];
- optional sfixed32 default_sfixed32_extension = 89 [default = 89 ];
- optional sfixed64 default_sfixed64_extension = 80 [default = -90 ];
- optional float default_float_extension = 91 [default = 91.5 ];
- optional double default_double_extension = 92 [default = 92e3 ];
- optional bool default_bool_extension = 93 [default = true ];
- optional string default_string_extension = 94 [default = "hello"];
- optional bytes default_bytes_extension = 95 [default = "world"];
+ optional int32 default_int32 = 81 [default = 81 ];
+ optional int64 default_int64 = 82 [default = 82 ];
+ optional uint32 default_uint32 = 83 [default = 83 ];
+ optional uint64 default_uint64 = 84 [default = 84 ];
+ optional sint32 default_sint32 = 85 [default = -85 ];
+ optional sint64 default_sint64 = 86 [default = 86 ];
+ optional fixed32 default_fixed32 = 87 [default = 87 ];
+ optional fixed64 default_fixed64 = 88 [default = 88 ];
+ optional sfixed32 default_sfixed32 = 89 [default = 89 ];
+ optional sfixed64 default_sfixed64 = 80 [default = -90 ];
+ optional float default_float = 91 [default = 91.5 ];
+ optional double default_double = 92 [default = 92e3 ];
+ optional bool default_bool = 93 [default = true ];
+ optional string default_string = 94 [default = "hello"];
+ optional bytes default_bytes = 95 [default = "world"];
}
message TestNestedExtension {
@@ -321,20 +321,20 @@
}
extend TestPackedExtensions {
- repeated int32 packed_int32_extension = 90 [packed = true];
- repeated int64 packed_int64_extension = 91 [packed = true];
- repeated uint32 packed_uint32_extension = 92 [packed = true];
- repeated uint64 packed_uint64_extension = 93 [packed = true];
- repeated sint32 packed_sint32_extension = 94 [packed = true];
- repeated sint64 packed_sint64_extension = 95 [packed = true];
- repeated fixed32 packed_fixed32_extension = 96 [packed = true];
- repeated fixed64 packed_fixed64_extension = 97 [packed = true];
- repeated sfixed32 packed_sfixed32_extension = 98 [packed = true];
- repeated sfixed64 packed_sfixed64_extension = 99 [packed = true];
- repeated float packed_float_extension = 100 [packed = true];
- repeated double packed_double_extension = 101 [packed = true];
- repeated bool packed_bool_extension = 102 [packed = true];
- repeated ForeignEnum packed_enum_extension = 103 [packed = true];
+ repeated int32 packed_int32 = 90 [packed = true];
+ repeated int64 packed_int64 = 91 [packed = true];
+ repeated uint32 packed_uint32 = 92 [packed = true];
+ repeated uint64 packed_uint64 = 93 [packed = true];
+ repeated sint32 packed_sint32 = 94 [packed = true];
+ repeated sint64 packed_sint64 = 95 [packed = true];
+ repeated fixed32 packed_fixed32 = 96 [packed = true];
+ repeated fixed64 packed_fixed64 = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32 = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64 = 99 [packed = true];
+ repeated float packed_float = 100 [packed = true];
+ repeated double packed_double = 101 [packed = true];
+ repeated bool packed_bool = 102 [packed = true];
+ repeated ForeignEnum packed_enum = 103 [packed = true];
}
message TestUnpackedExtensions {
@@ -342,20 +342,20 @@
}
extend TestUnpackedExtensions {
- repeated int32 unpacked_int32_extension = 90 [packed = false];
- repeated int64 unpacked_int64_extension = 91 [packed = false];
- repeated uint32 unpacked_uint32_extension = 92 [packed = false];
- repeated uint64 unpacked_uint64_extension = 93 [packed = false];
- repeated sint32 unpacked_sint32_extension = 94 [packed = false];
- repeated sint64 unpacked_sint64_extension = 95 [packed = false];
- repeated fixed32 unpacked_fixed32_extension = 96 [packed = false];
- repeated fixed64 unpacked_fixed64_extension = 97 [packed = false];
- repeated sfixed32 unpacked_sfixed32_extension = 98 [packed = false];
- repeated sfixed64 unpacked_sfixed64_extension = 99 [packed = false];
- repeated float unpacked_float_extension = 100 [packed = false];
- repeated double unpacked_double_extension = 101 [packed = false];
- repeated bool unpacked_bool_extension = 102 [packed = false];
- repeated ForeignEnum unpacked_enum_extension = 103 [packed = false];
+ repeated int32 unpacked_int32 = 90 [packed = false];
+ repeated int64 unpacked_int64 = 91 [packed = false];
+ repeated uint32 unpacked_uint32 = 92 [packed = false];
+ repeated uint64 unpacked_uint64 = 93 [packed = false];
+ repeated sint32 unpacked_sint32 = 94 [packed = false];
+ repeated sint64 unpacked_sint64 = 95 [packed = false];
+ repeated fixed32 unpacked_fixed32 = 96 [packed = false];
+ repeated fixed64 unpacked_fixed64 = 97 [packed = false];
+ repeated sfixed32 unpacked_sfixed32 = 98 [packed = false];
+ repeated sfixed64 unpacked_sfixed64 = 99 [packed = false];
+ repeated float unpacked_float = 100 [packed = false];
+ repeated double unpacked_double = 101 [packed = false];
+ repeated bool unpacked_bool = 102 [packed = false];
+ repeated ForeignEnum unpacked_enum = 103 [packed = false];
}
// Test that RPC services work.
diff --git a/proto/equal_test.go b/proto/equal_test.go
index 65a8bfb..3ae5771 100644
--- a/proto/equal_test.go
+++ b/proto/equal_test.go
@@ -402,15 +402,15 @@
// Extensions.
{
x: build(&testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(1)),
+ extend(testpb.E_OptionalInt32, int32(1)),
),
y: build(&testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(2)),
+ extend(testpb.E_OptionalInt32, int32(2)),
),
}, {
x: &testpb.TestAllExtensions{},
y: build(&testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(2)),
+ extend(testpb.E_OptionalInt32, int32(2)),
),
},
diff --git a/proto/extension_test.go b/proto/extension_test.go
index b3a0cff..622818c 100644
--- a/proto/extension_test.go
+++ b/proto/extension_test.go
@@ -27,13 +27,13 @@
}{
{
message: &testpb.TestAllExtensions{},
- ext: testpb.E_OptionalInt32Extension,
+ ext: testpb.E_OptionalInt32,
wantDefault: int32(0),
value: int32(1),
},
{
message: &testpb.TestAllExtensions{},
- ext: testpb.E_RepeatedStringExtension,
+ ext: testpb.E_RepeatedString,
wantDefault: ([]string)(nil),
value: []string{"a", "b", "c"},
},
@@ -74,7 +74,7 @@
// a chance to occur.
want := int32(42)
m1 := &testpb.TestAllExtensions{}
- proto.SetExtension(m1, testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(want)})
+ proto.SetExtension(m1, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(want)})
b, err := proto.Marshal(m1)
if err != nil {
t.Fatal(err)
@@ -95,7 +95,7 @@
wg.Add(1)
go func() {
defer wg.Done()
- got := proto.GetExtension(m, testpb.E_OptionalNestedMessageExtension).(*testpb.TestAllExtensions_NestedMessage).GetA()
+ got := proto.GetExtension(m, testpb.E_OptionalNestedMessage).(*testpb.TestAllExtensions_NestedMessage).GetA()
if got != want {
t.Errorf("GetExtension(optional_nested_message).a = %v, want %v", got, want)
}
diff --git a/proto/merge_test.go b/proto/merge_test.go
index e59feb9..aa9682c 100644
--- a/proto/merge_test.go
+++ b/proto/merge_test.go
@@ -286,41 +286,41 @@
desc: "merge extension fields",
dst: func() proto.Message {
m := new(testpb.TestAllExtensions)
- proto.SetExtension(m, testpb.E_OptionalInt32Extension, int32(32))
- proto.SetExtension(m, testpb.E_OptionalNestedMessageExtension,
+ proto.SetExtension(m, testpb.E_OptionalInt32, int32(32))
+ proto.SetExtension(m, testpb.E_OptionalNestedMessage,
&testpb.TestAllExtensions_NestedMessage{
A: proto.Int32(50),
},
)
- proto.SetExtension(m, testpb.E_RepeatedFixed32Extension, []uint32{1, 2, 3})
+ proto.SetExtension(m, testpb.E_RepeatedFixed32, []uint32{1, 2, 3})
return m
}(),
src: func() proto.Message {
m2 := new(testpb.TestAllExtensions)
- proto.SetExtension(m2, testpb.E_OptionalInt64Extension, int64(1000))
+ proto.SetExtension(m2, testpb.E_OptionalInt64, int64(1000))
m := new(testpb.TestAllExtensions)
- proto.SetExtension(m, testpb.E_OptionalInt64Extension, int64(64))
- proto.SetExtension(m, testpb.E_OptionalNestedMessageExtension,
+ proto.SetExtension(m, testpb.E_OptionalInt64, int64(64))
+ proto.SetExtension(m, testpb.E_OptionalNestedMessage,
&testpb.TestAllExtensions_NestedMessage{
Corecursive: m2,
},
)
- proto.SetExtension(m, testpb.E_RepeatedFixed32Extension, []uint32{4, 5, 6})
+ proto.SetExtension(m, testpb.E_RepeatedFixed32, []uint32{4, 5, 6})
return m
}(),
want: func() proto.Message {
m2 := new(testpb.TestAllExtensions)
- proto.SetExtension(m2, testpb.E_OptionalInt64Extension, int64(1000))
+ proto.SetExtension(m2, testpb.E_OptionalInt64, int64(1000))
m := new(testpb.TestAllExtensions)
- proto.SetExtension(m, testpb.E_OptionalInt32Extension, int32(32))
- proto.SetExtension(m, testpb.E_OptionalInt64Extension, int64(64))
- proto.SetExtension(m, testpb.E_OptionalNestedMessageExtension,
+ proto.SetExtension(m, testpb.E_OptionalInt32, int32(32))
+ proto.SetExtension(m, testpb.E_OptionalInt64, int64(64))
+ proto.SetExtension(m, testpb.E_OptionalNestedMessage,
&testpb.TestAllExtensions_NestedMessage{
A: proto.Int32(50),
Corecursive: m2,
},
)
- proto.SetExtension(m, testpb.E_RepeatedFixed32Extension, []uint32{1, 2, 3, 4, 5, 6})
+ proto.SetExtension(m, testpb.E_RepeatedFixed32, []uint32{1, 2, 3, 4, 5, 6})
return m
}(),
}, {
diff --git a/proto/testmessages_test.go b/proto/testmessages_test.go
index e955fb6..045cb8f 100644
--- a/proto/testmessages_test.go
+++ b/proto/testmessages_test.go
@@ -5,15 +5,14 @@
package proto_test
import (
- "google.golang.org/protobuf/encoding/prototext"
"google.golang.org/protobuf/internal/encoding/pack"
"google.golang.org/protobuf/internal/encoding/wire"
"google.golang.org/protobuf/internal/impl"
+ "google.golang.org/protobuf/internal/protobuild"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoregistry"
legacypb "google.golang.org/protobuf/internal/testprotos/legacy"
- legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5"
requiredpb "google.golang.org/protobuf/internal/testprotos/required"
testpb "google.golang.org/protobuf/internal/testprotos/test"
test3pb "google.golang.org/protobuf/internal/testprotos/test3"
@@ -30,63 +29,42 @@
validationStatus impl.ValidationStatus
}
+func makeMessages(in protobuild.Message, messages ...proto.Message) []proto.Message {
+ if len(messages) == 0 {
+ messages = []proto.Message{
+ &testpb.TestAllTypes{},
+ &test3pb.TestAllTypes{},
+ &testpb.TestAllExtensions{},
+ }
+ }
+ for _, m := range messages {
+ in.Build(m.ProtoReflect())
+ }
+ return messages
+}
+
var testValidMessages = []testProto{
{
desc: "basic scalar types",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- OptionalInt32: proto.Int32(1001),
- OptionalInt64: proto.Int64(1002),
- OptionalUint32: proto.Uint32(1003),
- OptionalUint64: proto.Uint64(1004),
- OptionalSint32: proto.Int32(1005),
- OptionalSint64: proto.Int64(1006),
- OptionalFixed32: proto.Uint32(1007),
- OptionalFixed64: proto.Uint64(1008),
- OptionalSfixed32: proto.Int32(1009),
- OptionalSfixed64: proto.Int64(1010),
- OptionalFloat: proto.Float32(1011.5),
- OptionalDouble: proto.Float64(1012.5),
- OptionalBool: proto.Bool(true),
- OptionalString: proto.String("string"),
- OptionalBytes: []byte("bytes"),
- OptionalNestedEnum: testpb.TestAllTypes_BAR.Enum(),
- }, &test3pb.TestAllTypes{
- OptionalInt32: 1001,
- OptionalInt64: 1002,
- OptionalUint32: 1003,
- OptionalUint64: 1004,
- OptionalSint32: 1005,
- OptionalSint64: 1006,
- OptionalFixed32: 1007,
- OptionalFixed64: 1008,
- OptionalSfixed32: 1009,
- OptionalSfixed64: 1010,
- OptionalFloat: 1011.5,
- OptionalDouble: 1012.5,
- OptionalBool: true,
- OptionalString: "string",
- OptionalBytes: []byte("bytes"),
- OptionalNestedEnum: test3pb.TestAllTypes_BAR,
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(1001)),
- extend(testpb.E_OptionalInt64Extension, int64(1002)),
- extend(testpb.E_OptionalUint32Extension, uint32(1003)),
- extend(testpb.E_OptionalUint64Extension, uint64(1004)),
- extend(testpb.E_OptionalSint32Extension, int32(1005)),
- extend(testpb.E_OptionalSint64Extension, int64(1006)),
- extend(testpb.E_OptionalFixed32Extension, uint32(1007)),
- extend(testpb.E_OptionalFixed64Extension, uint64(1008)),
- extend(testpb.E_OptionalSfixed32Extension, int32(1009)),
- extend(testpb.E_OptionalSfixed64Extension, int64(1010)),
- extend(testpb.E_OptionalFloatExtension, float32(1011.5)),
- extend(testpb.E_OptionalDoubleExtension, float64(1012.5)),
- extend(testpb.E_OptionalBoolExtension, bool(true)),
- extend(testpb.E_OptionalStringExtension, string("string")),
- extend(testpb.E_OptionalBytesExtension, []byte("bytes")),
- extend(testpb.E_OptionalNestedEnumExtension, testpb.TestAllTypes_BAR),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_int32": 1001,
+ "optional_int64": 1002,
+ "optional_uint32": 1003,
+ "optional_uint64": 1004,
+ "optional_sint32": 1005,
+ "optional_sint64": 1006,
+ "optional_fixed32": 1007,
+ "optional_fixed64": 1008,
+ "optional_sfixed32": 1009,
+ "optional_sfixed64": 1010,
+ "optional_float": 1011.5,
+ "optional_double": 1012.5,
+ "optional_bool": true,
+ "optional_string": "string",
+ "optional_bytes": []byte("bytes"),
+ "optional_nested_enum": "BAR",
+ }),
wire: pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1001),
pack.Tag{2, pack.VarintType}, pack.Varint(1002),
@@ -108,40 +86,23 @@
},
{
desc: "zero values",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- OptionalInt32: proto.Int32(0),
- OptionalInt64: proto.Int64(0),
- OptionalUint32: proto.Uint32(0),
- OptionalUint64: proto.Uint64(0),
- OptionalSint32: proto.Int32(0),
- OptionalSint64: proto.Int64(0),
- OptionalFixed32: proto.Uint32(0),
- OptionalFixed64: proto.Uint64(0),
- OptionalSfixed32: proto.Int32(0),
- OptionalSfixed64: proto.Int64(0),
- OptionalFloat: proto.Float32(0),
- OptionalDouble: proto.Float64(0),
- OptionalBool: proto.Bool(false),
- OptionalString: proto.String(""),
- OptionalBytes: []byte{},
- }, &test3pb.TestAllTypes{}, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(0)),
- extend(testpb.E_OptionalInt64Extension, int64(0)),
- extend(testpb.E_OptionalUint32Extension, uint32(0)),
- extend(testpb.E_OptionalUint64Extension, uint64(0)),
- extend(testpb.E_OptionalSint32Extension, int32(0)),
- extend(testpb.E_OptionalSint64Extension, int64(0)),
- extend(testpb.E_OptionalFixed32Extension, uint32(0)),
- extend(testpb.E_OptionalFixed64Extension, uint64(0)),
- extend(testpb.E_OptionalSfixed32Extension, int32(0)),
- extend(testpb.E_OptionalSfixed64Extension, int64(0)),
- extend(testpb.E_OptionalFloatExtension, float32(0)),
- extend(testpb.E_OptionalDoubleExtension, float64(0)),
- extend(testpb.E_OptionalBoolExtension, bool(false)),
- extend(testpb.E_OptionalStringExtension, string("")),
- extend(testpb.E_OptionalBytesExtension, []byte{}),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_int32": 0,
+ "optional_int64": 0,
+ "optional_uint32": 0,
+ "optional_uint64": 0,
+ "optional_sint32": 0,
+ "optional_sint64": 0,
+ "optional_fixed32": 0,
+ "optional_fixed64": 0,
+ "optional_sfixed32": 0,
+ "optional_sfixed64": 0,
+ "optional_float": 0,
+ "optional_double": 0,
+ "optional_bool": false,
+ "optional_string": "",
+ "optional_bytes": []byte{},
+ }),
wire: pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(0),
pack.Tag{2, pack.VarintType}, pack.Varint(0),
@@ -162,18 +123,12 @@
},
{
desc: "groups",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- Optionalgroup: &testpb.TestAllTypes_OptionalGroup{
- A: proto.Int32(1017),
- SameFieldNumber: proto.Int32(1016),
+ decodeTo: makeMessages(protobuild.Message{
+ "optionalgroup": protobuild.Message{
+ "a": 1017,
+ "same_field_number": 1016,
},
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalgroupExtension, &testpb.OptionalGroupExtension{
- A: proto.Int32(1017),
- SameFieldNumber: proto.Int32(1016),
- }),
- )},
+ }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{16, pack.StartGroupType},
pack.Tag{17, pack.VarintType}, pack.Varint(1017),
@@ -183,16 +138,11 @@
},
{
desc: "groups (field overridden)",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- Optionalgroup: &testpb.TestAllTypes_OptionalGroup{
- A: proto.Int32(2),
+ decodeTo: makeMessages(protobuild.Message{
+ "optionalgroup": protobuild.Message{
+ "a": 2,
},
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalgroupExtension, &testpb.OptionalGroupExtension{
- A: proto.Int32(2),
- }),
- )},
+ }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{16, pack.StartGroupType},
pack.Tag{17, pack.VarintType}, pack.Varint(1),
@@ -204,30 +154,14 @@
},
{
desc: "messages",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{
- A: proto.Int32(42),
- Corecursive: &testpb.TestAllTypes{
- OptionalInt32: proto.Int32(43),
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "a": 42,
+ "corecursive": protobuild.Message{
+ "optional_int32": 43,
},
},
- }, &test3pb.TestAllTypes{
- OptionalNestedMessage: &test3pb.TestAllTypes_NestedMessage{
- A: 42,
- Corecursive: &test3pb.TestAllTypes{
- OptionalInt32: 43,
- },
- },
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
- A: proto.Int32(42),
- Corecursive: build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(43)),
- ).(*testpb.TestAllExtensions),
- }),
- )},
+ }),
wire: pack.Message{
pack.Tag{18, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(42),
@@ -239,30 +173,14 @@
},
{
desc: "messages (split across multiple tags)",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{
- A: proto.Int32(42),
- Corecursive: &testpb.TestAllTypes{
- OptionalInt32: proto.Int32(43),
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "a": 42,
+ "corecursive": protobuild.Message{
+ "optional_int32": 43,
},
},
- }, &test3pb.TestAllTypes{
- OptionalNestedMessage: &test3pb.TestAllTypes_NestedMessage{
- A: 42,
- Corecursive: &test3pb.TestAllTypes{
- OptionalInt32: 43,
- },
- },
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
- A: proto.Int32(42),
- Corecursive: build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalInt32Extension, int32(43)),
- ).(*testpb.TestAllExtensions),
- }),
- )},
+ }),
wire: pack.Message{
pack.Tag{18, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(42),
@@ -276,20 +194,11 @@
},
{
desc: "messages (field overridden)",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- OptionalNestedMessage: &testpb.TestAllTypes_NestedMessage{
- A: proto.Int32(2),
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "a": 2,
},
- }, &test3pb.TestAllTypes{
- OptionalNestedMessage: &test3pb.TestAllTypes_NestedMessage{
- A: 2,
- },
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{
- A: proto.Int32(2),
- }),
- )},
+ }),
wire: pack.Message{
pack.Tag{18, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -301,68 +210,24 @@
},
{
desc: "basic repeated types",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- RepeatedInt32: []int32{1001, 2001},
- RepeatedInt64: []int64{1002, 2002},
- RepeatedUint32: []uint32{1003, 2003},
- RepeatedUint64: []uint64{1004, 2004},
- RepeatedSint32: []int32{1005, 2005},
- RepeatedSint64: []int64{1006, 2006},
- RepeatedFixed32: []uint32{1007, 2007},
- RepeatedFixed64: []uint64{1008, 2008},
- RepeatedSfixed32: []int32{1009, 2009},
- RepeatedSfixed64: []int64{1010, 2010},
- RepeatedFloat: []float32{1011.5, 2011.5},
- RepeatedDouble: []float64{1012.5, 2012.5},
- RepeatedBool: []bool{true, false},
- RepeatedString: []string{"foo", "bar"},
- RepeatedBytes: [][]byte{[]byte("FOO"), []byte("BAR")},
- RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{
- testpb.TestAllTypes_FOO,
- testpb.TestAllTypes_BAR,
- },
- }, &test3pb.TestAllTypes{
- RepeatedInt32: []int32{1001, 2001},
- RepeatedInt64: []int64{1002, 2002},
- RepeatedUint32: []uint32{1003, 2003},
- RepeatedUint64: []uint64{1004, 2004},
- RepeatedSint32: []int32{1005, 2005},
- RepeatedSint64: []int64{1006, 2006},
- RepeatedFixed32: []uint32{1007, 2007},
- RepeatedFixed64: []uint64{1008, 2008},
- RepeatedSfixed32: []int32{1009, 2009},
- RepeatedSfixed64: []int64{1010, 2010},
- RepeatedFloat: []float32{1011.5, 2011.5},
- RepeatedDouble: []float64{1012.5, 2012.5},
- RepeatedBool: []bool{true, false},
- RepeatedString: []string{"foo", "bar"},
- RepeatedBytes: [][]byte{[]byte("FOO"), []byte("BAR")},
- RepeatedNestedEnum: []test3pb.TestAllTypes_NestedEnum{
- test3pb.TestAllTypes_FOO,
- test3pb.TestAllTypes_BAR,
- },
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_RepeatedInt32Extension, []int32{1001, 2001}),
- extend(testpb.E_RepeatedInt64Extension, []int64{1002, 2002}),
- extend(testpb.E_RepeatedUint32Extension, []uint32{1003, 2003}),
- extend(testpb.E_RepeatedUint64Extension, []uint64{1004, 2004}),
- extend(testpb.E_RepeatedSint32Extension, []int32{1005, 2005}),
- extend(testpb.E_RepeatedSint64Extension, []int64{1006, 2006}),
- extend(testpb.E_RepeatedFixed32Extension, []uint32{1007, 2007}),
- extend(testpb.E_RepeatedFixed64Extension, []uint64{1008, 2008}),
- extend(testpb.E_RepeatedSfixed32Extension, []int32{1009, 2009}),
- extend(testpb.E_RepeatedSfixed64Extension, []int64{1010, 2010}),
- extend(testpb.E_RepeatedFloatExtension, []float32{1011.5, 2011.5}),
- extend(testpb.E_RepeatedDoubleExtension, []float64{1012.5, 2012.5}),
- extend(testpb.E_RepeatedBoolExtension, []bool{true, false}),
- extend(testpb.E_RepeatedStringExtension, []string{"foo", "bar"}),
- extend(testpb.E_RepeatedBytesExtension, [][]byte{[]byte("FOO"), []byte("BAR")}),
- extend(testpb.E_RepeatedNestedEnumExtension, []testpb.TestAllTypes_NestedEnum{
- testpb.TestAllTypes_FOO,
- testpb.TestAllTypes_BAR,
- }),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_int32": []int32{1001, 2001},
+ "repeated_int64": []int64{1002, 2002},
+ "repeated_uint32": []uint32{1003, 2003},
+ "repeated_uint64": []uint64{1004, 2004},
+ "repeated_sint32": []int32{1005, 2005},
+ "repeated_sint64": []int64{1006, 2006},
+ "repeated_fixed32": []uint32{1007, 2007},
+ "repeated_fixed64": []uint64{1008, 2008},
+ "repeated_sfixed32": []int32{1009, 2009},
+ "repeated_sfixed64": []int64{1010, 2010},
+ "repeated_float": []float32{1011.5, 2011.5},
+ "repeated_double": []float64{1012.5, 2012.5},
+ "repeated_bool": []bool{true, false},
+ "repeated_string": []string{"foo", "bar"},
+ "repeated_bytes": []string{"FOO", "BAR"},
+ "repeated_nested_enum": []string{"FOO", "BAR"},
+ }),
wire: pack.Message{
pack.Tag{31, pack.VarintType}, pack.Varint(1001),
pack.Tag{31, pack.VarintType}, pack.Varint(2001),
@@ -400,62 +265,22 @@
},
{
desc: "basic repeated types (packed encoding)",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- RepeatedInt32: []int32{1001, 2001},
- RepeatedInt64: []int64{1002, 2002},
- RepeatedUint32: []uint32{1003, 2003},
- RepeatedUint64: []uint64{1004, 2004},
- RepeatedSint32: []int32{1005, 2005},
- RepeatedSint64: []int64{1006, 2006},
- RepeatedFixed32: []uint32{1007, 2007},
- RepeatedFixed64: []uint64{1008, 2008},
- RepeatedSfixed32: []int32{1009, 2009},
- RepeatedSfixed64: []int64{1010, 2010},
- RepeatedFloat: []float32{1011.5, 2011.5},
- RepeatedDouble: []float64{1012.5, 2012.5},
- RepeatedBool: []bool{true, false},
- RepeatedNestedEnum: []testpb.TestAllTypes_NestedEnum{
- testpb.TestAllTypes_FOO,
- testpb.TestAllTypes_BAR,
- },
- }, &test3pb.TestAllTypes{
- RepeatedInt32: []int32{1001, 2001},
- RepeatedInt64: []int64{1002, 2002},
- RepeatedUint32: []uint32{1003, 2003},
- RepeatedUint64: []uint64{1004, 2004},
- RepeatedSint32: []int32{1005, 2005},
- RepeatedSint64: []int64{1006, 2006},
- RepeatedFixed32: []uint32{1007, 2007},
- RepeatedFixed64: []uint64{1008, 2008},
- RepeatedSfixed32: []int32{1009, 2009},
- RepeatedSfixed64: []int64{1010, 2010},
- RepeatedFloat: []float32{1011.5, 2011.5},
- RepeatedDouble: []float64{1012.5, 2012.5},
- RepeatedBool: []bool{true, false},
- RepeatedNestedEnum: []test3pb.TestAllTypes_NestedEnum{
- test3pb.TestAllTypes_FOO,
- test3pb.TestAllTypes_BAR,
- },
- }, build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_RepeatedInt32Extension, []int32{1001, 2001}),
- extend(testpb.E_RepeatedInt64Extension, []int64{1002, 2002}),
- extend(testpb.E_RepeatedUint32Extension, []uint32{1003, 2003}),
- extend(testpb.E_RepeatedUint64Extension, []uint64{1004, 2004}),
- extend(testpb.E_RepeatedSint32Extension, []int32{1005, 2005}),
- extend(testpb.E_RepeatedSint64Extension, []int64{1006, 2006}),
- extend(testpb.E_RepeatedFixed32Extension, []uint32{1007, 2007}),
- extend(testpb.E_RepeatedFixed64Extension, []uint64{1008, 2008}),
- extend(testpb.E_RepeatedSfixed32Extension, []int32{1009, 2009}),
- extend(testpb.E_RepeatedSfixed64Extension, []int64{1010, 2010}),
- extend(testpb.E_RepeatedFloatExtension, []float32{1011.5, 2011.5}),
- extend(testpb.E_RepeatedDoubleExtension, []float64{1012.5, 2012.5}),
- extend(testpb.E_RepeatedBoolExtension, []bool{true, false}),
- extend(testpb.E_RepeatedNestedEnumExtension, []testpb.TestAllTypes_NestedEnum{
- testpb.TestAllTypes_FOO,
- testpb.TestAllTypes_BAR,
- }),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_int32": []int32{1001, 2001},
+ "repeated_int64": []int64{1002, 2002},
+ "repeated_uint32": []uint32{1003, 2003},
+ "repeated_uint64": []uint64{1004, 2004},
+ "repeated_sint32": []int32{1005, 2005},
+ "repeated_sint64": []int64{1006, 2006},
+ "repeated_fixed32": []uint32{1007, 2007},
+ "repeated_fixed64": []uint64{1008, 2008},
+ "repeated_sfixed32": []int32{1009, 2009},
+ "repeated_sfixed64": []int64{1010, 2010},
+ "repeated_float": []float32{1011.5, 2011.5},
+ "repeated_double": []float64{1012.5, 2012.5},
+ "repeated_bool": []bool{true, false},
+ "repeated_nested_enum": []string{"FOO", "BAR"},
+ }),
wire: pack.Message{
pack.Tag{31, pack.BytesType}, pack.LengthPrefix{
pack.Varint(1001), pack.Varint(2001),
@@ -504,26 +329,22 @@
},
{
desc: "basic repeated types (zero-length packed encoding)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{},
- &test3pb.TestAllTypes{},
- build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_RepeatedInt32Extension, []int32{}),
- extend(testpb.E_RepeatedInt64Extension, []int64{}),
- extend(testpb.E_RepeatedUint32Extension, []uint32{}),
- extend(testpb.E_RepeatedUint64Extension, []uint64{}),
- extend(testpb.E_RepeatedSint32Extension, []int32{}),
- extend(testpb.E_RepeatedSint64Extension, []int64{}),
- extend(testpb.E_RepeatedFixed32Extension, []uint32{}),
- extend(testpb.E_RepeatedFixed64Extension, []uint64{}),
- extend(testpb.E_RepeatedSfixed32Extension, []int32{}),
- extend(testpb.E_RepeatedSfixed64Extension, []int64{}),
- extend(testpb.E_RepeatedFloatExtension, []float32{}),
- extend(testpb.E_RepeatedDoubleExtension, []float64{}),
- extend(testpb.E_RepeatedBoolExtension, []bool{}),
- extend(testpb.E_RepeatedNestedEnumExtension, []testpb.TestAllTypes_NestedEnum{}),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_int32": []int32{},
+ "repeated_int64": []int64{},
+ "repeated_uint32": []uint32{},
+ "repeated_uint64": []uint64{},
+ "repeated_sint32": []int32{},
+ "repeated_sint64": []int64{},
+ "repeated_fixed32": []uint32{},
+ "repeated_fixed64": []uint64{},
+ "repeated_sfixed32": []int32{},
+ "repeated_sfixed64": []int64{},
+ "repeated_float": []float32{},
+ "repeated_double": []float64{},
+ "repeated_bool": []bool{},
+ "repeated_nested_enum": []string{},
+ }),
wire: pack.Message{
pack.Tag{31, pack.BytesType}, pack.LengthPrefix{},
pack.Tag{32, pack.BytesType}, pack.LengthPrefix{},
@@ -543,44 +364,22 @@
},
{
desc: "packed repeated types",
- decodeTo: []proto.Message{&testpb.TestPackedTypes{
- PackedInt32: []int32{1001, 2001},
- PackedInt64: []int64{1002, 2002},
- PackedUint32: []uint32{1003, 2003},
- PackedUint64: []uint64{1004, 2004},
- PackedSint32: []int32{1005, 2005},
- PackedSint64: []int64{1006, 2006},
- PackedFixed32: []uint32{1007, 2007},
- PackedFixed64: []uint64{1008, 2008},
- PackedSfixed32: []int32{1009, 2009},
- PackedSfixed64: []int64{1010, 2010},
- PackedFloat: []float32{1011.5, 2011.5},
- PackedDouble: []float64{1012.5, 2012.5},
- PackedBool: []bool{true, false},
- PackedEnum: []testpb.ForeignEnum{
- testpb.ForeignEnum_FOREIGN_FOO,
- testpb.ForeignEnum_FOREIGN_BAR,
- },
- }, build(
- &testpb.TestPackedExtensions{},
- extend(testpb.E_PackedInt32Extension, []int32{1001, 2001}),
- extend(testpb.E_PackedInt64Extension, []int64{1002, 2002}),
- extend(testpb.E_PackedUint32Extension, []uint32{1003, 2003}),
- extend(testpb.E_PackedUint64Extension, []uint64{1004, 2004}),
- extend(testpb.E_PackedSint32Extension, []int32{1005, 2005}),
- extend(testpb.E_PackedSint64Extension, []int64{1006, 2006}),
- extend(testpb.E_PackedFixed32Extension, []uint32{1007, 2007}),
- extend(testpb.E_PackedFixed64Extension, []uint64{1008, 2008}),
- extend(testpb.E_PackedSfixed32Extension, []int32{1009, 2009}),
- extend(testpb.E_PackedSfixed64Extension, []int64{1010, 2010}),
- extend(testpb.E_PackedFloatExtension, []float32{1011.5, 2011.5}),
- extend(testpb.E_PackedDoubleExtension, []float64{1012.5, 2012.5}),
- extend(testpb.E_PackedBoolExtension, []bool{true, false}),
- extend(testpb.E_PackedEnumExtension, []testpb.ForeignEnum{
- testpb.ForeignEnum_FOREIGN_FOO,
- testpb.ForeignEnum_FOREIGN_BAR,
- }),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "packed_int32": []int32{1001, 2001},
+ "packed_int64": []int64{1002, 2002},
+ "packed_uint32": []uint32{1003, 2003},
+ "packed_uint64": []uint64{1004, 2004},
+ "packed_sint32": []int32{1005, 2005},
+ "packed_sint64": []int64{1006, 2006},
+ "packed_fixed32": []uint32{1007, 2007},
+ "packed_fixed64": []uint64{1008, 2008},
+ "packed_sfixed32": []int32{1009, 2009},
+ "packed_sfixed64": []int64{1010, 2010},
+ "packed_float": []float32{1011.5, 2011.5},
+ "packed_double": []float64{1012.5, 2012.5},
+ "packed_bool": []bool{true, false},
+ "packed_enum": []string{"FOREIGN_FOO", "FOREIGN_BAR"},
+ }, &testpb.TestPackedTypes{}, &testpb.TestPackedExtensions{}),
wire: pack.Message{
pack.Tag{90, pack.BytesType}, pack.LengthPrefix{
pack.Varint(1001), pack.Varint(2001),
@@ -629,25 +428,22 @@
},
{
desc: "packed repeated types (zero length)",
- decodeTo: []proto.Message{
- &testpb.TestPackedTypes{},
- build(
- &testpb.TestPackedExtensions{},
- extend(testpb.E_PackedInt32Extension, []int32{}),
- extend(testpb.E_PackedInt64Extension, []int64{}),
- extend(testpb.E_PackedUint32Extension, []uint32{}),
- extend(testpb.E_PackedUint64Extension, []uint64{}),
- extend(testpb.E_PackedSint32Extension, []int32{}),
- extend(testpb.E_PackedSint64Extension, []int64{}),
- extend(testpb.E_PackedFixed32Extension, []uint32{}),
- extend(testpb.E_PackedFixed64Extension, []uint64{}),
- extend(testpb.E_PackedSfixed32Extension, []int32{}),
- extend(testpb.E_PackedSfixed64Extension, []int64{}),
- extend(testpb.E_PackedFloatExtension, []float32{}),
- extend(testpb.E_PackedDoubleExtension, []float64{}),
- extend(testpb.E_PackedBoolExtension, []bool{}),
- extend(testpb.E_PackedEnumExtension, []testpb.ForeignEnum{}),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "packed_int32": []int32{},
+ "packed_int64": []int64{},
+ "packed_uint32": []uint32{},
+ "packed_uint64": []uint64{},
+ "packed_sint32": []int32{},
+ "packed_sint64": []int64{},
+ "packed_fixed32": []uint32{},
+ "packed_fixed64": []uint64{},
+ "packed_sfixed32": []int32{},
+ "packed_sfixed64": []int64{},
+ "packed_float": []float32{},
+ "packed_double": []float64{},
+ "packed_bool": []bool{},
+ "packed_enum": []string{},
+ }, &testpb.TestPackedTypes{}, &testpb.TestPackedExtensions{}),
wire: pack.Message{
pack.Tag{90, pack.BytesType}, pack.LengthPrefix{},
pack.Tag{91, pack.BytesType}, pack.LengthPrefix{},
@@ -667,6 +463,25 @@
},
{
desc: "repeated messages",
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_nested_message": []protobuild.Message{
+ {"a": 1},
+ {},
+ {"a": 2},
+ },
+ }),
+ wire: pack.Message{
+ pack.Tag{48, pack.BytesType}, pack.LengthPrefix(pack.Message{
+ pack.Tag{1, pack.VarintType}, pack.Varint(1),
+ }),
+ pack.Tag{48, pack.BytesType}, pack.LengthPrefix(pack.Message{}),
+ pack.Tag{48, pack.BytesType}, pack.LengthPrefix(pack.Message{
+ pack.Tag{1, pack.VarintType}, pack.Varint(2),
+ }),
+ }.Marshal(),
+ },
+ {
+ desc: "repeated nil messages",
decodeTo: []proto.Message{&testpb.TestAllTypes{
RepeatedNestedMessage: []*testpb.TestAllTypes_NestedMessage{
{A: proto.Int32(1)},
@@ -681,7 +496,7 @@
},
}, build(
&testpb.TestAllExtensions{},
- extend(testpb.E_RepeatedNestedMessageExtension, []*testpb.TestAllExtensions_NestedMessage{
+ extend(testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{
{A: proto.Int32(1)},
nil,
{A: proto.Int32(2)},
@@ -699,6 +514,26 @@
},
{
desc: "repeated groups",
+ decodeTo: makeMessages(protobuild.Message{
+ "repeatedgroup": []protobuild.Message{
+ {"a": 1017},
+ {},
+ {"a": 2017},
+ },
+ }, &testpb.TestAllTypes{}, &testpb.TestAllExtensions{}),
+ wire: pack.Message{
+ pack.Tag{46, pack.StartGroupType},
+ pack.Tag{47, pack.VarintType}, pack.Varint(1017),
+ pack.Tag{46, pack.EndGroupType},
+ pack.Tag{46, pack.StartGroupType},
+ pack.Tag{46, pack.EndGroupType},
+ pack.Tag{46, pack.StartGroupType},
+ pack.Tag{47, pack.VarintType}, pack.Varint(2017),
+ pack.Tag{46, pack.EndGroupType},
+ }.Marshal(),
+ },
+ {
+ desc: "repeated nil groups",
decodeTo: []proto.Message{&testpb.TestAllTypes{
Repeatedgroup: []*testpb.TestAllTypes_RepeatedGroup{
{A: proto.Int32(1017)},
@@ -707,7 +542,7 @@
},
}, build(
&testpb.TestAllExtensions{},
- extend(testpb.E_RepeatedgroupExtension, []*testpb.RepeatedGroupExtension{
+ extend(testpb.E_Repeatedgroup, []*testpb.RepeatedGroup{
{A: proto.Int32(1017)},
nil,
{A: proto.Int32(2017)},
@@ -726,55 +561,28 @@
},
{
desc: "maps",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1056: 1156, 2056: 2156},
- MapInt64Int64: map[int64]int64{1057: 1157, 2057: 2157},
- MapUint32Uint32: map[uint32]uint32{1058: 1158, 2058: 2158},
- MapUint64Uint64: map[uint64]uint64{1059: 1159, 2059: 2159},
- MapSint32Sint32: map[int32]int32{1060: 1160, 2060: 2160},
- MapSint64Sint64: map[int64]int64{1061: 1161, 2061: 2161},
- MapFixed32Fixed32: map[uint32]uint32{1062: 1162, 2062: 2162},
- MapFixed64Fixed64: map[uint64]uint64{1063: 1163, 2063: 2163},
- MapSfixed32Sfixed32: map[int32]int32{1064: 1164, 2064: 2164},
- MapSfixed64Sfixed64: map[int64]int64{1065: 1165, 2065: 2165},
- MapInt32Float: map[int32]float32{1066: 1166.5, 2066: 2166.5},
- MapInt32Double: map[int32]float64{1067: 1167.5, 2067: 2167.5},
- MapBoolBool: map[bool]bool{true: false, false: true},
- MapStringString: map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"},
- MapStringBytes: map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")},
- MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{
- "71.1.key": {A: proto.Int32(1171)},
- "71.2.key": {A: proto.Int32(2171)},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_int32_int32": map[int32]int32{1056: 1156, 2056: 2156},
+ "map_int64_int64": map[int64]int64{1057: 1157, 2057: 2157},
+ "map_uint32_uint32": map[uint32]uint32{1058: 1158, 2058: 2158},
+ "map_uint64_uint64": map[uint64]uint64{1059: 1159, 2059: 2159},
+ "map_sint32_sint32": map[int32]int32{1060: 1160, 2060: 2160},
+ "map_sint64_sint64": map[int64]int64{1061: 1161, 2061: 2161},
+ "map_fixed32_fixed32": map[uint32]uint32{1062: 1162, 2062: 2162},
+ "map_fixed64_fixed64": map[uint64]uint64{1063: 1163, 2063: 2163},
+ "map_sfixed32_sfixed32": map[int32]int32{1064: 1164, 2064: 2164},
+ "map_sfixed64_sfixed64": map[int64]int64{1065: 1165, 2065: 2165},
+ "map_int32_float": map[int32]float32{1066: 1166.5, 2066: 2166.5},
+ "map_int32_double": map[int32]float64{1067: 1167.5, 2067: 2167.5},
+ "map_bool_bool": map[bool]bool{true: false, false: true},
+ "map_string_string": map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"},
+ "map_string_bytes": map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")},
+ "map_string_nested_message": map[string]protobuild.Message{
+ "71.1.key": {"a": 1171},
+ "71.2.key": {"a": 2171},
},
- MapStringNestedEnum: map[string]testpb.TestAllTypes_NestedEnum{
- "73.1.key": testpb.TestAllTypes_FOO,
- "73.2.key": testpb.TestAllTypes_BAR,
- },
- }, &test3pb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1056: 1156, 2056: 2156},
- MapInt64Int64: map[int64]int64{1057: 1157, 2057: 2157},
- MapUint32Uint32: map[uint32]uint32{1058: 1158, 2058: 2158},
- MapUint64Uint64: map[uint64]uint64{1059: 1159, 2059: 2159},
- MapSint32Sint32: map[int32]int32{1060: 1160, 2060: 2160},
- MapSint64Sint64: map[int64]int64{1061: 1161, 2061: 2161},
- MapFixed32Fixed32: map[uint32]uint32{1062: 1162, 2062: 2162},
- MapFixed64Fixed64: map[uint64]uint64{1063: 1163, 2063: 2163},
- MapSfixed32Sfixed32: map[int32]int32{1064: 1164, 2064: 2164},
- MapSfixed64Sfixed64: map[int64]int64{1065: 1165, 2065: 2165},
- MapInt32Float: map[int32]float32{1066: 1166.5, 2066: 2166.5},
- MapInt32Double: map[int32]float64{1067: 1167.5, 2067: 2167.5},
- MapBoolBool: map[bool]bool{true: false, false: true},
- MapStringString: map[string]string{"69.1.key": "69.1.val", "69.2.key": "69.2.val"},
- MapStringBytes: map[string][]byte{"70.1.key": []byte("70.1.val"), "70.2.key": []byte("70.2.val")},
- MapStringNestedMessage: map[string]*test3pb.TestAllTypes_NestedMessage{
- "71.1.key": {A: 1171},
- "71.2.key": {A: 2171},
- },
- MapStringNestedEnum: map[string]test3pb.TestAllTypes_NestedEnum{
- "73.1.key": test3pb.TestAllTypes_FOO,
- "73.2.key": test3pb.TestAllTypes_BAR,
- },
- }},
+ "map_string_nested_enum": map[string]string{"73.1.key": "FOO", "73.2.key": "BAR"},
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{56, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1056),
@@ -920,12 +728,12 @@
},
{
desc: "map with value before key",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1056: 1156},
- MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{
- "71.1.key": {A: proto.Int32(1171)},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_int32_int32": map[int32]int32{1056: 1156},
+ "map_string_nested_message": map[string]protobuild.Message{
+ "71.1.key": {"a": 1171},
},
- }},
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{56, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{2, pack.VarintType}, pack.Varint(1156),
@@ -941,12 +749,12 @@
},
{
desc: "map with repeated key and value",
- decodeTo: []proto.Message{&testpb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1056: 1156},
- MapStringNestedMessage: map[string]*testpb.TestAllTypes_NestedMessage{
- "71.1.key": {A: proto.Int32(1171)},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_int32_int32": map[int32]int32{1056: 1156},
+ "map_string_nested_message": map[string]protobuild.Message{
+ "71.1.key": {"a": 1171},
},
- }},
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{56, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(0),
@@ -966,55 +774,39 @@
},
{
desc: "oneof (uint32)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint32{1111}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofUint32{1111}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_uint32": 1111,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{111, pack.VarintType}, pack.Varint(1111)}.Marshal(),
},
{
desc: "oneof (message)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofNestedMessage{
- &testpb.TestAllTypes_NestedMessage{A: proto.Int32(1112)},
- }}, &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofNestedMessage{
- &test3pb.TestAllTypes_NestedMessage{A: 1112},
- }},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_nested_message": protobuild.Message{
+ "a": 1112,
+ },
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{112, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Message{pack.Tag{1, pack.VarintType}, pack.Varint(1112)},
})}.Marshal(),
},
{
desc: "oneof (empty message)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofNestedMessage{
- &testpb.TestAllTypes_NestedMessage{},
- }},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofNestedMessage{
- &test3pb.TestAllTypes_NestedMessage{},
- }},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_nested_message": protobuild.Message{},
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{112, pack.BytesType}, pack.LengthPrefix(pack.Message{})}.Marshal(),
},
{
desc: "oneof (merged message)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofNestedMessage{
- &testpb.TestAllTypes_NestedMessage{
- A: proto.Int32(1),
- Corecursive: &testpb.TestAllTypes{
- OptionalInt32: proto.Int32(43),
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_nested_message": protobuild.Message{
+ "a": 1,
+ "corecursive": protobuild.Message{
+ "optional_int32": 43,
},
- }}, &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofNestedMessage{
- &test3pb.TestAllTypes_NestedMessage{
- A: 1,
- Corecursive: &test3pb.TestAllTypes{
- OptionalInt32: 43,
- },
- },
- }}},
+ },
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{112, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Message{pack.Tag{1, pack.VarintType}, pack.Varint(1)},
@@ -1028,74 +820,65 @@
},
{
desc: "oneof (string)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofString{"1113"}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofString{"1113"}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_string": "1113",
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{113, pack.BytesType}, pack.String("1113")}.Marshal(),
},
{
desc: "oneof (bytes)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofBytes{[]byte("1114")}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofBytes{[]byte("1114")}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_bytes": "1114",
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{114, pack.BytesType}, pack.String("1114")}.Marshal(),
},
{
desc: "oneof (bool)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofBool{true}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofBool{true}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_bool": true,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{115, pack.VarintType}, pack.Bool(true)}.Marshal(),
},
{
desc: "oneof (uint64)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint64{116}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofUint64{116}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_uint64": 116,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{116, pack.VarintType}, pack.Varint(116)}.Marshal(),
},
{
desc: "oneof (float)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofFloat{117.5}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofFloat{117.5}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_float": 117.5,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{117, pack.Fixed32Type}, pack.Float32(117.5)}.Marshal(),
},
{
desc: "oneof (double)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofDouble{118.5}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofDouble{118.5}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_double": 118.5,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{118, pack.Fixed64Type}, pack.Float64(118.5)}.Marshal(),
},
{
desc: "oneof (enum)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofEnum{testpb.TestAllTypes_BAR}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofEnum{test3pb.TestAllTypes_BAR}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_enum": "BAR",
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{119, pack.VarintType}, pack.Varint(int(testpb.TestAllTypes_BAR))}.Marshal(),
},
{
desc: "oneof (zero)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint64{0}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofUint64{0}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_uint64": 0,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{116, pack.VarintType}, pack.Varint(0)}.Marshal(),
},
{
desc: "oneof (overridden value)",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{OneofField: &testpb.TestAllTypes_OneofUint64{2}},
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofUint64{2}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_uint64": 2,
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{111, pack.VarintType}, pack.Varint(1),
pack.Tag{116, pack.VarintType}, pack.Varint(2),
@@ -1109,22 +892,11 @@
{
desc: "unknown fields",
checkFastInit: true,
- decodeTo: []proto.Message{build(
- &testpb.TestAllTypes{},
- unknown(pack.Message{
+ decodeTo: makeMessages(protobuild.Message{
+ protobuild.Unknown: pack.Message{
pack.Tag{100000, pack.VarintType}, pack.Varint(1),
- }.Marshal()),
- ), build(
- &test3pb.TestAllTypes{},
- unknown(pack.Message{
- pack.Tag{100000, pack.VarintType}, pack.Varint(1),
- }.Marshal()),
- ), build(
- &testpb.TestAllExtensions{},
- unknown(pack.Message{
- pack.Tag{100000, pack.VarintType}, pack.Varint(1),
- }.Marshal()),
- )},
+ }.Marshal(),
+ }),
wire: pack.Message{
pack.Tag{100000, pack.VarintType}, pack.Varint(1),
}.Marshal(),
@@ -1134,40 +906,27 @@
unmarshalOptions: proto.UnmarshalOptions{
DiscardUnknown: true,
},
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{},
- &test3pb.TestAllTypes{},
- },
+ decodeTo: makeMessages(protobuild.Message{}),
wire: pack.Message{
pack.Tag{100000, pack.VarintType}, pack.Varint(1),
}.Marshal(),
},
{
desc: "field type mismatch",
- decodeTo: []proto.Message{build(
- &testpb.TestAllTypes{},
- unknown(pack.Message{
+ decodeTo: makeMessages(protobuild.Message{
+ protobuild.Unknown: pack.Message{
pack.Tag{1, pack.BytesType}, pack.String("string"),
- }.Marshal()),
- ), build(
- &test3pb.TestAllTypes{},
- unknown(pack.Message{
- pack.Tag{1, pack.BytesType}, pack.String("string"),
- }.Marshal()),
- )},
+ }.Marshal(),
+ }),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.String("string"),
}.Marshal(),
},
{
desc: "map field element mismatch",
- decodeTo: []proto.Message{
- &testpb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1: 0},
- }, &test3pb.TestAllTypes{
- MapInt32Int32: map[int32]int32{1: 0},
- },
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "map_int32_int32": map[int32]int32{1: 0},
+ }, &testpb.TestAllTypes{}, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{56, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1185,14 +944,14 @@
desc: "required int32 unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&requiredpb.Int32{}},
+ decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Int32{}),
},
{
desc: "required int32 set",
checkFastInit: true,
- decodeTo: []proto.Message{&requiredpb.Int32{
- V: proto.Int32(1),
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "v": 1,
+ }, &requiredpb.Int32{}),
wire: pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
}.Marshal(),
@@ -1201,14 +960,14 @@
desc: "required fixed32 unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&requiredpb.Fixed32{}},
+ decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Fixed32{}),
},
{
desc: "required fixed32 set",
checkFastInit: true,
- decodeTo: []proto.Message{&requiredpb.Fixed32{
- V: proto.Uint32(1),
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "v": 1,
+ }, &requiredpb.Fixed32{}),
wire: pack.Message{
pack.Tag{1, pack.Fixed32Type}, pack.Int32(1),
}.Marshal(),
@@ -1217,14 +976,14 @@
desc: "required fixed64 unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&requiredpb.Fixed64{}},
+ decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Fixed64{}),
},
{
desc: "required fixed64 set",
checkFastInit: true,
- decodeTo: []proto.Message{&requiredpb.Fixed64{
- V: proto.Uint64(1),
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "v": 1,
+ }, &requiredpb.Fixed64{}),
wire: pack.Message{
pack.Tag{1, pack.Fixed64Type}, pack.Int64(1),
}.Marshal(),
@@ -1233,14 +992,14 @@
desc: "required bytes unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&requiredpb.Bytes{}},
+ decodeTo: makeMessages(protobuild.Message{}, &requiredpb.Bytes{}),
},
{
desc: "required bytes set",
checkFastInit: true,
- decodeTo: []proto.Message{&requiredpb.Bytes{
- V: []byte{},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "v": "",
+ }, &requiredpb.Bytes{}),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.Bytes(nil),
}.Marshal(),
@@ -1263,9 +1022,9 @@
desc: "required field in optional message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- OptionalMessage: &testpb.TestRequired{},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_message": protobuild.Message{},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.LengthPrefix(pack.Message{}),
}.Marshal(),
@@ -1273,11 +1032,11 @@
{
desc: "required field in optional message set",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- OptionalMessage: &testpb.TestRequired{
- RequiredField: proto.Int32(1),
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_message": protobuild.Message{
+ "required_field": 1,
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1287,11 +1046,11 @@
{
desc: "required field in optional message set (split across multiple tags)",
checkFastInit: false, // fast init checks don't handle split messages
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- OptionalMessage: &testpb.TestRequired{
- RequiredField: proto.Int32(1),
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_message": protobuild.Message{
+ "required_field": 1,
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.LengthPrefix(pack.Message{}),
pack.Tag{1, pack.BytesType}, pack.LengthPrefix(pack.Message{
@@ -1304,12 +1063,12 @@
desc: "required field in repeated message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- RepeatedMessage: []*testpb.TestRequired{
- {RequiredField: proto.Int32(1)},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_message": []protobuild.Message{
+ {"required_field": 1},
{},
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{2, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1320,12 +1079,12 @@
{
desc: "required field in repeated message set",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- RepeatedMessage: []*testpb.TestRequired{
- {RequiredField: proto.Int32(1)},
- {RequiredField: proto.Int32(2)},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_message": []protobuild.Message{
+ {"required_field": 1},
+ {"required_field": 2},
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{2, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1339,12 +1098,12 @@
desc: "required field in map message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- MapMessage: map[int32]*testpb.TestRequired{
- 1: {RequiredField: proto.Int32(1)},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_message": map[int32]protobuild.Message{
+ 1: {"required_field": 1},
2: {},
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{3, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1362,11 +1121,11 @@
desc: "required field in absent map message value",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- MapMessage: map[int32]*testpb.TestRequired{
+ decodeTo: makeMessages(protobuild.Message{
+ "map_message": map[int32]protobuild.Message{
2: {},
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{3, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(2),
@@ -1376,12 +1135,12 @@
{
desc: "required field in map message set",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestRequiredForeign{
- MapMessage: map[int32]*testpb.TestRequired{
- 1: {RequiredField: proto.Int32(1)},
- 2: {RequiredField: proto.Int32(2)},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_message": map[int32]protobuild.Message{
+ 1: {"required_field": 1},
+ 2: {"required_field": 2},
},
- }},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{
pack.Tag{3, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1401,9 +1160,9 @@
desc: "required field in optional group unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredGroupFields{
- Optionalgroup: &testpb.TestRequiredGroupFields_OptionalGroup{},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "optionalgroup": protobuild.Message{},
+ }, &testpb.TestRequiredGroupFields{}),
wire: pack.Message{
pack.Tag{1, pack.StartGroupType},
pack.Tag{1, pack.EndGroupType},
@@ -1412,11 +1171,11 @@
{
desc: "required field in optional group set",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestRequiredGroupFields{
- Optionalgroup: &testpb.TestRequiredGroupFields_OptionalGroup{
- A: proto.Int32(1),
+ decodeTo: makeMessages(protobuild.Message{
+ "optionalgroup": protobuild.Message{
+ "a": 1,
},
- }},
+ }, &testpb.TestRequiredGroupFields{}),
wire: pack.Message{
pack.Tag{1, pack.StartGroupType},
pack.Tag{2, pack.VarintType}, pack.Varint(1),
@@ -1427,12 +1186,12 @@
desc: "required field in repeated group unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{&testpb.TestRequiredGroupFields{
- Repeatedgroup: []*testpb.TestRequiredGroupFields_RepeatedGroup{
- {A: proto.Int32(1)},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeatedgroup": []protobuild.Message{
+ {"a": 1},
{},
},
- }},
+ }, &testpb.TestRequiredGroupFields{}),
wire: pack.Message{
pack.Tag{3, pack.StartGroupType},
pack.Tag{4, pack.VarintType}, pack.Varint(1),
@@ -1444,12 +1203,12 @@
{
desc: "required field in repeated group set",
checkFastInit: true,
- decodeTo: []proto.Message{&testpb.TestRequiredGroupFields{
- Repeatedgroup: []*testpb.TestRequiredGroupFields_RepeatedGroup{
- {A: proto.Int32(1)},
- {A: proto.Int32(2)},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeatedgroup": []protobuild.Message{
+ {"a": 1},
+ {"a": 2},
},
- }},
+ }, &testpb.TestRequiredGroupFields{}),
wire: pack.Message{
pack.Tag{3, pack.StartGroupType},
pack.Tag{4, pack.VarintType}, pack.Varint(1),
@@ -1463,23 +1222,19 @@
desc: "required field in oneof message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{
- &testpb.TestRequiredForeign{OneofField: &testpb.TestRequiredForeign_OneofMessage{
- &testpb.TestRequired{},
- }},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_message": protobuild.Message{},
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{pack.Tag{4, pack.BytesType}, pack.LengthPrefix(pack.Message{})}.Marshal(),
},
{
desc: "required field in oneof message set",
checkFastInit: true,
- decodeTo: []proto.Message{
- &testpb.TestRequiredForeign{OneofField: &testpb.TestRequiredForeign_OneofMessage{
- &testpb.TestRequired{
- RequiredField: proto.Int32(1),
- },
- }},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_message": protobuild.Message{
+ "required_field": 1,
+ },
+ }, &testpb.TestRequiredForeign{}),
wire: pack.Message{pack.Tag{4, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
})}.Marshal(),
@@ -1488,10 +1243,9 @@
desc: "required field in extension message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_TestRequired_Single, &testpb.TestRequired{}),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "single": protobuild.Message{},
+ }, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{1000, pack.BytesType}, pack.LengthPrefix(pack.Message{}),
}.Marshal(),
@@ -1499,12 +1253,11 @@
{
desc: "required field in extension message set",
checkFastInit: true,
- decodeTo: []proto.Message{build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_TestRequired_Single, &testpb.TestRequired{
- RequiredField: proto.Int32(1),
- }),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "single": protobuild.Message{
+ "required_field": 1,
+ },
+ }, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{1000, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1515,13 +1268,12 @@
desc: "required field in repeated extension message unset",
checkFastInit: true,
partial: true,
- decodeTo: []proto.Message{build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_TestRequired_Multi, []*testpb.TestRequired{
- {RequiredField: proto.Int32(1)},
+ decodeTo: makeMessages(protobuild.Message{
+ "multi": []protobuild.Message{
+ {"required_field": 1},
{},
- }),
- )},
+ },
+ }, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{1001, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1532,13 +1284,12 @@
{
desc: "required field in repeated extension message set",
checkFastInit: true,
- decodeTo: []proto.Message{build(
- &testpb.TestAllExtensions{},
- extend(testpb.E_TestRequired_Multi, []*testpb.TestRequired{
- {RequiredField: proto.Int32(1)},
- {RequiredField: proto.Int32(2)},
- }),
- )},
+ decodeTo: makeMessages(protobuild.Message{
+ "multi": []protobuild.Message{
+ {"required_field": 1},
+ {"required_field": 2},
+ },
+ }, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{1001, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.VarintType}, pack.Varint(1),
@@ -1559,34 +1310,30 @@
{
desc: "legacy",
partial: true,
- decodeTo: []proto.Message{
- &legacypb.Legacy{
- F1: &legacy1pb.Message{
- OptionalInt32: proto.Int32(1),
- OptionalChildEnum: legacy1pb.Message_ALPHA.Enum(),
- OptionalChildMessage: &legacy1pb.Message_ChildMessage{
- F1: proto.String("x"),
- },
- Optionalgroup: &legacy1pb.Message_OptionalGroup{
- F1: proto.String("x"),
- },
- RepeatedChildMessage: []*legacy1pb.Message_ChildMessage{
- {F1: proto.String("x")},
- },
- Repeatedgroup: []*legacy1pb.Message_RepeatedGroup{
- {F1: proto.String("x")},
- },
- MapBoolChildMessage: map[bool]*legacy1pb.Message_ChildMessage{
- true: {F1: proto.String("x")},
- },
- OneofUnion: &legacy1pb.Message_OneofChildMessage{
- &legacy1pb.Message_ChildMessage{
- F1: proto.String("x"),
- },
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "f1": protobuild.Message{
+ "optional_int32": 1,
+ "optional_child_enum": "ALPHA",
+ "optional_child_message": protobuild.Message{
+ "f1": "x",
+ },
+ "optionalgroup": protobuild.Message{
+ "f1": "x",
+ },
+ "repeated_child_message": []protobuild.Message{
+ {"f1": "x"},
+ },
+ "repeatedgroup": []protobuild.Message{
+ {"f1": "x"},
+ },
+ "map_bool_child_message": map[bool]protobuild.Message{
+ true: {"f1": "x"},
+ },
+ "oneof_child_message": protobuild.Message{
+ "f1": "x",
},
},
- },
+ }, &legacypb.Legacy{}),
wire: pack.Message{
pack.Tag{1, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{101, pack.VarintType}, pack.Varint(1),
@@ -1618,24 +1365,22 @@
},
{
desc: "first reserved field number",
- decodeTo: []proto.Message{build(
- &testpb.TestAllTypes{},
- unknown(pack.Message{
+ decodeTo: makeMessages(protobuild.Message{
+ protobuild.Unknown: pack.Message{
pack.Tag{pack.FirstReservedNumber, pack.VarintType}, pack.Varint(1004),
- }.Marshal()),
- )},
+ }.Marshal(),
+ }),
wire: pack.Message{
pack.Tag{pack.FirstReservedNumber, pack.VarintType}, pack.Varint(1004),
}.Marshal(),
},
{
desc: "last reserved field number",
- decodeTo: []proto.Message{build(
- &testpb.TestAllTypes{},
- unknown(pack.Message{
+ decodeTo: makeMessages(protobuild.Message{
+ protobuild.Unknown: pack.Message{
pack.Tag{pack.LastReservedNumber, pack.VarintType}, pack.Varint(1005),
- }.Marshal()),
- )},
+ }.Marshal(),
+ }),
wire: pack.Message{
pack.Tag{pack.LastReservedNumber, pack.VarintType}, pack.Varint(1005),
}.Marshal(),
@@ -1646,27 +1391,22 @@
DiscardUnknown: true,
Resolver: func() protoregistry.ExtensionTypeResolver {
types := &protoregistry.Types{}
- types.RegisterExtension(testpb.E_OptionalNestedMessageExtension)
- types.RegisterExtension(testpb.E_OptionalInt32Extension)
+ types.RegisterExtension(testpb.E_OptionalNestedMessage)
+ types.RegisterExtension(testpb.E_OptionalInt32)
return types
}(),
},
- decodeTo: []proto.Message{func() proto.Message {
- m := &testpb.TestAllExtensions{}
- if err := prototext.Unmarshal([]byte(`
- [goproto.proto.test.optional_nested_message_extension]: {
- corecursive: {
- [goproto.proto.test.optional_nested_message_extension]: {
- corecursive: {
- [goproto.proto.test.optional_int32_extension]: 42
- }
- }
- }
- }`), m); err != nil {
- panic(err)
- }
- return m
- }()},
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "corecursive": protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "corecursive": protobuild.Message{
+ "optional_int32": 42,
+ },
+ },
+ },
+ },
+ }, &testpb.TestAllExtensions{}),
wire: pack.Message{
pack.Tag{18, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{2, pack.BytesType}, pack.LengthPrefix(pack.Message{
@@ -1685,18 +1425,18 @@
var testInvalidMessages = []testProto{
{
desc: "invalid UTF-8 in optional string field",
- decodeTo: []proto.Message{&test3pb.TestAllTypes{
- OptionalString: "abc\xff",
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_string": "abc\xff",
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{14, pack.BytesType}, pack.String("abc\xff"),
}.Marshal(),
},
{
desc: "invalid UTF-8 in repeated string field",
- decodeTo: []proto.Message{&test3pb.TestAllTypes{
- RepeatedString: []string{"foo", "abc\xff"},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "repeated_string": []string{"foo", "abc\xff"},
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{44, pack.BytesType}, pack.String("foo"),
pack.Tag{44, pack.BytesType}, pack.String("abc\xff"),
@@ -1704,13 +1444,13 @@
},
{
desc: "invalid UTF-8 in nested message",
- decodeTo: []proto.Message{&test3pb.TestAllTypes{
- OptionalNestedMessage: &test3pb.TestAllTypes_NestedMessage{
- Corecursive: &test3pb.TestAllTypes{
- OptionalString: "abc\xff",
+ decodeTo: makeMessages(protobuild.Message{
+ "optional_nested_message": protobuild.Message{
+ "corecursive": protobuild.Message{
+ "optional_string": "abc\xff",
},
},
- }},
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{18, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{2, pack.BytesType}, pack.LengthPrefix(pack.Message{
@@ -1721,16 +1461,16 @@
},
{
desc: "invalid UTF-8 in oneof field",
- decodeTo: []proto.Message{
- &test3pb.TestAllTypes{OneofField: &test3pb.TestAllTypes_OneofString{"abc\xff"}},
- },
+ decodeTo: makeMessages(protobuild.Message{
+ "oneof_string": "abc\xff",
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{pack.Tag{113, pack.BytesType}, pack.String("abc\xff")}.Marshal(),
},
{
desc: "invalid UTF-8 in map key",
- decodeTo: []proto.Message{&test3pb.TestAllTypes{
- MapStringString: map[string]string{"key\xff": "val"},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_string_string": map[string]string{"key\xff": "val"},
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{69, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.BytesType}, pack.String("key\xff"),
@@ -1740,9 +1480,9 @@
},
{
desc: "invalid UTF-8 in map value",
- decodeTo: []proto.Message{&test3pb.TestAllTypes{
- MapStringString: map[string]string{"key": "val\xff"},
- }},
+ decodeTo: makeMessages(protobuild.Message{
+ "map_string_string": map[string]string{"key": "val\xff"},
+ }, &test3pb.TestAllTypes{}),
wire: pack.Message{
pack.Tag{69, pack.BytesType}, pack.LengthPrefix(pack.Message{
pack.Tag{1, pack.BytesType}, pack.String("key"),
diff --git a/testing/protocmp/util_test.go b/testing/protocmp/util_test.go
index 23b0e8b..9b40e66 100644
--- a/testing/protocmp/util_test.go
+++ b/testing/protocmp/util_test.go
@@ -241,58 +241,58 @@
want: true,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_DefaultInt32Extension, int32(81)},
- setExtension{testpb.E_DefaultUint32Extension, uint32(83)},
- setExtension{testpb.E_DefaultFloatExtension, float32(91.5)},
- setExtension{testpb.E_DefaultBoolExtension, bool(true)},
- setExtension{testpb.E_DefaultBytesExtension, []byte("world")}),
+ setExtension{testpb.E_DefaultInt32, int32(81)},
+ setExtension{testpb.E_DefaultUint32, uint32(83)},
+ setExtension{testpb.E_DefaultFloat, float32(91.5)},
+ setExtension{testpb.E_DefaultBool, bool(true)},
+ setExtension{testpb.E_DefaultBytes, []byte("world")}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_DefaultInt64Extension, int64(82)},
- setExtension{testpb.E_DefaultUint64Extension, uint64(84)},
- setExtension{testpb.E_DefaultDoubleExtension, float64(92e3)},
- setExtension{testpb.E_DefaultStringExtension, string("hello")}),
+ setExtension{testpb.E_DefaultInt64, int64(82)},
+ setExtension{testpb.E_DefaultUint64, uint64(84)},
+ setExtension{testpb.E_DefaultDouble, float64(92e3)},
+ setExtension{testpb.E_DefaultString, string("hello")}),
opts: cmp.Options{Transform()},
want: false,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_DefaultInt32Extension, int32(81)},
- setExtension{testpb.E_DefaultUint32Extension, uint32(83)},
- setExtension{testpb.E_DefaultFloatExtension, float32(91.5)},
- setExtension{testpb.E_DefaultBoolExtension, bool(true)},
- setExtension{testpb.E_DefaultBytesExtension, []byte("world")}),
+ setExtension{testpb.E_DefaultInt32, int32(81)},
+ setExtension{testpb.E_DefaultUint32, uint32(83)},
+ setExtension{testpb.E_DefaultFloat, float32(91.5)},
+ setExtension{testpb.E_DefaultBool, bool(true)},
+ setExtension{testpb.E_DefaultBytes, []byte("world")}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_DefaultInt64Extension, int64(82)},
- setExtension{testpb.E_DefaultUint64Extension, uint64(84)},
- setExtension{testpb.E_DefaultDoubleExtension, float64(92e3)},
- setExtension{testpb.E_DefaultStringExtension, string("hello")}),
+ setExtension{testpb.E_DefaultInt64, int64(82)},
+ setExtension{testpb.E_DefaultUint64, uint64(84)},
+ setExtension{testpb.E_DefaultDouble, float64(92e3)},
+ setExtension{testpb.E_DefaultString, string("hello")}),
opts: cmp.Options{Transform(), IgnoreDefaultScalars()},
want: true,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalInt32Extension, int32(0)},
- setExtension{testpb.E_OptionalUint32Extension, uint32(0)},
- setExtension{testpb.E_OptionalFloatExtension, float32(0)},
- setExtension{testpb.E_OptionalBoolExtension, bool(false)},
- setExtension{testpb.E_OptionalBytesExtension, []byte("")}),
+ setExtension{testpb.E_OptionalInt32, int32(0)},
+ setExtension{testpb.E_OptionalUint32, uint32(0)},
+ setExtension{testpb.E_OptionalFloat, float32(0)},
+ setExtension{testpb.E_OptionalBool, bool(false)},
+ setExtension{testpb.E_OptionalBytes, []byte("")}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalInt64Extension, int64(0)},
- setExtension{testpb.E_OptionalUint64Extension, uint64(0)},
- setExtension{testpb.E_OptionalDoubleExtension, float64(0)},
- setExtension{testpb.E_OptionalStringExtension, string("")}),
+ setExtension{testpb.E_OptionalInt64, int64(0)},
+ setExtension{testpb.E_OptionalUint64, uint64(0)},
+ setExtension{testpb.E_OptionalDouble, float64(0)},
+ setExtension{testpb.E_OptionalString, string("")}),
opts: cmp.Options{Transform()},
want: false,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalInt32Extension, int32(0)},
- setExtension{testpb.E_OptionalUint32Extension, uint32(0)},
- setExtension{testpb.E_OptionalFloatExtension, float32(0)},
- setExtension{testpb.E_OptionalBoolExtension, bool(false)},
- setExtension{testpb.E_OptionalBytesExtension, []byte("")}),
+ setExtension{testpb.E_OptionalInt32, int32(0)},
+ setExtension{testpb.E_OptionalUint32, uint32(0)},
+ setExtension{testpb.E_OptionalFloat, float32(0)},
+ setExtension{testpb.E_OptionalBool, bool(false)},
+ setExtension{testpb.E_OptionalBytes, []byte("")}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalInt64Extension, int64(0)},
- setExtension{testpb.E_OptionalUint64Extension, uint64(0)},
- setExtension{testpb.E_OptionalDoubleExtension, float64(0)},
- setExtension{testpb.E_OptionalStringExtension, string("")}),
+ setExtension{testpb.E_OptionalInt64, int64(0)},
+ setExtension{testpb.E_OptionalUint64, uint64(0)},
+ setExtension{testpb.E_OptionalDouble, float64(0)},
+ setExtension{testpb.E_OptionalString, string("")}),
opts: cmp.Options{Transform(), IgnoreDefaultScalars()},
want: true,
}, {
@@ -500,33 +500,33 @@
want: true,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "hello"}),
+ setExtension{testpb.E_OptionalString, "hello"}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "goodbye"}),
+ setExtension{testpb.E_OptionalString, "goodbye"}),
opts: cmp.Options{Transform()},
want: false,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "hello"}),
+ setExtension{testpb.E_OptionalString, "hello"}),
y: new(testpb.TestAllExtensions),
opts: cmp.Options{Transform(),
- IgnoreDescriptors(testpb.E_OptionalStringExtension.TypeDescriptor())},
+ IgnoreDescriptors(testpb.E_OptionalString.TypeDescriptor())},
want: true,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "hello"}),
+ setExtension{testpb.E_OptionalString, "hello"}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "goodbye"}),
+ setExtension{testpb.E_OptionalString, "goodbye"}),
opts: cmp.Options{Transform(),
- IgnoreDescriptors(testpb.E_OptionalStringExtension.TypeDescriptor())},
+ IgnoreDescriptors(testpb.E_OptionalString.TypeDescriptor())},
want: true,
}, {
x: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "hello"}),
+ setExtension{testpb.E_OptionalString, "hello"}),
y: apply(new(testpb.TestAllExtensions),
- setExtension{testpb.E_OptionalStringExtension, "goodbye"}),
+ setExtension{testpb.E_OptionalString, "goodbye"}),
opts: cmp.Options{Transform(),
- IgnoreDescriptors(testpb.E_OptionalInt32Extension.TypeDescriptor())},
+ IgnoreDescriptors(testpb.E_OptionalInt32.TypeDescriptor())},
want: false,
}}...)
diff --git a/testing/protocmp/xform_test.go b/testing/protocmp/xform_test.go
index b69ce0c..a5b15ee 100644
--- a/testing/protocmp/xform_test.go
+++ b/testing/protocmp/xform_test.go
@@ -136,77 +136,77 @@
}, {
in: func() proto.Message {
m := &testpb.TestAllExtensions{}
- proto.SetExtension(m, testpb.E_OptionalBoolExtension, bool(false))
- proto.SetExtension(m, testpb.E_OptionalInt32Extension, int32(-32))
- proto.SetExtension(m, testpb.E_OptionalInt64Extension, int64(-64))
- proto.SetExtension(m, testpb.E_OptionalUint32Extension, uint32(32))
- proto.SetExtension(m, testpb.E_OptionalUint64Extension, uint64(64))
- proto.SetExtension(m, testpb.E_OptionalFloatExtension, float32(32.32))
- proto.SetExtension(m, testpb.E_OptionalDoubleExtension, float64(64.64))
- proto.SetExtension(m, testpb.E_OptionalStringExtension, string("string"))
- proto.SetExtension(m, testpb.E_OptionalBytesExtension, []byte("bytes"))
- proto.SetExtension(m, testpb.E_OptionalNestedEnumExtension, testpb.TestAllTypes_NEG)
- proto.SetExtension(m, testpb.E_OptionalNestedMessageExtension, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(5)})
+ proto.SetExtension(m, testpb.E_OptionalBool, bool(false))
+ proto.SetExtension(m, testpb.E_OptionalInt32, int32(-32))
+ proto.SetExtension(m, testpb.E_OptionalInt64, int64(-64))
+ proto.SetExtension(m, testpb.E_OptionalUint32, uint32(32))
+ proto.SetExtension(m, testpb.E_OptionalUint64, uint64(64))
+ proto.SetExtension(m, testpb.E_OptionalFloat, float32(32.32))
+ proto.SetExtension(m, testpb.E_OptionalDouble, float64(64.64))
+ proto.SetExtension(m, testpb.E_OptionalString, string("string"))
+ proto.SetExtension(m, testpb.E_OptionalBytes, []byte("bytes"))
+ proto.SetExtension(m, testpb.E_OptionalNestedEnum, testpb.TestAllTypes_NEG)
+ proto.SetExtension(m, testpb.E_OptionalNestedMessage, &testpb.TestAllExtensions_NestedMessage{A: proto.Int32(5)})
return m
}(),
want: Message{
- messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}),
- "[goproto.proto.test.optional_bool_extension]": bool(false),
- "[goproto.proto.test.optional_int32_extension]": int32(-32),
- "[goproto.proto.test.optional_int64_extension]": int64(-64),
- "[goproto.proto.test.optional_uint32_extension]": uint32(32),
- "[goproto.proto.test.optional_uint64_extension]": uint64(64),
- "[goproto.proto.test.optional_float_extension]": float32(32.32),
- "[goproto.proto.test.optional_double_extension]": float64(64.64),
- "[goproto.proto.test.optional_string_extension]": string("string"),
- "[goproto.proto.test.optional_bytes_extension]": []byte("bytes"),
- "[goproto.proto.test.optional_nested_enum_extension]": enumOf(testpb.TestAllTypes_NEG),
- "[goproto.proto.test.optional_nested_message_extension]": Message{messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(5)},
+ messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}),
+ "[goproto.proto.test.optional_bool]": bool(false),
+ "[goproto.proto.test.optional_int32]": int32(-32),
+ "[goproto.proto.test.optional_int64]": int64(-64),
+ "[goproto.proto.test.optional_uint32]": uint32(32),
+ "[goproto.proto.test.optional_uint64]": uint64(64),
+ "[goproto.proto.test.optional_float]": float32(32.32),
+ "[goproto.proto.test.optional_double]": float64(64.64),
+ "[goproto.proto.test.optional_string]": string("string"),
+ "[goproto.proto.test.optional_bytes]": []byte("bytes"),
+ "[goproto.proto.test.optional_nested_enum]": enumOf(testpb.TestAllTypes_NEG),
+ "[goproto.proto.test.optional_nested_message]": Message{messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(5)},
},
- wantString: `{[goproto.proto.test.optional_bool_extension]:false, [goproto.proto.test.optional_bytes_extension]:"bytes", [goproto.proto.test.optional_double_extension]:64.64, [goproto.proto.test.optional_float_extension]:32.32, [goproto.proto.test.optional_int32_extension]:-32, [goproto.proto.test.optional_int64_extension]:-64, [goproto.proto.test.optional_nested_enum_extension]:NEG, [goproto.proto.test.optional_nested_message_extension]:{a:5}, [goproto.proto.test.optional_string_extension]:"string", [goproto.proto.test.optional_uint32_extension]:32, [goproto.proto.test.optional_uint64_extension]:64}`,
+ wantString: `{[goproto.proto.test.optional_bool]:false, [goproto.proto.test.optional_bytes]:"bytes", [goproto.proto.test.optional_double]:64.64, [goproto.proto.test.optional_float]:32.32, [goproto.proto.test.optional_int32]:-32, [goproto.proto.test.optional_int64]:-64, [goproto.proto.test.optional_nested_enum]:NEG, [goproto.proto.test.optional_nested_message]:{a:5}, [goproto.proto.test.optional_string]:"string", [goproto.proto.test.optional_uint32]:32, [goproto.proto.test.optional_uint64]:64}`,
}, {
in: func() proto.Message {
m := &testpb.TestAllExtensions{}
- proto.SetExtension(m, testpb.E_RepeatedBoolExtension, []bool{false, true})
- proto.SetExtension(m, testpb.E_RepeatedInt32Extension, []int32{32, -32})
- proto.SetExtension(m, testpb.E_RepeatedInt64Extension, []int64{64, -64})
- proto.SetExtension(m, testpb.E_RepeatedUint32Extension, []uint32{0, 32})
- proto.SetExtension(m, testpb.E_RepeatedUint64Extension, []uint64{0, 64})
- proto.SetExtension(m, testpb.E_RepeatedFloatExtension, []float32{0, 32.32})
- proto.SetExtension(m, testpb.E_RepeatedDoubleExtension, []float64{0, 64.64})
- proto.SetExtension(m, testpb.E_RepeatedStringExtension, []string{"s1", "s2"})
- proto.SetExtension(m, testpb.E_RepeatedBytesExtension, [][]byte{{1}, {2}})
- proto.SetExtension(m, testpb.E_RepeatedNestedEnumExtension, []testpb.TestAllTypes_NestedEnum{
+ proto.SetExtension(m, testpb.E_RepeatedBool, []bool{false, true})
+ proto.SetExtension(m, testpb.E_RepeatedInt32, []int32{32, -32})
+ proto.SetExtension(m, testpb.E_RepeatedInt64, []int64{64, -64})
+ proto.SetExtension(m, testpb.E_RepeatedUint32, []uint32{0, 32})
+ proto.SetExtension(m, testpb.E_RepeatedUint64, []uint64{0, 64})
+ proto.SetExtension(m, testpb.E_RepeatedFloat, []float32{0, 32.32})
+ proto.SetExtension(m, testpb.E_RepeatedDouble, []float64{0, 64.64})
+ proto.SetExtension(m, testpb.E_RepeatedString, []string{"s1", "s2"})
+ proto.SetExtension(m, testpb.E_RepeatedBytes, [][]byte{{1}, {2}})
+ proto.SetExtension(m, testpb.E_RepeatedNestedEnum, []testpb.TestAllTypes_NestedEnum{
testpb.TestAllTypes_FOO,
testpb.TestAllTypes_BAR,
})
- proto.SetExtension(m, testpb.E_RepeatedNestedMessageExtension, []*testpb.TestAllExtensions_NestedMessage{
+ proto.SetExtension(m, testpb.E_RepeatedNestedMessage, []*testpb.TestAllExtensions_NestedMessage{
{A: proto.Int32(5)},
{A: proto.Int32(-5)},
})
return m
}(),
want: Message{
- messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}),
- "[goproto.proto.test.repeated_bool_extension]": []bool{false, true},
- "[goproto.proto.test.repeated_int32_extension]": []int32{32, -32},
- "[goproto.proto.test.repeated_int64_extension]": []int64{64, -64},
- "[goproto.proto.test.repeated_uint32_extension]": []uint32{0, 32},
- "[goproto.proto.test.repeated_uint64_extension]": []uint64{0, 64},
- "[goproto.proto.test.repeated_float_extension]": []float32{0, 32.32},
- "[goproto.proto.test.repeated_double_extension]": []float64{0, 64.64},
- "[goproto.proto.test.repeated_string_extension]": []string{"s1", "s2"},
- "[goproto.proto.test.repeated_bytes_extension]": [][]byte{{1}, {2}},
- "[goproto.proto.test.repeated_nested_enum_extension]": []Enum{
+ messageTypeKey: messageTypeOf(&testpb.TestAllExtensions{}),
+ "[goproto.proto.test.repeated_bool]": []bool{false, true},
+ "[goproto.proto.test.repeated_int32]": []int32{32, -32},
+ "[goproto.proto.test.repeated_int64]": []int64{64, -64},
+ "[goproto.proto.test.repeated_uint32]": []uint32{0, 32},
+ "[goproto.proto.test.repeated_uint64]": []uint64{0, 64},
+ "[goproto.proto.test.repeated_float]": []float32{0, 32.32},
+ "[goproto.proto.test.repeated_double]": []float64{0, 64.64},
+ "[goproto.proto.test.repeated_string]": []string{"s1", "s2"},
+ "[goproto.proto.test.repeated_bytes]": [][]byte{{1}, {2}},
+ "[goproto.proto.test.repeated_nested_enum]": []Enum{
enumOf(testpb.TestAllTypes_FOO),
enumOf(testpb.TestAllTypes_BAR),
},
- "[goproto.proto.test.repeated_nested_message_extension]": []Message{
+ "[goproto.proto.test.repeated_nested_message]": []Message{
{messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(5)},
{messageTypeKey: messageTypeOf(&testpb.TestAllExtensions_NestedMessage{}), "a": int32(-5)},
},
},
- wantString: `{[goproto.proto.test.repeated_bool_extension]:[false, true], [goproto.proto.test.repeated_bytes_extension]:["\x01", "\x02"], [goproto.proto.test.repeated_double_extension]:[0, 64.64], [goproto.proto.test.repeated_float_extension]:[0, 32.32], [goproto.proto.test.repeated_int32_extension]:[32, -32], [goproto.proto.test.repeated_int64_extension]:[64, -64], [goproto.proto.test.repeated_nested_enum_extension]:[FOO, BAR], [goproto.proto.test.repeated_nested_message_extension]:[{a:5}, {a:-5}], [goproto.proto.test.repeated_string_extension]:["s1", "s2"], [goproto.proto.test.repeated_uint32_extension]:[0, 32], [goproto.proto.test.repeated_uint64_extension]:[0, 64]}`,
+ wantString: `{[goproto.proto.test.repeated_bool]:[false, true], [goproto.proto.test.repeated_bytes]:["\x01", "\x02"], [goproto.proto.test.repeated_double]:[0, 64.64], [goproto.proto.test.repeated_float]:[0, 32.32], [goproto.proto.test.repeated_int32]:[32, -32], [goproto.proto.test.repeated_int64]:[64, -64], [goproto.proto.test.repeated_nested_enum]:[FOO, BAR], [goproto.proto.test.repeated_nested_message]:[{a:5}, {a:-5}], [goproto.proto.test.repeated_string]:["s1", "s2"], [goproto.proto.test.repeated_uint32]:[0, 32], [goproto.proto.test.repeated_uint64]:[0, 64]}`,
}, {
in: func() proto.Message {
m := &testpb.TestAllTypes{}