proto: check for required fields when unmarshalling groups Change-Id: Icf8b82a07500ab226cf24b4c6aacc9a0a7476a59
diff --git a/proto/all_test.go b/proto/all_test.go index fd4a94e..53f0ef7 100644 --- a/proto/all_test.go +++ b/proto/all_test.go
@@ -1311,7 +1311,7 @@ _, err := Marshal(pb) if err == nil { t.Error("marshal: expected error, got nil") - } else if strings.Index(err.Error(), "Label") < 0 { + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Label") { t.Errorf("marshal: bad error type: %v", err) } @@ -1322,7 +1322,24 @@ err = Unmarshal(buf, pb) if err == nil { t.Error("unmarshal: expected error, got nil") - } else if strings.Index(err.Error(), "{Unknown}") < 0 { + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "{Unknown}") { + t.Errorf("unmarshal: bad error type: %v", err) + } +} + +// Verify that absent required fields in groups cause Marshal/Unmarshal to return errors. +func TestRequiredFieldEnforcementGroups(t *testing.T) { + pb := &GoTestRequiredGroupField{Group: &GoTestRequiredGroupField_Group{}} + if _, err := Marshal(pb); err == nil { + t.Error("marshal: expected error, got nil") + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Group.Field") { + t.Errorf("marshal: bad error type: %v", err) + } + + buf := []byte{11, 12} + if err := Unmarshal(buf, pb); err == nil { + t.Error("unmarshal: expected error, got nil") + } else if _, ok := err.(*RequiredNotSetError); !ok || !strings.Contains(err.Error(), "Group.{Unknown}") { t.Errorf("unmarshal: bad error type: %v", err) } }
diff --git a/proto/decode.go b/proto/decode.go index 07288a2..04dcb88 100644 --- a/proto/decode.go +++ b/proto/decode.go
@@ -378,6 +378,11 @@ wire := int(u & 0x7) if wire == WireEndGroup { if is_group { + if required > 0 { + // Not enough information to determine the exact field. + // (See below.) + return &RequiredNotSetError{"{Unknown}"} + } return nil // input is satisfied } return fmt.Errorf("proto: %s: wiretype end group for non-group", st)
diff --git a/proto/testdata/test.pb.go b/proto/testdata/test.pb.go index 74b9bf2..7cdc310 100644 --- a/proto/testdata/test.pb.go +++ b/proto/testdata/test.pb.go
@@ -12,6 +12,7 @@ GoEnum GoTestField GoTest + GoTestRequiredGroupField GoSkipTest NonPackedTest PackedTest @@ -53,7 +54,9 @@ // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.ProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type FOO int32 @@ -193,7 +196,7 @@ *x = MyMessage_Color(value) return nil } -func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } +func (MyMessage_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 0} } type DefaultsMessage_DefaultsEnum int32 @@ -231,7 +234,7 @@ return nil } func (DefaultsMessage_DefaultsEnum) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{15, 0} + return fileDescriptor0, []int{16, 0} } type Defaults_Color int32 @@ -269,7 +272,7 @@ *x = Defaults_Color(value) return nil } -func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{20, 0} } +func (Defaults_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{21, 0} } type RepeatedEnum_Color int32 @@ -300,7 +303,7 @@ *x = RepeatedEnum_Color(value) return nil } -func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} } +func (RepeatedEnum_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{23, 0} } type GoEnum struct { Foo *FOO `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"` @@ -1004,6 +1007,43 @@ return "" } +// For testing a group containing a required field. +type GoTestRequiredGroupField struct { + Group *GoTestRequiredGroupField_Group `protobuf:"group,1,req,name=Group,json=group" json:"group,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTestRequiredGroupField) Reset() { *m = GoTestRequiredGroupField{} } +func (m *GoTestRequiredGroupField) String() string { return proto.CompactTextString(m) } +func (*GoTestRequiredGroupField) ProtoMessage() {} +func (*GoTestRequiredGroupField) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } + +func (m *GoTestRequiredGroupField) GetGroup() *GoTestRequiredGroupField_Group { + if m != nil { + return m.Group + } + return nil +} + +type GoTestRequiredGroupField_Group struct { + Field *int32 `protobuf:"varint,2,req,name=Field,json=field" json:"Field,omitempty"` + XXX_unrecognized []byte `json:"-"` +} + +func (m *GoTestRequiredGroupField_Group) Reset() { *m = GoTestRequiredGroupField_Group{} } +func (m *GoTestRequiredGroupField_Group) String() string { return proto.CompactTextString(m) } +func (*GoTestRequiredGroupField_Group) ProtoMessage() {} +func (*GoTestRequiredGroupField_Group) Descriptor() ([]byte, []int) { + return fileDescriptor0, []int{3, 0} +} + +func (m *GoTestRequiredGroupField_Group) GetField() int32 { + if m != nil && m.Field != nil { + return *m.Field + } + return 0 +} + // For testing skipping of unrecognized fields. // Numbers are all big, larger than tag numbers in GoTestField, // the message used in the corresponding test. @@ -1019,7 +1059,7 @@ func (m *GoSkipTest) Reset() { *m = GoSkipTest{} } func (m *GoSkipTest) String() string { return proto.CompactTextString(m) } func (*GoSkipTest) ProtoMessage() {} -func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (*GoSkipTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } func (m *GoSkipTest) GetSkipInt32() int32 { if m != nil && m.SkipInt32 != nil { @@ -1065,7 +1105,7 @@ func (m *GoSkipTest_SkipGroup) Reset() { *m = GoSkipTest_SkipGroup{} } func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) } func (*GoSkipTest_SkipGroup) ProtoMessage() {} -func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} } +func (*GoSkipTest_SkipGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 { if m != nil && m.GroupInt32 != nil { @@ -1091,7 +1131,7 @@ func (m *NonPackedTest) Reset() { *m = NonPackedTest{} } func (m *NonPackedTest) String() string { return proto.CompactTextString(m) } func (*NonPackedTest) ProtoMessage() {} -func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*NonPackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (m *NonPackedTest) GetA() []int32 { if m != nil { @@ -1108,7 +1148,7 @@ func (m *PackedTest) Reset() { *m = PackedTest{} } func (m *PackedTest) String() string { return proto.CompactTextString(m) } func (*PackedTest) ProtoMessage() {} -func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (*PackedTest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } func (m *PackedTest) GetB() []int32 { if m != nil { @@ -1126,7 +1166,7 @@ func (m *MaxTag) Reset() { *m = MaxTag{} } func (m *MaxTag) String() string { return proto.CompactTextString(m) } func (*MaxTag) ProtoMessage() {} -func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (*MaxTag) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } func (m *MaxTag) GetLastField() string { if m != nil && m.LastField != nil { @@ -1144,7 +1184,7 @@ func (m *OldMessage) Reset() { *m = OldMessage{} } func (m *OldMessage) String() string { return proto.CompactTextString(m) } func (*OldMessage) ProtoMessage() {} -func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*OldMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } func (m *OldMessage) GetNested() *OldMessage_Nested { if m != nil { @@ -1168,7 +1208,7 @@ func (m *OldMessage_Nested) Reset() { *m = OldMessage_Nested{} } func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) } func (*OldMessage_Nested) ProtoMessage() {} -func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7, 0} } +func (*OldMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} } func (m *OldMessage_Nested) GetName() string { if m != nil && m.Name != nil { @@ -1189,7 +1229,7 @@ func (m *NewMessage) Reset() { *m = NewMessage{} } func (m *NewMessage) String() string { return proto.CompactTextString(m) } func (*NewMessage) ProtoMessage() {} -func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (*NewMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } func (m *NewMessage) GetNested() *NewMessage_Nested { if m != nil { @@ -1214,7 +1254,7 @@ func (m *NewMessage_Nested) Reset() { *m = NewMessage_Nested{} } func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) } func (*NewMessage_Nested) ProtoMessage() {} -func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} } +func (*NewMessage_Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9, 0} } func (m *NewMessage_Nested) GetName() string { if m != nil && m.Name != nil { @@ -1240,7 +1280,7 @@ func (m *InnerMessage) Reset() { *m = InnerMessage{} } func (m *InnerMessage) String() string { return proto.CompactTextString(m) } func (*InnerMessage) ProtoMessage() {} -func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (*InnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } const Default_InnerMessage_Port int32 = 4000 @@ -1266,18 +1306,18 @@ } type OtherMessage struct { - Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` - Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` - Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + Key *int64 `protobuf:"varint,1,opt,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Weight *float32 `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"` + Inner *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *OtherMessage) Reset() { *m = OtherMessage{} } func (m *OtherMessage) String() string { return proto.CompactTextString(m) } func (*OtherMessage) ProtoMessage() {} -func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +func (*OtherMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } var extRange_OtherMessage = []proto.ExtensionRange{ {100, 536870911}, @@ -1286,12 +1326,6 @@ func (*OtherMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_OtherMessage } -func (m *OtherMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *OtherMessage) GetKey() int64 { if m != nil && m.Key != nil { @@ -1329,7 +1363,7 @@ func (m *RequiredInnerMessage) Reset() { *m = RequiredInnerMessage{} } func (m *RequiredInnerMessage) String() string { return proto.CompactTextString(m) } func (*RequiredInnerMessage) ProtoMessage() {} -func (*RequiredInnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (*RequiredInnerMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } func (m *RequiredInnerMessage) GetLeoFinallyWonAnOscar() *InnerMessage { if m != nil { @@ -1350,16 +1384,16 @@ Bikeshed *MyMessage_Color `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"` Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup,json=somegroup" json:"somegroup,omitempty"` // This field becomes [][]byte in the generated code. - RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes,json=repBytes" json:"rep_bytes,omitempty"` - Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + RepBytes [][]byte `protobuf:"bytes,10,rep,name=rep_bytes,json=repBytes" json:"rep_bytes,omitempty"` + Bigfloat *float64 `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyMessage) Reset() { *m = MyMessage{} } func (m *MyMessage) String() string { return proto.CompactTextString(m) } func (*MyMessage) ProtoMessage() {} -func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (*MyMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } var extRange_MyMessage = []proto.ExtensionRange{ {100, 536870911}, @@ -1368,12 +1402,6 @@ func (*MyMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyMessage } -func (m *MyMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} func (m *MyMessage) GetCount() int32 { if m != nil && m.Count != nil { @@ -1467,7 +1495,7 @@ func (m *MyMessage_SomeGroup) Reset() { *m = MyMessage_SomeGroup{} } func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) } func (*MyMessage_SomeGroup) ProtoMessage() {} -func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12, 0} } +func (*MyMessage_SomeGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 0} } func (m *MyMessage_SomeGroup) GetGroupField() int32 { if m != nil && m.GroupField != nil { @@ -1484,7 +1512,7 @@ func (m *Ext) Reset() { *m = Ext{} } func (m *Ext) String() string { return proto.CompactTextString(m) } func (*Ext) ProtoMessage() {} -func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*Ext) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } func (m *Ext) GetData() string { if m != nil && m.Data != nil { @@ -1527,7 +1555,7 @@ func (m *ComplexExtension) Reset() { *m = ComplexExtension{} } func (m *ComplexExtension) String() string { return proto.CompactTextString(m) } func (*ComplexExtension) ProtoMessage() {} -func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +func (*ComplexExtension) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } func (m *ComplexExtension) GetFirst() int32 { if m != nil && m.First != nil { @@ -1551,14 +1579,14 @@ } type DefaultsMessage struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *DefaultsMessage) Reset() { *m = DefaultsMessage{} } func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) } func (*DefaultsMessage) ProtoMessage() {} -func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (*DefaultsMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } var extRange_DefaultsMessage = []proto.ExtensionRange{ {100, 536870911}, @@ -1567,34 +1595,28 @@ func (*DefaultsMessage) ExtensionRangeArray() []proto.ExtensionRange { return extRange_DefaultsMessage } -func (m *DefaultsMessage) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type MyMessageSet struct { - XXX_extensions map[int32]proto.Extension `json:"-"` - XXX_unrecognized []byte `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` } func (m *MyMessageSet) Reset() { *m = MyMessageSet{} } func (m *MyMessageSet) String() string { return proto.CompactTextString(m) } func (*MyMessageSet) ProtoMessage() {} -func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } +func (*MyMessageSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } func (m *MyMessageSet) Marshal() ([]byte, error) { - return proto.MarshalMessageSet(m.ExtensionMap()) + return proto.MarshalMessageSet(&m.XXX_InternalExtensions) } func (m *MyMessageSet) Unmarshal(buf []byte) error { - return proto.UnmarshalMessageSet(buf, m.ExtensionMap()) + return proto.UnmarshalMessageSet(buf, &m.XXX_InternalExtensions) } func (m *MyMessageSet) MarshalJSON() ([]byte, error) { - return proto.MarshalMessageSetJSON(m.XXX_extensions) + return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions) } func (m *MyMessageSet) UnmarshalJSON(buf []byte) error { - return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions) + return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions) } // ensure MyMessageSet satisfies proto.Marshaler and proto.Unmarshaler @@ -1608,12 +1630,6 @@ func (*MyMessageSet) ExtensionRangeArray() []proto.ExtensionRange { return extRange_MyMessageSet } -func (m *MyMessageSet) ExtensionMap() map[int32]proto.Extension { - if m.XXX_extensions == nil { - m.XXX_extensions = make(map[int32]proto.Extension) - } - return m.XXX_extensions -} type Empty struct { XXX_unrecognized []byte `json:"-"` @@ -1622,7 +1638,7 @@ func (m *Empty) Reset() { *m = Empty{} } func (m *Empty) String() string { return proto.CompactTextString(m) } func (*Empty) ProtoMessage() {} -func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } type MessageList struct { Message []*MessageList_Message `protobuf:"group,1,rep,name=Message,json=message" json:"message,omitempty"` @@ -1632,7 +1648,7 @@ func (m *MessageList) Reset() { *m = MessageList{} } func (m *MessageList) String() string { return proto.CompactTextString(m) } func (*MessageList) ProtoMessage() {} -func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } +func (*MessageList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } func (m *MessageList) GetMessage() []*MessageList_Message { if m != nil { @@ -1650,7 +1666,7 @@ func (m *MessageList_Message) Reset() { *m = MessageList_Message{} } func (m *MessageList_Message) String() string { return proto.CompactTextString(m) } func (*MessageList_Message) ProtoMessage() {} -func (*MessageList_Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} } +func (*MessageList_Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } func (m *MessageList_Message) GetName() string { if m != nil && m.Name != nil { @@ -1675,7 +1691,7 @@ func (m *Strings) Reset() { *m = Strings{} } func (m *Strings) String() string { return proto.CompactTextString(m) } func (*Strings) ProtoMessage() {} -func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (*Strings) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } func (m *Strings) GetStringField() string { if m != nil && m.StringField != nil { @@ -1722,7 +1738,7 @@ func (m *Defaults) Reset() { *m = Defaults{} } func (m *Defaults) String() string { return proto.CompactTextString(m) } func (*Defaults) ProtoMessage() {} -func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (*Defaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } const Default_Defaults_F_Bool bool = true const Default_Defaults_F_Int32 int32 = 32 @@ -1886,7 +1902,7 @@ func (m *SubDefaults) Reset() { *m = SubDefaults{} } func (m *SubDefaults) String() string { return proto.CompactTextString(m) } func (*SubDefaults) ProtoMessage() {} -func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +func (*SubDefaults) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } const Default_SubDefaults_N int64 = 7 @@ -1905,7 +1921,7 @@ func (m *RepeatedEnum) Reset() { *m = RepeatedEnum{} } func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) } func (*RepeatedEnum) ProtoMessage() {} -func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (*RepeatedEnum) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color { if m != nil { @@ -1928,7 +1944,7 @@ func (m *MoreRepeated) Reset() { *m = MoreRepeated{} } func (m *MoreRepeated) String() string { return proto.CompactTextString(m) } func (*MoreRepeated) ProtoMessage() {} -func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (*MoreRepeated) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } func (m *MoreRepeated) GetBools() []bool { if m != nil { @@ -1987,7 +2003,7 @@ func (m *GroupOld) Reset() { *m = GroupOld{} } func (m *GroupOld) String() string { return proto.CompactTextString(m) } func (*GroupOld) ProtoMessage() {} -func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*GroupOld) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (m *GroupOld) GetG() *GroupOld_G { if m != nil { @@ -2004,7 +2020,7 @@ func (m *GroupOld_G) Reset() { *m = GroupOld_G{} } func (m *GroupOld_G) String() string { return proto.CompactTextString(m) } func (*GroupOld_G) ProtoMessage() {} -func (*GroupOld_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24, 0} } +func (*GroupOld_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25, 0} } func (m *GroupOld_G) GetX() int32 { if m != nil && m.X != nil { @@ -2021,7 +2037,7 @@ func (m *GroupNew) Reset() { *m = GroupNew{} } func (m *GroupNew) String() string { return proto.CompactTextString(m) } func (*GroupNew) ProtoMessage() {} -func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*GroupNew) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (m *GroupNew) GetG() *GroupNew_G { if m != nil { @@ -2039,7 +2055,7 @@ func (m *GroupNew_G) Reset() { *m = GroupNew_G{} } func (m *GroupNew_G) String() string { return proto.CompactTextString(m) } func (*GroupNew_G) ProtoMessage() {} -func (*GroupNew_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25, 0} } +func (*GroupNew_G) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26, 0} } func (m *GroupNew_G) GetX() int32 { if m != nil && m.X != nil { @@ -2064,7 +2080,7 @@ func (m *FloatingPoint) Reset() { *m = FloatingPoint{} } func (m *FloatingPoint) String() string { return proto.CompactTextString(m) } func (*FloatingPoint) ProtoMessage() {} -func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*FloatingPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *FloatingPoint) GetF() float64 { if m != nil && m.F != nil { @@ -2091,7 +2107,7 @@ func (m *MessageWithMap) Reset() { *m = MessageWithMap{} } func (m *MessageWithMap) String() string { return proto.CompactTextString(m) } func (*MessageWithMap) ProtoMessage() {} -func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*MessageWithMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } func (m *MessageWithMap) GetNameMapping() map[int32]string { if m != nil { @@ -2150,7 +2166,7 @@ func (m *Oneof) Reset() { *m = Oneof{} } func (m *Oneof) String() string { return proto.CompactTextString(m) } func (*Oneof) ProtoMessage() {} -func (*Oneof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +func (*Oneof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } type isOneof_Union interface { isOneof_Union() @@ -2696,7 +2712,7 @@ func (m *Oneof_F_Group) Reset() { *m = Oneof_F_Group{} } func (m *Oneof_F_Group) String() string { return proto.CompactTextString(m) } func (*Oneof_F_Group) ProtoMessage() {} -func (*Oneof_F_Group) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28, 0} } +func (*Oneof_F_Group) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29, 0} } func (m *Oneof_F_Group) GetX() int32 { if m != nil && m.X != nil { @@ -2723,7 +2739,7 @@ func (m *Communique) Reset() { *m = Communique{} } func (m *Communique) String() string { return proto.CompactTextString(m) } func (*Communique) ProtoMessage() {} -func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*Communique) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } type isCommunique_Union interface { isCommunique_Union() @@ -3625,6 +3641,8 @@ proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup") proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup") proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup") + proto.RegisterType((*GoTestRequiredGroupField)(nil), "testdata.GoTestRequiredGroupField") + proto.RegisterType((*GoTestRequiredGroupField_Group)(nil), "testdata.GoTestRequiredGroupField.Group") proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest") proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup") proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest") @@ -3756,278 +3774,283 @@ proto.RegisterExtension(E_X250) } +func init() { proto.RegisterFile("test.proto", fileDescriptor0) } + var fileDescriptor0 = []byte{ - // 4349 bytes of a gzipped FileDescriptorProto + // 4397 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x5a, 0x4b, 0x77, 0x1b, 0x47, 0x76, 0x76, 0xe3, 0x8d, 0x02, 0x48, 0x80, 0x2d, 0x59, 0x82, 0xa8, 0x87, 0x65, 0xcc, 0xd8, 0x96, - 0x64, 0x9b, 0x23, 0x34, 0x40, 0x52, 0x82, 0x27, 0x73, 0x8e, 0x28, 0x91, 0x1c, 0x9e, 0x11, 0x09, - 0xa6, 0x49, 0xdb, 0x67, 0x9c, 0x05, 0x0e, 0x48, 0x36, 0x40, 0x58, 0x00, 0x1a, 0x02, 0xc0, 0x48, - 0x4c, 0x36, 0xd9, 0x24, 0xdb, 0xbc, 0x36, 0xd9, 0x66, 0x95, 0x55, 0x92, 0x73, 0xf2, 0x27, 0x12, - 0xdb, 0xf3, 0xf4, 0x3c, 0xf3, 0x9c, 0xbc, 0x1f, 0x93, 0xf7, 0x6b, 0x26, 0xc9, 0x26, 0x73, 0xef, - 0xad, 0xdb, 0xdd, 0xd5, 0x0d, 0x74, 0x93, 0xd2, 0xc2, 0x44, 0x57, 0x7d, 0xdf, 0xad, 0x5b, 0xd5, - 0x5f, 0xdd, 0x5b, 0xb7, 0xda, 0x42, 0x4c, 0xac, 0xf1, 0x64, 0x69, 0x38, 0xb2, 0x27, 0xb6, 0x9e, - 0xc1, 0xdf, 0x47, 0xad, 0x49, 0xab, 0x7c, 0x5b, 0xa4, 0x36, 0xed, 0xf5, 0xc1, 0x49, 0x5f, 0x7f, - 0x45, 0xc4, 0xdb, 0xb6, 0x5d, 0xd2, 0x6e, 0xc6, 0x6e, 0xcd, 0x1b, 0x73, 0x4b, 0x0e, 0x62, 0x69, - 0xa3, 0xd1, 0x30, 0xb1, 0xa7, 0xbc, 0x2a, 0x72, 0x9b, 0xf6, 0x3e, 0x34, 0x6f, 0x74, 0xad, 0xde, - 0x91, 0x7e, 0x51, 0x24, 0x1f, 0xb7, 0x0e, 0xac, 0x1e, 0x31, 0xb2, 0x66, 0xb2, 0x87, 0x0f, 0xba, - 0x2e, 0x12, 0xfb, 0xa7, 0x43, 0xab, 0x14, 0xa3, 0xc6, 0xc4, 0x04, 0x7e, 0x97, 0x7f, 0xf9, 0x06, - 0x0e, 0x82, 0x4c, 0xfd, 0xb6, 0x48, 0x7c, 0xa9, 0x3b, 0x38, 0xe2, 0x51, 0x5e, 0xf6, 0x46, 0x91, - 0xfd, 0x4b, 0x5f, 0xda, 0xda, 0x79, 0x64, 0x26, 0x9e, 0x00, 0x04, 0xed, 0xef, 0xb7, 0x0e, 0x7a, - 0x68, 0x4a, 0x43, 0xfb, 0x13, 0x7c, 0xc0, 0xd6, 0xdd, 0xd6, 0xa8, 0xd5, 0x2f, 0xc5, 0xa1, 0x35, - 0x69, 0x26, 0x87, 0xf8, 0xa0, 0xbf, 0x23, 0xe6, 0x4c, 0xeb, 0xe9, 0x49, 0x77, 0x64, 0x1d, 0x91, - 0x73, 0xa5, 0x04, 0xd8, 0xcf, 0x4d, 0xdb, 0xa7, 0x4e, 0x73, 0x6e, 0xa4, 0x62, 0x25, 0x79, 0x68, - 0xb5, 0x26, 0x0e, 0x39, 0x79, 0x33, 0x1e, 0x49, 0x56, 0xb0, 0x48, 0x6e, 0x0c, 0x27, 0x5d, 0x7b, - 0xd0, 0xea, 0x49, 0x72, 0x0a, 0xfc, 0x0a, 0x27, 0xdb, 0x2a, 0x56, 0x7f, 0x5d, 0x14, 0x36, 0x9a, - 0x6b, 0xb6, 0xdd, 0x6b, 0x3a, 0x1e, 0x95, 0x04, 0x38, 0x9e, 0x31, 0xe7, 0xda, 0xd8, 0xea, 0x4c, - 0x49, 0xbf, 0x25, 0x8a, 0x1b, 0xcd, 0xad, 0xc1, 0xa4, 0x6a, 0x78, 0xc0, 0x1c, 0x00, 0x93, 0xe6, - 0x7c, 0x9b, 0x9a, 0xa7, 0x90, 0x2b, 0x35, 0x0f, 0x99, 0x07, 0x64, 0x5c, 0x22, 0x57, 0x6a, 0x2e, - 0xf2, 0x2d, 0xa1, 0x6f, 0x34, 0x37, 0xba, 0xcf, 0xad, 0x23, 0xd5, 0xea, 0x1c, 0x60, 0xd3, 0x66, - 0xb1, 0xcd, 0x1d, 0x33, 0xd0, 0xaa, 0xe5, 0x79, 0x40, 0xa7, 0x1c, 0xb4, 0x62, 0xfb, 0x8e, 0x58, - 0xd8, 0x68, 0xbe, 0xdb, 0xf5, 0x3b, 0x5c, 0x00, 0xf0, 0x9c, 0x59, 0x68, 0xcb, 0xf6, 0x69, 0xac, - 0x6a, 0xb8, 0x08, 0xd8, 0x04, 0x63, 0x15, 0xbb, 0x34, 0xbb, 0x8d, 0x9e, 0xdd, 0x9a, 0x78, 0xd0, - 0x05, 0x80, 0xc6, 0x60, 0x76, 0xd4, 0xec, 0xb7, 0xfa, 0xc8, 0x3e, 0x01, 0xc9, 0x78, 0x50, 0x1d, - 0xa0, 0x1a, 0x58, 0x95, 0xed, 0x7e, 0xec, 0xde, 0x64, 0xd4, 0x1d, 0x74, 0x3c, 0xec, 0x05, 0xd2, - 0x6f, 0xa1, 0x2d, 0xdb, 0xfd, 0x1e, 0xac, 0x9d, 0xc2, 0xcb, 0xf5, 0xa0, 0x16, 0x40, 0xf3, 0xe0, - 0x01, 0x35, 0x07, 0xac, 0x06, 0xd6, 0xa0, 0x0d, 0xd0, 0x05, 0xb4, 0x3a, 0x63, 0x0d, 0xf6, 0x02, - 0x6b, 0xd0, 0x01, 0xac, 0xce, 0x58, 0x65, 0x0d, 0x54, 0xcd, 0x48, 0x21, 0x96, 0x2e, 0x82, 0x5e, - 0x3d, 0xcd, 0xc8, 0x46, 0xbf, 0x66, 0x18, 0xf8, 0x32, 0x00, 0x15, 0xcd, 0x04, 0x90, 0x34, 0x38, - 0x23, 0x2f, 0x01, 0x52, 0xd1, 0x0c, 0x23, 0x03, 0x9a, 0x61, 0xec, 0x65, 0xc0, 0xfa, 0x34, 0x33, - 0x85, 0x56, 0x2d, 0x97, 0x00, 0xed, 0xd3, 0x0c, 0xa3, 0xfd, 0x9a, 0x61, 0xf0, 0x15, 0x00, 0xab, - 0x9a, 0x09, 0x62, 0x55, 0xc3, 0x8b, 0x80, 0x55, 0x35, 0xa3, 0xce, 0xce, 0xd1, 0x0c, 0x43, 0xaf, - 0x02, 0x54, 0xd1, 0x8c, 0x6a, 0xd5, 0xd5, 0x0c, 0x43, 0xaf, 0x01, 0x54, 0xd5, 0x8c, 0x8a, 0x75, - 0x35, 0xc3, 0xd8, 0xeb, 0x80, 0x55, 0x35, 0xc3, 0xd8, 0xdb, 0xaa, 0x66, 0x18, 0xfa, 0x91, 0x06, - 0x58, 0x45, 0x34, 0x0c, 0x7d, 0xd3, 0x27, 0x1a, 0xc6, 0x7e, 0x8c, 0x58, 0x55, 0x35, 0x41, 0xb0, - 0xba, 0x0a, 0x9f, 0x20, 0x58, 0x95, 0x0d, 0x83, 0x3d, 0xd9, 0x38, 0x21, 0xa8, 0x74, 0x03, 0x22, - 0x95, 0x23, 0x1b, 0x27, 0x86, 0xa9, 0xb2, 0x71, 0x81, 0xaf, 0x50, 0xa8, 0x65, 0xd9, 0x4c, 0x21, - 0x61, 0x74, 0x17, 0x79, 0x13, 0x90, 0xae, 0x6c, 0x5c, 0xa4, 0x4f, 0x36, 0x2e, 0xf6, 0x55, 0xc0, - 0x2a, 0xb2, 0x99, 0x81, 0x56, 0x2d, 0x97, 0x01, 0xad, 0xc8, 0xc6, 0x45, 0xab, 0xb2, 0x71, 0xc1, - 0x9f, 0x01, 0xb0, 0x27, 0x9b, 0x69, 0xac, 0x6a, 0xf8, 0xb3, 0x80, 0xf5, 0x64, 0xe3, 0x9f, 0x9d, - 0x94, 0x8d, 0x0b, 0x7d, 0x0d, 0xa0, 0xae, 0x6c, 0xfc, 0x56, 0x59, 0x36, 0x2e, 0xf4, 0x75, 0x80, - 0x7a, 0xb2, 0xf1, 0x63, 0x59, 0x36, 0x2e, 0xf6, 0x0d, 0xca, 0x6f, 0x8e, 0x6c, 0x5c, 0xac, 0x22, - 0x1b, 0x17, 0xfa, 0xdb, 0x98, 0x0b, 0x5d, 0xd9, 0xb8, 0x50, 0x55, 0x36, 0x2e, 0xf6, 0x77, 0x10, - 0xeb, 0xc9, 0x66, 0x1a, 0xac, 0xae, 0xc2, 0xef, 0x22, 0xd8, 0x93, 0x8d, 0x0b, 0x5e, 0x22, 0x27, - 0x50, 0x36, 0x47, 0x56, 0xbb, 0x75, 0xd2, 0x43, 0x89, 0xdd, 0x42, 0xdd, 0xd4, 0x13, 0x93, 0xd1, - 0x89, 0x85, 0x9e, 0x40, 0xe7, 0x23, 0xa7, 0x0f, 0xf0, 0x0b, 0x8e, 0x7c, 0x3c, 0xc2, 0x6d, 0xd4, - 0x4f, 0x3d, 0x06, 0xd2, 0x2d, 0x48, 0x0d, 0x4d, 0xe3, 0xc1, 0x17, 0x0f, 0x7f, 0x07, 0x55, 0x54, - 0x8f, 0x81, 0x7a, 0x0b, 0x52, 0x49, 0x1e, 0xbe, 0x2a, 0x2e, 0x78, 0x52, 0xf2, 0x18, 0x6f, 0xa2, - 0x96, 0xea, 0xf1, 0xaa, 0x71, 0xd7, 0x5c, 0x70, 0x04, 0x35, 0x8b, 0xe4, 0x1b, 0xe6, 0x2d, 0x94, - 0x54, 0x3d, 0xbe, 0x52, 0x73, 0x49, 0xea, 0x48, 0x06, 0xca, 0x90, 0x85, 0xe5, 0x71, 0xde, 0x46, - 0x65, 0xd5, 0x13, 0x30, 0xd0, 0x5d, 0x10, 0xa3, 0xec, 0x9e, 0xc1, 0xf1, 0x8d, 0xb3, 0x84, 0x0a, - 0xab, 0x27, 0x60, 0x1c, 0x87, 0xe3, 0x1f, 0x67, 0xc1, 0x11, 0x9a, 0x47, 0xf9, 0x1c, 0x2a, 0xad, - 0x9e, 0xaa, 0x56, 0x6a, 0x95, 0xe5, 0xfb, 0xb0, 0x0a, 0xd4, 0xef, 0x71, 0x6a, 0x38, 0x0e, 0x4b, - 0xce, 0x23, 0xdd, 0x45, 0xcd, 0xd5, 0x53, 0xc6, 0x6a, 0xe5, 0x9e, 0x71, 0x0f, 0x46, 0x92, 0x00, - 0x8f, 0xf5, 0x05, 0x64, 0xb1, 0xf8, 0x3c, 0x56, 0x05, 0xd5, 0x57, 0x2f, 0x1e, 0x5b, 0xbd, 0x9e, - 0xfd, 0xd6, 0xcd, 0xf2, 0x33, 0x7b, 0xd4, 0x3b, 0x7a, 0xb5, 0x2c, 0x80, 0x2f, 0xa1, 0xea, 0xa8, - 0x0b, 0x8e, 0x20, 0x3d, 0xfa, 0xaf, 0xe2, 0x39, 0x2c, 0x5f, 0x4f, 0xaf, 0x75, 0x3b, 0x03, 0x7b, - 0x6c, 0x81, 0xaf, 0x84, 0x08, 0xac, 0xc9, 0x5e, 0x70, 0x1d, 0x7f, 0x0d, 0x69, 0x0b, 0xf5, 0xf8, - 0xdb, 0x20, 0x8a, 0x22, 0x2b, 0x74, 0x06, 0xc7, 0xb7, 0x8e, 0xbf, 0x8e, 0x1c, 0x1d, 0x38, 0x20, - 0x8c, 0x22, 0x0b, 0xd5, 0xe3, 0xac, 0x8a, 0x4b, 0x81, 0xbc, 0xd8, 0x1c, 0xb6, 0x0e, 0x9f, 0x00, - 0xcf, 0xc0, 0xf4, 0xb8, 0x16, 0x2b, 0x6a, 0xe6, 0x05, 0x5f, 0x8a, 0xdc, 0xa5, 0x6e, 0xfd, 0xbe, - 0xb8, 0x1c, 0x4c, 0x94, 0x0e, 0xb3, 0x8a, 0xf9, 0x92, 0x98, 0x17, 0xfd, 0x39, 0x33, 0x40, 0x55, - 0x02, 0xb0, 0x43, 0xad, 0x61, 0x02, 0xf5, 0xa8, 0x5e, 0x24, 0x66, 0xea, 0x4f, 0x89, 0x2b, 0xd3, - 0xa9, 0xd4, 0x21, 0x2f, 0x63, 0x46, 0x25, 0xf2, 0xa5, 0x60, 0x56, 0x9d, 0xa2, 0xcf, 0x18, 0x7b, - 0x05, 0x53, 0xac, 0x4a, 0x9f, 0x1a, 0xfd, 0x1d, 0x51, 0x9a, 0x4a, 0xb6, 0x0e, 0x7b, 0x15, 0x73, - 0x2e, 0xb1, 0x5f, 0x0e, 0xe4, 0xdd, 0x20, 0x79, 0xc6, 0xd0, 0xf7, 0x30, 0x09, 0x2b, 0xe4, 0xa9, - 0x91, 0x69, 0xc9, 0xfc, 0xe9, 0xd8, 0xe1, 0xde, 0xc7, 0xac, 0xcc, 0x4b, 0xe6, 0xcb, 0xcc, 0xea, - 0xb8, 0x81, 0xfc, 0xec, 0x70, 0xeb, 0x98, 0xa6, 0x79, 0x5c, 0x7f, 0xaa, 0x66, 0xf2, 0xe7, 0x91, - 0xbc, 0x37, 0x7b, 0xc6, 0x3f, 0x8a, 0x63, 0x82, 0x65, 0xf6, 0xde, 0xac, 0x29, 0xbb, 0xec, 0x19, - 0x53, 0xfe, 0x31, 0xb2, 0x75, 0x85, 0x3d, 0x35, 0xe7, 0x47, 0xc2, 0xad, 0x38, 0x3a, 0x23, 0xfb, - 0x64, 0x58, 0xda, 0x80, 0xa3, 0x9d, 0x30, 0x6e, 0x4c, 0x55, 0x3f, 0xce, 0x21, 0x6f, 0x13, 0x51, - 0xa6, 0x9f, 0x24, 0xad, 0x48, 0xbb, 0xd2, 0xca, 0x2e, 0x8c, 0x3b, 0xdb, 0x8a, 0x44, 0xb9, 0x56, - 0x14, 0x12, 0x5a, 0x71, 0x82, 0xbe, 0xb4, 0xf2, 0x01, 0x6c, 0xaa, 0x59, 0x56, 0x9c, 0x14, 0xc0, - 0x56, 0x7c, 0xa4, 0xc5, 0x65, 0xaf, 0xde, 0xa2, 0x7e, 0xfd, 0xb3, 0xc1, 0x02, 0x6c, 0x93, 0xce, - 0xcf, 0xfe, 0x4a, 0x4b, 0xd2, 0x14, 0xe7, 0xa6, 0x69, 0x3f, 0x1d, 0x42, 0xf3, 0x79, 0x33, 0x4d, - 0xfb, 0x99, 0x19, 0xb4, 0xf2, 0x6f, 0x68, 0x50, 0x6c, 0x42, 0x3d, 0xa9, 0x67, 0x44, 0xe2, 0xbd, - 0xc6, 0xd6, 0xa3, 0xe2, 0x4b, 0xf8, 0x6b, 0xad, 0xd1, 0x78, 0x5c, 0xd4, 0xf4, 0xac, 0x48, 0xae, - 0x7d, 0x79, 0x7f, 0x7d, 0xaf, 0x18, 0xd3, 0x0b, 0x22, 0xb7, 0xb1, 0xb5, 0xb3, 0xb9, 0x6e, 0xee, - 0x9a, 0x5b, 0x3b, 0xfb, 0xc5, 0x38, 0xf6, 0x6d, 0x3c, 0x6e, 0x3c, 0xd8, 0x2f, 0x26, 0xf4, 0xb4, - 0x88, 0x63, 0x5b, 0x52, 0x17, 0x22, 0xb5, 0xb7, 0x0f, 0xfd, 0x9b, 0xc5, 0x14, 0x5a, 0xd9, 0xdf, - 0xda, 0x5e, 0x2f, 0xa6, 0x11, 0xb9, 0xff, 0xee, 0xee, 0xe3, 0xf5, 0x62, 0x06, 0x7f, 0x3e, 0x30, - 0xcd, 0x07, 0x5f, 0x2e, 0x66, 0x91, 0xb4, 0xfd, 0x60, 0xb7, 0x28, 0xa8, 0xfb, 0xc1, 0x1a, 0x74, - 0xe7, 0xf4, 0xbc, 0xc8, 0x6c, 0xbc, 0xbb, 0xf3, 0x70, 0x7f, 0xab, 0xb1, 0x53, 0xcc, 0x97, 0x7f, - 0x33, 0x26, 0xc4, 0xa6, 0xbd, 0xf7, 0xa4, 0x3b, 0xa4, 0xaa, 0xf8, 0xba, 0x10, 0x63, 0xf8, 0xdd, - 0x24, 0xe9, 0x71, 0x65, 0x97, 0xc5, 0x16, 0x0a, 0x3a, 0xfa, 0xab, 0x22, 0x4f, 0xdd, 0x6d, 0x19, - 0x0a, 0xa8, 0xa0, 0x4b, 0x9b, 0x39, 0x6c, 0xe3, 0xe8, 0xe0, 0x87, 0xac, 0xd4, 0xa8, 0x8e, 0x4b, - 0x29, 0x90, 0x95, 0x1a, 0xd4, 0xf7, 0xf4, 0xd8, 0x1c, 0x53, 0x58, 0xa7, 0xda, 0x2d, 0x6b, 0xd2, - 0xb8, 0x32, 0xd0, 0x83, 0xc8, 0x69, 0x4c, 0x29, 0x8b, 0xc2, 0xb4, 0x44, 0x1d, 0x77, 0x97, 0xf0, - 0x87, 0x94, 0x85, 0x47, 0x58, 0x6c, 0x88, 0xac, 0xdb, 0x8e, 0x63, 0x51, 0x2b, 0xcf, 0xa8, 0x48, - 0x33, 0x12, 0xd4, 0xe4, 0x4e, 0x49, 0x02, 0xd8, 0x9b, 0x05, 0xf2, 0x46, 0x92, 0xa4, 0x3b, 0xe5, - 0xeb, 0x62, 0x6e, 0xc7, 0x1e, 0xc8, 0x2d, 0x44, 0xab, 0x94, 0x17, 0x5a, 0xab, 0xa4, 0x51, 0x09, - 0xa3, 0xb5, 0xca, 0x37, 0x84, 0x50, 0xfa, 0x8a, 0x42, 0x3b, 0x90, 0x7d, 0xb4, 0x11, 0xb5, 0x83, - 0xf2, 0x9b, 0x22, 0xb5, 0xdd, 0x7a, 0xbe, 0xdf, 0xea, 0xc0, 0x58, 0xa2, 0xd7, 0x1a, 0x4f, 0x60, - 0x6d, 0x50, 0x2a, 0xff, 0x0f, 0xff, 0x34, 0x3a, 0x71, 0x65, 0xb1, 0x55, 0x4a, 0xe5, 0xa9, 0x10, - 0x8d, 0xde, 0xd1, 0xb6, 0x35, 0x1e, 0xb7, 0x3a, 0x16, 0x9c, 0x17, 0x52, 0x03, 0x30, 0x6a, 0xe1, - 0x35, 0x05, 0x16, 0xf3, 0x57, 0xbd, 0x55, 0xf0, 0x50, 0x4b, 0x3b, 0x04, 0x31, 0x19, 0x0a, 0x1e, - 0xc4, 0x07, 0x27, 0x7d, 0xba, 0xac, 0x48, 0x9a, 0xf8, 0x73, 0xf1, 0x9a, 0x48, 0x49, 0x0c, 0x5e, - 0x8a, 0x0c, 0x5a, 0x7d, 0xab, 0x24, 0xc7, 0xa5, 0xdf, 0xe5, 0x5f, 0xd1, 0x84, 0xd8, 0xb1, 0x9e, - 0x9d, 0x63, 0x4c, 0x0f, 0x15, 0x31, 0x66, 0x5c, 0x8e, 0xf9, 0x4e, 0xd4, 0x98, 0xa8, 0xb3, 0xb6, - 0x6d, 0x1f, 0x35, 0xe5, 0x2b, 0x96, 0xf7, 0x2a, 0x59, 0x6c, 0xa1, 0xb7, 0x56, 0xfe, 0x40, 0xe4, - 0xb7, 0x06, 0x03, 0x6b, 0xe4, 0xf8, 0x04, 0x26, 0x8e, 0xed, 0xf1, 0x84, 0x2f, 0x78, 0xe8, 0xb7, - 0x5e, 0x12, 0x89, 0xa1, 0x3d, 0x9a, 0xc8, 0x79, 0xd6, 0x13, 0x70, 0xa6, 0xb9, 0x6b, 0x52, 0x8b, - 0x7e, 0x4d, 0x64, 0x0f, 0x6d, 0xa0, 0x1f, 0xe2, 0x24, 0xe2, 0x54, 0x5b, 0x78, 0x0d, 0xe5, 0x5f, - 0xd2, 0x44, 0xbe, 0x31, 0x39, 0xf6, 0x8c, 0x83, 0xef, 0x4f, 0xac, 0x53, 0x72, 0x0f, 0x7c, 0x87, - 0x9f, 0x78, 0xb5, 0xf3, 0xb3, 0xad, 0xde, 0x89, 0xbc, 0xf0, 0xc9, 0x9b, 0xf2, 0x41, 0xbf, 0x24, - 0x52, 0xcf, 0xac, 0x6e, 0xe7, 0x78, 0x42, 0x36, 0x63, 0x26, 0x3f, 0x41, 0x99, 0x90, 0xec, 0xa2, - 0xb3, 0xa5, 0x04, 0xad, 0xd7, 0x25, 0x6f, 0xbd, 0xd4, 0x39, 0x98, 0x12, 0x74, 0x27, 0x93, 0x39, - 0x2a, 0xfe, 0x02, 0xfc, 0x8b, 0x95, 0xdb, 0xe2, 0xa2, 0x13, 0x3b, 0x7c, 0x93, 0xdd, 0x11, 0xa5, - 0x9e, 0x65, 0x83, 0x48, 0x20, 0xca, 0xf4, 0x4e, 0x9b, 0xcf, 0xec, 0x41, 0xb3, 0x35, 0x68, 0xda, - 0xe3, 0xc3, 0xd6, 0x88, 0x16, 0x20, 0x7c, 0x88, 0x8b, 0xc0, 0xdb, 0x90, 0xb4, 0xf7, 0xed, 0xc1, - 0x83, 0x41, 0x03, 0x39, 0xe5, 0xdf, 0x4f, 0x88, 0xec, 0xf6, 0xa9, 0x63, 0x1d, 0xe6, 0x76, 0x68, - 0x9f, 0x0c, 0xe4, 0x5a, 0x26, 0x4d, 0xf9, 0xe0, 0xbe, 0xa3, 0x98, 0xf2, 0x8e, 0x00, 0xf9, 0xf4, - 0xc4, 0x9e, 0x58, 0x34, 0xdd, 0xac, 0x29, 0x1f, 0x70, 0xb5, 0x86, 0xd6, 0x04, 0xe6, 0x8a, 0x15, - 0x26, 0xfe, 0xf4, 0xe6, 0x9f, 0x3c, 0xc7, 0xfc, 0xe1, 0x9c, 0x9d, 0xb2, 0x71, 0xf5, 0xc7, 0xa5, - 0x14, 0x5d, 0x6e, 0x29, 0x70, 0xf5, 0xad, 0x98, 0x8c, 0xd2, 0xb7, 0xc4, 0xc2, 0x33, 0xab, 0xd9, - 0x3f, 0x81, 0x6d, 0xd3, 0xb1, 0xe1, 0x0c, 0x06, 0x51, 0x7b, 0x04, 0x41, 0x05, 0x47, 0x52, 0x62, - 0xc2, 0xac, 0x85, 0x34, 0xe7, 0x9f, 0x59, 0xdb, 0xc0, 0xdb, 0xb4, 0x1f, 0x11, 0x0b, 0x94, 0x9d, - 0x85, 0x14, 0xd4, 0x94, 0xce, 0xe6, 0x83, 0xa3, 0xfb, 0xa8, 0x19, 0x00, 0x52, 0x83, 0xbe, 0x2c, - 0x32, 0x07, 0xdd, 0x27, 0xd6, 0xf8, 0x18, 0xb4, 0x94, 0x86, 0x61, 0xe7, 0x8d, 0x2b, 0x1e, 0xc7, - 0x5d, 0xd6, 0xa5, 0x87, 0x76, 0xcf, 0x1e, 0x99, 0x2e, 0x14, 0x8e, 0x08, 0xd9, 0xb1, 0xdd, 0xb7, - 0xa4, 0xbe, 0x33, 0x94, 0xd9, 0xae, 0xcf, 0xe2, 0xed, 0x01, 0xc8, 0x89, 0x60, 0x0e, 0x5e, 0xbf, - 0x2a, 0x1d, 0x3d, 0xc0, 0xf3, 0x6b, 0x49, 0x50, 0x7d, 0x8e, 0x0e, 0xd1, 0x79, 0x56, 0x5f, 0x44, - 0x87, 0x3a, 0x6d, 0x3c, 0x96, 0x40, 0x80, 0xc6, 0xe2, 0xce, 0x7d, 0x5e, 0x7c, 0x0b, 0x42, 0x9f, - 0x63, 0xd0, 0x0b, 0x7d, 0x32, 0xdc, 0x64, 0x29, 0x1e, 0xc8, 0xd0, 0x27, 0x63, 0xcd, 0x6b, 0x22, - 0x49, 0x6e, 0x63, 0x9a, 0x30, 0xd7, 0x31, 0x2b, 0x41, 0x9a, 0xd8, 0x34, 0xd7, 0xd7, 0x77, 0x20, - 0x2d, 0x61, 0x82, 0x7a, 0xfc, 0xee, 0x7a, 0x31, 0xa6, 0x28, 0xf6, 0xb7, 0x34, 0x11, 0x5f, 0x7f, - 0x4e, 0x6a, 0xc1, 0x69, 0x38, 0x3b, 0x1a, 0x7f, 0x1b, 0x2b, 0x22, 0xd1, 0xb7, 0x47, 0x96, 0x7e, - 0x61, 0xc6, 0x2c, 0x4b, 0x1d, 0x7a, 0x5f, 0xca, 0x55, 0x2e, 0x58, 0x31, 0x09, 0x6f, 0xbc, 0x21, - 0x12, 0x13, 0x0b, 0x6c, 0xce, 0xe4, 0x1d, 0xcb, 0x01, 0x10, 0x60, 0x40, 0x18, 0x85, 0xb8, 0x72, - 0x00, 0xaf, 0x64, 0x26, 0xb4, 0x4b, 0xd3, 0x63, 0x48, 0xf9, 0x3d, 0x51, 0x7c, 0x68, 0xf7, 0x87, - 0x3d, 0xeb, 0x39, 0x8c, 0x64, 0x0d, 0xc6, 0x90, 0xb2, 0x51, 0xcf, 0xed, 0xee, 0x88, 0xa2, 0x08, - 0x5d, 0xd8, 0xd2, 0x03, 0xee, 0xea, 0xb1, 0x05, 0xd1, 0xe1, 0x88, 0x03, 0x26, 0x3f, 0x21, 0x7a, - 0x72, 0xdc, 0x1d, 0x61, 0x00, 0xc1, 0x38, 0x2f, 0x1f, 0xca, 0x9b, 0xa2, 0xc0, 0x07, 0xfd, 0x31, - 0x0f, 0x5c, 0xbe, 0x23, 0xf2, 0x4e, 0x13, 0xdd, 0x5e, 0xc3, 0xc2, 0x7d, 0xb0, 0x6e, 0x36, 0x60, - 0x35, 0x61, 0x59, 0x1b, 0x3b, 0xeb, 0xb0, 0x96, 0xf0, 0x63, 0xff, 0xfd, 0x86, 0x6f, 0x29, 0xaf, - 0x89, 0xbc, 0xeb, 0xfb, 0x9e, 0x35, 0xa1, 0x1e, 0x4c, 0x08, 0xe9, 0x7a, 0x2c, 0xa3, 0x95, 0xd3, - 0x22, 0xb9, 0xde, 0x1f, 0x4e, 0x4e, 0xcb, 0x3f, 0x2f, 0x72, 0x0c, 0x7a, 0xdc, 0x05, 0x67, 0x57, - 0x45, 0xba, 0xcf, 0xf3, 0xd5, 0xe8, 0xcc, 0xa5, 0x6a, 0xca, 0xc3, 0x39, 0xbf, 0x4d, 0x07, 0xbd, - 0x58, 0x15, 0x69, 0x25, 0x96, 0xf2, 0x56, 0x8f, 0xa9, 0x5b, 0x5d, 0x06, 0x85, 0xb8, 0x12, 0x14, - 0xca, 0xdb, 0x22, 0x2d, 0x33, 0xe0, 0x98, 0xb2, 0xba, 0xac, 0xd7, 0xa4, 0x98, 0xe4, 0x9b, 0xcf, - 0xc9, 0x36, 0x79, 0x85, 0x0c, 0x72, 0x23, 0xc1, 0x32, 0x42, 0x86, 0x4e, 0x41, 0x4d, 0x52, 0x6e, - 0xbf, 0x97, 0x14, 0x19, 0x67, 0xa5, 0x40, 0xe2, 0x29, 0x59, 0x24, 0x91, 0x29, 0xa7, 0x88, 0x4f, - 0x52, 0x59, 0x04, 0x9d, 0x69, 0x2e, 0x84, 0x38, 0xba, 0x63, 0xc5, 0x9e, 0x92, 0x85, 0x8f, 0xdb, - 0x09, 0x67, 0x8b, 0xb8, 0x5b, 0x9e, 0xa7, 0x64, 0x69, 0xa3, 0xdf, 0x14, 0x59, 0xb7, 0x98, 0xa1, - 0x78, 0xcc, 0xb5, 0x78, 0xc6, 0xa9, 0x5e, 0x14, 0x04, 0x18, 0x48, 0x7a, 0x85, 0x77, 0xa6, 0xed, - 0x1d, 0x4f, 0x32, 0x4e, 0x49, 0x42, 0x77, 0xe8, 0x4e, 0x95, 0x9d, 0xe6, 0x22, 0xc4, 0x03, 0x80, - 0x85, 0xb4, 0x52, 0x52, 0xa7, 0xb9, 0xd0, 0x00, 0x40, 0x9a, 0x4b, 0x0b, 0xda, 0xfa, 0x5e, 0xfd, - 0x9c, 0x92, 0xe5, 0x04, 0x2c, 0x67, 0xc6, 0x29, 0x20, 0x68, 0x5f, 0x7a, 0xc5, 0x72, 0x9a, 0x8b, - 0x06, 0xfd, 0x4d, 0x84, 0xc8, 0xe5, 0x87, 0x10, 0x30, 0xbb, 0x32, 0x4e, 0x73, 0x65, 0x0c, 0x93, - 0x4a, 0x73, 0x41, 0x4c, 0x21, 0x41, 0xa9, 0x82, 0x53, 0xb2, 0x0a, 0xd6, 0x6f, 0x90, 0x39, 0x39, - 0xa9, 0xbc, 0x57, 0xf1, 0xa6, 0xb9, 0xca, 0xf0, 0xfa, 0xe9, 0xc8, 0xe6, 0x56, 0xb7, 0x69, 0xae, - 0x23, 0xf4, 0x15, 0x7c, 0x5f, 0xa8, 0x6f, 0x38, 0xae, 0x61, 0x10, 0x2c, 0x79, 0xc2, 0x73, 0xde, - 0xa9, 0x8c, 0x81, 0x75, 0x19, 0x41, 0xe0, 0x55, 0xd2, 0x6e, 0x58, 0x44, 0xde, 0x6e, 0x77, 0xd0, - 0x86, 0x73, 0x1c, 0xae, 0x44, 0x1c, 0x7e, 0x42, 0x1f, 0xb6, 0x48, 0x0d, 0xec, 0x60, 0x5f, 0x91, - 0xfa, 0x12, 0x6f, 0xcb, 0x4e, 0x6c, 0x82, 0xf4, 0x9e, 0x84, 0xce, 0xd6, 0x00, 0x0e, 0x64, 0xc4, - 0x1b, 0xb4, 0x06, 0x66, 0xa2, 0x0d, 0x0d, 0xfa, 0x1b, 0x22, 0x3e, 0x3e, 0x39, 0x28, 0xe9, 0xc1, - 0xcf, 0x1b, 0x7b, 0x27, 0x07, 0x8e, 0x2b, 0x26, 0x22, 0xc0, 0x7e, 0x06, 0x04, 0xda, 0xfc, 0x39, - 0x6b, 0x64, 0x97, 0x2e, 0xd0, 0x12, 0xbe, 0x64, 0xa6, 0xa1, 0xe5, 0x03, 0x68, 0x38, 0x67, 0xf0, - 0x83, 0xc3, 0x5d, 0x4e, 0xb1, 0x0b, 0x27, 0x74, 0x6d, 0x20, 0x4f, 0x0a, 0x75, 0x6d, 0xd5, 0xd4, - 0x06, 0xe5, 0x7d, 0x91, 0x77, 0x0a, 0x09, 0x9a, 0xaf, 0x81, 0x3b, 0x09, 0xcc, 0xd2, 0xfe, 0x9c, - 0x37, 0xae, 0xa9, 0x29, 0xca, 0x83, 0x71, 0xba, 0x90, 0xd0, 0x72, 0x31, 0xe0, 0x8a, 0x56, 0xfe, - 0x01, 0x9c, 0x51, 0xb6, 0x21, 0x3a, 0xba, 0x97, 0xa6, 0xb0, 0x41, 0x0f, 0x60, 0x67, 0x8c, 0xc9, - 0x6c, 0xc6, 0x94, 0x0f, 0xfa, 0x6b, 0x22, 0x4f, 0x3f, 0x9c, 0x02, 0x30, 0xe6, 0xde, 0x2f, 0xe4, - 0xa8, 0x9d, 0xab, 0x3e, 0xd8, 0xf1, 0xf0, 0x12, 0xc7, 0x1c, 0xc9, 0xe8, 0xb7, 0xfe, 0x19, 0x91, - 0xc3, 0xbf, 0x0e, 0x33, 0xe1, 0x1e, 0x58, 0x05, 0x36, 0x33, 0xf1, 0x0d, 0x31, 0x47, 0x6f, 0xdf, - 0x85, 0xa5, 0xdd, 0xbb, 0x84, 0xbc, 0xec, 0x60, 0x60, 0x49, 0xa4, 0x65, 0x28, 0x18, 0xd3, 0x27, - 0xab, 0xac, 0xe9, 0x3c, 0x62, 0x78, 0xa5, 0x4a, 0x40, 0xa6, 0xfb, 0xb4, 0xc9, 0x4f, 0xe5, 0x07, - 0x22, 0x43, 0x59, 0x0a, 0x8e, 0xb1, 0x7a, 0x59, 0x68, 0x9d, 0x92, 0x45, 0x39, 0xf2, 0xa2, 0x72, - 0xcc, 0xe7, 0xee, 0xa5, 0x4d, 0x53, 0xeb, 0x2c, 0x2e, 0x08, 0x6d, 0x13, 0xcf, 0xdd, 0xcf, 0x39, - 0x4c, 0x6b, 0xcf, 0xcb, 0x0d, 0x36, 0x01, 0xa7, 0xd2, 0x28, 0x13, 0xd0, 0x2d, 0x4d, 0xbc, 0x32, - 0x65, 0x02, 0x9f, 0x4e, 0xf9, 0xfb, 0x9d, 0x76, 0x5a, 0xae, 0x8a, 0x39, 0xda, 0x9e, 0xe0, 0xf8, - 0xae, 0x0d, 0xf3, 0xc3, 0xee, 0x36, 0x9d, 0x93, 0xe0, 0x1c, 0xdf, 0xc6, 0x77, 0x60, 0x3d, 0x6f, - 0x1d, 0xca, 0x13, 0x27, 0xbc, 0x03, 0x7a, 0x28, 0x7f, 0x9a, 0x10, 0xf3, 0x1c, 0x5a, 0xdf, 0xef, - 0x4e, 0x8e, 0xb7, 0x5b, 0x43, 0xfd, 0xb1, 0xc8, 0x63, 0x54, 0x6d, 0xf6, 0x5b, 0xc3, 0x21, 0x6e, - 0x5f, 0x8d, 0x8e, 0x1a, 0xb7, 0xa7, 0x42, 0x35, 0xe3, 0x97, 0x76, 0x00, 0xbc, 0x2d, 0xb1, 0xeb, - 0x83, 0xc9, 0xe8, 0xd4, 0xcc, 0x0d, 0xbc, 0x16, 0x38, 0x00, 0xe5, 0xfa, 0xe3, 0x8e, 0x6b, 0x2c, - 0x46, 0xc6, 0x6e, 0x85, 0x1a, 0xdb, 0x1e, 0x77, 0x7c, 0xb6, 0x44, 0xdf, 0x6d, 0x40, 0xc7, 0x30, - 0x1e, 0xbb, 0xb6, 0xe2, 0x67, 0x38, 0x86, 0xa1, 0xc3, 0xef, 0xd8, 0x81, 0xd7, 0x02, 0x05, 0xbc, - 0xc0, 0xed, 0x35, 0xb1, 0xb1, 0x74, 0x22, 0x05, 0xe5, 0x8c, 0xd7, 0x43, 0x6d, 0x41, 0xa4, 0xda, - 0xb7, 0xe1, 0x3f, 0xd2, 0x10, 0x6e, 0x4c, 0x7a, 0x5c, 0xfc, 0x82, 0x28, 0x06, 0xe7, 0xaf, 0x9e, - 0xc8, 0x93, 0x33, 0x4e, 0xe4, 0x59, 0x3e, 0x91, 0xd7, 0x63, 0xf7, 0xb4, 0xc5, 0xf7, 0x44, 0x21, - 0x30, 0x65, 0x95, 0xae, 0x4b, 0xfa, 0xdb, 0x2a, 0x3d, 0x67, 0x5c, 0x56, 0xbe, 0x29, 0xab, 0x2f, - 0x5c, 0xb5, 0x0b, 0x7e, 0x05, 0xa7, 0xaf, 0x1a, 0xce, 0x44, 0x54, 0x0a, 0xc4, 0x7f, 0x47, 0xcc, - 0xf9, 0xa6, 0xac, 0x92, 0xb3, 0x67, 0x4c, 0xaa, 0xfc, 0x8b, 0x49, 0x91, 0x6c, 0x0c, 0x2c, 0xbb, - 0xad, 0x5f, 0xf6, 0xe7, 0xc9, 0x2f, 0xbe, 0xe4, 0xe4, 0xc8, 0x2b, 0x81, 0x1c, 0x09, 0x3d, 0x4e, - 0x86, 0xbc, 0x12, 0xc8, 0x90, 0x4e, 0x17, 0x84, 0xf1, 0xeb, 0x53, 0xf9, 0x11, 0x3a, 0xbd, 0xe4, - 0x78, 0x7d, 0x2a, 0x39, 0x7a, 0xdd, 0xc0, 0xbe, 0x1a, 0xcc, 0x8c, 0xd0, 0xeb, 0x66, 0xc5, 0xab, - 0xc1, 0xac, 0xe8, 0x76, 0x02, 0xf3, 0x4a, 0x20, 0x23, 0x92, 0x4b, 0x32, 0x17, 0x5e, 0x0d, 0xe6, - 0x42, 0xe2, 0x71, 0x16, 0xbc, 0x1a, 0xcc, 0x82, 0xd4, 0xc9, 0x59, 0xef, 0x4a, 0x20, 0xeb, 0x91, - 0x51, 0x99, 0xee, 0xae, 0x06, 0xd3, 0x9d, 0xe4, 0x29, 0x9e, 0xaa, 0xb9, 0xce, 0xed, 0x04, 0x4f, - 0x8d, 0x40, 0xa2, 0x0b, 0x3f, 0xed, 0xd3, 0xbb, 0xa0, 0xa0, 0x5f, 0xc3, 0x65, 0x73, 0x0e, 0xa2, - 0x85, 0x88, 0xcf, 0xee, 0xb4, 0x9a, 0xce, 0x41, 0xcc, 0x10, 0xe9, 0x36, 0x17, 0xc0, 0x45, 0x8a, - 0x5c, 0x8a, 0x2c, 0xe9, 0xe5, 0x2f, 0x6d, 0x34, 0x29, 0x82, 0xd1, 0xbc, 0xe4, 0x99, 0xfe, 0x16, - 0x84, 0xa8, 0xe6, 0xe3, 0xd6, 0xa8, 0x03, 0xc0, 0xe6, 0x7e, 0xab, 0xe3, 0x5e, 0x22, 0xe0, 0xfb, - 0xcf, 0xb5, 0xb9, 0x07, 0xef, 0x1a, 0x2e, 0x39, 0xe2, 0x3a, 0xa2, 0x5e, 0x8d, 0xe5, 0xb5, 0x78, - 0x19, 0x17, 0x4d, 0x1a, 0xa3, 0x58, 0xb8, 0xc0, 0xb1, 0x70, 0x0d, 0xce, 0x9c, 0x27, 0x03, 0x38, - 0x27, 0xaf, 0x65, 0x45, 0x7a, 0x62, 0x8f, 0xfa, 0xad, 0x89, 0x5d, 0xfe, 0xa1, 0x26, 0x04, 0x9c, - 0xa3, 0xfb, 0xd0, 0xf1, 0x14, 0x2a, 0x60, 0x48, 0x86, 0xfd, 0xd6, 0x13, 0x88, 0x1f, 0x56, 0xf3, - 0x70, 0xe4, 0xec, 0x83, 0x2c, 0x36, 0x6d, 0x5b, 0x0f, 0x41, 0xe2, 0x25, 0xe7, 0x88, 0x4e, 0xda, - 0x21, 0x49, 0xf2, 0x91, 0xfd, 0x22, 0x1f, 0x3a, 0x53, 0xfc, 0x0e, 0x9d, 0x63, 0xa7, 0xac, 0x23, - 0xd2, 0xfc, 0xf6, 0xe8, 0x09, 0x25, 0x3f, 0xb1, 0xfa, 0xc3, 0xe6, 0x21, 0x49, 0x05, 0xe5, 0x90, - 0xc4, 0xe7, 0x87, 0xb0, 0x8b, 0xe3, 0x90, 0x30, 0x49, 0x24, 0x67, 0xbc, 0x17, 0xc4, 0x41, 0x76, - 0x8c, 0x43, 0xec, 0x23, 0xd9, 0xe4, 0x8c, 0x05, 0xe5, 0x9c, 0x20, 0x53, 0x13, 0xc2, 0xa0, 0xdf, - 0x9d, 0xf7, 0x9d, 0x82, 0x88, 0x6f, 0x34, 0x1a, 0x98, 0xfb, 0xe1, 0x4f, 0xa5, 0xa8, 0xd5, 0x3f, - 0x27, 0x32, 0x9d, 0x91, 0x65, 0x61, 0x78, 0x98, 0x5d, 0x73, 0x7c, 0x48, 0xb9, 0xce, 0x05, 0xd5, - 0xe1, 0xc0, 0x7c, 0x28, 0xab, 0x0e, 0x3d, 0xa4, 0xac, 0x2d, 0xfd, 0x81, 0xbc, 0x54, 0x59, 0xf4, - 0xba, 0x83, 0x75, 0x8a, 0xe9, 0xd8, 0xa8, 0xef, 0x42, 0x19, 0xd8, 0x3c, 0xcb, 0xe0, 0x47, 0x32, - 0xbb, 0x44, 0x19, 0xcc, 0x8c, 0xb8, 0xa9, 0xbe, 0x2e, 0x16, 0x06, 0xb6, 0xf3, 0x21, 0xa3, 0x79, - 0x24, 0xf7, 0xd8, 0x95, 0xe9, 0xa3, 0x9c, 0x63, 0xdc, 0x92, 0x1f, 0x0f, 0x07, 0x36, 0x77, 0xc8, - 0x5d, 0x59, 0x7f, 0x28, 0x8a, 0x8a, 0x19, 0x2a, 0x3d, 0xa3, 0xac, 0xb4, 0xe5, 0xd7, 0x4a, 0xd7, - 0x0a, 0xed, 0xfb, 0x80, 0x11, 0xb9, 0x33, 0x23, 0x8c, 0x74, 0xe4, 0xa7, 0x5f, 0xd7, 0x08, 0x85, - 0xba, 0x69, 0x23, 0x18, 0x6b, 0xc2, 0x8d, 0x1c, 0xcb, 0xaf, 0xc2, 0xaa, 0x91, 0x95, 0x5a, 0x60, - 0x55, 0x4e, 0xce, 0x74, 0xa5, 0x2b, 0x3f, 0xea, 0xba, 0x56, 0x64, 0x00, 0x9c, 0x61, 0x26, 0xda, - 0x99, 0x0f, 0xe5, 0xf7, 0x5e, 0x9f, 0x99, 0x29, 0x6f, 0xc6, 0x67, 0x7a, 0xf3, 0x44, 0x7e, 0x5c, - 0x75, 0xcd, 0xec, 0xcd, 0xf2, 0x66, 0x7c, 0xa6, 0x37, 0x3d, 0xf9, 0xd9, 0xd5, 0x67, 0x06, 0xbc, - 0xd9, 0x14, 0xba, 0xfa, 0xaa, 0x39, 0x4f, 0x44, 0xd8, 0xe9, 0xcb, 0x8f, 0xe9, 0xde, 0xcb, 0x96, - 0x94, 0x59, 0x86, 0xa2, 0x1d, 0x1a, 0xc8, 0xef, 0xec, 0x7e, 0x43, 0xe0, 0xd1, 0x96, 0xb8, 0xa0, - 0x4e, 0xec, 0x1c, 0x2e, 0xd9, 0x60, 0xa9, 0x60, 0x2e, 0x78, 0x53, 0x63, 0xce, 0x4c, 0x53, 0xd1, - 0x4e, 0x0d, 0xc1, 0x54, 0x71, 0xca, 0x14, 0x78, 0xf5, 0x40, 0x14, 0x14, 0x53, 0x07, 0x94, 0xa1, - 0xc3, 0xcd, 0x3c, 0x95, 0xff, 0xc3, 0x83, 0x6b, 0x06, 0x33, 0x7a, 0xf0, 0x8d, 0x71, 0x8e, 0x0b, - 0x37, 0x32, 0x92, 0x5f, 0xeb, 0x3d, 0x5f, 0x88, 0x11, 0xd8, 0x12, 0x54, 0x7f, 0x47, 0x59, 0x19, - 0xcb, 0xef, 0xf8, 0x9e, 0x2b, 0x48, 0xa8, 0x77, 0x7d, 0xd3, 0xb1, 0x30, 0xc9, 0x45, 0xd8, 0x98, - 0x50, 0x44, 0x7e, 0x3d, 0x14, 0xb0, 0xa4, 0x5e, 0x90, 0x28, 0xd3, 0xc6, 0x47, 0x78, 0x09, 0xf3, - 0xe7, 0x0f, 0x48, 0x1f, 0x69, 0xb2, 0x5a, 0xae, 0x2e, 0x61, 0x41, 0x6d, 0xce, 0x1d, 0xf9, 0xe2, - 0xd2, 0xba, 0x98, 0x3b, 0x77, 0x50, 0xfa, 0x58, 0x93, 0x35, 0x27, 0x5a, 0x32, 0xf3, 0x47, 0xfe, - 0xc8, 0x34, 0x77, 0xee, 0xb0, 0xf4, 0x89, 0x26, 0x2f, 0x28, 0x6a, 0x86, 0x6b, 0xc4, 0x89, 0x4c, - 0x73, 0xe7, 0x0e, 0x4b, 0x5f, 0x91, 0x15, 0x65, 0xac, 0x56, 0x55, 0x8d, 0x50, 0x2c, 0x98, 0x3f, - 0x7f, 0x58, 0xfa, 0xaa, 0x46, 0x97, 0x15, 0xb1, 0x5a, 0xcd, 0x5d, 0x17, 0x37, 0x32, 0xcd, 0x9f, - 0x3f, 0x2c, 0x7d, 0x4d, 0xa3, 0x2b, 0x8d, 0x58, 0x6d, 0xd9, 0x67, 0xc6, 0xef, 0xcd, 0xd9, 0x61, - 0xe9, 0xeb, 0x1a, 0xdd, 0x32, 0xc4, 0x6a, 0x2b, 0xae, 0x99, 0xbd, 0x29, 0x6f, 0xce, 0x0e, 0x4b, - 0xdf, 0xa0, 0x53, 0x3c, 0x98, 0x59, 0xf5, 0x99, 0xa1, 0xc8, 0x54, 0x78, 0x81, 0xb0, 0xf4, 0x4d, - 0x8d, 0x2e, 0x83, 0x62, 0xb5, 0x7b, 0xa6, 0x33, 0xba, 0x17, 0x99, 0x0a, 0x2f, 0x10, 0x96, 0x3e, - 0xd5, 0xe8, 0xce, 0x28, 0x56, 0xbb, 0xef, 0x37, 0x44, 0x91, 0xa9, 0xf8, 0x22, 0x61, 0xe9, 0x5b, - 0x68, 0xa9, 0x50, 0x8f, 0x2d, 0xdf, 0x35, 0x1d, 0x07, 0x94, 0xc8, 0x54, 0x7c, 0x91, 0xb0, 0xf4, - 0x6d, 0x34, 0x55, 0x04, 0x53, 0x95, 0x80, 0x29, 0xf0, 0xea, 0xa1, 0xc8, 0x9f, 0x37, 0x2c, 0x7d, - 0x47, 0xbd, 0x8b, 0xcb, 0x1d, 0x29, 0xb1, 0x69, 0x57, 0x79, 0x67, 0x67, 0x06, 0xa6, 0xef, 0x52, - 0x8d, 0x53, 0x9f, 0xfb, 0xa2, 0xbc, 0xaf, 0x92, 0x04, 0xef, 0xf5, 0xc9, 0x30, 0xb5, 0xed, 0xed, - 0x8f, 0x33, 0x63, 0xd4, 0xf7, 0x34, 0xba, 0xd4, 0xca, 0xb3, 0x41, 0xc2, 0xbb, 0x3b, 0x45, 0x06, - 0xac, 0x0f, 0xbd, 0x59, 0x9e, 0x15, 0xad, 0xbe, 0xaf, 0xbd, 0x48, 0xb8, 0xaa, 0xe3, 0x1d, 0xae, - 0xbb, 0x18, 0xd4, 0xf2, 0x79, 0x91, 0x78, 0x6e, 0xdc, 0xad, 0xa8, 0x47, 0x32, 0xf5, 0x2e, 0x57, + 0x64, 0x9b, 0x43, 0x36, 0x40, 0x52, 0x82, 0x27, 0x3e, 0x47, 0x94, 0x48, 0x0e, 0xcf, 0x88, 0x04, + 0xd3, 0xa4, 0xed, 0x33, 0xca, 0x02, 0x07, 0x24, 0x1b, 0x20, 0x2c, 0x00, 0x0d, 0x01, 0x60, 0x24, + 0x26, 0x9b, 0x6c, 0x92, 0x6d, 0x5e, 0x9b, 0x6c, 0xb3, 0xca, 0x2a, 0xc9, 0x39, 0xf9, 0x13, 0x89, + 0xed, 0x79, 0x7a, 0x9e, 0x79, 0x4e, 0xde, 0x8f, 0xc9, 0xfb, 0x35, 0x4e, 0xb2, 0xc9, 0xdc, 0x7b, + 0xeb, 0x76, 0x77, 0x75, 0x03, 0xdd, 0xa4, 0xbc, 0xb0, 0xba, 0xab, 0xbe, 0xef, 0xd6, 0xad, 0xea, + 0xaf, 0xee, 0xad, 0x5b, 0xa0, 0x10, 0x63, 0x6b, 0x34, 0x5e, 0x18, 0x0c, 0xed, 0xb1, 0xad, 0x67, + 0xf0, 0xf9, 0xa8, 0x39, 0x6e, 0x96, 0x6f, 0x8b, 0xd4, 0xa6, 0xbd, 0xde, 0x3f, 0xe9, 0xe9, 0xaf, + 0x88, 0x78, 0xcb, 0xb6, 0x4b, 0xda, 0xcd, 0xd8, 0xad, 0x59, 0x63, 0x66, 0xc1, 0x41, 0x2c, 0x6c, + 0xd4, 0xeb, 0x26, 0xf6, 0x94, 0x57, 0x45, 0x6e, 0xd3, 0xde, 0x87, 0xe6, 0x8d, 0x8e, 0xd5, 0x3d, + 0xd2, 0x2f, 0x8a, 0xe4, 0xa3, 0xe6, 0x81, 0xd5, 0x25, 0x46, 0xd6, 0x4c, 0x76, 0xf1, 0x45, 0xd7, + 0x45, 0x62, 0xff, 0x74, 0x60, 0x95, 0x62, 0xd4, 0x98, 0x18, 0xc3, 0x73, 0xf9, 0x97, 0x6f, 0xe0, + 0x20, 0xc8, 0xd4, 0x6f, 0x8b, 0xc4, 0x97, 0x3b, 0xfd, 0x23, 0x1e, 0xe5, 0x65, 0x6f, 0x14, 0xd9, + 0xbf, 0xf0, 0xe5, 0xad, 0x9d, 0x87, 0x66, 0xe2, 0x09, 0x40, 0xd0, 0xfe, 0x7e, 0xf3, 0xa0, 0x8b, + 0xa6, 0x34, 0xb4, 0x3f, 0xc6, 0x17, 0x6c, 0xdd, 0x6d, 0x0e, 0x9b, 0xbd, 0x52, 0x1c, 0x5a, 0x93, + 0x66, 0x72, 0x80, 0x2f, 0xfa, 0x3b, 0x62, 0xc6, 0xb4, 0x9e, 0x9e, 0x74, 0x86, 0xd6, 0x11, 0x39, + 0x57, 0x4a, 0x80, 0xfd, 0xdc, 0xa4, 0x7d, 0xea, 0x34, 0x67, 0x86, 0x2a, 0x56, 0x92, 0x07, 0x56, + 0x73, 0xec, 0x90, 0x93, 0x37, 0xe3, 0x91, 0x64, 0x05, 0x8b, 0xe4, 0xfa, 0x60, 0xdc, 0xb1, 0xfb, + 0xcd, 0xae, 0x24, 0xa7, 0xc0, 0xaf, 0x70, 0xb2, 0xad, 0x62, 0xf5, 0xd7, 0x45, 0x61, 0xa3, 0xb1, + 0x66, 0xdb, 0xdd, 0x86, 0xe3, 0x51, 0x49, 0x80, 0xe3, 0x19, 0x73, 0xa6, 0x85, 0xad, 0xce, 0x94, + 0xf4, 0x5b, 0xa2, 0xb8, 0xd1, 0xd8, 0xea, 0x8f, 0x2b, 0x86, 0x07, 0xcc, 0x01, 0x30, 0x69, 0xce, + 0xb6, 0xa8, 0x79, 0x02, 0xb9, 0x52, 0xf5, 0x90, 0x79, 0x40, 0xc6, 0x25, 0x72, 0xa5, 0xea, 0x22, + 0xdf, 0x12, 0xfa, 0x46, 0x63, 0xa3, 0xf3, 0xdc, 0x3a, 0x52, 0xad, 0xce, 0x00, 0x36, 0x6d, 0x16, + 0x5b, 0xdc, 0x31, 0x05, 0xad, 0x5a, 0x9e, 0x05, 0x74, 0xca, 0x41, 0x2b, 0xb6, 0xef, 0x88, 0xb9, + 0x8d, 0xc6, 0x7b, 0x1d, 0xbf, 0xc3, 0x05, 0x00, 0xcf, 0x98, 0x85, 0x96, 0x6c, 0x9f, 0xc4, 0xaa, + 0x86, 0x8b, 0x80, 0x4d, 0x30, 0x56, 0xb1, 0x4b, 0xb3, 0xdb, 0xe8, 0xda, 0xcd, 0xb1, 0x07, 0x9d, + 0x03, 0x68, 0x0c, 0x66, 0x47, 0xcd, 0x7e, 0xab, 0x0f, 0xed, 0x13, 0x90, 0x8c, 0x07, 0xd5, 0x01, + 0xaa, 0x81, 0x55, 0xd9, 0xee, 0xc7, 0xee, 0x8d, 0x87, 0x9d, 0x7e, 0xdb, 0xc3, 0x5e, 0x20, 0xfd, + 0x16, 0x5a, 0xb2, 0xdd, 0xef, 0xc1, 0xda, 0x29, 0x7c, 0x5c, 0x0f, 0x6a, 0x01, 0x34, 0x0f, 0x1e, + 0x50, 0x73, 0xc0, 0x6a, 0x60, 0x0d, 0x5a, 0x00, 0x9d, 0x43, 0xab, 0x53, 0xd6, 0x60, 0x2f, 0xb0, + 0x06, 0x6d, 0xc0, 0xea, 0x8c, 0x55, 0xd6, 0x40, 0xd5, 0x8c, 0x14, 0x62, 0xe9, 0x22, 0xe8, 0xd5, + 0xd3, 0x8c, 0x6c, 0xf4, 0x6b, 0x86, 0x81, 0x2f, 0x03, 0x50, 0xd1, 0x4c, 0x00, 0x49, 0x83, 0x33, + 0xf2, 0x12, 0x20, 0x15, 0xcd, 0x30, 0x32, 0xa0, 0x19, 0xc6, 0x5e, 0x06, 0xac, 0x4f, 0x33, 0x13, + 0x68, 0xd5, 0x72, 0x09, 0xd0, 0x3e, 0xcd, 0x30, 0xda, 0xaf, 0x19, 0x06, 0x5f, 0x01, 0xb0, 0xaa, + 0x99, 0x20, 0x56, 0x35, 0x3c, 0x0f, 0x58, 0x55, 0x33, 0xea, 0xec, 0x1c, 0xcd, 0x30, 0xf4, 0x2a, + 0x40, 0x15, 0xcd, 0xa8, 0x56, 0x5d, 0xcd, 0x30, 0xf4, 0x1a, 0x40, 0x55, 0xcd, 0xa8, 0x58, 0x57, + 0x33, 0x8c, 0xbd, 0x0e, 0x58, 0x55, 0x33, 0x8c, 0xbd, 0xad, 0x6a, 0x86, 0xa1, 0x1f, 0x69, 0x80, + 0x55, 0x44, 0xc3, 0xd0, 0x37, 0x7d, 0xa2, 0x61, 0xec, 0xc7, 0x88, 0x55, 0x55, 0x13, 0x04, 0xab, + 0xab, 0xf0, 0x09, 0x82, 0x55, 0xd9, 0x30, 0xd8, 0x93, 0x8d, 0x13, 0x82, 0x4a, 0x37, 0x20, 0x52, + 0x39, 0xb2, 0x71, 0x62, 0x98, 0x2a, 0x1b, 0x17, 0xf8, 0x0a, 0x85, 0x5a, 0x96, 0xcd, 0x04, 0x12, + 0x46, 0x77, 0x91, 0x37, 0x01, 0xe9, 0xca, 0xc6, 0x45, 0xfa, 0x64, 0xe3, 0x62, 0x5f, 0x05, 0xac, + 0x22, 0x9b, 0x29, 0x68, 0xd5, 0x72, 0x19, 0xd0, 0x8a, 0x6c, 0x5c, 0xb4, 0x2a, 0x1b, 0x17, 0xfc, + 0x39, 0x00, 0x7b, 0xb2, 0x99, 0xc4, 0xaa, 0x86, 0x3f, 0x0f, 0x58, 0x4f, 0x36, 0xfe, 0xd9, 0x49, + 0xd9, 0xb8, 0xd0, 0xd7, 0x00, 0xea, 0xca, 0xc6, 0x6f, 0x95, 0x65, 0xe3, 0x42, 0x5f, 0x07, 0xa8, + 0x27, 0x1b, 0x3f, 0x96, 0x65, 0xe3, 0x62, 0xdf, 0xa0, 0xfc, 0xe6, 0xc8, 0xc6, 0xc5, 0x2a, 0xb2, + 0x71, 0xa1, 0xbf, 0x8d, 0xb9, 0xd0, 0x95, 0x8d, 0x0b, 0x55, 0x65, 0xe3, 0x62, 0x7f, 0x07, 0xb1, + 0x9e, 0x6c, 0x26, 0xc1, 0xea, 0x2a, 0xfc, 0x2e, 0x82, 0x3d, 0xd9, 0xb8, 0xe0, 0x05, 0x72, 0x02, + 0x65, 0x73, 0x64, 0xb5, 0x9a, 0x27, 0x5d, 0x94, 0xd8, 0x2d, 0xd4, 0x4d, 0x2d, 0x31, 0x1e, 0x9e, + 0x58, 0xe8, 0x09, 0x74, 0x3e, 0x74, 0xfa, 0x00, 0x3f, 0xe7, 0xc8, 0xc7, 0x23, 0xdc, 0x46, 0xfd, + 0xd4, 0x62, 0x20, 0xdd, 0x82, 0xd4, 0xd0, 0x24, 0x1e, 0x7c, 0xf1, 0xf0, 0x77, 0x50, 0x45, 0xb5, + 0x18, 0xa8, 0xb7, 0x20, 0x95, 0xe4, 0xe1, 0x2b, 0xe2, 0x82, 0x27, 0x25, 0x8f, 0xf1, 0x26, 0x6a, + 0xa9, 0x16, 0xaf, 0x18, 0x8b, 0xe6, 0x9c, 0x23, 0xa8, 0x69, 0x24, 0xdf, 0x30, 0x6f, 0xa1, 0xa4, + 0x6a, 0xf1, 0x95, 0xaa, 0x4b, 0x52, 0x47, 0x32, 0x50, 0x86, 0x2c, 0x2c, 0x8f, 0xf3, 0x36, 0x2a, + 0xab, 0x96, 0x80, 0x81, 0x16, 0x41, 0x8c, 0xb2, 0x7b, 0x0a, 0xc7, 0x37, 0xce, 0x02, 0x2a, 0xac, + 0x96, 0x80, 0x71, 0x1c, 0x8e, 0x7f, 0x9c, 0x39, 0x47, 0x68, 0x1e, 0xe5, 0x0b, 0xa8, 0xb4, 0x5a, + 0xaa, 0xb2, 0x54, 0x5d, 0x5a, 0xbe, 0x07, 0xab, 0x40, 0xfd, 0x1e, 0xa7, 0x8a, 0xe3, 0xb0, 0xe4, + 0x3c, 0xd2, 0x22, 0x6a, 0xae, 0x96, 0x32, 0x56, 0x97, 0xee, 0x1a, 0x77, 0x61, 0x24, 0x09, 0xf0, + 0x58, 0xef, 0x22, 0x8b, 0xc5, 0xe7, 0xb1, 0x96, 0x50, 0x7d, 0xb5, 0xe2, 0xb1, 0xd5, 0xed, 0xda, + 0x6f, 0xdd, 0x2c, 0x3f, 0xb3, 0x87, 0xdd, 0xa3, 0x57, 0xcb, 0x02, 0xf8, 0x12, 0xaa, 0x8e, 0x3a, + 0xe7, 0x08, 0xd2, 0xa3, 0xff, 0x2a, 0x9e, 0xc3, 0xf2, 0xb5, 0xf4, 0x5a, 0xa7, 0xdd, 0xb7, 0x47, + 0x16, 0xf8, 0x4a, 0x88, 0xc0, 0x9a, 0xec, 0x05, 0xd7, 0xf1, 0xd7, 0x90, 0x36, 0x57, 0x8b, 0xbf, + 0x0d, 0xa2, 0x28, 0xb2, 0x42, 0xa7, 0x70, 0x7c, 0xeb, 0xf8, 0xeb, 0xc8, 0xd1, 0x81, 0x03, 0xc2, + 0x28, 0xb2, 0x50, 0x3d, 0xce, 0xaa, 0xb8, 0x14, 0xc8, 0x8b, 0x8d, 0x41, 0xf3, 0xf0, 0x09, 0xf0, + 0x0c, 0x4c, 0x8f, 0x6b, 0xb1, 0xa2, 0x66, 0x5e, 0xf0, 0xa5, 0xc8, 0x5d, 0xea, 0xd6, 0xef, 0x89, + 0xcb, 0xc1, 0x44, 0xe9, 0x30, 0x2b, 0x98, 0x2f, 0x89, 0x79, 0xd1, 0x9f, 0x33, 0x03, 0x54, 0x25, + 0x00, 0x3b, 0xd4, 0x2a, 0x26, 0x50, 0x8f, 0xea, 0x45, 0x62, 0xa6, 0xfe, 0x94, 0xb8, 0x32, 0x99, + 0x4a, 0x1d, 0xf2, 0x32, 0x66, 0x54, 0x22, 0x5f, 0x0a, 0x66, 0xd5, 0x09, 0xfa, 0x94, 0xb1, 0x57, + 0x30, 0xc5, 0xaa, 0xf4, 0x89, 0xd1, 0xdf, 0x11, 0xa5, 0x89, 0x64, 0xeb, 0xb0, 0x57, 0x31, 0xe7, + 0x12, 0xfb, 0xe5, 0x40, 0xde, 0x0d, 0x92, 0xa7, 0x0c, 0x7d, 0x17, 0x93, 0xb0, 0x42, 0x9e, 0x18, + 0x99, 0x96, 0xcc, 0x9f, 0x8e, 0x1d, 0xee, 0x3d, 0xcc, 0xca, 0xbc, 0x64, 0xbe, 0xcc, 0xac, 0x8e, + 0x1b, 0xc8, 0xcf, 0x0e, 0xb7, 0x86, 0x69, 0x9a, 0xc7, 0xf5, 0xa7, 0x6a, 0x26, 0x7f, 0x11, 0xc9, + 0x7b, 0xd3, 0x67, 0xfc, 0xe3, 0x38, 0x26, 0x58, 0x66, 0xef, 0x4d, 0x9b, 0xb2, 0xcb, 0x9e, 0x32, + 0xe5, 0xcf, 0x90, 0xad, 0x2b, 0xec, 0x89, 0x39, 0x3f, 0x14, 0x6e, 0xc5, 0xd1, 0x1e, 0xda, 0x27, + 0x83, 0xd2, 0x06, 0x1c, 0xed, 0x84, 0x71, 0x63, 0xa2, 0xfa, 0x71, 0x0e, 0x79, 0x9b, 0x88, 0x32, + 0xfd, 0x24, 0x69, 0x45, 0xda, 0x95, 0x56, 0x76, 0x61, 0xdc, 0xe9, 0x56, 0x24, 0xca, 0xb5, 0xa2, + 0x90, 0xd0, 0x8a, 0x13, 0xf4, 0xa5, 0x95, 0xc7, 0xb0, 0xa9, 0xa6, 0x59, 0x71, 0x52, 0x00, 0x5b, + 0xf1, 0x91, 0xe6, 0x97, 0xbd, 0x7a, 0x8b, 0xfa, 0xf5, 0xcf, 0x07, 0x0b, 0xb0, 0x4d, 0x3a, 0x3f, + 0xfb, 0x2b, 0x2d, 0x49, 0x53, 0x9c, 0x9b, 0xa4, 0xfd, 0x74, 0x08, 0xcd, 0xe7, 0xcd, 0x24, 0xed, + 0x67, 0xa6, 0xd0, 0xca, 0xbf, 0xa1, 0x41, 0xb1, 0x09, 0xf5, 0xa4, 0x9e, 0x11, 0x89, 0xf7, 0xeb, + 0x5b, 0x0f, 0x8b, 0x2f, 0xe1, 0xd3, 0x5a, 0xbd, 0xfe, 0xa8, 0xa8, 0xe9, 0x59, 0x91, 0x5c, 0xfb, + 0xca, 0xfe, 0xfa, 0x5e, 0x31, 0xa6, 0x17, 0x44, 0x6e, 0x63, 0x6b, 0x67, 0x73, 0xdd, 0xdc, 0x35, + 0xb7, 0x76, 0xf6, 0x8b, 0x71, 0xec, 0xdb, 0x78, 0x54, 0xbf, 0xbf, 0x5f, 0x4c, 0xe8, 0x69, 0x11, + 0xc7, 0xb6, 0xa4, 0x2e, 0x44, 0x6a, 0x6f, 0x1f, 0xfa, 0x37, 0x8b, 0x29, 0xb4, 0xb2, 0xbf, 0xb5, + 0xbd, 0x5e, 0x4c, 0x23, 0x72, 0xff, 0xbd, 0xdd, 0x47, 0xeb, 0xc5, 0x0c, 0x3e, 0xde, 0x37, 0xcd, + 0xfb, 0x5f, 0x29, 0x66, 0x91, 0xb4, 0x7d, 0x7f, 0xb7, 0x28, 0xa8, 0xfb, 0xfe, 0x1a, 0x74, 0xe7, + 0xf4, 0xbc, 0xc8, 0x6c, 0xbc, 0xb7, 0xf3, 0x60, 0x7f, 0xab, 0xbe, 0x53, 0xcc, 0x97, 0x4f, 0x45, + 0x49, 0x2e, 0xb3, 0x6f, 0x15, 0x65, 0x51, 0xf8, 0xae, 0x48, 0xca, 0x2f, 0xa3, 0x91, 0x4a, 0x6e, + 0x05, 0xbf, 0xcc, 0x24, 0x65, 0x41, 0x7e, 0x23, 0x49, 0x9b, 0xbf, 0x2e, 0x92, 0x72, 0x95, 0xa0, + 0x54, 0x96, 0xab, 0x13, 0xa3, 0x52, 0x31, 0xd9, 0xa2, 0x55, 0xf9, 0xcd, 0x98, 0x10, 0x9b, 0xf6, + 0xde, 0x93, 0xce, 0x80, 0x0a, 0xf2, 0xeb, 0x42, 0x8c, 0xe0, 0xb9, 0x41, 0xaa, 0xe7, 0xa2, 0x32, + 0x8b, 0x2d, 0x14, 0xef, 0xf4, 0x57, 0x45, 0x9e, 0xba, 0x5b, 0x32, 0x0a, 0x51, 0x2d, 0x99, 0x36, + 0x73, 0xd8, 0xc6, 0x81, 0xc9, 0x0f, 0x59, 0xa9, 0x52, 0x09, 0x99, 0x52, 0x20, 0x2b, 0x55, 0xfd, + 0x15, 0x41, 0xaf, 0x8d, 0x11, 0x65, 0x14, 0x2a, 0x1b, 0xb3, 0x26, 0x8d, 0x2b, 0x73, 0x0c, 0xec, + 0x2f, 0x1a, 0x53, 0xce, 0xbb, 0x30, 0xb9, 0x3b, 0x1c, 0x77, 0x17, 0xf0, 0x41, 0xce, 0xd6, 0x23, + 0xcc, 0xd7, 0x45, 0xd6, 0x6d, 0xc7, 0xb1, 0xa8, 0x95, 0x67, 0x54, 0xa4, 0x19, 0x09, 0x6a, 0x72, + 0xa7, 0x24, 0x01, 0xec, 0xcd, 0x1c, 0x79, 0x23, 0x49, 0xd2, 0x9d, 0xf2, 0x75, 0x31, 0xb3, 0x63, + 0xf7, 0xe5, 0xee, 0xa5, 0x55, 0xca, 0x0b, 0xad, 0x59, 0xd2, 0xa8, 0x7a, 0xd2, 0x9a, 0xe5, 0x1b, + 0x42, 0x28, 0x7d, 0x45, 0xa1, 0x1d, 0xc8, 0x3e, 0x8a, 0x01, 0xda, 0x41, 0xf9, 0x4d, 0x91, 0xda, + 0x6e, 0x3e, 0xdf, 0x6f, 0xb6, 0x61, 0x2c, 0xd1, 0x6d, 0x8e, 0xc6, 0x0d, 0x5a, 0xfa, 0xd2, 0xff, + 0xc3, 0x7f, 0x1a, 0x1d, 0xf6, 0xb2, 0xd8, 0x2a, 0x55, 0xfa, 0x54, 0x88, 0x7a, 0xf7, 0x68, 0xdb, + 0x1a, 0x8d, 0x9a, 0x6d, 0x0b, 0x8e, 0x2a, 0xa9, 0x3e, 0x18, 0xb5, 0xf0, 0x86, 0x04, 0xef, 0x11, + 0xae, 0x7a, 0xab, 0xe0, 0xa1, 0x16, 0x76, 0x08, 0x62, 0x32, 0x14, 0x3c, 0x88, 0xf7, 0x4f, 0x7a, + 0x74, 0x4f, 0x92, 0x34, 0xf1, 0x71, 0xfe, 0x9a, 0x48, 0x49, 0x0c, 0xde, 0xc7, 0xf4, 0x9b, 0x3d, + 0xab, 0x24, 0xc7, 0xa5, 0xe7, 0xf2, 0xaf, 0x68, 0x42, 0xec, 0x58, 0xcf, 0xce, 0x31, 0xa6, 0x87, + 0x8a, 0x18, 0x33, 0x2e, 0xc7, 0x7c, 0x27, 0x6a, 0x4c, 0xd4, 0x59, 0xcb, 0xb6, 0x8f, 0x1a, 0xf2, + 0x13, 0xcb, 0x2b, 0x9d, 0x2c, 0xb6, 0xd0, 0x57, 0x2b, 0x3f, 0x16, 0xf9, 0xad, 0x7e, 0xdf, 0x1a, + 0x3a, 0x3e, 0x81, 0x89, 0x63, 0x7b, 0x34, 0xe6, 0xbb, 0x25, 0x7a, 0xd6, 0x4b, 0x22, 0x31, 0xb0, + 0x87, 0x63, 0x39, 0xcf, 0x5a, 0x02, 0x8e, 0x53, 0x8b, 0x26, 0xb5, 0xe8, 0xd7, 0x44, 0xf6, 0xd0, + 0x06, 0xfa, 0x21, 0x4e, 0x22, 0x4e, 0x65, 0x8d, 0xd7, 0x50, 0xfe, 0x25, 0x4d, 0xe4, 0xeb, 0xe3, + 0x63, 0xcf, 0x38, 0xf8, 0xfe, 0xc4, 0x3a, 0x25, 0xf7, 0xc0, 0x77, 0x78, 0xc4, 0xad, 0xf2, 0xb3, + 0xcd, 0xee, 0x89, 0xbc, 0x6b, 0xca, 0x9b, 0xf2, 0x45, 0xbf, 0x24, 0x52, 0xcf, 0xac, 0x4e, 0xfb, + 0x78, 0x4c, 0x36, 0x63, 0x26, 0xbf, 0x41, 0x85, 0x92, 0xec, 0xa0, 0xb3, 0xa5, 0x04, 0xad, 0xd7, + 0x25, 0x6f, 0xbd, 0xd4, 0x39, 0x98, 0x12, 0x74, 0x27, 0x93, 0x39, 0x2a, 0xfe, 0x02, 0xfc, 0x17, + 0x2b, 0xb7, 0xc4, 0x45, 0x67, 0xf3, 0xfa, 0x26, 0xbb, 0x23, 0x4a, 0x5d, 0xcb, 0x06, 0x91, 0x40, + 0x80, 0xeb, 0x9e, 0x36, 0x9e, 0xd9, 0xfd, 0x46, 0xb3, 0xdf, 0xb0, 0x47, 0x87, 0xcd, 0x21, 0x2d, + 0x40, 0xf8, 0x10, 0x17, 0x81, 0xb7, 0x21, 0x69, 0x1f, 0xd8, 0xfd, 0xfb, 0xfd, 0x3a, 0x72, 0xca, + 0xbf, 0x9f, 0x10, 0xd9, 0xed, 0x53, 0xc7, 0x3a, 0xcc, 0xed, 0xd0, 0x3e, 0xe9, 0xcb, 0xb5, 0x84, + 0x30, 0x40, 0x2f, 0xee, 0x37, 0x8a, 0x29, 0xdf, 0x08, 0x90, 0x4f, 0x4f, 0xec, 0xb1, 0x45, 0xd3, + 0xcd, 0x9a, 0xf2, 0x05, 0x57, 0x6b, 0x60, 0x8d, 0x61, 0xae, 0x58, 0xdc, 0xe2, 0xa3, 0x37, 0xff, + 0xe4, 0x39, 0xe6, 0x0f, 0x47, 0xfc, 0x94, 0x8d, 0xab, 0x3f, 0x2a, 0xa5, 0xe8, 0x5e, 0x4d, 0x81, + 0xab, 0x5f, 0xc5, 0x64, 0x94, 0xbe, 0x25, 0xe6, 0x9e, 0x59, 0x8d, 0xde, 0x09, 0x6c, 0x9b, 0xb6, + 0x0d, 0xc7, 0x3f, 0x48, 0x18, 0x43, 0x08, 0x2a, 0x38, 0x92, 0x12, 0x13, 0xa6, 0x2d, 0xa4, 0x39, + 0xfb, 0xcc, 0xda, 0x06, 0xde, 0xa6, 0xfd, 0x90, 0x58, 0xa0, 0xec, 0x2c, 0x64, 0xbf, 0x86, 0x74, + 0x36, 0x1f, 0x1c, 0xdd, 0x47, 0xcd, 0x00, 0x90, 0x1a, 0xf4, 0x65, 0x91, 0x39, 0xe8, 0x3c, 0xb1, + 0x46, 0xc7, 0xa0, 0xa5, 0x34, 0x0c, 0x3b, 0x6b, 0x5c, 0xf1, 0x38, 0xee, 0xb2, 0x2e, 0x3c, 0xb0, + 0xbb, 0xf6, 0xd0, 0x74, 0xa1, 0x70, 0x3a, 0xc9, 0x8e, 0xec, 0x9e, 0x25, 0xf5, 0x9d, 0xa1, 0xa4, + 0x7a, 0x7d, 0x1a, 0x6f, 0x0f, 0x40, 0x4e, 0x04, 0x73, 0xf0, 0xfa, 0x55, 0xe9, 0xe8, 0x01, 0x1e, + 0x9d, 0x4b, 0x82, 0xae, 0x06, 0xd0, 0x21, 0x3a, 0x4a, 0xeb, 0xf3, 0xe8, 0x50, 0xbb, 0x85, 0x27, + 0x22, 0x08, 0xd0, 0x58, 0x57, 0xba, 0xef, 0xf3, 0x6f, 0x41, 0xe8, 0x73, 0x0c, 0x7a, 0xa1, 0x4f, + 0x86, 0x9b, 0x2c, 0xc5, 0x03, 0x19, 0xfa, 0x64, 0xac, 0x79, 0x4d, 0x24, 0xc9, 0x6d, 0xcc, 0x50, + 0xe6, 0x3a, 0x26, 0x44, 0xc8, 0x50, 0x9b, 0xe6, 0xfa, 0xfa, 0x0e, 0x64, 0x44, 0xcc, 0x8d, 0x8f, + 0xde, 0x5b, 0x2f, 0xc6, 0x14, 0xc5, 0xfe, 0x96, 0x26, 0xe2, 0xeb, 0xcf, 0x49, 0x2d, 0x38, 0x0d, + 0x67, 0x47, 0xe3, 0xb3, 0xb1, 0x22, 0x12, 0x3d, 0x7b, 0x68, 0xe9, 0x17, 0xa6, 0xcc, 0xb2, 0xd4, + 0xa6, 0xef, 0xa5, 0xdc, 0x22, 0x83, 0x15, 0x93, 0xf0, 0xc6, 0x1b, 0x22, 0x31, 0xb6, 0xc0, 0xe6, + 0x54, 0xde, 0xb1, 0x1c, 0x00, 0x01, 0x06, 0x84, 0x51, 0x88, 0x2b, 0x07, 0xf0, 0x49, 0xa6, 0x42, + 0x3b, 0x34, 0x3d, 0x86, 0x94, 0xdf, 0x17, 0xc5, 0x07, 0x76, 0x6f, 0xd0, 0xb5, 0x9e, 0xc3, 0x48, + 0x56, 0x7f, 0x04, 0xa7, 0x05, 0xd4, 0x73, 0xab, 0x33, 0xa4, 0x28, 0xa2, 0xc9, 0x04, 0x08, 0x2f, + 0xb8, 0xab, 0x47, 0x16, 0x44, 0x87, 0x23, 0x0e, 0x98, 0xfc, 0x86, 0xe8, 0xf1, 0x71, 0x67, 0x88, + 0x01, 0x04, 0xe3, 0xbc, 0x7c, 0x29, 0x6f, 0x8a, 0x02, 0xd7, 0x18, 0x23, 0x1e, 0xb8, 0x7c, 0x47, + 0xe4, 0x9d, 0x26, 0xba, 0x38, 0x87, 0x85, 0x7b, 0xbc, 0x6e, 0xd6, 0x61, 0x35, 0x61, 0x59, 0xeb, + 0x3b, 0xeb, 0xb0, 0x96, 0xf0, 0xb0, 0xff, 0x41, 0xdd, 0xb7, 0x94, 0xd7, 0x44, 0xde, 0xf5, 0x7d, + 0xcf, 0x1a, 0x53, 0x0f, 0x26, 0x84, 0x74, 0x2d, 0x96, 0xd1, 0xca, 0x69, 0x91, 0x5c, 0xef, 0x0d, + 0xc6, 0xa7, 0xe5, 0x9f, 0x17, 0x39, 0x06, 0x3d, 0xea, 0x80, 0xb3, 0xab, 0x22, 0xdd, 0xe3, 0xf9, + 0x6a, 0x74, 0xdc, 0x53, 0x35, 0xe5, 0xe1, 0x9c, 0x67, 0xd3, 0x41, 0xcf, 0x57, 0x44, 0x5a, 0x89, + 0xa5, 0xbc, 0xd5, 0x63, 0xea, 0x56, 0x97, 0x41, 0x21, 0xae, 0x04, 0x85, 0xf2, 0xb6, 0x48, 0xcb, + 0x0c, 0x38, 0xa2, 0xac, 0x2e, 0x4b, 0x45, 0x29, 0x26, 0xf9, 0xe5, 0x73, 0xb2, 0x4d, 0x1e, 0x54, + 0x40, 0x6e, 0x24, 0x58, 0x46, 0xc8, 0xd0, 0x29, 0xa8, 0x49, 0xca, 0xed, 0xf7, 0x92, 0x22, 0xe3, + 0xac, 0x14, 0x48, 0x3c, 0x25, 0xeb, 0x33, 0x32, 0xe5, 0xdc, 0x1f, 0x24, 0xa9, 0x22, 0x83, 0xce, + 0x34, 0xd7, 0x60, 0x1c, 0xdd, 0xf1, 0xb2, 0x20, 0x25, 0x6b, 0x2e, 0xb7, 0x13, 0xce, 0x16, 0x71, + 0xf7, 0x66, 0x20, 0x25, 0xab, 0x2a, 0xfd, 0xa6, 0xc8, 0xba, 0x75, 0x14, 0xc5, 0x63, 0xbe, 0x06, + 0xc8, 0x38, 0x85, 0x93, 0x82, 0x00, 0x03, 0x49, 0xaf, 0xe6, 0xcf, 0xb4, 0xbc, 0xe3, 0x49, 0xc6, + 0xa9, 0x86, 0xe8, 0xfa, 0xde, 0x29, 0xf0, 0xd3, 0x5c, 0xff, 0x78, 0x00, 0xb0, 0x90, 0x56, 0xaa, + 0xf9, 0x34, 0xd7, 0x38, 0x00, 0x48, 0x73, 0x55, 0x43, 0x5b, 0xdf, 0x2b, 0xdd, 0x53, 0xb2, 0x92, + 0x81, 0xe5, 0xcc, 0x38, 0xb5, 0x0b, 0xed, 0x4b, 0xaf, 0x4e, 0x4f, 0x73, 0xbd, 0xa2, 0xbf, 0x89, + 0x10, 0xb9, 0xfc, 0x10, 0x02, 0xa6, 0x17, 0xe5, 0x69, 0x2e, 0xca, 0x61, 0x52, 0x69, 0xae, 0xc5, + 0x29, 0x24, 0x28, 0x05, 0x78, 0x4a, 0x16, 0xe0, 0xfa, 0x0d, 0x32, 0x27, 0x27, 0x95, 0xf7, 0x8a, + 0xed, 0x34, 0x17, 0x38, 0x5e, 0x3f, 0x1d, 0xd9, 0xdc, 0xc2, 0x3a, 0xcd, 0x25, 0x8c, 0xbe, 0x82, + 0xdf, 0x0b, 0xf5, 0x0d, 0xc7, 0x35, 0x0c, 0x82, 0x25, 0x4f, 0x78, 0xce, 0x37, 0x95, 0x31, 0xb0, + 0x26, 0x23, 0x08, 0x7c, 0x4a, 0xda, 0x0d, 0xf3, 0xc8, 0xdb, 0xed, 0xf4, 0x5b, 0x70, 0x8e, 0xc3, + 0x95, 0x88, 0xc3, 0x23, 0xf4, 0x61, 0x8b, 0xd4, 0xc0, 0x0e, 0xf6, 0x15, 0xa9, 0x2f, 0xf1, 0xb6, + 0xec, 0xc4, 0x26, 0x48, 0xef, 0x49, 0xe8, 0x6c, 0xf6, 0xe1, 0x40, 0x46, 0xbc, 0x7e, 0xb3, 0x6f, + 0x26, 0x5a, 0xd0, 0xa0, 0xbf, 0x21, 0xe2, 0xa3, 0x93, 0x83, 0x92, 0x1e, 0xfc, 0x65, 0x65, 0xef, + 0xe4, 0xc0, 0x71, 0xc5, 0x44, 0x04, 0xd8, 0xcf, 0x80, 0x40, 0x1b, 0x3f, 0x67, 0x0d, 0xed, 0xd2, + 0x05, 0x5a, 0xc2, 0x97, 0xcc, 0x34, 0xb4, 0x3c, 0x86, 0x86, 0x73, 0x06, 0x3f, 0x38, 0xdc, 0xe5, + 0x14, 0xbb, 0x50, 0x1c, 0x68, 0x7d, 0x79, 0x52, 0xa8, 0x69, 0xab, 0xa6, 0xd6, 0x2f, 0xef, 0x8b, + 0xbc, 0x53, 0xc3, 0xd0, 0x7c, 0x0d, 0xdc, 0x49, 0x60, 0x96, 0xf6, 0xe7, 0xac, 0x71, 0x4d, 0x4d, + 0x51, 0x1e, 0x8c, 0xd3, 0x85, 0x84, 0x96, 0x8b, 0x01, 0x57, 0xb4, 0xf2, 0x0f, 0xe1, 0x8c, 0xb2, + 0x0d, 0xd1, 0xd1, 0xbd, 0xaf, 0x85, 0x0d, 0x7a, 0x00, 0x3b, 0x63, 0x44, 0x66, 0x33, 0xa6, 0x7c, + 0xd1, 0x5f, 0x13, 0x79, 0x7a, 0x70, 0x6a, 0xcf, 0x98, 0x7b, 0xb5, 0x91, 0xa3, 0x76, 0x2e, 0x38, + 0x61, 0xc7, 0xc3, 0x47, 0x1c, 0x71, 0x24, 0xa3, 0x67, 0xfd, 0x73, 0x22, 0x87, 0xff, 0x3a, 0xcc, + 0x84, 0x7b, 0x60, 0x15, 0xd8, 0xcc, 0xc4, 0x37, 0xc4, 0x0c, 0x7d, 0x7d, 0x17, 0x96, 0x76, 0xaf, + 0x31, 0xf2, 0xb2, 0x83, 0x81, 0x25, 0x91, 0x96, 0xa1, 0x60, 0x44, 0xbf, 0x96, 0x65, 0x4d, 0xe7, + 0x15, 0xc3, 0x2b, 0x55, 0x02, 0x32, 0xdd, 0xa7, 0x4d, 0x7e, 0x2b, 0xdf, 0x17, 0x19, 0xca, 0x52, + 0x70, 0x8c, 0xd5, 0xcb, 0x42, 0x6b, 0x97, 0x2c, 0xca, 0x91, 0x17, 0x95, 0x63, 0x3e, 0x77, 0x2f, + 0x6c, 0x9a, 0x5a, 0x7b, 0x7e, 0x4e, 0x68, 0x9b, 0x78, 0xee, 0x7e, 0xce, 0x61, 0x5a, 0x7b, 0x5e, + 0xae, 0xb3, 0x09, 0x38, 0x95, 0x46, 0x99, 0x80, 0x6e, 0x69, 0xe2, 0x95, 0x09, 0x13, 0xf8, 0x76, + 0xca, 0x3f, 0x1d, 0x6a, 0xa7, 0xe5, 0x8a, 0x98, 0xa1, 0xed, 0x09, 0x8e, 0xef, 0xda, 0x30, 0x3f, + 0xec, 0x6e, 0xd1, 0x39, 0x09, 0xce, 0xf1, 0x2d, 0xfc, 0x06, 0xd6, 0xf3, 0xe6, 0xa1, 0x3c, 0x71, + 0xc2, 0x37, 0xa0, 0x97, 0xf2, 0xa7, 0x09, 0x31, 0xcb, 0xa1, 0xf5, 0x83, 0xce, 0xf8, 0x78, 0xbb, + 0x39, 0xd0, 0x1f, 0x89, 0x3c, 0x46, 0xd5, 0x46, 0xaf, 0x39, 0x18, 0xe0, 0xf6, 0xd5, 0xe8, 0xa8, + 0x71, 0x7b, 0x22, 0x54, 0x33, 0x7e, 0x61, 0x07, 0xc0, 0xdb, 0x12, 0xbb, 0xde, 0x1f, 0x0f, 0x4f, + 0xcd, 0x5c, 0xdf, 0x6b, 0x81, 0x03, 0x50, 0xae, 0x37, 0x6a, 0xbb, 0xc6, 0x62, 0x64, 0xec, 0x56, + 0xa8, 0xb1, 0xed, 0x51, 0xdb, 0x67, 0x4b, 0xf4, 0xdc, 0x06, 0x74, 0x0c, 0xe3, 0xb1, 0x6b, 0x2b, + 0x7e, 0x86, 0x63, 0x18, 0x3a, 0xfc, 0x8e, 0x1d, 0x78, 0x2d, 0xfa, 0x43, 0xa8, 0x15, 0x61, 0x7b, + 0x8d, 0x6d, 0x2c, 0x9d, 0x48, 0x41, 0x39, 0xe3, 0xf5, 0x50, 0x5b, 0x10, 0xa9, 0xf6, 0x6d, 0xf8, + 0x9f, 0x34, 0x84, 0x1b, 0x93, 0x5e, 0xe7, 0xdf, 0x15, 0xc5, 0xe0, 0xfc, 0xd5, 0x13, 0x79, 0x72, + 0xca, 0x89, 0x3c, 0xcb, 0x27, 0xf2, 0x5a, 0xec, 0xae, 0x36, 0xff, 0xbe, 0x28, 0x04, 0xa6, 0xac, + 0xd2, 0x75, 0x49, 0x7f, 0x5b, 0xa5, 0xe7, 0x8c, 0xcb, 0xca, 0xcf, 0xd9, 0xea, 0x07, 0x57, 0xed, + 0x82, 0x5f, 0xc1, 0xe9, 0xab, 0x86, 0x33, 0x11, 0x95, 0x02, 0xf1, 0xdf, 0x11, 0x33, 0xbe, 0x29, + 0xab, 0xe4, 0xec, 0x19, 0x93, 0x2a, 0xff, 0x62, 0x52, 0x24, 0xeb, 0x7d, 0xcb, 0x6e, 0xe9, 0x97, + 0xfd, 0x79, 0xf2, 0x4b, 0x2f, 0x39, 0x39, 0xf2, 0x4a, 0x20, 0x47, 0x42, 0x8f, 0x93, 0x21, 0xaf, + 0x04, 0x32, 0xa4, 0xd3, 0x05, 0x61, 0xfc, 0xfa, 0x44, 0x7e, 0x84, 0x4e, 0x2f, 0x39, 0x5e, 0x9f, + 0x48, 0x8e, 0x5e, 0x37, 0xb0, 0xaf, 0x06, 0x33, 0x23, 0xf4, 0xba, 0x59, 0xf1, 0x6a, 0x30, 0x2b, + 0xba, 0x9d, 0xc0, 0xbc, 0x12, 0xc8, 0x88, 0xe4, 0x92, 0xcc, 0x85, 0x57, 0x83, 0xb9, 0x90, 0x78, + 0x9c, 0x05, 0xaf, 0x06, 0xb3, 0x20, 0x75, 0x72, 0xd6, 0xbb, 0x12, 0xc8, 0x7a, 0x64, 0x54, 0xa6, + 0xbb, 0xab, 0xc1, 0x74, 0x27, 0x79, 0x8a, 0xa7, 0x6a, 0xae, 0x73, 0x3b, 0xc1, 0x53, 0x23, 0x90, + 0xe8, 0xc2, 0x4f, 0xfb, 0xf4, 0x2d, 0x28, 0xe8, 0x57, 0x71, 0xd9, 0x9c, 0x83, 0x68, 0x21, 0xe2, + 0x17, 0x7f, 0x5a, 0x4d, 0xe7, 0x20, 0x66, 0x88, 0x74, 0x8b, 0x0b, 0xe0, 0x22, 0x45, 0x2e, 0x45, + 0x96, 0xf4, 0xf1, 0x17, 0x36, 0x1a, 0x14, 0xc1, 0x68, 0x5e, 0xf2, 0x4c, 0x7f, 0x0b, 0x42, 0x54, + 0xe3, 0x51, 0x73, 0xd8, 0x06, 0x60, 0x63, 0xbf, 0xd9, 0x76, 0x2f, 0x11, 0xf0, 0xfb, 0xe7, 0x5a, + 0xdc, 0x83, 0x77, 0x0d, 0x97, 0x1c, 0x71, 0x1d, 0x51, 0xaf, 0xc6, 0xf2, 0x9a, 0xbf, 0x8c, 0x8b, + 0x26, 0x8d, 0x51, 0x2c, 0x9c, 0xe3, 0x58, 0xb8, 0x06, 0x67, 0xce, 0x93, 0x3e, 0x9c, 0x93, 0xd7, + 0xb2, 0x22, 0x3d, 0xb6, 0x87, 0xbd, 0xe6, 0xd8, 0x2e, 0xff, 0x48, 0x13, 0x02, 0xce, 0xd1, 0x3d, + 0xe8, 0x78, 0x0a, 0x15, 0x30, 0x24, 0xc3, 0x5e, 0xf3, 0x09, 0xc4, 0x0f, 0xab, 0x71, 0x38, 0x74, + 0xf6, 0x41, 0x16, 0x9b, 0xb6, 0xad, 0x07, 0x20, 0xf1, 0x92, 0x73, 0x44, 0x27, 0xed, 0x90, 0x24, + 0xf9, 0xc8, 0x7e, 0x91, 0x0f, 0x9d, 0x29, 0xfe, 0x86, 0xce, 0xb1, 0x53, 0xd6, 0x11, 0x69, 0xfe, + 0x7a, 0xf4, 0x86, 0x92, 0x1f, 0x5b, 0xbd, 0x41, 0xe3, 0x90, 0xa4, 0x82, 0x72, 0x48, 0xe2, 0xfb, + 0x03, 0xd8, 0xc5, 0x71, 0x48, 0x98, 0x24, 0x92, 0x33, 0xbe, 0x0b, 0xe2, 0x20, 0x3b, 0xc6, 0x21, + 0xf6, 0x91, 0x6c, 0x72, 0xc6, 0x9c, 0x72, 0x4e, 0x90, 0xa9, 0x09, 0x61, 0xd0, 0xef, 0xce, 0xfb, + 0x4e, 0x41, 0xc4, 0x37, 0xea, 0x75, 0xcc, 0xfd, 0xf0, 0xcf, 0x52, 0x51, 0xab, 0x7d, 0x41, 0x64, + 0xda, 0x43, 0xcb, 0xc2, 0xf0, 0x30, 0xbd, 0xe6, 0xf8, 0x90, 0x72, 0x9d, 0x0b, 0xaa, 0xc1, 0x81, + 0xf9, 0x50, 0x56, 0x1d, 0x7a, 0x48, 0x59, 0x5b, 0xfa, 0x03, 0x79, 0xa9, 0x32, 0xef, 0x75, 0x07, + 0xeb, 0x14, 0xd3, 0xb1, 0x51, 0xdb, 0x85, 0x32, 0xb0, 0x71, 0x96, 0xc1, 0x8f, 0x64, 0x76, 0x89, + 0x32, 0x98, 0x19, 0x72, 0x53, 0x6d, 0x5d, 0xcc, 0xf5, 0x6d, 0xe7, 0x37, 0x94, 0xc6, 0x91, 0xdc, + 0x63, 0x57, 0x26, 0x8f, 0x72, 0x8e, 0x71, 0x4b, 0xfe, 0x6e, 0xd9, 0xb7, 0xb9, 0x43, 0xee, 0xca, + 0xda, 0x03, 0x51, 0x54, 0xcc, 0x50, 0xe9, 0x19, 0x65, 0xa5, 0x25, 0x7f, 0x28, 0x75, 0xad, 0xd0, + 0xbe, 0x0f, 0x18, 0x91, 0x3b, 0x33, 0xc2, 0x48, 0x5b, 0xfe, 0xea, 0xec, 0x1a, 0xa1, 0x50, 0x37, + 0x69, 0x04, 0x63, 0x4d, 0xb8, 0x91, 0x63, 0xf9, 0x83, 0xb4, 0x6a, 0x64, 0xa5, 0x1a, 0x58, 0x95, + 0x93, 0x33, 0x5d, 0xe9, 0xc8, 0xdf, 0x93, 0x5d, 0x2b, 0x32, 0x00, 0x4e, 0x31, 0x13, 0xed, 0xcc, + 0x87, 0xf2, 0xa7, 0x66, 0x9f, 0x99, 0x09, 0x6f, 0x46, 0x67, 0x7a, 0xf3, 0x44, 0xfe, 0xae, 0xeb, + 0x9a, 0xd9, 0x9b, 0xe6, 0xcd, 0xe8, 0x4c, 0x6f, 0xba, 0xf2, 0x17, 0x5f, 0x9f, 0x19, 0xf0, 0x66, + 0x53, 0xe8, 0xea, 0xa7, 0xe6, 0x3c, 0x11, 0x61, 0xa7, 0x27, 0x7f, 0xc7, 0xf7, 0x3e, 0xb6, 0xa4, + 0x4c, 0x33, 0x14, 0xed, 0x50, 0x5f, 0xfe, 0xc4, 0xef, 0x37, 0x04, 0x1e, 0x6d, 0x89, 0x0b, 0xea, + 0xc4, 0xce, 0xe1, 0x92, 0x0d, 0x96, 0x0a, 0xe6, 0x9c, 0x37, 0x35, 0xe6, 0x4c, 0x35, 0x15, 0xed, + 0xd4, 0x00, 0x4c, 0x15, 0x27, 0x4c, 0x81, 0x57, 0xf7, 0x45, 0x41, 0x31, 0x75, 0x40, 0x19, 0x3a, + 0xdc, 0xcc, 0x53, 0xf9, 0xb7, 0x16, 0xae, 0x19, 0xcc, 0xe8, 0xc1, 0x2f, 0xc6, 0x39, 0x2e, 0xdc, + 0xc8, 0x50, 0xfe, 0xa1, 0x80, 0xe7, 0x0b, 0x31, 0x02, 0x5b, 0x82, 0xea, 0xef, 0x28, 0x2b, 0x23, + 0xf9, 0x27, 0x04, 0x9e, 0x2b, 0x48, 0xa8, 0x75, 0x7c, 0xd3, 0xb1, 0x30, 0xc9, 0x45, 0xd8, 0x18, + 0x53, 0x44, 0x7e, 0x3d, 0x14, 0xb0, 0xa0, 0x5e, 0x90, 0x28, 0xd3, 0xc6, 0x57, 0xf8, 0x08, 0xb3, + 0xe7, 0x0f, 0x48, 0x1f, 0x69, 0xb2, 0x5a, 0xae, 0x2c, 0x60, 0x41, 0x6d, 0xce, 0x1c, 0xf9, 0xe2, + 0xd2, 0xba, 0x98, 0x39, 0x77, 0x50, 0xfa, 0x58, 0x93, 0x35, 0x27, 0x5a, 0x32, 0xf3, 0x47, 0xfe, + 0xc8, 0x34, 0x73, 0xee, 0xb0, 0xf4, 0x89, 0x26, 0x2f, 0x28, 0xaa, 0x86, 0x6b, 0xc4, 0x89, 0x4c, + 0x33, 0xe7, 0x0e, 0x4b, 0x5f, 0x95, 0x15, 0x65, 0xac, 0x5a, 0x51, 0x8d, 0x50, 0x2c, 0x98, 0x3d, + 0x7f, 0x58, 0xfa, 0x9a, 0x46, 0x97, 0x15, 0xb1, 0x6a, 0xd5, 0x5d, 0x17, 0x37, 0x32, 0xcd, 0x9e, + 0x3f, 0x2c, 0x7d, 0x5d, 0xa3, 0x2b, 0x8d, 0x58, 0x75, 0xd9, 0x67, 0xc6, 0xef, 0xcd, 0xd9, 0x61, + 0xe9, 0x1b, 0x1a, 0xdd, 0x32, 0xc4, 0xaa, 0x2b, 0xae, 0x99, 0xbd, 0x09, 0x6f, 0xce, 0x0e, 0x4b, + 0xdf, 0xa4, 0x53, 0x3c, 0x98, 0x59, 0xf5, 0x99, 0xa1, 0xc8, 0x54, 0x78, 0x81, 0xb0, 0xf4, 0x2d, + 0x8d, 0x2e, 0x83, 0x62, 0xd5, 0xbb, 0xa6, 0x33, 0xba, 0x17, 0x99, 0x0a, 0x2f, 0x10, 0x96, 0x3e, + 0xd5, 0xe8, 0xce, 0x28, 0x56, 0xbd, 0xe7, 0x37, 0x44, 0x91, 0xa9, 0xf8, 0x22, 0x61, 0xe9, 0xdb, + 0x68, 0xa9, 0x50, 0x8b, 0x2d, 0x2f, 0x9a, 0x8e, 0x03, 0x4a, 0x64, 0x2a, 0xbe, 0x48, 0x58, 0xfa, + 0x0e, 0x9a, 0x2a, 0x82, 0xa9, 0xa5, 0x80, 0x29, 0xf0, 0xea, 0x81, 0xc8, 0x9f, 0x37, 0x2c, 0x7d, + 0x57, 0xbd, 0x8b, 0xcb, 0x1d, 0x29, 0xb1, 0x69, 0x57, 0xf9, 0x66, 0x67, 0x06, 0xa6, 0xef, 0x51, + 0x8d, 0x53, 0x9b, 0xf9, 0x92, 0xbc, 0xaf, 0x92, 0x04, 0xef, 0xf3, 0xc9, 0x30, 0xb5, 0xed, 0xed, + 0x8f, 0x33, 0x63, 0xd4, 0xf7, 0x35, 0xba, 0xd4, 0xca, 0xb3, 0x41, 0xc2, 0xbb, 0x3b, 0x45, 0x06, + 0xac, 0x0f, 0xbd, 0x59, 0x9e, 0x15, 0xad, 0x7e, 0xa0, 0xbd, 0x48, 0xb8, 0xaa, 0xe1, 0x1d, 0xae, + 0xbb, 0x18, 0xd4, 0xf2, 0x45, 0x91, 0x78, 0x6e, 0x2c, 0x2e, 0xa9, 0x47, 0x32, 0xf5, 0x2e, 0x57, 0x06, 0xa9, 0x9c, 0x51, 0x50, 0xae, 0xbb, 0xf1, 0x32, 0xd7, 0x24, 0x16, 0xb3, 0x8d, 0x50, 0xf6, - 0xc7, 0x11, 0x6c, 0x83, 0xd9, 0xd5, 0x50, 0xf6, 0x27, 0x11, 0xec, 0x2a, 0xb3, 0x6b, 0xa1, 0xec, - 0xaf, 0x44, 0xb0, 0x6b, 0xcc, 0x5e, 0x0e, 0x65, 0x7f, 0x35, 0x82, 0xbd, 0xcc, 0xec, 0x95, 0x50, - 0xf6, 0xd7, 0x22, 0xd8, 0x2b, 0xcc, 0x5e, 0x0d, 0x65, 0x7f, 0x3d, 0x82, 0xbd, 0xca, 0xec, 0x7b, - 0xa1, 0xec, 0x6f, 0x44, 0xb0, 0xef, 0x31, 0xfb, 0x7e, 0x28, 0xfb, 0x9b, 0x11, 0xec, 0xfb, 0x92, - 0x5d, 0xb9, 0x1b, 0xca, 0xfe, 0x34, 0x9c, 0x5d, 0xb9, 0xcb, 0xec, 0x70, 0xad, 0x7d, 0x2b, 0x82, - 0xcd, 0x5a, 0xab, 0x84, 0x6b, 0xed, 0xdb, 0x11, 0x6c, 0xd6, 0x5a, 0x25, 0x5c, 0x6b, 0xdf, 0x89, - 0x60, 0xb3, 0xd6, 0x2a, 0xe1, 0x5a, 0xfb, 0x6e, 0x04, 0x9b, 0xb5, 0x56, 0x09, 0xd7, 0xda, 0xf7, - 0x22, 0xd8, 0xac, 0xb5, 0x4a, 0xb8, 0xd6, 0xbe, 0x1f, 0xc1, 0x66, 0xad, 0x55, 0xc2, 0xb5, 0xf6, - 0x87, 0x11, 0x6c, 0xd6, 0x5a, 0x25, 0x5c, 0x6b, 0x7f, 0x14, 0xc1, 0x66, 0xad, 0x55, 0xc2, 0xb5, - 0xf6, 0xc7, 0x11, 0x6c, 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0x3f, 0x09, 0x67, 0x1b, 0xac, 0x35, 0x23, - 0x5c, 0x6b, 0x7f, 0x1a, 0xc1, 0x66, 0xad, 0x19, 0xe1, 0x5a, 0xfb, 0xb3, 0x08, 0x36, 0x6b, 0xcd, - 0x08, 0xd7, 0xda, 0x0f, 0x22, 0xd8, 0xac, 0x35, 0x23, 0x5c, 0x6b, 0x7f, 0x1e, 0xc1, 0x66, 0xad, - 0x19, 0xe1, 0x5a, 0xfb, 0x8b, 0x08, 0x36, 0x6b, 0xcd, 0x08, 0xd7, 0xda, 0x5f, 0x46, 0xb0, 0x59, - 0x6b, 0x46, 0xb8, 0xd6, 0xfe, 0x2a, 0x82, 0xcd, 0x5a, 0x33, 0xc2, 0xb5, 0xf6, 0xd7, 0x11, 0x6c, - 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0xbf, 0x89, 0x60, 0xb3, 0xd6, 0xaa, 0xe1, 0x5a, 0xfb, 0xdb, 0x70, - 0x76, 0x95, 0xb5, 0x56, 0x0d, 0xd7, 0xda, 0xdf, 0x45, 0xb0, 0x59, 0x6b, 0xd5, 0x70, 0xad, 0xfd, - 0x7d, 0x04, 0x9b, 0xb5, 0x56, 0x0d, 0xd7, 0xda, 0x3f, 0x44, 0xb0, 0x59, 0x6b, 0xd5, 0x70, 0xad, - 0xfd, 0x30, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x1f, 0x23, 0xd8, 0xac, 0xb5, 0x6a, 0xb8, - 0xd6, 0xfe, 0x29, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x9f, 0x23, 0xd8, 0xac, 0xb5, 0x6a, - 0xb8, 0xd6, 0xfe, 0x25, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x5f, 0x23, 0xd8, 0xac, 0xb5, - 0x5a, 0xb8, 0xd6, 0xfe, 0x2d, 0x9c, 0x5d, 0x63, 0xad, 0xd5, 0xc2, 0xb5, 0xf6, 0xef, 0x11, 0x6c, - 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0xff, 0x11, 0xc1, 0x66, 0xad, 0xd5, 0xc2, 0xb5, 0xf6, 0x9f, 0x11, - 0x6c, 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0xff, 0x15, 0xc1, 0x66, 0xad, 0xd5, 0xc2, 0xb5, 0xf6, 0xdf, - 0x11, 0x6c, 0xd6, 0x5a, 0x2d, 0x5c, 0x6b, 0x3f, 0x8a, 0x60, 0xb3, 0xd6, 0x6a, 0xe1, 0x5a, 0xfb, - 0x71, 0x04, 0x9b, 0xb5, 0x56, 0x0b, 0xd7, 0xda, 0xff, 0x44, 0xb0, 0x59, 0x6b, 0xb5, 0x70, 0xad, - 0xfd, 0x6f, 0x04, 0x9b, 0xb5, 0xb6, 0x1c, 0xae, 0xb5, 0xff, 0x0b, 0x67, 0x2f, 0xdf, 0xfd, 0x49, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x56, 0x3d, 0xa6, 0xdc, 0x38, 0x00, 0x00, + 0xc7, 0x11, 0x6c, 0x83, 0xd9, 0x95, 0x50, 0xf6, 0x27, 0x11, 0xec, 0x0a, 0xb3, 0xab, 0xa1, 0xec, + 0xaf, 0x46, 0xb0, 0xab, 0xcc, 0x5e, 0x0e, 0x65, 0x7f, 0x2d, 0x82, 0xbd, 0xcc, 0xec, 0x95, 0x50, + 0xf6, 0xd7, 0x23, 0xd8, 0x2b, 0xcc, 0x5e, 0x0d, 0x65, 0x7f, 0x23, 0x82, 0xbd, 0xca, 0xec, 0xbb, + 0xa1, 0xec, 0x6f, 0x46, 0xb0, 0xef, 0x32, 0xfb, 0x5e, 0x28, 0xfb, 0x5b, 0x11, 0xec, 0x7b, 0x92, + 0xbd, 0xb4, 0x18, 0xca, 0xfe, 0x34, 0x9c, 0xbd, 0xb4, 0xc8, 0xec, 0x70, 0xad, 0x7d, 0x3b, 0x82, + 0xcd, 0x5a, 0x5b, 0x0a, 0xd7, 0xda, 0x77, 0x22, 0xd8, 0xac, 0xb5, 0xa5, 0x70, 0xad, 0x7d, 0x37, + 0x82, 0xcd, 0x5a, 0x5b, 0x0a, 0xd7, 0xda, 0xf7, 0x22, 0xd8, 0xac, 0xb5, 0xa5, 0x70, 0xad, 0x7d, + 0x3f, 0x82, 0xcd, 0x5a, 0x5b, 0x0a, 0xd7, 0xda, 0x0f, 0x22, 0xd8, 0xac, 0xb5, 0xa5, 0x70, 0xad, + 0xfd, 0x61, 0x04, 0x9b, 0xb5, 0xb6, 0x14, 0xae, 0xb5, 0x3f, 0x8a, 0x60, 0xb3, 0xd6, 0x96, 0xc2, + 0xb5, 0xf6, 0xc7, 0x11, 0x6c, 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0x3f, 0x09, 0x67, 0x1b, 0xac, 0x35, + 0x23, 0x5c, 0x6b, 0x7f, 0x1a, 0xc1, 0x66, 0xad, 0x19, 0xe1, 0x5a, 0xfb, 0xb3, 0x08, 0x36, 0x6b, + 0xcd, 0x08, 0xd7, 0xda, 0x0f, 0x23, 0xd8, 0xac, 0x35, 0x23, 0x5c, 0x6b, 0x7f, 0x1e, 0xc1, 0x66, + 0xad, 0x19, 0xe1, 0x5a, 0xfb, 0x8b, 0x08, 0x36, 0x6b, 0xcd, 0x08, 0xd7, 0xda, 0x5f, 0x46, 0xb0, + 0x59, 0x6b, 0x46, 0xb8, 0xd6, 0xfe, 0x2a, 0x82, 0xcd, 0x5a, 0x33, 0xc2, 0xb5, 0xf6, 0xd7, 0x11, + 0x6c, 0xd6, 0x9a, 0x11, 0xae, 0xb5, 0xbf, 0x89, 0x60, 0xb3, 0xd6, 0x2a, 0xe1, 0x5a, 0xfb, 0xdb, + 0x70, 0x76, 0x85, 0xb5, 0x56, 0x09, 0xd7, 0xda, 0xdf, 0x45, 0xb0, 0x59, 0x6b, 0x95, 0x70, 0xad, + 0xfd, 0x7d, 0x04, 0x9b, 0xb5, 0x56, 0x09, 0xd7, 0xda, 0x3f, 0x44, 0xb0, 0x59, 0x6b, 0x95, 0x70, + 0xad, 0xfd, 0x28, 0x82, 0xcd, 0x5a, 0xab, 0x84, 0x6b, 0xed, 0x1f, 0x23, 0xd8, 0xac, 0xb5, 0x4a, + 0xb8, 0xd6, 0xfe, 0x29, 0x82, 0xcd, 0x5a, 0xab, 0x84, 0x6b, 0xed, 0x9f, 0x23, 0xd8, 0xac, 0xb5, + 0x4a, 0xb8, 0xd6, 0xfe, 0x25, 0x82, 0xcd, 0x5a, 0xab, 0x84, 0x6b, 0xed, 0x5f, 0x23, 0xd8, 0xac, + 0xb5, 0x6a, 0xb8, 0xd6, 0xfe, 0x2d, 0x9c, 0x5d, 0x65, 0xad, 0x55, 0xc3, 0xb5, 0xf6, 0xef, 0x11, + 0x6c, 0xd6, 0x5a, 0x35, 0x5c, 0x6b, 0xff, 0x11, 0xc1, 0x66, 0xad, 0x55, 0xc3, 0xb5, 0xf6, 0x9f, + 0x11, 0x6c, 0xd6, 0x5a, 0x35, 0x5c, 0x6b, 0xff, 0x15, 0xc1, 0x66, 0xad, 0x55, 0xc3, 0xb5, 0xf6, + 0xdf, 0x11, 0x6c, 0xd6, 0x5a, 0x35, 0x5c, 0x6b, 0x3f, 0x8e, 0x60, 0xb3, 0xd6, 0xaa, 0xe1, 0x5a, + 0xfb, 0x2c, 0x82, 0xcd, 0x5a, 0xab, 0x86, 0x6b, 0xed, 0x7f, 0x22, 0xd8, 0xac, 0xb5, 0x6a, 0xb8, + 0xd6, 0xfe, 0x37, 0x82, 0xcd, 0x5a, 0x5b, 0x0e, 0xd7, 0xda, 0xff, 0x85, 0xb3, 0x97, 0x17, 0x7f, + 0x12, 0x00, 0x00, 0xff, 0xff, 0x40, 0x32, 0xb7, 0xac, 0x57, 0x39, 0x00, 0x00, }
diff --git a/proto/testdata/test.proto b/proto/testdata/test.proto index 2ce2960..70e3cfc 100644 --- a/proto/testdata/test.proto +++ b/proto/testdata/test.proto
@@ -169,6 +169,13 @@ }; } +// For testing a group containing a required field. +message GoTestRequiredGroupField { + required group Group = 1 { + required int32 Field = 2; + }; +} + // For testing skipping of unrecognized fields. // Numbers are all big, larger than tag numbers in GoTestField, // the message used in the corresponding test.