rpc protocol update

This commit is contained in:
Gordon 2021-12-08 18:09:34 +08:00
parent 058a191e61
commit 0e99fb27b5

View File

@ -37,7 +37,7 @@ type WSToMsgSvrChatMsg struct {
MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"`
Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"`
OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"`
Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"`
ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"`
ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
@ -50,7 +50,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} }
func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) }
func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) ProtoMessage() {}
func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{0} return fileDescriptor_chat_3707ac912effe95d, []int{0}
} }
func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b)
@ -161,11 +161,11 @@ func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string {
return "" return ""
} }
func (m *WSToMsgSvrChatMsg) GetOptions() string { func (m *WSToMsgSvrChatMsg) GetOptions() map[string]int32 {
if m != nil { if m != nil {
return m.Options return m.Options
} }
return "" return nil
} }
func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 {
@ -203,7 +203,7 @@ type MsgSvrToPushSvrChatMsg struct {
OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"`
MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"`
OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"`
Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"`
ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -215,7 +215,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{}
func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) }
func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {}
func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{1} return fileDescriptor_chat_3707ac912effe95d, []int{1}
} }
func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b)
@ -326,11 +326,11 @@ func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string {
return "" return ""
} }
func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { func (m *MsgSvrToPushSvrChatMsg) GetOptions() map[string]int32 {
if m != nil { if m != nil {
return m.Options return m.Options
} }
return "" return nil
} }
func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 {
@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} }
func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) ProtoMessage() {}
func (*PullMessageReq) Descriptor() ([]byte, []int) { func (*PullMessageReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{2} return fileDescriptor_chat_3707ac912effe95d, []int{2}
} }
func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageReq.Unmarshal(m, b)
@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} }
func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) ProtoMessage() {}
func (*PullMessageResp) Descriptor() ([]byte, []int) { func (*PullMessageResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{3} return fileDescriptor_chat_3707ac912effe95d, []int{3}
} }
func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { func (m *PullMessageResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) return xxx_messageInfo_PullMessageResp.Unmarshal(m, b)
@ -500,7 +500,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) ProtoMessage() {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{4} return fileDescriptor_chat_3707ac912effe95d, []int{4}
} }
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
@ -553,7 +553,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{5} return fileDescriptor_chat_3707ac912effe95d, []int{5}
} }
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@ -601,7 +601,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{6} return fileDescriptor_chat_3707ac912effe95d, []int{6}
} }
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@ -663,7 +663,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} }
func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (m *GatherFormat) String() string { return proto.CompactTextString(m) }
func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) ProtoMessage() {}
func (*GatherFormat) Descriptor() ([]byte, []int) { func (*GatherFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{7} return fileDescriptor_chat_3707ac912effe95d, []int{7}
} }
func (m *GatherFormat) XXX_Unmarshal(b []byte) error { func (m *GatherFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GatherFormat.Unmarshal(m, b) return xxx_messageInfo_GatherFormat.Unmarshal(m, b)
@ -731,7 +731,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} }
func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (m *MsgFormat) String() string { return proto.CompactTextString(m) }
func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) ProtoMessage() {}
func (*MsgFormat) Descriptor() ([]byte, []int) { func (*MsgFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{8} return fileDescriptor_chat_3707ac912effe95d, []int{8}
} }
func (m *MsgFormat) XXX_Unmarshal(b []byte) error { func (m *MsgFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgFormat.Unmarshal(m, b) return xxx_messageInfo_MsgFormat.Unmarshal(m, b)
@ -849,7 +849,7 @@ type UserSendMsgReq struct {
RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"`
ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"`
Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"`
Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"`
Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"`
@ -863,7 +863,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} }
func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) ProtoMessage() {}
func (*UserSendMsgReq) Descriptor() ([]byte, []int) { func (*UserSendMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{9} return fileDescriptor_chat_3707ac912effe95d, []int{9}
} }
func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b)
@ -974,11 +974,11 @@ func (m *UserSendMsgReq) GetContent() string {
return "" return ""
} }
func (m *UserSendMsgReq) GetOptions() string { func (m *UserSendMsgReq) GetOptions() map[string]int32 {
if m != nil { if m != nil {
return m.Options return m.Options
} }
return "" return nil
} }
func (m *UserSendMsgReq) GetClientMsgID() string { func (m *UserSendMsgReq) GetClientMsgID() string {
@ -1025,7 +1025,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) ProtoMessage() {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) { func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_feb94a5514034c46, []int{10} return fileDescriptor_chat_3707ac912effe95d, []int{10}
} }
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
@ -1089,7 +1089,9 @@ func (m *UserSendMsgResp) GetSendTime() int64 {
func init() { func init() {
proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg")
proto.RegisterMapType((map[string]int32)(nil), "pbChat.WSToMsgSvrChatMsg.OptionsEntry")
proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg")
proto.RegisterMapType((map[string]int32)(nil), "pbChat.MsgSvrToPushSvrChatMsg.OptionsEntry")
proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq")
proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp")
proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq")
@ -1098,6 +1100,7 @@ func init() {
proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat")
proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat")
proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq")
proto.RegisterMapType((map[string]int32)(nil), "pbChat.UserSendMsgReq.OptionsEntry")
proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp")
} }
@ -1272,70 +1275,74 @@ var _Chat_serviceDesc = grpc.ServiceDesc{
Metadata: "chat/chat.proto", Metadata: "chat/chat.proto",
} }
func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_feb94a5514034c46) } func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_3707ac912effe95d) }
var fileDescriptor_chat_feb94a5514034c46 = []byte{ var fileDescriptor_chat_3707ac912effe95d = []byte{
// 981 bytes of a gzipped FileDescriptorProto // 1049 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x97, 0xdd, 0x6e, 0xe3, 0x44,
0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, 0x14, 0xc7, 0x15, 0x3b, 0x4e, 0x9a, 0x93, 0xcf, 0x0e, 0x55, 0x77, 0x14, 0x10, 0x44, 0x61, 0x59,
0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, 0x45, 0x20, 0x05, 0x69, 0xb9, 0x59, 0x15, 0xb1, 0x82, 0x36, 0x69, 0x15, 0xd4, 0x74, 0x2b, 0x27,
0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, 0x2b, 0x24, 0xee, 0xbc, 0xc9, 0x24, 0xb5, 0x9a, 0xd8, 0xc9, 0x8c, 0x5b, 0xda, 0x1b, 0xde, 0x80,
0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, 0xb7, 0xe0, 0x65, 0x78, 0x0e, 0xae, 0xb8, 0xe6, 0x1a, 0x09, 0xcd, 0x8c, 0x1d, 0xcf, 0xd8, 0x4e,
0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, 0x53, 0x75, 0x61, 0x6f, 0xaa, 0x9e, 0xe3, 0x33, 0xe3, 0x39, 0xe7, 0xfc, 0xfc, 0x3f, 0x13, 0xa8,
0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, 0x4f, 0xae, 0x9c, 0xe0, 0x6b, 0xfe, 0xa7, 0xbb, 0xa2, 0x7e, 0xe0, 0xa3, 0xc2, 0xea, 0xdd, 0xc9,
0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, 0x95, 0x13, 0xb4, 0xff, 0xce, 0xc3, 0xfe, 0x4f, 0xa3, 0xb1, 0x3f, 0x64, 0xf3, 0xd1, 0x2d, 0xe5,
0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, 0xae, 0x21, 0x9b, 0xa3, 0x43, 0x28, 0x8c, 0x88, 0x37, 0x1d, 0xf4, 0x70, 0xae, 0x95, 0xeb, 0x94,
0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, 0xec, 0xd0, 0xe2, 0x7e, 0x9b, 0x4c, 0x6e, 0x07, 0x3d, 0x6c, 0x48, 0xbf, 0xb4, 0x10, 0x86, 0xe2,
0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, 0x89, 0xef, 0x05, 0xc4, 0x0b, 0xb0, 0x29, 0x1e, 0x44, 0x26, 0x6a, 0xc2, 0x1e, 0x5f, 0x3b, 0x76,
0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, 0x97, 0x04, 0xe7, 0x5b, 0xb9, 0x8e, 0x69, 0x6f, 0x6c, 0xbe, 0x6a, 0xc8, 0xe6, 0xa7, 0xd4, 0x5f,
0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, 0x62, 0xab, 0x95, 0xeb, 0x58, 0x76, 0x64, 0xa2, 0x17, 0x50, 0xe3, 0x51, 0x84, 0x5e, 0xb8, 0x93,
0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, 0xeb, 0x0b, 0x67, 0x49, 0x70, 0x41, 0x6c, 0x9b, 0xf0, 0xa2, 0xe7, 0x50, 0x95, 0x9e, 0x53, 0x67,
0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, 0x42, 0xde, 0xda, 0xe7, 0xb8, 0x28, 0xc2, 0x74, 0x27, 0x6a, 0x41, 0x39, 0x3c, 0xce, 0xf8, 0x7e,
0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, 0x45, 0xf0, 0x9e, 0x78, 0x97, 0xea, 0xe2, 0x11, 0x23, 0xc2, 0x98, 0xeb, 0x7b, 0x22, 0xa2, 0x24,
0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, 0x23, 0x14, 0x17, 0x8f, 0x78, 0xb3, 0x22, 0xd4, 0x09, 0x5c, 0xdf, 0x1b, 0xf4, 0x30, 0x88, 0xf7,
0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, 0xa8, 0x2e, 0x74, 0x00, 0xd6, 0x90, 0xcd, 0x07, 0x3d, 0x5c, 0x16, 0xcf, 0xa4, 0xc1, 0xbd, 0x63,
0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, 0xff, 0x9a, 0x78, 0xb8, 0x22, 0xbd, 0xc2, 0x10, 0xbb, 0xcd, 0x66, 0x0b, 0xd7, 0x23, 0x03, 0x6f,
0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, 0xe6, 0xe3, 0x6a, 0xb8, 0x5b, 0xec, 0x42, 0xdf, 0x43, 0xf1, 0xcd, 0x8a, 0xef, 0xcc, 0x70, 0xad,
0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, 0x65, 0x76, 0xca, 0x2f, 0x5f, 0x74, 0x65, 0xc7, 0xba, 0xa9, 0x6e, 0x75, 0xc3, 0xc0, 0xbe, 0x17,
0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, 0xd0, 0x7b, 0x3b, 0x5a, 0x86, 0x3e, 0x05, 0xb8, 0x5c, 0x38, 0xc1, 0xcc, 0xa7, 0xcb, 0x41, 0x0f,
0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, 0xd7, 0x45, 0x4a, 0x8a, 0x07, 0x7d, 0x02, 0xa5, 0x53, 0x9f, 0x4e, 0xc8, 0xb9, 0xcb, 0x02, 0xdc,
0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, 0x68, 0x99, 0x9d, 0x92, 0x1d, 0x3b, 0x44, 0xcd, 0x16, 0x2e, 0xf1, 0x02, 0x99, 0xd3, 0xbe, 0x3c,
0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, 0xa1, 0xe2, 0x6a, 0x1e, 0x41, 0x45, 0x7d, 0x31, 0x6a, 0x80, 0x79, 0x4d, 0xee, 0x43, 0x60, 0xf8,
0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, 0xbf, 0x3c, 0xf7, 0x5b, 0x67, 0x71, 0x43, 0x04, 0x2c, 0x96, 0x2d, 0x8d, 0x23, 0xe3, 0x55, 0xae,
0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, 0xfd, 0x67, 0x1e, 0x0e, 0x65, 0x0e, 0x63, 0xff, 0xf2, 0x86, 0x5d, 0xfd, 0x2f, 0xe8, 0x61, 0x28,
0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, 0xf2, 0x98, 0x11, 0x59, 0x87, 0xe4, 0x45, 0xa6, 0x06, 0xa5, 0xb5, 0x1d, 0xca, 0xc2, 0x2e, 0x28,
0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, 0x8b, 0x8f, 0x83, 0x72, 0xef, 0x11, 0x50, 0x96, 0x76, 0x42, 0x09, 0x3b, 0xa1, 0x2c, 0x3f, 0x00,
0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, 0x65, 0x45, 0x85, 0x72, 0x37, 0x7e, 0xfd, 0x24, 0x7e, 0x5f, 0x45, 0xf8, 0x65, 0xb7, 0xed, 0x89,
0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, 0x0c, 0x26, 0x28, 0x6b, 0xfc, 0xb7, 0x94, 0xfd, 0x0a, 0xb5, 0xcb, 0x9b, 0xc5, 0x62, 0x48, 0x18,
0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, 0x73, 0xe6, 0xc4, 0x26, 0x6b, 0x0e, 0xd1, 0x5b, 0x46, 0x68, 0x0c, 0x97, 0xb4, 0x24, 0x10, 0xeb,
0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, 0x63, 0x32, 0x77, 0x3d, 0xb1, 0x8d, 0x00, 0x42, 0xda, 0x12, 0xc8, 0x75, 0xdf, 0x9b, 0x0a, 0xbe,
0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, 0x4c, 0x3b, 0xb4, 0x92, 0xc5, 0xcf, 0xa7, 0x8a, 0xdf, 0xfe, 0x2b, 0x07, 0x75, 0xed, 0x00, 0x6c,
0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, 0xc5, 0xf1, 0xea, 0x53, 0x7a, 0xe2, 0x4f, 0x89, 0x38, 0x82, 0x65, 0x47, 0x26, 0x7f, 0x4f, 0x9f,
0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, 0xd2, 0x21, 0x9b, 0x47, 0x80, 0x4b, 0x8b, 0xfb, 0x87, 0xce, 0x1d, 0xa7, 0x38, 0x7c, 0xbf, 0xb4,
0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, 0x84, 0xdf, 0xf5, 0x62, 0xba, 0x43, 0x0b, 0x1d, 0x41, 0x75, 0xe4, 0x7a, 0xf3, 0x05, 0xe1, 0xb9,
0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, 0xf1, 0xed, 0x2c, 0xd1, 0xc0, 0x83, 0xa8, 0x81, 0x67, 0x4e, 0x70, 0x45, 0xe8, 0xa9, 0x4f, 0x97,
0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, 0x4e, 0x60, 0xeb, 0xa1, 0xe8, 0x15, 0x54, 0xce, 0xa8, 0x7f, 0xb3, 0x8a, 0x96, 0x16, 0x1e, 0x58,
0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, 0xaa, 0x45, 0xb6, 0x97, 0xf0, 0x4c, 0x49, 0xf5, 0xf8, 0x7e, 0x44, 0xd6, 0x5c, 0x47, 0x1e, 0x2a,
0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, 0x7a, 0xa2, 0x80, 0x46, 0x9a, 0x5e, 0x0c, 0x45, 0x26, 0xf7, 0xc1, 0x66, 0xcb, 0xe4, 0x5f, 0x70,
0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, 0x68, 0xb6, 0x2f, 0x00, 0x9d, 0x91, 0x60, 0xe8, 0xdc, 0xfd, 0xe0, 0x4d, 0x65, 0xde, 0xef, 0xf5,
0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, 0xa6, 0xf6, 0x2f, 0xf0, 0x51, 0x6a, 0xbf, 0x0f, 0xd1, 0xad, 0x76, 0x1f, 0x2a, 0x6a, 0x55, 0x51,
0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, 0x0d, 0x8c, 0xcd, 0xf1, 0x8d, 0x41, 0x0f, 0x7d, 0x01, 0x79, 0x91, 0xbf, 0x21, 0x3a, 0xb1, 0xaf,
0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, 0x7c, 0x85, 0x61, 0x1b, 0xc4, 0xe3, 0xf6, 0x3f, 0x06, 0x94, 0x36, 0xbe, 0xa7, 0x68, 0x68, 0xa4,
0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, 0x79, 0xa6, 0xae, 0x79, 0x09, 0x95, 0xca, 0x6f, 0x51, 0x29, 0x7a, 0x2b, 0x28, 0x18, 0xf4, 0x84,
0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, 0x9c, 0x96, 0x6c, 0xd5, 0xa5, 0x2a, 0x74, 0x41, 0x57, 0xe8, 0x06, 0x98, 0xbc, 0x22, 0x45, 0x51,
0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, 0x11, 0x33, 0xa9, 0xcc, 0x7b, 0x09, 0x65, 0xfe, 0x12, 0x1a, 0x52, 0x42, 0x15, 0x49, 0x91, 0xb2,
0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, 0x99, 0xf2, 0x67, 0x68, 0x35, 0x3c, 0x4e, 0xab, 0xcb, 0xdb, 0xb4, 0x5a, 0x91, 0xa9, 0x4a, 0x4a,
0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, 0xa6, 0xda, 0xbf, 0x59, 0x50, 0xe3, 0xb0, 0xf1, 0x75, 0x43, 0x36, 0xe7, 0x30, 0x3e, 0x87, 0xaa,
0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, 0x4d, 0xd6, 0x83, 0x29, 0xf1, 0x02, 0x77, 0xe6, 0x12, 0x1a, 0x12, 0xa4, 0x3b, 0xe3, 0xfb, 0x81,
0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, 0xa1, 0xde, 0x0f, 0xe2, 0x06, 0x9a, 0x5a, 0x03, 0x77, 0x6a, 0x4e, 0x46, 0xe2, 0xd6, 0xe3, 0x12,
0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, 0x2f, 0x64, 0x25, 0xae, 0xeb, 0x77, 0x31, 0x4b, 0xbf, 0xd5, 0x11, 0xb5, 0x97, 0x1e, 0x51, 0x0a,
0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, 0x5a, 0xa5, 0x07, 0xd1, 0x82, 0x34, 0x5a, 0x31, 0xae, 0x65, 0x0d, 0x57, 0xed, 0xe6, 0x52, 0x49,
0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, 0xde, 0x5c, 0x14, 0xdc, 0xaa, 0x3a, 0x6e, 0xdf, 0x25, 0x87, 0xda, 0xe7, 0xd1, 0xe7, 0xa4, 0xb7,
0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, 0x6e, 0xcb, 0x30, 0x4b, 0x50, 0x50, 0x4f, 0x51, 0x10, 0xce, 0xd5, 0xf3, 0x68, 0xae, 0x36, 0x36,
0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, 0x73, 0x35, 0x72, 0xf1, 0xcf, 0xbb, 0x7f, 0x17, 0xde, 0xa6, 0x8c, 0xfe, 0x1d, 0xe7, 0x9d, 0x45,
0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, 0xbc, 0x23, 0xc9, 0x7b, 0x64, 0xbf, 0xd7, 0xe8, 0xfb, 0x23, 0x07, 0x75, 0x2d, 0xa9, 0x27, 0x89,
0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, 0x59, 0x0a, 0x61, 0x33, 0x0b, 0xe1, 0x84, 0x02, 0xe4, 0xd3, 0x0a, 0x90, 0xa8, 0x9c, 0x95, 0xae,
0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, 0x9c, 0x5a, 0x87, 0x82, 0x5e, 0x87, 0x97, 0xbf, 0x1b, 0x90, 0xe7, 0x5d, 0x42, 0x3f, 0x42, 0x3d,
0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, 0x21, 0xd2, 0xa8, 0xb9, 0x19, 0x4d, 0xa9, 0x69, 0xd0, 0xfc, 0x78, 0xeb, 0x33, 0xb6, 0x42, 0xaf,
0x52, 0xce, 0x0c, 0x00, 0x00, 0xa1, 0xac, 0xcc, 0x2b, 0x74, 0x18, 0xc5, 0xea, 0x17, 0x86, 0xe6, 0xb3, 0x4c, 0x3f, 0x5b, 0xa1,
0x4b, 0x38, 0xc8, 0x9a, 0x77, 0xe8, 0xb3, 0x8c, 0x05, 0xea, 0x34, 0xdc, 0xbe, 0xe3, 0x6b, 0x28,
0x2b, 0x1d, 0x8b, 0x4f, 0xa4, 0xb3, 0x19, 0xaf, 0x4f, 0xb4, 0xf7, 0xb8, 0xfe, 0x73, 0xb5, 0x2b,
0x7e, 0xe1, 0x7d, 0x2b, 0x03, 0xde, 0x15, 0xc4, 0x2f, 0xbd, 0x6f, 0xfe, 0x0d, 0x00, 0x00, 0xff,
0xff, 0xa2, 0x9b, 0xc2, 0xf2, 0xfc, 0x0d, 0x00, 0x00,
} }