// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.11.4 // source: msg.proto package msg import ( proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type SyncFlag int32 const ( SyncFlag_START SyncFlag = 0 SyncFlag_CONTINUME SyncFlag = 1 SyncFlag_STOP SyncFlag = 2 ) // Enum value maps for SyncFlag. var ( SyncFlag_name = map[int32]string{ 0: "START", 1: "CONTINUME", 2: "STOP", } SyncFlag_value = map[string]int32{ "START": 0, "CONTINUME": 1, "STOP": 2, } ) func (x SyncFlag) Enum() *SyncFlag { p := new(SyncFlag) *p = x return p } func (x SyncFlag) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SyncFlag) Descriptor() protoreflect.EnumDescriptor { return file_msg_proto_enumTypes[0].Descriptor() } func (SyncFlag) Type() protoreflect.EnumType { return &file_msg_proto_enumTypes[0] } func (x SyncFlag) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *SyncFlag) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = SyncFlag(num) return nil } // Deprecated: Use SyncFlag.Descriptor instead. func (SyncFlag) EnumDescriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{0} } type GetMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SyncFlag *SyncFlag `protobuf:"varint,1,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` SyncCookie []byte `protobuf:"bytes,2,opt,name=syncCookie" json:"syncCookie,omitempty"` RambleFlag *int32 `protobuf:"varint,3,opt,name=rambleFlag" json:"rambleFlag,omitempty"` LatestRambleNumber *int32 `protobuf:"varint,4,opt,name=latestRambleNumber" json:"latestRambleNumber,omitempty"` OtherRambleNumber *int32 `protobuf:"varint,5,opt,name=otherRambleNumber" json:"otherRambleNumber,omitempty"` OnlineSyncFlag *int32 `protobuf:"varint,6,opt,name=onlineSyncFlag" json:"onlineSyncFlag,omitempty"` ContextFlag *int32 `protobuf:"varint,7,opt,name=contextFlag" json:"contextFlag,omitempty"` WhisperSessionId *int32 `protobuf:"varint,8,opt,name=whisperSessionId" json:"whisperSessionId,omitempty"` MsgReqType *int32 `protobuf:"varint,9,opt,name=msgReqType" json:"msgReqType,omitempty"` PubaccountCookie []byte `protobuf:"bytes,10,opt,name=pubaccountCookie" json:"pubaccountCookie,omitempty"` MsgCtrlBuf []byte `protobuf:"bytes,11,opt,name=msgCtrlBuf" json:"msgCtrlBuf,omitempty"` ServerBuf []byte `protobuf:"bytes,12,opt,name=serverBuf" json:"serverBuf,omitempty"` } func (x *GetMessageRequest) Reset() { *x = GetMessageRequest{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMessageRequest) ProtoMessage() {} func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMessageRequest.ProtoReflect.Descriptor instead. func (*GetMessageRequest) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{0} } func (x *GetMessageRequest) GetSyncFlag() SyncFlag { if x != nil && x.SyncFlag != nil { return *x.SyncFlag } return SyncFlag_START } func (x *GetMessageRequest) GetSyncCookie() []byte { if x != nil { return x.SyncCookie } return nil } func (x *GetMessageRequest) GetRambleFlag() int32 { if x != nil && x.RambleFlag != nil { return *x.RambleFlag } return 0 } func (x *GetMessageRequest) GetLatestRambleNumber() int32 { if x != nil && x.LatestRambleNumber != nil { return *x.LatestRambleNumber } return 0 } func (x *GetMessageRequest) GetOtherRambleNumber() int32 { if x != nil && x.OtherRambleNumber != nil { return *x.OtherRambleNumber } return 0 } func (x *GetMessageRequest) GetOnlineSyncFlag() int32 { if x != nil && x.OnlineSyncFlag != nil { return *x.OnlineSyncFlag } return 0 } func (x *GetMessageRequest) GetContextFlag() int32 { if x != nil && x.ContextFlag != nil { return *x.ContextFlag } return 0 } func (x *GetMessageRequest) GetWhisperSessionId() int32 { if x != nil && x.WhisperSessionId != nil { return *x.WhisperSessionId } return 0 } func (x *GetMessageRequest) GetMsgReqType() int32 { if x != nil && x.MsgReqType != nil { return *x.MsgReqType } return 0 } func (x *GetMessageRequest) GetPubaccountCookie() []byte { if x != nil { return x.PubaccountCookie } return nil } func (x *GetMessageRequest) GetMsgCtrlBuf() []byte { if x != nil { return x.MsgCtrlBuf } return nil } func (x *GetMessageRequest) GetServerBuf() []byte { if x != nil { return x.ServerBuf } return nil } type SendMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoutingHead *RoutingHead `protobuf:"bytes,1,opt,name=routingHead" json:"routingHead,omitempty"` ContentHead *ContentHead `protobuf:"bytes,2,opt,name=contentHead" json:"contentHead,omitempty"` MsgBody *MessageBody `protobuf:"bytes,3,opt,name=msgBody" json:"msgBody,omitempty"` MsgSeq *int32 `protobuf:"varint,4,opt,name=msgSeq" json:"msgSeq,omitempty"` MsgRand *int32 `protobuf:"varint,5,opt,name=msgRand" json:"msgRand,omitempty"` SyncCookie []byte `protobuf:"bytes,6,opt,name=syncCookie" json:"syncCookie,omitempty"` //MsgComm.AppShareInfo? appShare = 7; MsgVia *int32 `protobuf:"varint,8,opt,name=msgVia" json:"msgVia,omitempty"` DataStatist *int32 `protobuf:"varint,9,opt,name=dataStatist" json:"dataStatist,omitempty"` //MultiMsgAssist? multiMsgAssist = 10; //PbInputNotifyInfo? inputNotifyInfo = 11; MsgCtrl *MsgCtrl `protobuf:"bytes,12,opt,name=msgCtrl" json:"msgCtrl,omitempty"` //ImReceipt.ReceiptReq? receiptReq = 13; MultiSendSeq *int32 `protobuf:"varint,14,opt,name=multiSendSeq" json:"multiSendSeq,omitempty"` } func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{1} } func (x *SendMessageRequest) GetRoutingHead() *RoutingHead { if x != nil { return x.RoutingHead } return nil } func (x *SendMessageRequest) GetContentHead() *ContentHead { if x != nil { return x.ContentHead } return nil } func (x *SendMessageRequest) GetMsgBody() *MessageBody { if x != nil { return x.MsgBody } return nil } func (x *SendMessageRequest) GetMsgSeq() int32 { if x != nil && x.MsgSeq != nil { return *x.MsgSeq } return 0 } func (x *SendMessageRequest) GetMsgRand() int32 { if x != nil && x.MsgRand != nil { return *x.MsgRand } return 0 } func (x *SendMessageRequest) GetSyncCookie() []byte { if x != nil { return x.SyncCookie } return nil } func (x *SendMessageRequest) GetMsgVia() int32 { if x != nil && x.MsgVia != nil { return *x.MsgVia } return 0 } func (x *SendMessageRequest) GetDataStatist() int32 { if x != nil && x.DataStatist != nil { return *x.DataStatist } return 0 } func (x *SendMessageRequest) GetMsgCtrl() *MsgCtrl { if x != nil { return x.MsgCtrl } return nil } func (x *SendMessageRequest) GetMultiSendSeq() int32 { if x != nil && x.MultiSendSeq != nil { return *x.MultiSendSeq } return 0 } type SendMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrMsg *string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` } func (x *SendMessageResponse) Reset() { *x = SendMessageResponse{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessageResponse) ProtoMessage() {} func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. func (*SendMessageResponse) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{2} } func (x *SendMessageResponse) GetResult() int32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *SendMessageResponse) GetErrMsg() string { if x != nil && x.ErrMsg != nil { return *x.ErrMsg } return "" } type MsgWithDrawReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C2CWithDraw []*C2CMsgWithDrawReq `protobuf:"bytes,1,rep,name=c2cWithDraw" json:"c2cWithDraw,omitempty"` GroupWithDraw []*GroupMsgWithDrawReq `protobuf:"bytes,2,rep,name=groupWithDraw" json:"groupWithDraw,omitempty"` } func (x *MsgWithDrawReq) Reset() { *x = MsgWithDrawReq{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgWithDrawReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgWithDrawReq) ProtoMessage() {} func (x *MsgWithDrawReq) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MsgWithDrawReq.ProtoReflect.Descriptor instead. func (*MsgWithDrawReq) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{3} } func (x *MsgWithDrawReq) GetC2CWithDraw() []*C2CMsgWithDrawReq { if x != nil { return x.C2CWithDraw } return nil } func (x *MsgWithDrawReq) GetGroupWithDraw() []*GroupMsgWithDrawReq { if x != nil { return x.GroupWithDraw } return nil } type C2CMsgWithDrawReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgInfo []*C2CMsgInfo `protobuf:"bytes,1,rep,name=msgInfo" json:"msgInfo,omitempty"` LongMessageFlag *int32 `protobuf:"varint,2,opt,name=longMessageFlag" json:"longMessageFlag,omitempty"` Reserved []byte `protobuf:"bytes,3,opt,name=reserved" json:"reserved,omitempty"` SubCmd *int32 `protobuf:"varint,4,opt,name=subCmd" json:"subCmd,omitempty"` } func (x *C2CMsgWithDrawReq) Reset() { *x = C2CMsgWithDrawReq{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C2CMsgWithDrawReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*C2CMsgWithDrawReq) ProtoMessage() {} func (x *C2CMsgWithDrawReq) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C2CMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawReq) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{4} } func (x *C2CMsgWithDrawReq) GetMsgInfo() []*C2CMsgInfo { if x != nil { return x.MsgInfo } return nil } func (x *C2CMsgWithDrawReq) GetLongMessageFlag() int32 { if x != nil && x.LongMessageFlag != nil { return *x.LongMessageFlag } return 0 } func (x *C2CMsgWithDrawReq) GetReserved() []byte { if x != nil { return x.Reserved } return nil } func (x *C2CMsgWithDrawReq) GetSubCmd() int32 { if x != nil && x.SubCmd != nil { return *x.SubCmd } return 0 } type GroupMsgWithDrawReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SubCmd *int32 `protobuf:"varint,1,opt,name=subCmd" json:"subCmd,omitempty"` GroupType *int32 `protobuf:"varint,2,opt,name=groupType" json:"groupType,omitempty"` GroupCode *int64 `protobuf:"varint,3,opt,name=groupCode" json:"groupCode,omitempty"` MsgList []*GroupMsgInfo `protobuf:"bytes,4,rep,name=msgList" json:"msgList,omitempty"` UserDef []byte `protobuf:"bytes,5,opt,name=userDef" json:"userDef,omitempty"` } func (x *GroupMsgWithDrawReq) Reset() { *x = GroupMsgWithDrawReq{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupMsgWithDrawReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupMsgWithDrawReq) ProtoMessage() {} func (x *GroupMsgWithDrawReq) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawReq) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{5} } func (x *GroupMsgWithDrawReq) GetSubCmd() int32 { if x != nil && x.SubCmd != nil { return *x.SubCmd } return 0 } func (x *GroupMsgWithDrawReq) GetGroupType() int32 { if x != nil && x.GroupType != nil { return *x.GroupType } return 0 } func (x *GroupMsgWithDrawReq) GetGroupCode() int64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } func (x *GroupMsgWithDrawReq) GetMsgList() []*GroupMsgInfo { if x != nil { return x.MsgList } return nil } func (x *GroupMsgWithDrawReq) GetUserDef() []byte { if x != nil { return x.UserDef } return nil } type MsgWithDrawResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C2CWithDraw []*C2CMsgWithDrawResp `protobuf:"bytes,1,rep,name=c2cWithDraw" json:"c2cWithDraw,omitempty"` GroupWithDraw []*GroupMsgWithDrawResp `protobuf:"bytes,2,rep,name=groupWithDraw" json:"groupWithDraw,omitempty"` } func (x *MsgWithDrawResp) Reset() { *x = MsgWithDrawResp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgWithDrawResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgWithDrawResp) ProtoMessage() {} func (x *MsgWithDrawResp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MsgWithDrawResp.ProtoReflect.Descriptor instead. func (*MsgWithDrawResp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{6} } func (x *MsgWithDrawResp) GetC2CWithDraw() []*C2CMsgWithDrawResp { if x != nil { return x.C2CWithDraw } return nil } func (x *MsgWithDrawResp) GetGroupWithDraw() []*GroupMsgWithDrawResp { if x != nil { return x.GroupWithDraw } return nil } type C2CMsgWithDrawResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrMsg *string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` } func (x *C2CMsgWithDrawResp) Reset() { *x = C2CMsgWithDrawResp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C2CMsgWithDrawResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*C2CMsgWithDrawResp) ProtoMessage() {} func (x *C2CMsgWithDrawResp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C2CMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawResp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{7} } func (x *C2CMsgWithDrawResp) GetResult() int32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *C2CMsgWithDrawResp) GetErrMsg() string { if x != nil && x.ErrMsg != nil { return *x.ErrMsg } return "" } type GroupMsgWithDrawResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrMsg *string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` } func (x *GroupMsgWithDrawResp) Reset() { *x = GroupMsgWithDrawResp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupMsgWithDrawResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupMsgWithDrawResp) ProtoMessage() {} func (x *GroupMsgWithDrawResp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawResp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{8} } func (x *GroupMsgWithDrawResp) GetResult() int32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *GroupMsgWithDrawResp) GetErrMsg() string { if x != nil && x.ErrMsg != nil { return *x.ErrMsg } return "" } type GroupMsgInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgSeq *int32 `protobuf:"varint,1,opt,name=msgSeq" json:"msgSeq,omitempty"` MsgRandom *int32 `protobuf:"varint,2,opt,name=msgRandom" json:"msgRandom,omitempty"` MsgType *int32 `protobuf:"varint,3,opt,name=msgType" json:"msgType,omitempty"` } func (x *GroupMsgInfo) Reset() { *x = GroupMsgInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupMsgInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupMsgInfo) ProtoMessage() {} func (x *GroupMsgInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupMsgInfo.ProtoReflect.Descriptor instead. func (*GroupMsgInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{9} } func (x *GroupMsgInfo) GetMsgSeq() int32 { if x != nil && x.MsgSeq != nil { return *x.MsgSeq } return 0 } func (x *GroupMsgInfo) GetMsgRandom() int32 { if x != nil && x.MsgRandom != nil { return *x.MsgRandom } return 0 } func (x *GroupMsgInfo) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } type C2CMsgInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromUin *int64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` ToUin *int64 `protobuf:"varint,2,opt,name=toUin" json:"toUin,omitempty"` MsgSeq *int32 `protobuf:"varint,3,opt,name=msgSeq" json:"msgSeq,omitempty"` MsgUid *int64 `protobuf:"varint,4,opt,name=msgUid" json:"msgUid,omitempty"` MsgTime *int64 `protobuf:"varint,5,opt,name=msgTime" json:"msgTime,omitempty"` MsgRandom *int32 `protobuf:"varint,6,opt,name=msgRandom" json:"msgRandom,omitempty"` PkgNum *int32 `protobuf:"varint,7,opt,name=pkgNum" json:"pkgNum,omitempty"` PkgIndex *int32 `protobuf:"varint,8,opt,name=pkgIndex" json:"pkgIndex,omitempty"` DivSeq *int32 `protobuf:"varint,9,opt,name=divSeq" json:"divSeq,omitempty"` MsgType *int32 `protobuf:"varint,10,opt,name=msgType" json:"msgType,omitempty"` RoutingHead *RoutingHead `protobuf:"bytes,20,opt,name=routingHead" json:"routingHead,omitempty"` } func (x *C2CMsgInfo) Reset() { *x = C2CMsgInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C2CMsgInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*C2CMsgInfo) ProtoMessage() {} func (x *C2CMsgInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C2CMsgInfo.ProtoReflect.Descriptor instead. func (*C2CMsgInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{10} } func (x *C2CMsgInfo) GetFromUin() int64 { if x != nil && x.FromUin != nil { return *x.FromUin } return 0 } func (x *C2CMsgInfo) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } func (x *C2CMsgInfo) GetMsgSeq() int32 { if x != nil && x.MsgSeq != nil { return *x.MsgSeq } return 0 } func (x *C2CMsgInfo) GetMsgUid() int64 { if x != nil && x.MsgUid != nil { return *x.MsgUid } return 0 } func (x *C2CMsgInfo) GetMsgTime() int64 { if x != nil && x.MsgTime != nil { return *x.MsgTime } return 0 } func (x *C2CMsgInfo) GetMsgRandom() int32 { if x != nil && x.MsgRandom != nil { return *x.MsgRandom } return 0 } func (x *C2CMsgInfo) GetPkgNum() int32 { if x != nil && x.PkgNum != nil { return *x.PkgNum } return 0 } func (x *C2CMsgInfo) GetPkgIndex() int32 { if x != nil && x.PkgIndex != nil { return *x.PkgIndex } return 0 } func (x *C2CMsgInfo) GetDivSeq() int32 { if x != nil && x.DivSeq != nil { return *x.DivSeq } return 0 } func (x *C2CMsgInfo) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } func (x *C2CMsgInfo) GetRoutingHead() *RoutingHead { if x != nil { return x.RoutingHead } return nil } type RoutingHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C2C *C2C `protobuf:"bytes,1,opt,name=c2c" json:"c2c,omitempty"` Grp *Grp `protobuf:"bytes,2,opt,name=grp" json:"grp,omitempty"` GrpTmp *GrpTmp `protobuf:"bytes,3,opt,name=grpTmp" json:"grpTmp,omitempty"` } func (x *RoutingHead) Reset() { *x = RoutingHead{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RoutingHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoutingHead) ProtoMessage() {} func (x *RoutingHead) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoutingHead.ProtoReflect.Descriptor instead. func (*RoutingHead) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{11} } func (x *RoutingHead) GetC2C() *C2C { if x != nil { return x.C2C } return nil } func (x *RoutingHead) GetGrp() *Grp { if x != nil { return x.Grp } return nil } func (x *RoutingHead) GetGrpTmp() *GrpTmp { if x != nil { return x.GrpTmp } return nil } type C2C struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ToUin *int64 `protobuf:"varint,1,opt,name=toUin" json:"toUin,omitempty"` } func (x *C2C) Reset() { *x = C2C{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C2C) String() string { return protoimpl.X.MessageStringOf(x) } func (*C2C) ProtoMessage() {} func (x *C2C) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C2C.ProtoReflect.Descriptor instead. func (*C2C) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{12} } func (x *C2C) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } type Grp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupCode *int64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` } func (x *Grp) Reset() { *x = Grp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Grp) String() string { return protoimpl.X.MessageStringOf(x) } func (*Grp) ProtoMessage() {} func (x *Grp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Grp.ProtoReflect.Descriptor instead. func (*Grp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{13} } func (x *Grp) GetGroupCode() int64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } type GrpTmp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupUin *int64 `protobuf:"varint,1,opt,name=groupUin" json:"groupUin,omitempty"` ToUin *int64 `protobuf:"varint,2,opt,name=toUin" json:"toUin,omitempty"` } func (x *GrpTmp) Reset() { *x = GrpTmp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GrpTmp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GrpTmp) ProtoMessage() {} func (x *GrpTmp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GrpTmp.ProtoReflect.Descriptor instead. func (*GrpTmp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{14} } func (x *GrpTmp) GetGroupUin() int64 { if x != nil && x.GroupUin != nil { return *x.GroupUin } return 0 } func (x *GrpTmp) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } type MsgCtrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgFlag *int32 `protobuf:"varint,1,opt,name=msgFlag" json:"msgFlag,omitempty"` } func (x *MsgCtrl) Reset() { *x = MsgCtrl{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgCtrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgCtrl) ProtoMessage() {} func (x *MsgCtrl) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MsgCtrl.ProtoReflect.Descriptor instead. func (*MsgCtrl) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{15} } func (x *MsgCtrl) GetMsgFlag() int32 { if x != nil && x.MsgFlag != nil { return *x.MsgFlag } return 0 } type GetMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrorMessage *string `protobuf:"bytes,2,opt,name=errorMessage" json:"errorMessage,omitempty"` SyncCookie []byte `protobuf:"bytes,3,opt,name=syncCookie" json:"syncCookie,omitempty"` SyncFlag *SyncFlag `protobuf:"varint,4,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` UinPairMsgs []*UinPairMessage `protobuf:"bytes,5,rep,name=uinPairMsgs" json:"uinPairMsgs,omitempty"` BindUin *int64 `protobuf:"varint,6,opt,name=bindUin" json:"bindUin,omitempty"` MsgRspType *int32 `protobuf:"varint,7,opt,name=msgRspType" json:"msgRspType,omitempty"` PubAccountCookie []byte `protobuf:"bytes,8,opt,name=pubAccountCookie" json:"pubAccountCookie,omitempty"` IsPartialSync *bool `protobuf:"varint,9,opt,name=isPartialSync" json:"isPartialSync,omitempty"` MsgCtrlBuf []byte `protobuf:"bytes,10,opt,name=msgCtrlBuf" json:"msgCtrlBuf,omitempty"` } func (x *GetMessageResponse) Reset() { *x = GetMessageResponse{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMessageResponse) ProtoMessage() {} func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMessageResponse.ProtoReflect.Descriptor instead. func (*GetMessageResponse) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{16} } func (x *GetMessageResponse) GetResult() int32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *GetMessageResponse) GetErrorMessage() string { if x != nil && x.ErrorMessage != nil { return *x.ErrorMessage } return "" } func (x *GetMessageResponse) GetSyncCookie() []byte { if x != nil { return x.SyncCookie } return nil } func (x *GetMessageResponse) GetSyncFlag() SyncFlag { if x != nil && x.SyncFlag != nil { return *x.SyncFlag } return SyncFlag_START } func (x *GetMessageResponse) GetUinPairMsgs() []*UinPairMessage { if x != nil { return x.UinPairMsgs } return nil } func (x *GetMessageResponse) GetBindUin() int64 { if x != nil && x.BindUin != nil { return *x.BindUin } return 0 } func (x *GetMessageResponse) GetMsgRspType() int32 { if x != nil && x.MsgRspType != nil { return *x.MsgRspType } return 0 } func (x *GetMessageResponse) GetPubAccountCookie() []byte { if x != nil { return x.PubAccountCookie } return nil } func (x *GetMessageResponse) GetIsPartialSync() bool { if x != nil && x.IsPartialSync != nil { return *x.IsPartialSync } return false } func (x *GetMessageResponse) GetMsgCtrlBuf() []byte { if x != nil { return x.MsgCtrlBuf } return nil } type PushMessagePacket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message *Message `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` Svrip *int32 `protobuf:"varint,2,opt,name=svrip" json:"svrip,omitempty"` PushToken []byte `protobuf:"bytes,3,opt,name=pushToken" json:"pushToken,omitempty"` PingFLag *int32 `protobuf:"varint,4,opt,name=pingFLag" json:"pingFLag,omitempty"` GeneralFlag *int32 `protobuf:"varint,9,opt,name=generalFlag" json:"generalFlag,omitempty"` } func (x *PushMessagePacket) Reset() { *x = PushMessagePacket{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PushMessagePacket) String() string { return protoimpl.X.MessageStringOf(x) } func (*PushMessagePacket) ProtoMessage() {} func (x *PushMessagePacket) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PushMessagePacket.ProtoReflect.Descriptor instead. func (*PushMessagePacket) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{17} } func (x *PushMessagePacket) GetMessage() *Message { if x != nil { return x.Message } return nil } func (x *PushMessagePacket) GetSvrip() int32 { if x != nil && x.Svrip != nil { return *x.Svrip } return 0 } func (x *PushMessagePacket) GetPushToken() []byte { if x != nil { return x.PushToken } return nil } func (x *PushMessagePacket) GetPingFLag() int32 { if x != nil && x.PingFLag != nil { return *x.PingFLag } return 0 } func (x *PushMessagePacket) GetGeneralFlag() int32 { if x != nil && x.GeneralFlag != nil { return *x.GeneralFlag } return 0 } type UinPairMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LastReadTime *int32 `protobuf:"varint,1,opt,name=lastReadTime" json:"lastReadTime,omitempty"` PeerUin *int64 `protobuf:"varint,2,opt,name=peerUin" json:"peerUin,omitempty"` MsgCompleted *int32 `protobuf:"varint,3,opt,name=msgCompleted" json:"msgCompleted,omitempty"` Messages []*Message `protobuf:"bytes,4,rep,name=messages" json:"messages,omitempty"` } func (x *UinPairMessage) Reset() { *x = UinPairMessage{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UinPairMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*UinPairMessage) ProtoMessage() {} func (x *UinPairMessage) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UinPairMessage.ProtoReflect.Descriptor instead. func (*UinPairMessage) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{18} } func (x *UinPairMessage) GetLastReadTime() int32 { if x != nil && x.LastReadTime != nil { return *x.LastReadTime } return 0 } func (x *UinPairMessage) GetPeerUin() int64 { if x != nil && x.PeerUin != nil { return *x.PeerUin } return 0 } func (x *UinPairMessage) GetMsgCompleted() int32 { if x != nil && x.MsgCompleted != nil { return *x.MsgCompleted } return 0 } func (x *UinPairMessage) GetMessages() []*Message { if x != nil { return x.Messages } return nil } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head *MessageHead `protobuf:"bytes,1,opt,name=head" json:"head,omitempty"` Content *ContentHead `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"` Body *MessageBody `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{19} } func (x *Message) GetHead() *MessageHead { if x != nil { return x.Head } return nil } func (x *Message) GetContent() *ContentHead { if x != nil { return x.Content } return nil } func (x *Message) GetBody() *MessageBody { if x != nil { return x.Body } return nil } type MessageBody struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RichText *RichText `protobuf:"bytes,1,opt,name=richText" json:"richText,omitempty"` MsgContent []byte `protobuf:"bytes,2,opt,name=msgContent" json:"msgContent,omitempty"` MsgEncryptContent []byte `protobuf:"bytes,3,opt,name=msgEncryptContent" json:"msgEncryptContent,omitempty"` } func (x *MessageBody) Reset() { *x = MessageBody{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageBody) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageBody) ProtoMessage() {} func (x *MessageBody) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageBody.ProtoReflect.Descriptor instead. func (*MessageBody) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{20} } func (x *MessageBody) GetRichText() *RichText { if x != nil { return x.RichText } return nil } func (x *MessageBody) GetMsgContent() []byte { if x != nil { return x.MsgContent } return nil } func (x *MessageBody) GetMsgEncryptContent() []byte { if x != nil { return x.MsgEncryptContent } return nil } type RichText struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Attr *Attr `protobuf:"bytes,1,opt,name=attr" json:"attr,omitempty"` Elems []*Elem `protobuf:"bytes,2,rep,name=elems" json:"elems,omitempty"` NotOnlineFile *NotOnlineFile `protobuf:"bytes,3,opt,name=notOnlineFile" json:"notOnlineFile,omitempty"` Ptt *Ptt `protobuf:"bytes,4,opt,name=ptt" json:"ptt,omitempty"` } func (x *RichText) Reset() { *x = RichText{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RichText) String() string { return protoimpl.X.MessageStringOf(x) } func (*RichText) ProtoMessage() {} func (x *RichText) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RichText.ProtoReflect.Descriptor instead. func (*RichText) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{21} } func (x *RichText) GetAttr() *Attr { if x != nil { return x.Attr } return nil } func (x *RichText) GetElems() []*Elem { if x != nil { return x.Elems } return nil } func (x *RichText) GetNotOnlineFile() *NotOnlineFile { if x != nil { return x.NotOnlineFile } return nil } func (x *RichText) GetPtt() *Ptt { if x != nil { return x.Ptt } return nil } type Elem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text *Text `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` Face *Face `protobuf:"bytes,2,opt,name=face" json:"face,omitempty"` OnlineImage *OnlineImage `protobuf:"bytes,3,opt,name=onlineImage" json:"onlineImage,omitempty"` NotOnlineImage *NotOnlineImage `protobuf:"bytes,4,opt,name=notOnlineImage" json:"notOnlineImage,omitempty"` TransElemInfo *TransElem `protobuf:"bytes,5,opt,name=transElemInfo" json:"transElemInfo,omitempty"` //MarketFace marketFace = 6; //ElemFlags elemFlags = 7; CustomFace *CustomFace `protobuf:"bytes,8,opt,name=customFace" json:"customFace,omitempty"` //ElemFlags2 elemFlags2 = 9; //FunFace funFace = 10; //SecretFileMsg secretFile = 11; RichMsg *RichMsg `protobuf:"bytes,12,opt,name=richMsg" json:"richMsg,omitempty"` GroupFile *GroupFile `protobuf:"bytes,13,opt,name=groupFile" json:"groupFile,omitempty"` //PubGroup pubGroup = 14; //MarketTrans marketTrans = 15; ExtraInfo *ExtraInfo `protobuf:"bytes,16,opt,name=extraInfo" json:"extraInfo,omitempty"` //ShakeWindow? shakeWindow = 17; //PubAccount? pubAccount = 18; VideoFile *VideoFile `protobuf:"bytes,19,opt,name=videoFile" json:"videoFile,omitempty"` //TipsInfo? tipsInfo = 20; AnonGroupMsg *AnonymousGroupMessage `protobuf:"bytes,21,opt,name=anonGroupMsg" json:"anonGroupMsg,omitempty"` //QQLiveOld? qqLiveOld = 22; //LifeOnlineAccount? lifeOnline = 23; QQWalletMsg *QQWalletMsg `protobuf:"bytes,24,opt,name=QQWalletMsg" json:"QQWalletMsg,omitempty"` //CrmElem? crmElem = 25; //ConferenceTipsInfo? conferenceTipsInfo = 26; //RedBagInfo? redbagInfo = 27; //LowVersionTips? lowVersionTips = 28; //bytes bankcodeCtrlInfo = 29; //NearByMessageType? nearByMsg = 30; CustomElem *CustomElem `protobuf:"bytes,31,opt,name=customElem" json:"customElem,omitempty"` //LocationInfo? locationInfo = 32; //PubAccInfo? pubAccInfo = 33; //SmallEmoji? smallEmoji = 34; //FSJMessageElem? fsjMsgElem = 35; //ArkAppElem? arkApp = 36; GeneralFlags *GeneralFlags `protobuf:"bytes,37,opt,name=generalFlags" json:"generalFlags,omitempty"` //CustomFace? hcFlashPic = 38; //DeliverGiftMsg? deliverGiftMsg = 39; //BitAppMsg? bitappMsg = 40; //OpenQQData? openQqData = 41; //ApolloActMsg? apolloMsg = 42; //GroupPubAccountInfo? groupPubAccInfo = 43; //BlessingMessage? blessMsg = 44; SrcMsg *SourceMsg `protobuf:"bytes,45,opt,name=srcMsg" json:"srcMsg,omitempty"` //LolaMsg? lolaMsg = 46; //GroupBusinessMsg? groupBusinessMsg = 47; //WorkflowNotifyMsg? msgWorkflowNotify = 48; //PatsElem? patElem = 49; //GroupPostElem? groupPostElem = 50; LightApp *LightAppElem `protobuf:"bytes,51,opt,name=lightApp" json:"lightApp,omitempty"` //EIMInfo? eimInfo = 52; CommonElem *CommonElem `protobuf:"bytes,53,opt,name=commonElem" json:"commonElem,omitempty"` } func (x *Elem) Reset() { *x = Elem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Elem) String() string { return protoimpl.X.MessageStringOf(x) } func (*Elem) ProtoMessage() {} func (x *Elem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Elem.ProtoReflect.Descriptor instead. func (*Elem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{22} } func (x *Elem) GetText() *Text { if x != nil { return x.Text } return nil } func (x *Elem) GetFace() *Face { if x != nil { return x.Face } return nil } func (x *Elem) GetOnlineImage() *OnlineImage { if x != nil { return x.OnlineImage } return nil } func (x *Elem) GetNotOnlineImage() *NotOnlineImage { if x != nil { return x.NotOnlineImage } return nil } func (x *Elem) GetTransElemInfo() *TransElem { if x != nil { return x.TransElemInfo } return nil } func (x *Elem) GetCustomFace() *CustomFace { if x != nil { return x.CustomFace } return nil } func (x *Elem) GetRichMsg() *RichMsg { if x != nil { return x.RichMsg } return nil } func (x *Elem) GetGroupFile() *GroupFile { if x != nil { return x.GroupFile } return nil } func (x *Elem) GetExtraInfo() *ExtraInfo { if x != nil { return x.ExtraInfo } return nil } func (x *Elem) GetVideoFile() *VideoFile { if x != nil { return x.VideoFile } return nil } func (x *Elem) GetAnonGroupMsg() *AnonymousGroupMessage { if x != nil { return x.AnonGroupMsg } return nil } func (x *Elem) GetQQWalletMsg() *QQWalletMsg { if x != nil { return x.QQWalletMsg } return nil } func (x *Elem) GetCustomElem() *CustomElem { if x != nil { return x.CustomElem } return nil } func (x *Elem) GetGeneralFlags() *GeneralFlags { if x != nil { return x.GeneralFlags } return nil } func (x *Elem) GetSrcMsg() *SourceMsg { if x != nil { return x.SrcMsg } return nil } func (x *Elem) GetLightApp() *LightAppElem { if x != nil { return x.LightApp } return nil } func (x *Elem) GetCommonElem() *CommonElem { if x != nil { return x.CommonElem } return nil } type CommonElem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServiceType *int32 `protobuf:"varint,1,opt,name=serviceType" json:"serviceType,omitempty"` PbElem []byte `protobuf:"bytes,2,opt,name=pbElem" json:"pbElem,omitempty"` BusinessType *int32 `protobuf:"varint,3,opt,name=businessType" json:"businessType,omitempty"` } func (x *CommonElem) Reset() { *x = CommonElem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommonElem) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommonElem) ProtoMessage() {} func (x *CommonElem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommonElem.ProtoReflect.Descriptor instead. func (*CommonElem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{23} } func (x *CommonElem) GetServiceType() int32 { if x != nil && x.ServiceType != nil { return *x.ServiceType } return 0 } func (x *CommonElem) GetPbElem() []byte { if x != nil { return x.PbElem } return nil } func (x *CommonElem) GetBusinessType() int32 { if x != nil && x.BusinessType != nil { return *x.BusinessType } return 0 } type QQWalletMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AioBody *QQWalletAioBody `protobuf:"bytes,1,opt,name=aioBody" json:"aioBody,omitempty"` } func (x *QQWalletMsg) Reset() { *x = QQWalletMsg{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QQWalletMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*QQWalletMsg) ProtoMessage() {} func (x *QQWalletMsg) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QQWalletMsg.ProtoReflect.Descriptor instead. func (*QQWalletMsg) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{24} } func (x *QQWalletMsg) GetAioBody() *QQWalletAioBody { if x != nil { return x.AioBody } return nil } type QQWalletAioBody struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SendUin *uint64 `protobuf:"varint,1,opt,name=sendUin" json:"sendUin,omitempty"` Sender *QQWalletAioElem `protobuf:"bytes,2,opt,name=sender" json:"sender,omitempty"` Receiver *QQWalletAioElem `protobuf:"bytes,3,opt,name=receiver" json:"receiver,omitempty"` ChannelId *int32 `protobuf:"zigzag32,4,opt,name=ChannelId" json:"ChannelId,omitempty"` TemplateId *int32 `protobuf:"zigzag32,5,opt,name=templateId" json:"templateId,omitempty"` Resend *uint32 `protobuf:"varint,6,opt,name=resend" json:"resend,omitempty"` MsgPriority *uint32 `protobuf:"varint,7,opt,name=msgPriority" json:"msgPriority,omitempty"` RedType *int32 `protobuf:"zigzag32,8,opt,name=redType" json:"redType,omitempty"` BillNo []byte `protobuf:"bytes,9,opt,name=billNo" json:"billNo,omitempty"` AuthKey []byte `protobuf:"bytes,10,opt,name=authKey" json:"authKey,omitempty"` SessionType *int32 `protobuf:"zigzag32,11,opt,name=sessionType" json:"sessionType,omitempty"` MsgType *int32 `protobuf:"zigzag32,12,opt,name=msgType" json:"msgType,omitempty"` EnvelOpeId *int32 `protobuf:"zigzag32,13,opt,name=envelOpeId" json:"envelOpeId,omitempty"` Name []byte `protobuf:"bytes,14,opt,name=name" json:"name,omitempty"` ConfType *int32 `protobuf:"zigzag32,15,opt,name=confType" json:"confType,omitempty"` MsgFrom *int32 `protobuf:"zigzag32,16,opt,name=msgFrom" json:"msgFrom,omitempty"` PcBody []byte `protobuf:"bytes,17,opt,name=pcBody" json:"pcBody,omitempty"` Index []byte `protobuf:"bytes,18,opt,name=index" json:"index,omitempty"` RedChannel *uint32 `protobuf:"varint,19,opt,name=redChannel" json:"redChannel,omitempty"` GrapUin []uint64 `protobuf:"varint,20,rep,name=grapUin" json:"grapUin,omitempty"` PbReserve []byte `protobuf:"bytes,21,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *QQWalletAioBody) Reset() { *x = QQWalletAioBody{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QQWalletAioBody) String() string { return protoimpl.X.MessageStringOf(x) } func (*QQWalletAioBody) ProtoMessage() {} func (x *QQWalletAioBody) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QQWalletAioBody.ProtoReflect.Descriptor instead. func (*QQWalletAioBody) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{25} } func (x *QQWalletAioBody) GetSendUin() uint64 { if x != nil && x.SendUin != nil { return *x.SendUin } return 0 } func (x *QQWalletAioBody) GetSender() *QQWalletAioElem { if x != nil { return x.Sender } return nil } func (x *QQWalletAioBody) GetReceiver() *QQWalletAioElem { if x != nil { return x.Receiver } return nil } func (x *QQWalletAioBody) GetChannelId() int32 { if x != nil && x.ChannelId != nil { return *x.ChannelId } return 0 } func (x *QQWalletAioBody) GetTemplateId() int32 { if x != nil && x.TemplateId != nil { return *x.TemplateId } return 0 } func (x *QQWalletAioBody) GetResend() uint32 { if x != nil && x.Resend != nil { return *x.Resend } return 0 } func (x *QQWalletAioBody) GetMsgPriority() uint32 { if x != nil && x.MsgPriority != nil { return *x.MsgPriority } return 0 } func (x *QQWalletAioBody) GetRedType() int32 { if x != nil && x.RedType != nil { return *x.RedType } return 0 } func (x *QQWalletAioBody) GetBillNo() []byte { if x != nil { return x.BillNo } return nil } func (x *QQWalletAioBody) GetAuthKey() []byte { if x != nil { return x.AuthKey } return nil } func (x *QQWalletAioBody) GetSessionType() int32 { if x != nil && x.SessionType != nil { return *x.SessionType } return 0 } func (x *QQWalletAioBody) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } func (x *QQWalletAioBody) GetEnvelOpeId() int32 { if x != nil && x.EnvelOpeId != nil { return *x.EnvelOpeId } return 0 } func (x *QQWalletAioBody) GetName() []byte { if x != nil { return x.Name } return nil } func (x *QQWalletAioBody) GetConfType() int32 { if x != nil && x.ConfType != nil { return *x.ConfType } return 0 } func (x *QQWalletAioBody) GetMsgFrom() int32 { if x != nil && x.MsgFrom != nil { return *x.MsgFrom } return 0 } func (x *QQWalletAioBody) GetPcBody() []byte { if x != nil { return x.PcBody } return nil } func (x *QQWalletAioBody) GetIndex() []byte { if x != nil { return x.Index } return nil } func (x *QQWalletAioBody) GetRedChannel() uint32 { if x != nil && x.RedChannel != nil { return *x.RedChannel } return 0 } func (x *QQWalletAioBody) GetGrapUin() []uint64 { if x != nil { return x.GrapUin } return nil } func (x *QQWalletAioBody) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type QQWalletAioElem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Background *uint32 `protobuf:"varint,1,opt,name=background" json:"background,omitempty"` Icon *uint32 `protobuf:"varint,2,opt,name=icon" json:"icon,omitempty"` Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` Subtitle *string `protobuf:"bytes,4,opt,name=subtitle" json:"subtitle,omitempty"` Content *string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` LinkUrl []byte `protobuf:"bytes,6,opt,name=linkUrl" json:"linkUrl,omitempty"` BlackStripe []byte `protobuf:"bytes,7,opt,name=blackStripe" json:"blackStripe,omitempty"` Notice []byte `protobuf:"bytes,8,opt,name=notice" json:"notice,omitempty"` TitleColor *uint32 `protobuf:"varint,9,opt,name=titleColor" json:"titleColor,omitempty"` SubtitleColor *uint32 `protobuf:"varint,10,opt,name=subtitleColor" json:"subtitleColor,omitempty"` ActionsPriority []byte `protobuf:"bytes,11,opt,name=actionsPriority" json:"actionsPriority,omitempty"` JumpUrl []byte `protobuf:"bytes,12,opt,name=jumpUrl" json:"jumpUrl,omitempty"` NativeIos []byte `protobuf:"bytes,13,opt,name=nativeIos" json:"nativeIos,omitempty"` NativeAndroid []byte `protobuf:"bytes,14,opt,name=nativeAndroid" json:"nativeAndroid,omitempty"` IconUrl []byte `protobuf:"bytes,15,opt,name=iconUrl" json:"iconUrl,omitempty"` ContentColor *uint32 `protobuf:"varint,16,opt,name=contentColor" json:"contentColor,omitempty"` ContentBgColor *uint32 `protobuf:"varint,17,opt,name=contentBgColor" json:"contentBgColor,omitempty"` AioImageLeft []byte `protobuf:"bytes,18,opt,name=aioImageLeft" json:"aioImageLeft,omitempty"` AioImageRight []byte `protobuf:"bytes,19,opt,name=aioImageRight" json:"aioImageRight,omitempty"` CftImage []byte `protobuf:"bytes,20,opt,name=cftImage" json:"cftImage,omitempty"` PbReserve []byte `protobuf:"bytes,21,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *QQWalletAioElem) Reset() { *x = QQWalletAioElem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QQWalletAioElem) String() string { return protoimpl.X.MessageStringOf(x) } func (*QQWalletAioElem) ProtoMessage() {} func (x *QQWalletAioElem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use QQWalletAioElem.ProtoReflect.Descriptor instead. func (*QQWalletAioElem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{26} } func (x *QQWalletAioElem) GetBackground() uint32 { if x != nil && x.Background != nil { return *x.Background } return 0 } func (x *QQWalletAioElem) GetIcon() uint32 { if x != nil && x.Icon != nil { return *x.Icon } return 0 } func (x *QQWalletAioElem) GetTitle() string { if x != nil && x.Title != nil { return *x.Title } return "" } func (x *QQWalletAioElem) GetSubtitle() string { if x != nil && x.Subtitle != nil { return *x.Subtitle } return "" } func (x *QQWalletAioElem) GetContent() string { if x != nil && x.Content != nil { return *x.Content } return "" } func (x *QQWalletAioElem) GetLinkUrl() []byte { if x != nil { return x.LinkUrl } return nil } func (x *QQWalletAioElem) GetBlackStripe() []byte { if x != nil { return x.BlackStripe } return nil } func (x *QQWalletAioElem) GetNotice() []byte { if x != nil { return x.Notice } return nil } func (x *QQWalletAioElem) GetTitleColor() uint32 { if x != nil && x.TitleColor != nil { return *x.TitleColor } return 0 } func (x *QQWalletAioElem) GetSubtitleColor() uint32 { if x != nil && x.SubtitleColor != nil { return *x.SubtitleColor } return 0 } func (x *QQWalletAioElem) GetActionsPriority() []byte { if x != nil { return x.ActionsPriority } return nil } func (x *QQWalletAioElem) GetJumpUrl() []byte { if x != nil { return x.JumpUrl } return nil } func (x *QQWalletAioElem) GetNativeIos() []byte { if x != nil { return x.NativeIos } return nil } func (x *QQWalletAioElem) GetNativeAndroid() []byte { if x != nil { return x.NativeAndroid } return nil } func (x *QQWalletAioElem) GetIconUrl() []byte { if x != nil { return x.IconUrl } return nil } func (x *QQWalletAioElem) GetContentColor() uint32 { if x != nil && x.ContentColor != nil { return *x.ContentColor } return 0 } func (x *QQWalletAioElem) GetContentBgColor() uint32 { if x != nil && x.ContentBgColor != nil { return *x.ContentBgColor } return 0 } func (x *QQWalletAioElem) GetAioImageLeft() []byte { if x != nil { return x.AioImageLeft } return nil } func (x *QQWalletAioElem) GetAioImageRight() []byte { if x != nil { return x.AioImageRight } return nil } func (x *QQWalletAioElem) GetCftImage() []byte { if x != nil { return x.CftImage } return nil } func (x *QQWalletAioElem) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type RichMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Template1 []byte `protobuf:"bytes,1,opt,name=template1" json:"template1,omitempty"` ServiceId *int32 `protobuf:"varint,2,opt,name=serviceId" json:"serviceId,omitempty"` MsgResId []byte `protobuf:"bytes,3,opt,name=msgResId" json:"msgResId,omitempty"` Rand *int32 `protobuf:"varint,4,opt,name=rand" json:"rand,omitempty"` Seq *int32 `protobuf:"varint,5,opt,name=seq" json:"seq,omitempty"` } func (x *RichMsg) Reset() { *x = RichMsg{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RichMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*RichMsg) ProtoMessage() {} func (x *RichMsg) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RichMsg.ProtoReflect.Descriptor instead. func (*RichMsg) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{27} } func (x *RichMsg) GetTemplate1() []byte { if x != nil { return x.Template1 } return nil } func (x *RichMsg) GetServiceId() int32 { if x != nil && x.ServiceId != nil { return *x.ServiceId } return 0 } func (x *RichMsg) GetMsgResId() []byte { if x != nil { return x.MsgResId } return nil } func (x *RichMsg) GetRand() int32 { if x != nil && x.Rand != nil { return *x.Rand } return 0 } func (x *RichMsg) GetSeq() int32 { if x != nil && x.Seq != nil { return *x.Seq } return 0 } type CustomElem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Desc []byte `protobuf:"bytes,1,opt,name=desc" json:"desc,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"` EnumType *int32 `protobuf:"varint,3,opt,name=enumType" json:"enumType,omitempty"` Ext []byte `protobuf:"bytes,4,opt,name=ext" json:"ext,omitempty"` Sound []byte `protobuf:"bytes,5,opt,name=sound" json:"sound,omitempty"` } func (x *CustomElem) Reset() { *x = CustomElem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomElem) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomElem) ProtoMessage() {} func (x *CustomElem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomElem.ProtoReflect.Descriptor instead. func (*CustomElem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{28} } func (x *CustomElem) GetDesc() []byte { if x != nil { return x.Desc } return nil } func (x *CustomElem) GetData() []byte { if x != nil { return x.Data } return nil } func (x *CustomElem) GetEnumType() int32 { if x != nil && x.EnumType != nil { return *x.EnumType } return 0 } func (x *CustomElem) GetExt() []byte { if x != nil { return x.Ext } return nil } func (x *CustomElem) GetSound() []byte { if x != nil { return x.Sound } return nil } type Text struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Str *string `protobuf:"bytes,1,opt,name=str" json:"str,omitempty"` Link *string `protobuf:"bytes,2,opt,name=link" json:"link,omitempty"` Attr6Buf []byte `protobuf:"bytes,3,opt,name=attr6Buf" json:"attr6Buf,omitempty"` Attr7Buf []byte `protobuf:"bytes,4,opt,name=attr7Buf" json:"attr7Buf,omitempty"` Buf []byte `protobuf:"bytes,11,opt,name=buf" json:"buf,omitempty"` PbReserve []byte `protobuf:"bytes,12,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *Text) Reset() { *x = Text{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Text) String() string { return protoimpl.X.MessageStringOf(x) } func (*Text) ProtoMessage() {} func (x *Text) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Text.ProtoReflect.Descriptor instead. func (*Text) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{29} } func (x *Text) GetStr() string { if x != nil && x.Str != nil { return *x.Str } return "" } func (x *Text) GetLink() string { if x != nil && x.Link != nil { return *x.Link } return "" } func (x *Text) GetAttr6Buf() []byte { if x != nil { return x.Attr6Buf } return nil } func (x *Text) GetAttr7Buf() []byte { if x != nil { return x.Attr7Buf } return nil } func (x *Text) GetBuf() []byte { if x != nil { return x.Buf } return nil } func (x *Text) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type Attr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CodePage *int32 `protobuf:"varint,1,opt,name=codePage" json:"codePage,omitempty"` Time *int32 `protobuf:"varint,2,opt,name=time" json:"time,omitempty"` Random *int32 `protobuf:"varint,3,opt,name=random" json:"random,omitempty"` Color *int32 `protobuf:"varint,4,opt,name=color" json:"color,omitempty"` Size *int32 `protobuf:"varint,5,opt,name=size" json:"size,omitempty"` Effect *int32 `protobuf:"varint,6,opt,name=effect" json:"effect,omitempty"` CharSet *int32 `protobuf:"varint,7,opt,name=charSet" json:"charSet,omitempty"` PitchAndFamily *int32 `protobuf:"varint,8,opt,name=pitchAndFamily" json:"pitchAndFamily,omitempty"` FontName *string `protobuf:"bytes,9,opt,name=fontName" json:"fontName,omitempty"` ReserveData []byte `protobuf:"bytes,10,opt,name=reserveData" json:"reserveData,omitempty"` } func (x *Attr) Reset() { *x = Attr{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Attr) String() string { return protoimpl.X.MessageStringOf(x) } func (*Attr) ProtoMessage() {} func (x *Attr) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Attr.ProtoReflect.Descriptor instead. func (*Attr) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{30} } func (x *Attr) GetCodePage() int32 { if x != nil && x.CodePage != nil { return *x.CodePage } return 0 } func (x *Attr) GetTime() int32 { if x != nil && x.Time != nil { return *x.Time } return 0 } func (x *Attr) GetRandom() int32 { if x != nil && x.Random != nil { return *x.Random } return 0 } func (x *Attr) GetColor() int32 { if x != nil && x.Color != nil { return *x.Color } return 0 } func (x *Attr) GetSize() int32 { if x != nil && x.Size != nil { return *x.Size } return 0 } func (x *Attr) GetEffect() int32 { if x != nil && x.Effect != nil { return *x.Effect } return 0 } func (x *Attr) GetCharSet() int32 { if x != nil && x.CharSet != nil { return *x.CharSet } return 0 } func (x *Attr) GetPitchAndFamily() int32 { if x != nil && x.PitchAndFamily != nil { return *x.PitchAndFamily } return 0 } func (x *Attr) GetFontName() string { if x != nil && x.FontName != nil { return *x.FontName } return "" } func (x *Attr) GetReserveData() []byte { if x != nil { return x.ReserveData } return nil } type Ptt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileType *int32 `protobuf:"varint,1,opt,name=fileType" json:"fileType,omitempty"` SrcUin *int64 `protobuf:"varint,2,opt,name=srcUin" json:"srcUin,omitempty"` FileUuid []byte `protobuf:"bytes,3,opt,name=fileUuid" json:"fileUuid,omitempty"` FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` FileName *string `protobuf:"bytes,5,opt,name=fileName" json:"fileName,omitempty"` FileSize *int32 `protobuf:"varint,6,opt,name=fileSize" json:"fileSize,omitempty"` Reserve []byte `protobuf:"bytes,7,opt,name=reserve" json:"reserve,omitempty"` FileId *int32 `protobuf:"varint,8,opt,name=fileId" json:"fileId,omitempty"` ServerIp *int32 `protobuf:"varint,9,opt,name=serverIp" json:"serverIp,omitempty"` ServerPort *int32 `protobuf:"varint,10,opt,name=serverPort" json:"serverPort,omitempty"` BoolValid *bool `protobuf:"varint,11,opt,name=boolValid" json:"boolValid,omitempty"` Signature []byte `protobuf:"bytes,12,opt,name=signature" json:"signature,omitempty"` Shortcut []byte `protobuf:"bytes,13,opt,name=shortcut" json:"shortcut,omitempty"` FileKey []byte `protobuf:"bytes,14,opt,name=fileKey" json:"fileKey,omitempty"` MagicPttIndex *int32 `protobuf:"varint,15,opt,name=magicPttIndex" json:"magicPttIndex,omitempty"` VoiceSwitch *int32 `protobuf:"varint,16,opt,name=voiceSwitch" json:"voiceSwitch,omitempty"` PttUrl []byte `protobuf:"bytes,17,opt,name=pttUrl" json:"pttUrl,omitempty"` GroupFileKey []byte `protobuf:"bytes,18,opt,name=groupFileKey" json:"groupFileKey,omitempty"` Time *int32 `protobuf:"varint,19,opt,name=time" json:"time,omitempty"` DownPara []byte `protobuf:"bytes,20,opt,name=downPara" json:"downPara,omitempty"` Format *int32 `protobuf:"varint,29,opt,name=format" json:"format,omitempty"` PbReserve []byte `protobuf:"bytes,30,opt,name=pbReserve" json:"pbReserve,omitempty"` BytesPttUrls [][]byte `protobuf:"bytes,31,rep,name=bytesPttUrls" json:"bytesPttUrls,omitempty"` DownloadFlag *int32 `protobuf:"varint,32,opt,name=downloadFlag" json:"downloadFlag,omitempty"` } func (x *Ptt) Reset() { *x = Ptt{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ptt) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ptt) ProtoMessage() {} func (x *Ptt) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Ptt.ProtoReflect.Descriptor instead. func (*Ptt) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{31} } func (x *Ptt) GetFileType() int32 { if x != nil && x.FileType != nil { return *x.FileType } return 0 } func (x *Ptt) GetSrcUin() int64 { if x != nil && x.SrcUin != nil { return *x.SrcUin } return 0 } func (x *Ptt) GetFileUuid() []byte { if x != nil { return x.FileUuid } return nil } func (x *Ptt) GetFileMd5() []byte { if x != nil { return x.FileMd5 } return nil } func (x *Ptt) GetFileName() string { if x != nil && x.FileName != nil { return *x.FileName } return "" } func (x *Ptt) GetFileSize() int32 { if x != nil && x.FileSize != nil { return *x.FileSize } return 0 } func (x *Ptt) GetReserve() []byte { if x != nil { return x.Reserve } return nil } func (x *Ptt) GetFileId() int32 { if x != nil && x.FileId != nil { return *x.FileId } return 0 } func (x *Ptt) GetServerIp() int32 { if x != nil && x.ServerIp != nil { return *x.ServerIp } return 0 } func (x *Ptt) GetServerPort() int32 { if x != nil && x.ServerPort != nil { return *x.ServerPort } return 0 } func (x *Ptt) GetBoolValid() bool { if x != nil && x.BoolValid != nil { return *x.BoolValid } return false } func (x *Ptt) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *Ptt) GetShortcut() []byte { if x != nil { return x.Shortcut } return nil } func (x *Ptt) GetFileKey() []byte { if x != nil { return x.FileKey } return nil } func (x *Ptt) GetMagicPttIndex() int32 { if x != nil && x.MagicPttIndex != nil { return *x.MagicPttIndex } return 0 } func (x *Ptt) GetVoiceSwitch() int32 { if x != nil && x.VoiceSwitch != nil { return *x.VoiceSwitch } return 0 } func (x *Ptt) GetPttUrl() []byte { if x != nil { return x.PttUrl } return nil } func (x *Ptt) GetGroupFileKey() []byte { if x != nil { return x.GroupFileKey } return nil } func (x *Ptt) GetTime() int32 { if x != nil && x.Time != nil { return *x.Time } return 0 } func (x *Ptt) GetDownPara() []byte { if x != nil { return x.DownPara } return nil } func (x *Ptt) GetFormat() int32 { if x != nil && x.Format != nil { return *x.Format } return 0 } func (x *Ptt) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } func (x *Ptt) GetBytesPttUrls() [][]byte { if x != nil { return x.BytesPttUrls } return nil } func (x *Ptt) GetDownloadFlag() int32 { if x != nil && x.DownloadFlag != nil { return *x.DownloadFlag } return 0 } type OnlineImage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Guid []byte `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` FilePath []byte `protobuf:"bytes,2,opt,name=filePath" json:"filePath,omitempty"` OldVerSendFile []byte `protobuf:"bytes,3,opt,name=oldVerSendFile" json:"oldVerSendFile,omitempty"` } func (x *OnlineImage) Reset() { *x = OnlineImage{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OnlineImage) String() string { return protoimpl.X.MessageStringOf(x) } func (*OnlineImage) ProtoMessage() {} func (x *OnlineImage) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OnlineImage.ProtoReflect.Descriptor instead. func (*OnlineImage) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{32} } func (x *OnlineImage) GetGuid() []byte { if x != nil { return x.Guid } return nil } func (x *OnlineImage) GetFilePath() []byte { if x != nil { return x.FilePath } return nil } func (x *OnlineImage) GetOldVerSendFile() []byte { if x != nil { return x.OldVerSendFile } return nil } type NotOnlineImage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FilePath *string `protobuf:"bytes,1,opt,name=filePath" json:"filePath,omitempty"` FileLen *int32 `protobuf:"varint,2,opt,name=fileLen" json:"fileLen,omitempty"` DownloadPath *string `protobuf:"bytes,3,opt,name=downloadPath" json:"downloadPath,omitempty"` OldVerSendFile []byte `protobuf:"bytes,4,opt,name=oldVerSendFile" json:"oldVerSendFile,omitempty"` ImgType *int32 `protobuf:"varint,5,opt,name=imgType" json:"imgType,omitempty"` PreviewsImage []byte `protobuf:"bytes,6,opt,name=previewsImage" json:"previewsImage,omitempty"` PicMd5 []byte `protobuf:"bytes,7,opt,name=picMd5" json:"picMd5,omitempty"` PicHeight *int32 `protobuf:"varint,8,opt,name=picHeight" json:"picHeight,omitempty"` PicWidth *int32 `protobuf:"varint,9,opt,name=picWidth" json:"picWidth,omitempty"` ResId *string `protobuf:"bytes,10,opt,name=resId" json:"resId,omitempty"` Flag []byte `protobuf:"bytes,11,opt,name=flag" json:"flag,omitempty"` ThumbUrl *string `protobuf:"bytes,12,opt,name=thumbUrl" json:"thumbUrl,omitempty"` Original *int32 `protobuf:"varint,13,opt,name=original" json:"original,omitempty"` BigUrl *string `protobuf:"bytes,14,opt,name=bigUrl" json:"bigUrl,omitempty"` OrigUrl *string `protobuf:"bytes,15,opt,name=origUrl" json:"origUrl,omitempty"` BizType *int32 `protobuf:"varint,16,opt,name=bizType" json:"bizType,omitempty"` Result *int32 `protobuf:"varint,17,opt,name=result" json:"result,omitempty"` Index *int32 `protobuf:"varint,18,opt,name=index" json:"index,omitempty"` OpFaceBuf []byte `protobuf:"bytes,19,opt,name=opFaceBuf" json:"opFaceBuf,omitempty"` OldPicMd5 *bool `protobuf:"varint,20,opt,name=oldPicMd5" json:"oldPicMd5,omitempty"` ThumbWidth *int32 `protobuf:"varint,21,opt,name=thumbWidth" json:"thumbWidth,omitempty"` ThumbHeight *int32 `protobuf:"varint,22,opt,name=thumbHeight" json:"thumbHeight,omitempty"` FileId *int32 `protobuf:"varint,23,opt,name=fileId" json:"fileId,omitempty"` ShowLen *int32 `protobuf:"varint,24,opt,name=showLen" json:"showLen,omitempty"` DownloadLen *int32 `protobuf:"varint,25,opt,name=downloadLen" json:"downloadLen,omitempty"` PbReserve []byte `protobuf:"bytes,29,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *NotOnlineImage) Reset() { *x = NotOnlineImage{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotOnlineImage) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotOnlineImage) ProtoMessage() {} func (x *NotOnlineImage) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NotOnlineImage.ProtoReflect.Descriptor instead. func (*NotOnlineImage) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{33} } func (x *NotOnlineImage) GetFilePath() string { if x != nil && x.FilePath != nil { return *x.FilePath } return "" } func (x *NotOnlineImage) GetFileLen() int32 { if x != nil && x.FileLen != nil { return *x.FileLen } return 0 } func (x *NotOnlineImage) GetDownloadPath() string { if x != nil && x.DownloadPath != nil { return *x.DownloadPath } return "" } func (x *NotOnlineImage) GetOldVerSendFile() []byte { if x != nil { return x.OldVerSendFile } return nil } func (x *NotOnlineImage) GetImgType() int32 { if x != nil && x.ImgType != nil { return *x.ImgType } return 0 } func (x *NotOnlineImage) GetPreviewsImage() []byte { if x != nil { return x.PreviewsImage } return nil } func (x *NotOnlineImage) GetPicMd5() []byte { if x != nil { return x.PicMd5 } return nil } func (x *NotOnlineImage) GetPicHeight() int32 { if x != nil && x.PicHeight != nil { return *x.PicHeight } return 0 } func (x *NotOnlineImage) GetPicWidth() int32 { if x != nil && x.PicWidth != nil { return *x.PicWidth } return 0 } func (x *NotOnlineImage) GetResId() string { if x != nil && x.ResId != nil { return *x.ResId } return "" } func (x *NotOnlineImage) GetFlag() []byte { if x != nil { return x.Flag } return nil } func (x *NotOnlineImage) GetThumbUrl() string { if x != nil && x.ThumbUrl != nil { return *x.ThumbUrl } return "" } func (x *NotOnlineImage) GetOriginal() int32 { if x != nil && x.Original != nil { return *x.Original } return 0 } func (x *NotOnlineImage) GetBigUrl() string { if x != nil && x.BigUrl != nil { return *x.BigUrl } return "" } func (x *NotOnlineImage) GetOrigUrl() string { if x != nil && x.OrigUrl != nil { return *x.OrigUrl } return "" } func (x *NotOnlineImage) GetBizType() int32 { if x != nil && x.BizType != nil { return *x.BizType } return 0 } func (x *NotOnlineImage) GetResult() int32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *NotOnlineImage) GetIndex() int32 { if x != nil && x.Index != nil { return *x.Index } return 0 } func (x *NotOnlineImage) GetOpFaceBuf() []byte { if x != nil { return x.OpFaceBuf } return nil } func (x *NotOnlineImage) GetOldPicMd5() bool { if x != nil && x.OldPicMd5 != nil { return *x.OldPicMd5 } return false } func (x *NotOnlineImage) GetThumbWidth() int32 { if x != nil && x.ThumbWidth != nil { return *x.ThumbWidth } return 0 } func (x *NotOnlineImage) GetThumbHeight() int32 { if x != nil && x.ThumbHeight != nil { return *x.ThumbHeight } return 0 } func (x *NotOnlineImage) GetFileId() int32 { if x != nil && x.FileId != nil { return *x.FileId } return 0 } func (x *NotOnlineImage) GetShowLen() int32 { if x != nil && x.ShowLen != nil { return *x.ShowLen } return 0 } func (x *NotOnlineImage) GetDownloadLen() int32 { if x != nil && x.DownloadLen != nil { return *x.DownloadLen } return 0 } func (x *NotOnlineImage) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type NotOnlineFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileType *int32 `protobuf:"varint,1,opt,name=fileType" json:"fileType,omitempty"` Sig []byte `protobuf:"bytes,2,opt,name=sig" json:"sig,omitempty"` FileUuid []byte `protobuf:"bytes,3,opt,name=fileUuid" json:"fileUuid,omitempty"` FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` FileName []byte `protobuf:"bytes,5,opt,name=fileName" json:"fileName,omitempty"` FileSize *int64 `protobuf:"varint,6,opt,name=fileSize" json:"fileSize,omitempty"` Note []byte `protobuf:"bytes,7,opt,name=note" json:"note,omitempty"` Reserved *int32 `protobuf:"varint,8,opt,name=reserved" json:"reserved,omitempty"` Subcmd *int32 `protobuf:"varint,9,opt,name=subcmd" json:"subcmd,omitempty"` MicroCloud *int32 `protobuf:"varint,10,opt,name=microCloud" json:"microCloud,omitempty"` BytesFileUrls [][]byte `protobuf:"bytes,11,rep,name=bytesFileUrls" json:"bytesFileUrls,omitempty"` DownloadFlag *int32 `protobuf:"varint,12,opt,name=downloadFlag" json:"downloadFlag,omitempty"` DangerEvel *int32 `protobuf:"varint,50,opt,name=dangerEvel" json:"dangerEvel,omitempty"` LifeTime *int32 `protobuf:"varint,51,opt,name=lifeTime" json:"lifeTime,omitempty"` UploadTime *int32 `protobuf:"varint,52,opt,name=uploadTime" json:"uploadTime,omitempty"` AbsFileType *int32 `protobuf:"varint,53,opt,name=absFileType" json:"absFileType,omitempty"` ClientType *int32 `protobuf:"varint,54,opt,name=clientType" json:"clientType,omitempty"` ExpireTime *int32 `protobuf:"varint,55,opt,name=expireTime" json:"expireTime,omitempty"` PbReserve []byte `protobuf:"bytes,56,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *NotOnlineFile) Reset() { *x = NotOnlineFile{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotOnlineFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotOnlineFile) ProtoMessage() {} func (x *NotOnlineFile) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NotOnlineFile.ProtoReflect.Descriptor instead. func (*NotOnlineFile) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{34} } func (x *NotOnlineFile) GetFileType() int32 { if x != nil && x.FileType != nil { return *x.FileType } return 0 } func (x *NotOnlineFile) GetSig() []byte { if x != nil { return x.Sig } return nil } func (x *NotOnlineFile) GetFileUuid() []byte { if x != nil { return x.FileUuid } return nil } func (x *NotOnlineFile) GetFileMd5() []byte { if x != nil { return x.FileMd5 } return nil } func (x *NotOnlineFile) GetFileName() []byte { if x != nil { return x.FileName } return nil } func (x *NotOnlineFile) GetFileSize() int64 { if x != nil && x.FileSize != nil { return *x.FileSize } return 0 } func (x *NotOnlineFile) GetNote() []byte { if x != nil { return x.Note } return nil } func (x *NotOnlineFile) GetReserved() int32 { if x != nil && x.Reserved != nil { return *x.Reserved } return 0 } func (x *NotOnlineFile) GetSubcmd() int32 { if x != nil && x.Subcmd != nil { return *x.Subcmd } return 0 } func (x *NotOnlineFile) GetMicroCloud() int32 { if x != nil && x.MicroCloud != nil { return *x.MicroCloud } return 0 } func (x *NotOnlineFile) GetBytesFileUrls() [][]byte { if x != nil { return x.BytesFileUrls } return nil } func (x *NotOnlineFile) GetDownloadFlag() int32 { if x != nil && x.DownloadFlag != nil { return *x.DownloadFlag } return 0 } func (x *NotOnlineFile) GetDangerEvel() int32 { if x != nil && x.DangerEvel != nil { return *x.DangerEvel } return 0 } func (x *NotOnlineFile) GetLifeTime() int32 { if x != nil && x.LifeTime != nil { return *x.LifeTime } return 0 } func (x *NotOnlineFile) GetUploadTime() int32 { if x != nil && x.UploadTime != nil { return *x.UploadTime } return 0 } func (x *NotOnlineFile) GetAbsFileType() int32 { if x != nil && x.AbsFileType != nil { return *x.AbsFileType } return 0 } func (x *NotOnlineFile) GetClientType() int32 { if x != nil && x.ClientType != nil { return *x.ClientType } return 0 } func (x *NotOnlineFile) GetExpireTime() int32 { if x != nil && x.ExpireTime != nil { return *x.ExpireTime } return 0 } func (x *NotOnlineFile) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type TransElem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ElemType *int32 `protobuf:"varint,1,opt,name=elemType" json:"elemType,omitempty"` ElemValue []byte `protobuf:"bytes,2,opt,name=elemValue" json:"elemValue,omitempty"` } func (x *TransElem) Reset() { *x = TransElem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransElem) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransElem) ProtoMessage() {} func (x *TransElem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransElem.ProtoReflect.Descriptor instead. func (*TransElem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{35} } func (x *TransElem) GetElemType() int32 { if x != nil && x.ElemType != nil { return *x.ElemType } return 0 } func (x *TransElem) GetElemValue() []byte { if x != nil { return x.ElemValue } return nil } type ExtraInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Nick []byte `protobuf:"bytes,1,opt,name=nick" json:"nick,omitempty"` GroupCard []byte `protobuf:"bytes,2,opt,name=groupCard" json:"groupCard,omitempty"` Level *int32 `protobuf:"varint,3,opt,name=level" json:"level,omitempty"` Flags *int32 `protobuf:"varint,4,opt,name=flags" json:"flags,omitempty"` GroupMask *int32 `protobuf:"varint,5,opt,name=groupMask" json:"groupMask,omitempty"` MsgTailId *int32 `protobuf:"varint,6,opt,name=msgTailId" json:"msgTailId,omitempty"` SenderTitle []byte `protobuf:"bytes,7,opt,name=senderTitle" json:"senderTitle,omitempty"` ApnsTips []byte `protobuf:"bytes,8,opt,name=apnsTips" json:"apnsTips,omitempty"` Uin *int64 `protobuf:"varint,9,opt,name=uin" json:"uin,omitempty"` MsgStateFlag *int32 `protobuf:"varint,10,opt,name=msgStateFlag" json:"msgStateFlag,omitempty"` ApnsSoundType *int32 `protobuf:"varint,11,opt,name=apnsSoundType" json:"apnsSoundType,omitempty"` NewGroupFlag *int32 `protobuf:"varint,12,opt,name=newGroupFlag" json:"newGroupFlag,omitempty"` } func (x *ExtraInfo) Reset() { *x = ExtraInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtraInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtraInfo) ProtoMessage() {} func (x *ExtraInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtraInfo.ProtoReflect.Descriptor instead. func (*ExtraInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{36} } func (x *ExtraInfo) GetNick() []byte { if x != nil { return x.Nick } return nil } func (x *ExtraInfo) GetGroupCard() []byte { if x != nil { return x.GroupCard } return nil } func (x *ExtraInfo) GetLevel() int32 { if x != nil && x.Level != nil { return *x.Level } return 0 } func (x *ExtraInfo) GetFlags() int32 { if x != nil && x.Flags != nil { return *x.Flags } return 0 } func (x *ExtraInfo) GetGroupMask() int32 { if x != nil && x.GroupMask != nil { return *x.GroupMask } return 0 } func (x *ExtraInfo) GetMsgTailId() int32 { if x != nil && x.MsgTailId != nil { return *x.MsgTailId } return 0 } func (x *ExtraInfo) GetSenderTitle() []byte { if x != nil { return x.SenderTitle } return nil } func (x *ExtraInfo) GetApnsTips() []byte { if x != nil { return x.ApnsTips } return nil } func (x *ExtraInfo) GetUin() int64 { if x != nil && x.Uin != nil { return *x.Uin } return 0 } func (x *ExtraInfo) GetMsgStateFlag() int32 { if x != nil && x.MsgStateFlag != nil { return *x.MsgStateFlag } return 0 } func (x *ExtraInfo) GetApnsSoundType() int32 { if x != nil && x.ApnsSoundType != nil { return *x.ApnsSoundType } return 0 } func (x *ExtraInfo) GetNewGroupFlag() int32 { if x != nil && x.NewGroupFlag != nil { return *x.NewGroupFlag } return 0 } type GroupFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Filename []byte `protobuf:"bytes,1,opt,name=filename" json:"filename,omitempty"` FileSize *int64 `protobuf:"varint,2,opt,name=fileSize" json:"fileSize,omitempty"` FileId []byte `protobuf:"bytes,3,opt,name=fileId" json:"fileId,omitempty"` BatchId []byte `protobuf:"bytes,4,opt,name=batchId" json:"batchId,omitempty"` FileKey []byte `protobuf:"bytes,5,opt,name=fileKey" json:"fileKey,omitempty"` Mark []byte `protobuf:"bytes,6,opt,name=mark" json:"mark,omitempty"` Sequence *int64 `protobuf:"varint,7,opt,name=sequence" json:"sequence,omitempty"` BatchItemId []byte `protobuf:"bytes,8,opt,name=batchItemId" json:"batchItemId,omitempty"` FeedMsgTime *int32 `protobuf:"varint,9,opt,name=feedMsgTime" json:"feedMsgTime,omitempty"` PbReserve []byte `protobuf:"bytes,10,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *GroupFile) Reset() { *x = GroupFile{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupFile) ProtoMessage() {} func (x *GroupFile) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupFile.ProtoReflect.Descriptor instead. func (*GroupFile) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{37} } func (x *GroupFile) GetFilename() []byte { if x != nil { return x.Filename } return nil } func (x *GroupFile) GetFileSize() int64 { if x != nil && x.FileSize != nil { return *x.FileSize } return 0 } func (x *GroupFile) GetFileId() []byte { if x != nil { return x.FileId } return nil } func (x *GroupFile) GetBatchId() []byte { if x != nil { return x.BatchId } return nil } func (x *GroupFile) GetFileKey() []byte { if x != nil { return x.FileKey } return nil } func (x *GroupFile) GetMark() []byte { if x != nil { return x.Mark } return nil } func (x *GroupFile) GetSequence() int64 { if x != nil && x.Sequence != nil { return *x.Sequence } return 0 } func (x *GroupFile) GetBatchItemId() []byte { if x != nil { return x.BatchItemId } return nil } func (x *GroupFile) GetFeedMsgTime() int32 { if x != nil && x.FeedMsgTime != nil { return *x.FeedMsgTime } return 0 } func (x *GroupFile) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type AnonymousGroupMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Flags *int32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"` AnonId []byte `protobuf:"bytes,2,opt,name=anonId" json:"anonId,omitempty"` AnonNick []byte `protobuf:"bytes,3,opt,name=anonNick" json:"anonNick,omitempty"` HeadPortrait *int32 `protobuf:"varint,4,opt,name=headPortrait" json:"headPortrait,omitempty"` ExpireTime *int32 `protobuf:"varint,5,opt,name=expireTime" json:"expireTime,omitempty"` BubbleId *int32 `protobuf:"varint,6,opt,name=bubbleId" json:"bubbleId,omitempty"` RankColor []byte `protobuf:"bytes,7,opt,name=rankColor" json:"rankColor,omitempty"` } func (x *AnonymousGroupMessage) Reset() { *x = AnonymousGroupMessage{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnonymousGroupMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnonymousGroupMessage) ProtoMessage() {} func (x *AnonymousGroupMessage) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AnonymousGroupMessage.ProtoReflect.Descriptor instead. func (*AnonymousGroupMessage) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{38} } func (x *AnonymousGroupMessage) GetFlags() int32 { if x != nil && x.Flags != nil { return *x.Flags } return 0 } func (x *AnonymousGroupMessage) GetAnonId() []byte { if x != nil { return x.AnonId } return nil } func (x *AnonymousGroupMessage) GetAnonNick() []byte { if x != nil { return x.AnonNick } return nil } func (x *AnonymousGroupMessage) GetHeadPortrait() int32 { if x != nil && x.HeadPortrait != nil { return *x.HeadPortrait } return 0 } func (x *AnonymousGroupMessage) GetExpireTime() int32 { if x != nil && x.ExpireTime != nil { return *x.ExpireTime } return 0 } func (x *AnonymousGroupMessage) GetBubbleId() int32 { if x != nil && x.BubbleId != nil { return *x.BubbleId } return 0 } func (x *AnonymousGroupMessage) GetRankColor() []byte { if x != nil { return x.RankColor } return nil } type VideoFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileUuid []byte `protobuf:"bytes,1,opt,name=fileUuid" json:"fileUuid,omitempty"` FileMd5 []byte `protobuf:"bytes,2,opt,name=fileMd5" json:"fileMd5,omitempty"` FileName []byte `protobuf:"bytes,3,opt,name=fileName" json:"fileName,omitempty"` FileFormat *int32 `protobuf:"varint,4,opt,name=fileFormat" json:"fileFormat,omitempty"` FileTime *int32 `protobuf:"varint,5,opt,name=fileTime" json:"fileTime,omitempty"` FileSize *int32 `protobuf:"varint,6,opt,name=fileSize" json:"fileSize,omitempty"` ThumbWidth *int32 `protobuf:"varint,7,opt,name=thumbWidth" json:"thumbWidth,omitempty"` ThumbHeight *int32 `protobuf:"varint,8,opt,name=thumbHeight" json:"thumbHeight,omitempty"` ThumbFileMd5 []byte `protobuf:"bytes,9,opt,name=thumbFileMd5" json:"thumbFileMd5,omitempty"` Source []byte `protobuf:"bytes,10,opt,name=source" json:"source,omitempty"` ThumbFileSize *int32 `protobuf:"varint,11,opt,name=thumbFileSize" json:"thumbFileSize,omitempty"` BusiType *int32 `protobuf:"varint,12,opt,name=busiType" json:"busiType,omitempty"` FromChatType *int32 `protobuf:"varint,13,opt,name=fromChatType" json:"fromChatType,omitempty"` ToChatType *int32 `protobuf:"varint,14,opt,name=toChatType" json:"toChatType,omitempty"` BoolSupportProgressive *bool `protobuf:"varint,15,opt,name=boolSupportProgressive" json:"boolSupportProgressive,omitempty"` FileWidth *int32 `protobuf:"varint,16,opt,name=fileWidth" json:"fileWidth,omitempty"` FileHeight *int32 `protobuf:"varint,17,opt,name=fileHeight" json:"fileHeight,omitempty"` SubBusiType *int32 `protobuf:"varint,18,opt,name=subBusiType" json:"subBusiType,omitempty"` VideoAttr *int32 `protobuf:"varint,19,opt,name=videoAttr" json:"videoAttr,omitempty"` BytesThumbFileUrls [][]byte `protobuf:"bytes,20,rep,name=bytesThumbFileUrls" json:"bytesThumbFileUrls,omitempty"` BytesVideoFileUrls [][]byte `protobuf:"bytes,21,rep,name=bytesVideoFileUrls" json:"bytesVideoFileUrls,omitempty"` ThumbDownloadFlag *int32 `protobuf:"varint,22,opt,name=thumbDownloadFlag" json:"thumbDownloadFlag,omitempty"` VideoDownloadFlag *int32 `protobuf:"varint,23,opt,name=videoDownloadFlag" json:"videoDownloadFlag,omitempty"` PbReserve []byte `protobuf:"bytes,24,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *VideoFile) Reset() { *x = VideoFile{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VideoFile) String() string { return protoimpl.X.MessageStringOf(x) } func (*VideoFile) ProtoMessage() {} func (x *VideoFile) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use VideoFile.ProtoReflect.Descriptor instead. func (*VideoFile) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{39} } func (x *VideoFile) GetFileUuid() []byte { if x != nil { return x.FileUuid } return nil } func (x *VideoFile) GetFileMd5() []byte { if x != nil { return x.FileMd5 } return nil } func (x *VideoFile) GetFileName() []byte { if x != nil { return x.FileName } return nil } func (x *VideoFile) GetFileFormat() int32 { if x != nil && x.FileFormat != nil { return *x.FileFormat } return 0 } func (x *VideoFile) GetFileTime() int32 { if x != nil && x.FileTime != nil { return *x.FileTime } return 0 } func (x *VideoFile) GetFileSize() int32 { if x != nil && x.FileSize != nil { return *x.FileSize } return 0 } func (x *VideoFile) GetThumbWidth() int32 { if x != nil && x.ThumbWidth != nil { return *x.ThumbWidth } return 0 } func (x *VideoFile) GetThumbHeight() int32 { if x != nil && x.ThumbHeight != nil { return *x.ThumbHeight } return 0 } func (x *VideoFile) GetThumbFileMd5() []byte { if x != nil { return x.ThumbFileMd5 } return nil } func (x *VideoFile) GetSource() []byte { if x != nil { return x.Source } return nil } func (x *VideoFile) GetThumbFileSize() int32 { if x != nil && x.ThumbFileSize != nil { return *x.ThumbFileSize } return 0 } func (x *VideoFile) GetBusiType() int32 { if x != nil && x.BusiType != nil { return *x.BusiType } return 0 } func (x *VideoFile) GetFromChatType() int32 { if x != nil && x.FromChatType != nil { return *x.FromChatType } return 0 } func (x *VideoFile) GetToChatType() int32 { if x != nil && x.ToChatType != nil { return *x.ToChatType } return 0 } func (x *VideoFile) GetBoolSupportProgressive() bool { if x != nil && x.BoolSupportProgressive != nil { return *x.BoolSupportProgressive } return false } func (x *VideoFile) GetFileWidth() int32 { if x != nil && x.FileWidth != nil { return *x.FileWidth } return 0 } func (x *VideoFile) GetFileHeight() int32 { if x != nil && x.FileHeight != nil { return *x.FileHeight } return 0 } func (x *VideoFile) GetSubBusiType() int32 { if x != nil && x.SubBusiType != nil { return *x.SubBusiType } return 0 } func (x *VideoFile) GetVideoAttr() int32 { if x != nil && x.VideoAttr != nil { return *x.VideoAttr } return 0 } func (x *VideoFile) GetBytesThumbFileUrls() [][]byte { if x != nil { return x.BytesThumbFileUrls } return nil } func (x *VideoFile) GetBytesVideoFileUrls() [][]byte { if x != nil { return x.BytesVideoFileUrls } return nil } func (x *VideoFile) GetThumbDownloadFlag() int32 { if x != nil && x.ThumbDownloadFlag != nil { return *x.ThumbDownloadFlag } return 0 } func (x *VideoFile) GetVideoDownloadFlag() int32 { if x != nil && x.VideoDownloadFlag != nil { return *x.VideoDownloadFlag } return 0 } func (x *VideoFile) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type SourceMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrigSeqs []int32 `protobuf:"varint,1,rep,name=origSeqs" json:"origSeqs,omitempty"` SenderUin *int64 `protobuf:"varint,2,opt,name=senderUin" json:"senderUin,omitempty"` Time *int32 `protobuf:"varint,3,opt,name=time" json:"time,omitempty"` Flag *int32 `protobuf:"varint,4,opt,name=flag" json:"flag,omitempty"` Elems []*Elem `protobuf:"bytes,5,rep,name=elems" json:"elems,omitempty"` Type *int32 `protobuf:"varint,6,opt,name=type" json:"type,omitempty"` RichMsg []byte `protobuf:"bytes,7,opt,name=richMsg" json:"richMsg,omitempty"` PbReserve []byte `protobuf:"bytes,8,opt,name=pbReserve" json:"pbReserve,omitempty"` SrcMsg []byte `protobuf:"bytes,9,opt,name=srcMsg" json:"srcMsg,omitempty"` ToUin *int64 `protobuf:"varint,10,opt,name=toUin" json:"toUin,omitempty"` TroopName []byte `protobuf:"bytes,11,opt,name=troopName" json:"troopName,omitempty"` } func (x *SourceMsg) Reset() { *x = SourceMsg{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceMsg) ProtoMessage() {} func (x *SourceMsg) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SourceMsg.ProtoReflect.Descriptor instead. func (*SourceMsg) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{40} } func (x *SourceMsg) GetOrigSeqs() []int32 { if x != nil { return x.OrigSeqs } return nil } func (x *SourceMsg) GetSenderUin() int64 { if x != nil && x.SenderUin != nil { return *x.SenderUin } return 0 } func (x *SourceMsg) GetTime() int32 { if x != nil && x.Time != nil { return *x.Time } return 0 } func (x *SourceMsg) GetFlag() int32 { if x != nil && x.Flag != nil { return *x.Flag } return 0 } func (x *SourceMsg) GetElems() []*Elem { if x != nil { return x.Elems } return nil } func (x *SourceMsg) GetType() int32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *SourceMsg) GetRichMsg() []byte { if x != nil { return x.RichMsg } return nil } func (x *SourceMsg) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } func (x *SourceMsg) GetSrcMsg() []byte { if x != nil { return x.SrcMsg } return nil } func (x *SourceMsg) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } func (x *SourceMsg) GetTroopName() []byte { if x != nil { return x.TroopName } return nil } type Face struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index *int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` Old []byte `protobuf:"bytes,2,opt,name=old" json:"old,omitempty"` Buf []byte `protobuf:"bytes,11,opt,name=buf" json:"buf,omitempty"` } func (x *Face) Reset() { *x = Face{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Face) String() string { return protoimpl.X.MessageStringOf(x) } func (*Face) ProtoMessage() {} func (x *Face) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Face.ProtoReflect.Descriptor instead. func (*Face) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{41} } func (x *Face) GetIndex() int32 { if x != nil && x.Index != nil { return *x.Index } return 0 } func (x *Face) GetOld() []byte { if x != nil { return x.Old } return nil } func (x *Face) GetBuf() []byte { if x != nil { return x.Buf } return nil } type LightAppElem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` MsgResid []byte `protobuf:"bytes,2,opt,name=msgResid" json:"msgResid,omitempty"` } func (x *LightAppElem) Reset() { *x = LightAppElem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LightAppElem) String() string { return protoimpl.X.MessageStringOf(x) } func (*LightAppElem) ProtoMessage() {} func (x *LightAppElem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LightAppElem.ProtoReflect.Descriptor instead. func (*LightAppElem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{42} } func (x *LightAppElem) GetData() []byte { if x != nil { return x.Data } return nil } func (x *LightAppElem) GetMsgResid() []byte { if x != nil { return x.MsgResid } return nil } type CustomFace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Guid []byte `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` FilePath *string `protobuf:"bytes,2,opt,name=filePath" json:"filePath,omitempty"` Shortcut *string `protobuf:"bytes,3,opt,name=shortcut" json:"shortcut,omitempty"` Buffer []byte `protobuf:"bytes,4,opt,name=buffer" json:"buffer,omitempty"` Flag []byte `protobuf:"bytes,5,opt,name=flag" json:"flag,omitempty"` OldData []byte `protobuf:"bytes,6,opt,name=oldData" json:"oldData,omitempty"` FileId *int32 `protobuf:"varint,7,opt,name=fileId" json:"fileId,omitempty"` ServerIp *int32 `protobuf:"varint,8,opt,name=serverIp" json:"serverIp,omitempty"` ServerPort *int32 `protobuf:"varint,9,opt,name=serverPort" json:"serverPort,omitempty"` FileType *int32 `protobuf:"varint,10,opt,name=fileType" json:"fileType,omitempty"` Signature []byte `protobuf:"bytes,11,opt,name=signature" json:"signature,omitempty"` Useful *int32 `protobuf:"varint,12,opt,name=useful" json:"useful,omitempty"` Md5 []byte `protobuf:"bytes,13,opt,name=md5" json:"md5,omitempty"` ThumbUrl *string `protobuf:"bytes,14,opt,name=thumbUrl" json:"thumbUrl,omitempty"` BigUrl *string `protobuf:"bytes,15,opt,name=bigUrl" json:"bigUrl,omitempty"` OrigUrl *string `protobuf:"bytes,16,opt,name=origUrl" json:"origUrl,omitempty"` BizType *int32 `protobuf:"varint,17,opt,name=bizType" json:"bizType,omitempty"` RepeatIndex *int32 `protobuf:"varint,18,opt,name=repeatIndex" json:"repeatIndex,omitempty"` RepeatImage *int32 `protobuf:"varint,19,opt,name=repeatImage" json:"repeatImage,omitempty"` ImageType *int32 `protobuf:"varint,20,opt,name=imageType" json:"imageType,omitempty"` Index *int32 `protobuf:"varint,21,opt,name=index" json:"index,omitempty"` Width *int32 `protobuf:"varint,22,opt,name=width" json:"width,omitempty"` Height *int32 `protobuf:"varint,23,opt,name=height" json:"height,omitempty"` Source *int32 `protobuf:"varint,24,opt,name=source" json:"source,omitempty"` Size *int32 `protobuf:"varint,25,opt,name=size" json:"size,omitempty"` Origin *int32 `protobuf:"varint,26,opt,name=origin" json:"origin,omitempty"` ThumbWidth *int32 `protobuf:"varint,27,opt,name=thumbWidth" json:"thumbWidth,omitempty"` ThumbHeight *int32 `protobuf:"varint,28,opt,name=thumbHeight" json:"thumbHeight,omitempty"` ShowLen *int32 `protobuf:"varint,29,opt,name=showLen" json:"showLen,omitempty"` DownloadLen *int32 `protobuf:"varint,30,opt,name=downloadLen" json:"downloadLen,omitempty"` X400Url *string `protobuf:"bytes,31,opt,name=_400Url,json=400Url" json:"_400Url,omitempty"` X400Width *int32 `protobuf:"varint,32,opt,name=_400Width,json=400Width" json:"_400Width,omitempty"` X400Height *int32 `protobuf:"varint,33,opt,name=_400Height,json=400Height" json:"_400Height,omitempty"` PbReserve []byte `protobuf:"bytes,34,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *CustomFace) Reset() { *x = CustomFace{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CustomFace) String() string { return protoimpl.X.MessageStringOf(x) } func (*CustomFace) ProtoMessage() {} func (x *CustomFace) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CustomFace.ProtoReflect.Descriptor instead. func (*CustomFace) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{43} } func (x *CustomFace) GetGuid() []byte { if x != nil { return x.Guid } return nil } func (x *CustomFace) GetFilePath() string { if x != nil && x.FilePath != nil { return *x.FilePath } return "" } func (x *CustomFace) GetShortcut() string { if x != nil && x.Shortcut != nil { return *x.Shortcut } return "" } func (x *CustomFace) GetBuffer() []byte { if x != nil { return x.Buffer } return nil } func (x *CustomFace) GetFlag() []byte { if x != nil { return x.Flag } return nil } func (x *CustomFace) GetOldData() []byte { if x != nil { return x.OldData } return nil } func (x *CustomFace) GetFileId() int32 { if x != nil && x.FileId != nil { return *x.FileId } return 0 } func (x *CustomFace) GetServerIp() int32 { if x != nil && x.ServerIp != nil { return *x.ServerIp } return 0 } func (x *CustomFace) GetServerPort() int32 { if x != nil && x.ServerPort != nil { return *x.ServerPort } return 0 } func (x *CustomFace) GetFileType() int32 { if x != nil && x.FileType != nil { return *x.FileType } return 0 } func (x *CustomFace) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *CustomFace) GetUseful() int32 { if x != nil && x.Useful != nil { return *x.Useful } return 0 } func (x *CustomFace) GetMd5() []byte { if x != nil { return x.Md5 } return nil } func (x *CustomFace) GetThumbUrl() string { if x != nil && x.ThumbUrl != nil { return *x.ThumbUrl } return "" } func (x *CustomFace) GetBigUrl() string { if x != nil && x.BigUrl != nil { return *x.BigUrl } return "" } func (x *CustomFace) GetOrigUrl() string { if x != nil && x.OrigUrl != nil { return *x.OrigUrl } return "" } func (x *CustomFace) GetBizType() int32 { if x != nil && x.BizType != nil { return *x.BizType } return 0 } func (x *CustomFace) GetRepeatIndex() int32 { if x != nil && x.RepeatIndex != nil { return *x.RepeatIndex } return 0 } func (x *CustomFace) GetRepeatImage() int32 { if x != nil && x.RepeatImage != nil { return *x.RepeatImage } return 0 } func (x *CustomFace) GetImageType() int32 { if x != nil && x.ImageType != nil { return *x.ImageType } return 0 } func (x *CustomFace) GetIndex() int32 { if x != nil && x.Index != nil { return *x.Index } return 0 } func (x *CustomFace) GetWidth() int32 { if x != nil && x.Width != nil { return *x.Width } return 0 } func (x *CustomFace) GetHeight() int32 { if x != nil && x.Height != nil { return *x.Height } return 0 } func (x *CustomFace) GetSource() int32 { if x != nil && x.Source != nil { return *x.Source } return 0 } func (x *CustomFace) GetSize() int32 { if x != nil && x.Size != nil { return *x.Size } return 0 } func (x *CustomFace) GetOrigin() int32 { if x != nil && x.Origin != nil { return *x.Origin } return 0 } func (x *CustomFace) GetThumbWidth() int32 { if x != nil && x.ThumbWidth != nil { return *x.ThumbWidth } return 0 } func (x *CustomFace) GetThumbHeight() int32 { if x != nil && x.ThumbHeight != nil { return *x.ThumbHeight } return 0 } func (x *CustomFace) GetShowLen() int32 { if x != nil && x.ShowLen != nil { return *x.ShowLen } return 0 } func (x *CustomFace) GetDownloadLen() int32 { if x != nil && x.DownloadLen != nil { return *x.DownloadLen } return 0 } func (x *CustomFace) GetX400Url() string { if x != nil && x.X400Url != nil { return *x.X400Url } return "" } func (x *CustomFace) GetX400Width() int32 { if x != nil && x.X400Width != nil { return *x.X400Width } return 0 } func (x *CustomFace) GetX400Height() int32 { if x != nil && x.X400Height != nil { return *x.X400Height } return 0 } func (x *CustomFace) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type ContentHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PkgNum *int32 `protobuf:"varint,1,opt,name=pkgNum" json:"pkgNum,omitempty"` PkgIndex *int32 `protobuf:"varint,2,opt,name=pkgIndex" json:"pkgIndex,omitempty"` DivSeq *int32 `protobuf:"varint,3,opt,name=divSeq" json:"divSeq,omitempty"` AutoReply *int32 `protobuf:"varint,4,opt,name=autoReply" json:"autoReply,omitempty"` } func (x *ContentHead) Reset() { *x = ContentHead{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ContentHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*ContentHead) ProtoMessage() {} func (x *ContentHead) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ContentHead.ProtoReflect.Descriptor instead. func (*ContentHead) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{44} } func (x *ContentHead) GetPkgNum() int32 { if x != nil && x.PkgNum != nil { return *x.PkgNum } return 0 } func (x *ContentHead) GetPkgIndex() int32 { if x != nil && x.PkgIndex != nil { return *x.PkgIndex } return 0 } func (x *ContentHead) GetDivSeq() int32 { if x != nil && x.DivSeq != nil { return *x.DivSeq } return 0 } func (x *ContentHead) GetAutoReply() int32 { if x != nil && x.AutoReply != nil { return *x.AutoReply } return 0 } type MessageHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromUin *int64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` ToUin *int64 `protobuf:"varint,2,opt,name=toUin" json:"toUin,omitempty"` MsgType *int32 `protobuf:"varint,3,opt,name=msgType" json:"msgType,omitempty"` C2CCmd *int32 `protobuf:"varint,4,opt,name=c2cCmd" json:"c2cCmd,omitempty"` MsgSeq *int32 `protobuf:"varint,5,opt,name=msgSeq" json:"msgSeq,omitempty"` MsgTime *int32 `protobuf:"varint,6,opt,name=msgTime" json:"msgTime,omitempty"` MsgUid *int64 `protobuf:"varint,7,opt,name=msgUid" json:"msgUid,omitempty"` C2CTmpMsgHead *C2CTempMessageHead `protobuf:"bytes,8,opt,name=c2cTmpMsgHead" json:"c2cTmpMsgHead,omitempty"` GroupInfo *GroupInfo `protobuf:"bytes,9,opt,name=groupInfo" json:"groupInfo,omitempty"` FromAppid *int32 `protobuf:"varint,10,opt,name=fromAppid" json:"fromAppid,omitempty"` FromInstid *int32 `protobuf:"varint,11,opt,name=fromInstid" json:"fromInstid,omitempty"` UserActive *int32 `protobuf:"varint,12,opt,name=userActive" json:"userActive,omitempty"` DiscussInfo *DiscussInfo `protobuf:"bytes,13,opt,name=discussInfo" json:"discussInfo,omitempty"` FromNick *string `protobuf:"bytes,14,opt,name=fromNick" json:"fromNick,omitempty"` AuthUin *int64 `protobuf:"varint,15,opt,name=authUin" json:"authUin,omitempty"` AuthNick *string `protobuf:"bytes,16,opt,name=authNick" json:"authNick,omitempty"` MsgFlag *int32 `protobuf:"varint,17,opt,name=msgFlag" json:"msgFlag,omitempty"` AuthRemark *string `protobuf:"bytes,18,opt,name=authRemark" json:"authRemark,omitempty"` GroupName *string `protobuf:"bytes,19,opt,name=groupName" json:"groupName,omitempty"` MutiltransHead *MutilTransHead `protobuf:"bytes,20,opt,name=mutiltransHead" json:"mutiltransHead,omitempty"` MsgInstCtrl *InstCtrl `protobuf:"bytes,21,opt,name=msgInstCtrl" json:"msgInstCtrl,omitempty"` PublicAccountGroupSendFlag *int32 `protobuf:"varint,22,opt,name=publicAccountGroupSendFlag" json:"publicAccountGroupSendFlag,omitempty"` WseqInC2CMsghead *int32 `protobuf:"varint,23,opt,name=wseqInC2cMsghead" json:"wseqInC2cMsghead,omitempty"` Cpid *int64 `protobuf:"varint,24,opt,name=cpid" json:"cpid,omitempty"` ExtGroupKeyInfo *ExtGroupKeyInfo `protobuf:"bytes,25,opt,name=extGroupKeyInfo" json:"extGroupKeyInfo,omitempty"` MultiCompatibleText *string `protobuf:"bytes,26,opt,name=multiCompatibleText" json:"multiCompatibleText,omitempty"` AuthSex *int32 `protobuf:"varint,27,opt,name=authSex" json:"authSex,omitempty"` IsSrcMsg *bool `protobuf:"varint,28,opt,name=isSrcMsg" json:"isSrcMsg,omitempty"` } func (x *MessageHead) Reset() { *x = MessageHead{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageHead) ProtoMessage() {} func (x *MessageHead) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageHead.ProtoReflect.Descriptor instead. func (*MessageHead) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{45} } func (x *MessageHead) GetFromUin() int64 { if x != nil && x.FromUin != nil { return *x.FromUin } return 0 } func (x *MessageHead) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } func (x *MessageHead) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } func (x *MessageHead) GetC2CCmd() int32 { if x != nil && x.C2CCmd != nil { return *x.C2CCmd } return 0 } func (x *MessageHead) GetMsgSeq() int32 { if x != nil && x.MsgSeq != nil { return *x.MsgSeq } return 0 } func (x *MessageHead) GetMsgTime() int32 { if x != nil && x.MsgTime != nil { return *x.MsgTime } return 0 } func (x *MessageHead) GetMsgUid() int64 { if x != nil && x.MsgUid != nil { return *x.MsgUid } return 0 } func (x *MessageHead) GetC2CTmpMsgHead() *C2CTempMessageHead { if x != nil { return x.C2CTmpMsgHead } return nil } func (x *MessageHead) GetGroupInfo() *GroupInfo { if x != nil { return x.GroupInfo } return nil } func (x *MessageHead) GetFromAppid() int32 { if x != nil && x.FromAppid != nil { return *x.FromAppid } return 0 } func (x *MessageHead) GetFromInstid() int32 { if x != nil && x.FromInstid != nil { return *x.FromInstid } return 0 } func (x *MessageHead) GetUserActive() int32 { if x != nil && x.UserActive != nil { return *x.UserActive } return 0 } func (x *MessageHead) GetDiscussInfo() *DiscussInfo { if x != nil { return x.DiscussInfo } return nil } func (x *MessageHead) GetFromNick() string { if x != nil && x.FromNick != nil { return *x.FromNick } return "" } func (x *MessageHead) GetAuthUin() int64 { if x != nil && x.AuthUin != nil { return *x.AuthUin } return 0 } func (x *MessageHead) GetAuthNick() string { if x != nil && x.AuthNick != nil { return *x.AuthNick } return "" } func (x *MessageHead) GetMsgFlag() int32 { if x != nil && x.MsgFlag != nil { return *x.MsgFlag } return 0 } func (x *MessageHead) GetAuthRemark() string { if x != nil && x.AuthRemark != nil { return *x.AuthRemark } return "" } func (x *MessageHead) GetGroupName() string { if x != nil && x.GroupName != nil { return *x.GroupName } return "" } func (x *MessageHead) GetMutiltransHead() *MutilTransHead { if x != nil { return x.MutiltransHead } return nil } func (x *MessageHead) GetMsgInstCtrl() *InstCtrl { if x != nil { return x.MsgInstCtrl } return nil } func (x *MessageHead) GetPublicAccountGroupSendFlag() int32 { if x != nil && x.PublicAccountGroupSendFlag != nil { return *x.PublicAccountGroupSendFlag } return 0 } func (x *MessageHead) GetWseqInC2CMsghead() int32 { if x != nil && x.WseqInC2CMsghead != nil { return *x.WseqInC2CMsghead } return 0 } func (x *MessageHead) GetCpid() int64 { if x != nil && x.Cpid != nil { return *x.Cpid } return 0 } func (x *MessageHead) GetExtGroupKeyInfo() *ExtGroupKeyInfo { if x != nil { return x.ExtGroupKeyInfo } return nil } func (x *MessageHead) GetMultiCompatibleText() string { if x != nil && x.MultiCompatibleText != nil { return *x.MultiCompatibleText } return "" } func (x *MessageHead) GetAuthSex() int32 { if x != nil && x.AuthSex != nil { return *x.AuthSex } return 0 } func (x *MessageHead) GetIsSrcMsg() bool { if x != nil && x.IsSrcMsg != nil { return *x.IsSrcMsg } return false } type GroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupCode *int64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` GroupType *int32 `protobuf:"varint,2,opt,name=groupType" json:"groupType,omitempty"` GroupInfoSeq *int64 `protobuf:"varint,3,opt,name=groupInfoSeq" json:"groupInfoSeq,omitempty"` GroupCard *string `protobuf:"bytes,4,opt,name=groupCard" json:"groupCard,omitempty"` GroupRank []byte `protobuf:"bytes,5,opt,name=groupRank" json:"groupRank,omitempty"` GroupLevel *int32 `protobuf:"varint,6,opt,name=groupLevel" json:"groupLevel,omitempty"` GroupCardType *int32 `protobuf:"varint,7,opt,name=groupCardType" json:"groupCardType,omitempty"` GroupName []byte `protobuf:"bytes,8,opt,name=groupName" json:"groupName,omitempty"` } func (x *GroupInfo) Reset() { *x = GroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupInfo) ProtoMessage() {} func (x *GroupInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{46} } func (x *GroupInfo) GetGroupCode() int64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } func (x *GroupInfo) GetGroupType() int32 { if x != nil && x.GroupType != nil { return *x.GroupType } return 0 } func (x *GroupInfo) GetGroupInfoSeq() int64 { if x != nil && x.GroupInfoSeq != nil { return *x.GroupInfoSeq } return 0 } func (x *GroupInfo) GetGroupCard() string { if x != nil && x.GroupCard != nil { return *x.GroupCard } return "" } func (x *GroupInfo) GetGroupRank() []byte { if x != nil { return x.GroupRank } return nil } func (x *GroupInfo) GetGroupLevel() int32 { if x != nil && x.GroupLevel != nil { return *x.GroupLevel } return 0 } func (x *GroupInfo) GetGroupCardType() int32 { if x != nil && x.GroupCardType != nil { return *x.GroupCardType } return 0 } func (x *GroupInfo) GetGroupName() []byte { if x != nil { return x.GroupName } return nil } type DiscussInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DiscussUin *int64 `protobuf:"varint,1,opt,name=discussUin" json:"discussUin,omitempty"` DiscussType *int32 `protobuf:"varint,2,opt,name=discussType" json:"discussType,omitempty"` DiscussInfoSeq *int64 `protobuf:"varint,3,opt,name=discussInfoSeq" json:"discussInfoSeq,omitempty"` DiscussRemark []byte `protobuf:"bytes,4,opt,name=discussRemark" json:"discussRemark,omitempty"` DiscussName []byte `protobuf:"bytes,5,opt,name=discussName" json:"discussName,omitempty"` } func (x *DiscussInfo) Reset() { *x = DiscussInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiscussInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiscussInfo) ProtoMessage() {} func (x *DiscussInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiscussInfo.ProtoReflect.Descriptor instead. func (*DiscussInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{47} } func (x *DiscussInfo) GetDiscussUin() int64 { if x != nil && x.DiscussUin != nil { return *x.DiscussUin } return 0 } func (x *DiscussInfo) GetDiscussType() int32 { if x != nil && x.DiscussType != nil { return *x.DiscussType } return 0 } func (x *DiscussInfo) GetDiscussInfoSeq() int64 { if x != nil && x.DiscussInfoSeq != nil { return *x.DiscussInfoSeq } return 0 } func (x *DiscussInfo) GetDiscussRemark() []byte { if x != nil { return x.DiscussRemark } return nil } func (x *DiscussInfo) GetDiscussName() []byte { if x != nil { return x.DiscussName } return nil } type MutilTransHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status *int32 `protobuf:"varint,1,opt,name=status" json:"status,omitempty"` MsgId *int32 `protobuf:"varint,2,opt,name=msgId" json:"msgId,omitempty"` } func (x *MutilTransHead) Reset() { *x = MutilTransHead{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MutilTransHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*MutilTransHead) ProtoMessage() {} func (x *MutilTransHead) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MutilTransHead.ProtoReflect.Descriptor instead. func (*MutilTransHead) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{48} } func (x *MutilTransHead) GetStatus() int32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *MutilTransHead) GetMsgId() int32 { if x != nil && x.MsgId != nil { return *x.MsgId } return 0 } type C2CTempMessageHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields C2CType *int32 `protobuf:"varint,1,opt,name=c2cType" json:"c2cType,omitempty"` ServiceType *int32 `protobuf:"varint,2,opt,name=serviceType" json:"serviceType,omitempty"` GroupUin *int64 `protobuf:"varint,3,opt,name=groupUin" json:"groupUin,omitempty"` GroupCode *int64 `protobuf:"varint,4,opt,name=groupCode" json:"groupCode,omitempty"` Sig []byte `protobuf:"bytes,5,opt,name=sig" json:"sig,omitempty"` SigType *int32 `protobuf:"varint,6,opt,name=sigType" json:"sigType,omitempty"` FromPhone *string `protobuf:"bytes,7,opt,name=fromPhone" json:"fromPhone,omitempty"` ToPhone *string `protobuf:"bytes,8,opt,name=toPhone" json:"toPhone,omitempty"` LockDisplay *int32 `protobuf:"varint,9,opt,name=lockDisplay" json:"lockDisplay,omitempty"` DirectionFlag *int32 `protobuf:"varint,10,opt,name=directionFlag" json:"directionFlag,omitempty"` Reserved []byte `protobuf:"bytes,11,opt,name=reserved" json:"reserved,omitempty"` } func (x *C2CTempMessageHead) Reset() { *x = C2CTempMessageHead{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C2CTempMessageHead) String() string { return protoimpl.X.MessageStringOf(x) } func (*C2CTempMessageHead) ProtoMessage() {} func (x *C2CTempMessageHead) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C2CTempMessageHead.ProtoReflect.Descriptor instead. func (*C2CTempMessageHead) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{49} } func (x *C2CTempMessageHead) GetC2CType() int32 { if x != nil && x.C2CType != nil { return *x.C2CType } return 0 } func (x *C2CTempMessageHead) GetServiceType() int32 { if x != nil && x.ServiceType != nil { return *x.ServiceType } return 0 } func (x *C2CTempMessageHead) GetGroupUin() int64 { if x != nil && x.GroupUin != nil { return *x.GroupUin } return 0 } func (x *C2CTempMessageHead) GetGroupCode() int64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } func (x *C2CTempMessageHead) GetSig() []byte { if x != nil { return x.Sig } return nil } func (x *C2CTempMessageHead) GetSigType() int32 { if x != nil && x.SigType != nil { return *x.SigType } return 0 } func (x *C2CTempMessageHead) GetFromPhone() string { if x != nil && x.FromPhone != nil { return *x.FromPhone } return "" } func (x *C2CTempMessageHead) GetToPhone() string { if x != nil && x.ToPhone != nil { return *x.ToPhone } return "" } func (x *C2CTempMessageHead) GetLockDisplay() int32 { if x != nil && x.LockDisplay != nil { return *x.LockDisplay } return 0 } func (x *C2CTempMessageHead) GetDirectionFlag() int32 { if x != nil && x.DirectionFlag != nil { return *x.DirectionFlag } return 0 } func (x *C2CTempMessageHead) GetReserved() []byte { if x != nil { return x.Reserved } return nil } type InstCtrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgSendToInst []*InstInfo `protobuf:"bytes,1,rep,name=msgSendToInst" json:"msgSendToInst,omitempty"` MsgExcludeInst []*InstInfo `protobuf:"bytes,2,rep,name=msgExcludeInst" json:"msgExcludeInst,omitempty"` MsgFromInst *InstInfo `protobuf:"bytes,3,opt,name=msgFromInst" json:"msgFromInst,omitempty"` } func (x *InstCtrl) Reset() { *x = InstCtrl{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstCtrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstCtrl) ProtoMessage() {} func (x *InstCtrl) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InstCtrl.ProtoReflect.Descriptor instead. func (*InstCtrl) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{50} } func (x *InstCtrl) GetMsgSendToInst() []*InstInfo { if x != nil { return x.MsgSendToInst } return nil } func (x *InstCtrl) GetMsgExcludeInst() []*InstInfo { if x != nil { return x.MsgExcludeInst } return nil } func (x *InstCtrl) GetMsgFromInst() *InstInfo { if x != nil { return x.MsgFromInst } return nil } type InstInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Apppid *int32 `protobuf:"varint,1,opt,name=apppid" json:"apppid,omitempty"` Instid *int32 `protobuf:"varint,2,opt,name=instid" json:"instid,omitempty"` Platform *int32 `protobuf:"varint,3,opt,name=platform" json:"platform,omitempty"` EnumDeviceType *int32 `protobuf:"varint,10,opt,name=enumDeviceType" json:"enumDeviceType,omitempty"` } func (x *InstInfo) Reset() { *x = InstInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InstInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*InstInfo) ProtoMessage() {} func (x *InstInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InstInfo.ProtoReflect.Descriptor instead. func (*InstInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{51} } func (x *InstInfo) GetApppid() int32 { if x != nil && x.Apppid != nil { return *x.Apppid } return 0 } func (x *InstInfo) GetInstid() int32 { if x != nil && x.Instid != nil { return *x.Instid } return 0 } func (x *InstInfo) GetPlatform() int32 { if x != nil && x.Platform != nil { return *x.Platform } return 0 } func (x *InstInfo) GetEnumDeviceType() int32 { if x != nil && x.EnumDeviceType != nil { return *x.EnumDeviceType } return 0 } type ExtGroupKeyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CurMaxSeq *int32 `protobuf:"varint,1,opt,name=curMaxSeq" json:"curMaxSeq,omitempty"` CurTime *int64 `protobuf:"varint,2,opt,name=curTime" json:"curTime,omitempty"` } func (x *ExtGroupKeyInfo) Reset() { *x = ExtGroupKeyInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtGroupKeyInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtGroupKeyInfo) ProtoMessage() {} func (x *ExtGroupKeyInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtGroupKeyInfo.ProtoReflect.Descriptor instead. func (*ExtGroupKeyInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{52} } func (x *ExtGroupKeyInfo) GetCurMaxSeq() int32 { if x != nil && x.CurMaxSeq != nil { return *x.CurMaxSeq } return 0 } func (x *ExtGroupKeyInfo) GetCurTime() int64 { if x != nil && x.CurTime != nil { return *x.CurTime } return 0 } type SyncCookie struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Time1 *int64 `protobuf:"varint,1,opt,name=time1" json:"time1,omitempty"` Time *int64 `protobuf:"varint,2,opt,name=time" json:"time,omitempty"` Ran1 *int64 `protobuf:"varint,3,opt,name=ran1" json:"ran1,omitempty"` Ran2 *int64 `protobuf:"varint,4,opt,name=ran2" json:"ran2,omitempty"` Const1 *int64 `protobuf:"varint,5,opt,name=const1" json:"const1,omitempty"` Const2 *int64 `protobuf:"varint,11,opt,name=const2" json:"const2,omitempty"` Const3 *int64 `protobuf:"varint,12,opt,name=const3" json:"const3,omitempty"` LastSyncTime *int64 `protobuf:"varint,13,opt,name=lastSyncTime" json:"lastSyncTime,omitempty"` Const4 *int64 `protobuf:"varint,14,opt,name=const4" json:"const4,omitempty"` } func (x *SyncCookie) Reset() { *x = SyncCookie{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncCookie) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncCookie) ProtoMessage() {} func (x *SyncCookie) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SyncCookie.ProtoReflect.Descriptor instead. func (*SyncCookie) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{53} } func (x *SyncCookie) GetTime1() int64 { if x != nil && x.Time1 != nil { return *x.Time1 } return 0 } func (x *SyncCookie) GetTime() int64 { if x != nil && x.Time != nil { return *x.Time } return 0 } func (x *SyncCookie) GetRan1() int64 { if x != nil && x.Ran1 != nil { return *x.Ran1 } return 0 } func (x *SyncCookie) GetRan2() int64 { if x != nil && x.Ran2 != nil { return *x.Ran2 } return 0 } func (x *SyncCookie) GetConst1() int64 { if x != nil && x.Const1 != nil { return *x.Const1 } return 0 } func (x *SyncCookie) GetConst2() int64 { if x != nil && x.Const2 != nil { return *x.Const2 } return 0 } func (x *SyncCookie) GetConst3() int64 { if x != nil && x.Const3 != nil { return *x.Const3 } return 0 } func (x *SyncCookie) GetLastSyncTime() int64 { if x != nil && x.LastSyncTime != nil { return *x.LastSyncTime } return 0 } func (x *SyncCookie) GetConst4() int64 { if x != nil && x.Const4 != nil { return *x.Const4 } return 0 } type TransMsgInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromUin *int64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` ToUin *int64 `protobuf:"varint,2,opt,name=toUin" json:"toUin,omitempty"` MsgType *int32 `protobuf:"varint,3,opt,name=msgType" json:"msgType,omitempty"` MsgSubtype *int32 `protobuf:"varint,4,opt,name=msgSubtype" json:"msgSubtype,omitempty"` MsgSeq *int32 `protobuf:"varint,5,opt,name=msgSeq" json:"msgSeq,omitempty"` MsgUid *int64 `protobuf:"varint,6,opt,name=msgUid" json:"msgUid,omitempty"` MsgTime *int32 `protobuf:"varint,7,opt,name=msgTime" json:"msgTime,omitempty"` RealMsgTime *int32 `protobuf:"varint,8,opt,name=realMsgTime" json:"realMsgTime,omitempty"` NickName *string `protobuf:"bytes,9,opt,name=nickName" json:"nickName,omitempty"` MsgData []byte `protobuf:"bytes,10,opt,name=msgData" json:"msgData,omitempty"` SvrIp *int32 `protobuf:"varint,11,opt,name=svrIp" json:"svrIp,omitempty"` ExtGroupKeyInfo *ExtGroupKeyInfo `protobuf:"bytes,12,opt,name=extGroupKeyInfo" json:"extGroupKeyInfo,omitempty"` GeneralFlag *int32 `protobuf:"varint,17,opt,name=generalFlag" json:"generalFlag,omitempty"` } func (x *TransMsgInfo) Reset() { *x = TransMsgInfo{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransMsgInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransMsgInfo) ProtoMessage() {} func (x *TransMsgInfo) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransMsgInfo.ProtoReflect.Descriptor instead. func (*TransMsgInfo) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{54} } func (x *TransMsgInfo) GetFromUin() int64 { if x != nil && x.FromUin != nil { return *x.FromUin } return 0 } func (x *TransMsgInfo) GetToUin() int64 { if x != nil && x.ToUin != nil { return *x.ToUin } return 0 } func (x *TransMsgInfo) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } func (x *TransMsgInfo) GetMsgSubtype() int32 { if x != nil && x.MsgSubtype != nil { return *x.MsgSubtype } return 0 } func (x *TransMsgInfo) GetMsgSeq() int32 { if x != nil && x.MsgSeq != nil { return *x.MsgSeq } return 0 } func (x *TransMsgInfo) GetMsgUid() int64 { if x != nil && x.MsgUid != nil { return *x.MsgUid } return 0 } func (x *TransMsgInfo) GetMsgTime() int32 { if x != nil && x.MsgTime != nil { return *x.MsgTime } return 0 } func (x *TransMsgInfo) GetRealMsgTime() int32 { if x != nil && x.RealMsgTime != nil { return *x.RealMsgTime } return 0 } func (x *TransMsgInfo) GetNickName() string { if x != nil && x.NickName != nil { return *x.NickName } return "" } func (x *TransMsgInfo) GetMsgData() []byte { if x != nil { return x.MsgData } return nil } func (x *TransMsgInfo) GetSvrIp() int32 { if x != nil && x.SvrIp != nil { return *x.SvrIp } return 0 } func (x *TransMsgInfo) GetExtGroupKeyInfo() *ExtGroupKeyInfo { if x != nil { return x.ExtGroupKeyInfo } return nil } func (x *TransMsgInfo) GetGeneralFlag() int32 { if x != nil && x.GeneralFlag != nil { return *x.GeneralFlag } return 0 } type GeneralFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BubbleDiyTextId *int32 `protobuf:"varint,1,opt,name=bubbleDiyTextId" json:"bubbleDiyTextId,omitempty"` GroupFlagNew *int32 `protobuf:"varint,2,opt,name=groupFlagNew" json:"groupFlagNew,omitempty"` Uin *int64 `protobuf:"varint,3,opt,name=uin" json:"uin,omitempty"` RpId []byte `protobuf:"bytes,4,opt,name=rpId" json:"rpId,omitempty"` PrpFold *int32 `protobuf:"varint,5,opt,name=prpFold" json:"prpFold,omitempty"` LongTextFlag *int32 `protobuf:"varint,6,opt,name=longTextFlag" json:"longTextFlag,omitempty"` LongTextResid *string `protobuf:"bytes,7,opt,name=longTextResid" json:"longTextResid,omitempty"` GroupType *int32 `protobuf:"varint,8,opt,name=groupType" json:"groupType,omitempty"` ToUinFlag *int32 `protobuf:"varint,9,opt,name=toUinFlag" json:"toUinFlag,omitempty"` GlamourLevel *int32 `protobuf:"varint,10,opt,name=glamourLevel" json:"glamourLevel,omitempty"` MemberLevel *int32 `protobuf:"varint,11,opt,name=memberLevel" json:"memberLevel,omitempty"` GroupRankSeq *int64 `protobuf:"varint,12,opt,name=groupRankSeq" json:"groupRankSeq,omitempty"` OlympicTorch *int32 `protobuf:"varint,13,opt,name=olympicTorch" json:"olympicTorch,omitempty"` BabyqGuideMsgCookie []byte `protobuf:"bytes,14,opt,name=babyqGuideMsgCookie" json:"babyqGuideMsgCookie,omitempty"` Uin32ExpertFlag *int32 `protobuf:"varint,15,opt,name=uin32ExpertFlag" json:"uin32ExpertFlag,omitempty"` BubbleSubId *int32 `protobuf:"varint,16,opt,name=bubbleSubId" json:"bubbleSubId,omitempty"` PendantId *int64 `protobuf:"varint,17,opt,name=pendantId" json:"pendantId,omitempty"` RpIndex []byte `protobuf:"bytes,18,opt,name=rpIndex" json:"rpIndex,omitempty"` PbReserve []byte `protobuf:"bytes,19,opt,name=pbReserve" json:"pbReserve,omitempty"` } func (x *GeneralFlags) Reset() { *x = GeneralFlags{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GeneralFlags) String() string { return protoimpl.X.MessageStringOf(x) } func (*GeneralFlags) ProtoMessage() {} func (x *GeneralFlags) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GeneralFlags.ProtoReflect.Descriptor instead. func (*GeneralFlags) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{55} } func (x *GeneralFlags) GetBubbleDiyTextId() int32 { if x != nil && x.BubbleDiyTextId != nil { return *x.BubbleDiyTextId } return 0 } func (x *GeneralFlags) GetGroupFlagNew() int32 { if x != nil && x.GroupFlagNew != nil { return *x.GroupFlagNew } return 0 } func (x *GeneralFlags) GetUin() int64 { if x != nil && x.Uin != nil { return *x.Uin } return 0 } func (x *GeneralFlags) GetRpId() []byte { if x != nil { return x.RpId } return nil } func (x *GeneralFlags) GetPrpFold() int32 { if x != nil && x.PrpFold != nil { return *x.PrpFold } return 0 } func (x *GeneralFlags) GetLongTextFlag() int32 { if x != nil && x.LongTextFlag != nil { return *x.LongTextFlag } return 0 } func (x *GeneralFlags) GetLongTextResid() string { if x != nil && x.LongTextResid != nil { return *x.LongTextResid } return "" } func (x *GeneralFlags) GetGroupType() int32 { if x != nil && x.GroupType != nil { return *x.GroupType } return 0 } func (x *GeneralFlags) GetToUinFlag() int32 { if x != nil && x.ToUinFlag != nil { return *x.ToUinFlag } return 0 } func (x *GeneralFlags) GetGlamourLevel() int32 { if x != nil && x.GlamourLevel != nil { return *x.GlamourLevel } return 0 } func (x *GeneralFlags) GetMemberLevel() int32 { if x != nil && x.MemberLevel != nil { return *x.MemberLevel } return 0 } func (x *GeneralFlags) GetGroupRankSeq() int64 { if x != nil && x.GroupRankSeq != nil { return *x.GroupRankSeq } return 0 } func (x *GeneralFlags) GetOlympicTorch() int32 { if x != nil && x.OlympicTorch != nil { return *x.OlympicTorch } return 0 } func (x *GeneralFlags) GetBabyqGuideMsgCookie() []byte { if x != nil { return x.BabyqGuideMsgCookie } return nil } func (x *GeneralFlags) GetUin32ExpertFlag() int32 { if x != nil && x.Uin32ExpertFlag != nil { return *x.Uin32ExpertFlag } return 0 } func (x *GeneralFlags) GetBubbleSubId() int32 { if x != nil && x.BubbleSubId != nil { return *x.BubbleSubId } return 0 } func (x *GeneralFlags) GetPendantId() int64 { if x != nil && x.PendantId != nil { return *x.PendantId } return 0 } func (x *GeneralFlags) GetRpIndex() []byte { if x != nil { return x.RpIndex } return nil } func (x *GeneralFlags) GetPbReserve() []byte { if x != nil { return x.PbReserve } return nil } type PbMultiMsgItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileName *string `protobuf:"bytes,1,opt,name=fileName" json:"fileName,omitempty"` Buffer *PbMultiMsgNew `protobuf:"bytes,2,opt,name=buffer" json:"buffer,omitempty"` } func (x *PbMultiMsgItem) Reset() { *x = PbMultiMsgItem{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbMultiMsgItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbMultiMsgItem) ProtoMessage() {} func (x *PbMultiMsgItem) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbMultiMsgItem.ProtoReflect.Descriptor instead. func (*PbMultiMsgItem) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{56} } func (x *PbMultiMsgItem) GetFileName() string { if x != nil && x.FileName != nil { return *x.FileName } return "" } func (x *PbMultiMsgItem) GetBuffer() *PbMultiMsgNew { if x != nil { return x.Buffer } return nil } type PbMultiMsgNew struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Msg []*Message `protobuf:"bytes,1,rep,name=msg" json:"msg,omitempty"` } func (x *PbMultiMsgNew) Reset() { *x = PbMultiMsgNew{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbMultiMsgNew) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbMultiMsgNew) ProtoMessage() {} func (x *PbMultiMsgNew) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbMultiMsgNew.ProtoReflect.Descriptor instead. func (*PbMultiMsgNew) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{57} } func (x *PbMultiMsgNew) GetMsg() []*Message { if x != nil { return x.Msg } return nil } type PbMultiMsgTransmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Msg []*Message `protobuf:"bytes,1,rep,name=msg" json:"msg,omitempty"` PbItemList []*PbMultiMsgItem `protobuf:"bytes,2,rep,name=pbItemList" json:"pbItemList,omitempty"` } func (x *PbMultiMsgTransmit) Reset() { *x = PbMultiMsgTransmit{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbMultiMsgTransmit) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbMultiMsgTransmit) ProtoMessage() {} func (x *PbMultiMsgTransmit) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbMultiMsgTransmit.ProtoReflect.Descriptor instead. func (*PbMultiMsgTransmit) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{58} } func (x *PbMultiMsgTransmit) GetMsg() []*Message { if x != nil { return x.Msg } return nil } func (x *PbMultiMsgTransmit) GetPbItemList() []*PbMultiMsgItem { if x != nil { return x.PbItemList } return nil } type MsgElemInfoServtype3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FlashTroopPic *CustomFace `protobuf:"bytes,1,opt,name=flash_troop_pic,json=flashTroopPic" json:"flash_troop_pic,omitempty"` FlashC2CPic *NotOnlineImage `protobuf:"bytes,2,opt,name=flash_c2c_pic,json=flashC2cPic" json:"flash_c2c_pic,omitempty"` } func (x *MsgElemInfoServtype3) Reset() { *x = MsgElemInfoServtype3{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgElemInfoServtype3) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgElemInfoServtype3) ProtoMessage() {} func (x *MsgElemInfoServtype3) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MsgElemInfoServtype3.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype3) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{59} } func (x *MsgElemInfoServtype3) GetFlashTroopPic() *CustomFace { if x != nil { return x.FlashTroopPic } return nil } func (x *MsgElemInfoServtype3) GetFlashC2CPic() *NotOnlineImage { if x != nil { return x.FlashC2CPic } return nil } type MsgElemInfoServtype33 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Index *uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"` Text []byte `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` Compat []byte `protobuf:"bytes,3,opt,name=compat" json:"compat,omitempty"` Buf []byte `protobuf:"bytes,4,opt,name=buf" json:"buf,omitempty"` } func (x *MsgElemInfoServtype33) Reset() { *x = MsgElemInfoServtype33{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgElemInfoServtype33) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgElemInfoServtype33) ProtoMessage() {} func (x *MsgElemInfoServtype33) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MsgElemInfoServtype33.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype33) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{60} } func (x *MsgElemInfoServtype33) GetIndex() uint32 { if x != nil && x.Index != nil { return *x.Index } return 0 } func (x *MsgElemInfoServtype33) GetText() []byte { if x != nil { return x.Text } return nil } func (x *MsgElemInfoServtype33) GetCompat() []byte { if x != nil { return x.Compat } return nil } func (x *MsgElemInfoServtype33) GetBuf() []byte { if x != nil { return x.Buf } return nil } type SubMsgType0X4Body struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NotOnlineFile *NotOnlineFile `protobuf:"bytes,1,opt,name=notOnlineFile" json:"notOnlineFile,omitempty"` MsgTime *uint32 `protobuf:"varint,2,opt,name=msgTime" json:"msgTime,omitempty"` OnlineFileForPolyToOffline *uint32 `protobuf:"varint,3,opt,name=onlineFileForPolyToOffline" json:"onlineFileForPolyToOffline,omitempty"` // fileImageInfo } func (x *SubMsgType0X4Body) Reset() { *x = SubMsgType0X4Body{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubMsgType0X4Body) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubMsgType0X4Body) ProtoMessage() {} func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubMsgType0X4Body.ProtoReflect.Descriptor instead. func (*SubMsgType0X4Body) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{61} } func (x *SubMsgType0X4Body) GetNotOnlineFile() *NotOnlineFile { if x != nil { return x.NotOnlineFile } return nil } func (x *SubMsgType0X4Body) GetMsgTime() uint32 { if x != nil && x.MsgTime != nil { return *x.MsgTime } return 0 } func (x *SubMsgType0X4Body) GetOnlineFileForPolyToOffline() uint32 { if x != nil && x.OnlineFileForPolyToOffline != nil { return *x.OnlineFileForPolyToOffline } return 0 } type ResvAttr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ImageShow *AnimationImageShow `protobuf:"bytes,7,opt,name=image_show,json=imageShow" json:"image_show,omitempty"` } func (x *ResvAttr) Reset() { *x = ResvAttr{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResvAttr) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResvAttr) ProtoMessage() {} func (x *ResvAttr) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ResvAttr.ProtoReflect.Descriptor instead. func (*ResvAttr) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{62} } func (x *ResvAttr) GetImageShow() *AnimationImageShow { if x != nil { return x.ImageShow } return nil } type AnimationImageShow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EffectId *int32 `protobuf:"varint,1,opt,name=effect_id,json=effectId" json:"effect_id,omitempty"` AnimationParam []byte `protobuf:"bytes,2,opt,name=animation_param,json=animationParam" json:"animation_param,omitempty"` } func (x *AnimationImageShow) Reset() { *x = AnimationImageShow{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AnimationImageShow) String() string { return protoimpl.X.MessageStringOf(x) } func (*AnimationImageShow) ProtoMessage() {} func (x *AnimationImageShow) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AnimationImageShow.ProtoReflect.Descriptor instead. func (*AnimationImageShow) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{63} } func (x *AnimationImageShow) GetEffectId() int32 { if x != nil && x.EffectId != nil { return *x.EffectId } return 0 } func (x *AnimationImageShow) GetAnimationParam() []byte { if x != nil { return x.AnimationParam } return nil } type UinTypeUserDef struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromUinType *int32 `protobuf:"varint,1,opt,name=fromUinType" json:"fromUinType,omitempty"` FromGroupCode *int64 `protobuf:"varint,2,opt,name=fromGroupCode" json:"fromGroupCode,omitempty"` FileUuid *string `protobuf:"bytes,3,opt,name=fileUuid" json:"fileUuid,omitempty"` } func (x *UinTypeUserDef) Reset() { *x = UinTypeUserDef{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UinTypeUserDef) String() string { return protoimpl.X.MessageStringOf(x) } func (*UinTypeUserDef) ProtoMessage() {} func (x *UinTypeUserDef) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UinTypeUserDef.ProtoReflect.Descriptor instead. func (*UinTypeUserDef) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{64} } func (x *UinTypeUserDef) GetFromUinType() int32 { if x != nil && x.FromUinType != nil { return *x.FromUinType } return 0 } func (x *UinTypeUserDef) GetFromGroupCode() int64 { if x != nil && x.FromGroupCode != nil { return *x.FromGroupCode } return 0 } func (x *UinTypeUserDef) GetFileUuid() string { if x != nil && x.FileUuid != nil { return *x.FileUuid } return "" } type GetGroupMsgReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` BeginSeq *uint64 `protobuf:"varint,2,opt,name=beginSeq" json:"beginSeq,omitempty"` EndSeq *uint64 `protobuf:"varint,3,opt,name=endSeq" json:"endSeq,omitempty"` Filter *uint32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` MemberSeq *uint64 `protobuf:"varint,5,opt,name=memberSeq" json:"memberSeq,omitempty"` PublicGroup *bool `protobuf:"varint,6,opt,name=publicGroup" json:"publicGroup,omitempty"` ShieldFlag *uint32 `protobuf:"varint,7,opt,name=shieldFlag" json:"shieldFlag,omitempty"` SaveTrafficFlag *uint32 `protobuf:"varint,8,opt,name=saveTrafficFlag" json:"saveTrafficFlag,omitempty"` } func (x *GetGroupMsgReq) Reset() { *x = GetGroupMsgReq{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGroupMsgReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGroupMsgReq) ProtoMessage() {} func (x *GetGroupMsgReq) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetGroupMsgReq.ProtoReflect.Descriptor instead. func (*GetGroupMsgReq) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{65} } func (x *GetGroupMsgReq) GetGroupCode() uint64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } func (x *GetGroupMsgReq) GetBeginSeq() uint64 { if x != nil && x.BeginSeq != nil { return *x.BeginSeq } return 0 } func (x *GetGroupMsgReq) GetEndSeq() uint64 { if x != nil && x.EndSeq != nil { return *x.EndSeq } return 0 } func (x *GetGroupMsgReq) GetFilter() uint32 { if x != nil && x.Filter != nil { return *x.Filter } return 0 } func (x *GetGroupMsgReq) GetMemberSeq() uint64 { if x != nil && x.MemberSeq != nil { return *x.MemberSeq } return 0 } func (x *GetGroupMsgReq) GetPublicGroup() bool { if x != nil && x.PublicGroup != nil { return *x.PublicGroup } return false } func (x *GetGroupMsgReq) GetShieldFlag() uint32 { if x != nil && x.ShieldFlag != nil { return *x.ShieldFlag } return 0 } func (x *GetGroupMsgReq) GetSaveTrafficFlag() uint32 { if x != nil && x.SaveTrafficFlag != nil { return *x.SaveTrafficFlag } return 0 } type GetGroupMsgResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` Errmsg *string `protobuf:"bytes,2,opt,name=errmsg" json:"errmsg,omitempty"` GroupCode *uint64 `protobuf:"varint,3,opt,name=groupCode" json:"groupCode,omitempty"` ReturnBeginSeq *uint64 `protobuf:"varint,4,opt,name=returnBeginSeq" json:"returnBeginSeq,omitempty"` ReturnEndSeq *uint64 `protobuf:"varint,5,opt,name=returnEndSeq" json:"returnEndSeq,omitempty"` Msg []*Message `protobuf:"bytes,6,rep,name=msg" json:"msg,omitempty"` } func (x *GetGroupMsgResp) Reset() { *x = GetGroupMsgResp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGroupMsgResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGroupMsgResp) ProtoMessage() {} func (x *GetGroupMsgResp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetGroupMsgResp.ProtoReflect.Descriptor instead. func (*GetGroupMsgResp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{66} } func (x *GetGroupMsgResp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *GetGroupMsgResp) GetErrmsg() string { if x != nil && x.Errmsg != nil { return *x.Errmsg } return "" } func (x *GetGroupMsgResp) GetGroupCode() uint64 { if x != nil && x.GroupCode != nil { return *x.GroupCode } return 0 } func (x *GetGroupMsgResp) GetReturnBeginSeq() uint64 { if x != nil && x.ReturnBeginSeq != nil { return *x.ReturnBeginSeq } return 0 } func (x *GetGroupMsgResp) GetReturnEndSeq() uint64 { if x != nil && x.ReturnEndSeq != nil { return *x.ReturnEndSeq } return 0 } func (x *GetGroupMsgResp) GetMsg() []*Message { if x != nil { return x.Msg } return nil } type PbGetOneDayRoamMsgReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PeerUin *uint64 `protobuf:"varint,1,opt,name=peerUin" json:"peerUin,omitempty"` LastMsgTime *uint64 `protobuf:"varint,2,opt,name=lastMsgTime" json:"lastMsgTime,omitempty"` Random *uint64 `protobuf:"varint,3,opt,name=random" json:"random,omitempty"` ReadCnt *uint32 `protobuf:"varint,4,opt,name=readCnt" json:"readCnt,omitempty"` } func (x *PbGetOneDayRoamMsgReq) Reset() { *x = PbGetOneDayRoamMsgReq{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbGetOneDayRoamMsgReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbGetOneDayRoamMsgReq) ProtoMessage() {} func (x *PbGetOneDayRoamMsgReq) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbGetOneDayRoamMsgReq.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgReq) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{67} } func (x *PbGetOneDayRoamMsgReq) GetPeerUin() uint64 { if x != nil && x.PeerUin != nil { return *x.PeerUin } return 0 } func (x *PbGetOneDayRoamMsgReq) GetLastMsgTime() uint64 { if x != nil && x.LastMsgTime != nil { return *x.LastMsgTime } return 0 } func (x *PbGetOneDayRoamMsgReq) GetRandom() uint64 { if x != nil && x.Random != nil { return *x.Random } return 0 } func (x *PbGetOneDayRoamMsgReq) GetReadCnt() uint32 { if x != nil && x.ReadCnt != nil { return *x.ReadCnt } return 0 } type PbGetOneDayRoamMsgResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrMsg *string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` PeerUin *uint64 `protobuf:"varint,3,opt,name=peerUin" json:"peerUin,omitempty"` LastMsgTime *uint64 `protobuf:"varint,4,opt,name=lastMsgTime" json:"lastMsgTime,omitempty"` Random *uint64 `protobuf:"varint,5,opt,name=random" json:"random,omitempty"` Msg []*Message `protobuf:"bytes,6,rep,name=msg" json:"msg,omitempty"` IsComplete *uint32 `protobuf:"varint,7,opt,name=isComplete" json:"isComplete,omitempty"` } func (x *PbGetOneDayRoamMsgResp) Reset() { *x = PbGetOneDayRoamMsgResp{} if protoimpl.UnsafeEnabled { mi := &file_msg_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbGetOneDayRoamMsgResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbGetOneDayRoamMsgResp) ProtoMessage() {} func (x *PbGetOneDayRoamMsgResp) ProtoReflect() protoreflect.Message { mi := &file_msg_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbGetOneDayRoamMsgResp.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgResp) Descriptor() ([]byte, []int) { return file_msg_proto_rawDescGZIP(), []int{68} } func (x *PbGetOneDayRoamMsgResp) GetResult() uint32 { if x != nil && x.Result != nil { return *x.Result } return 0 } func (x *PbGetOneDayRoamMsgResp) GetErrMsg() string { if x != nil && x.ErrMsg != nil { return *x.ErrMsg } return "" } func (x *PbGetOneDayRoamMsgResp) GetPeerUin() uint64 { if x != nil && x.PeerUin != nil { return *x.PeerUin } return 0 } func (x *PbGetOneDayRoamMsgResp) GetLastMsgTime() uint64 { if x != nil && x.LastMsgTime != nil { return *x.LastMsgTime } return 0 } func (x *PbGetOneDayRoamMsgResp) GetRandom() uint64 { if x != nil && x.Random != nil { return *x.Random } return 0 } func (x *PbGetOneDayRoamMsgResp) GetMsg() []*Message { if x != nil { return x.Msg } return nil } func (x *PbGetOneDayRoamMsgResp) GetIsComplete() uint32 { if x != nil && x.IsComplete != nil { return *x.IsComplete } return 0 } var File_msg_proto protoreflect.FileDescriptor var file_msg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2e, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x52, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0xf0, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x22, 0x45, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3a, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x22, 0x85, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0a, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x22, 0x5e, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x03, 0x63, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x43, 0x32, 0x43, 0x52, 0x03, 0x63, 0x32, 0x63, 0x12, 0x16, 0x0a, 0x03, 0x67, 0x72, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x47, 0x72, 0x70, 0x52, 0x03, 0x67, 0x72, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x22, 0x1b, 0x0a, 0x03, 0x43, 0x32, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x03, 0x47, 0x72, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xf6, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x82, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x25, 0x0a, 0x08, 0x72, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x72, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x03, 0x70, 0x74, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x50, 0x74, 0x74, 0x52, 0x03, 0x70, 0x74, 0x74, 0x22, 0xee, 0x05, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x31, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x08, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x22, 0x6a, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xf3, 0x04, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x78, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x04, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x05, 0x0a, 0x03, 0x50, 0x74, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x65, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xb9, 0x04, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xc9, 0x06, 0x0a, 0x09, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0x3e, 0x0a, 0x0c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x22, 0x99, 0x07, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x5f, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x5f, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x5f, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x77, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xe0, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x22, 0x8e, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x54, 0x0a, 0x0e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x0d, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x61, 0x0a, 0x12, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x12, 0x33, 0x0a, 0x0f, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x72, 0x6f, 0x6f, 0x70, 0x50, 0x69, 0x63, 0x12, 0x33, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x32, 0x63, 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22, 0x6c, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0xa3, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x30, 0x78, 0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3e, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x76, 0x41, 0x74, 0x74, 0x72, 0x12, 0x32, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x74, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x16, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x2a, 0x2e, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x6d, 0x73, 0x67, } var ( file_msg_proto_rawDescOnce sync.Once file_msg_proto_rawDescData = file_msg_proto_rawDesc ) func file_msg_proto_rawDescGZIP() []byte { file_msg_proto_rawDescOnce.Do(func() { file_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_msg_proto_rawDescData) }) return file_msg_proto_rawDescData } var file_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 69) var file_msg_proto_goTypes = []interface{}{ (SyncFlag)(0), // 0: SyncFlag (*GetMessageRequest)(nil), // 1: GetMessageRequest (*SendMessageRequest)(nil), // 2: SendMessageRequest (*SendMessageResponse)(nil), // 3: SendMessageResponse (*MsgWithDrawReq)(nil), // 4: MsgWithDrawReq (*C2CMsgWithDrawReq)(nil), // 5: C2CMsgWithDrawReq (*GroupMsgWithDrawReq)(nil), // 6: GroupMsgWithDrawReq (*MsgWithDrawResp)(nil), // 7: MsgWithDrawResp (*C2CMsgWithDrawResp)(nil), // 8: C2CMsgWithDrawResp (*GroupMsgWithDrawResp)(nil), // 9: GroupMsgWithDrawResp (*GroupMsgInfo)(nil), // 10: GroupMsgInfo (*C2CMsgInfo)(nil), // 11: C2CMsgInfo (*RoutingHead)(nil), // 12: RoutingHead (*C2C)(nil), // 13: C2C (*Grp)(nil), // 14: Grp (*GrpTmp)(nil), // 15: GrpTmp (*MsgCtrl)(nil), // 16: MsgCtrl (*GetMessageResponse)(nil), // 17: GetMessageResponse (*PushMessagePacket)(nil), // 18: PushMessagePacket (*UinPairMessage)(nil), // 19: UinPairMessage (*Message)(nil), // 20: Message (*MessageBody)(nil), // 21: MessageBody (*RichText)(nil), // 22: RichText (*Elem)(nil), // 23: Elem (*CommonElem)(nil), // 24: CommonElem (*QQWalletMsg)(nil), // 25: QQWalletMsg (*QQWalletAioBody)(nil), // 26: QQWalletAioBody (*QQWalletAioElem)(nil), // 27: QQWalletAioElem (*RichMsg)(nil), // 28: RichMsg (*CustomElem)(nil), // 29: CustomElem (*Text)(nil), // 30: Text (*Attr)(nil), // 31: Attr (*Ptt)(nil), // 32: Ptt (*OnlineImage)(nil), // 33: OnlineImage (*NotOnlineImage)(nil), // 34: NotOnlineImage (*NotOnlineFile)(nil), // 35: NotOnlineFile (*TransElem)(nil), // 36: TransElem (*ExtraInfo)(nil), // 37: ExtraInfo (*GroupFile)(nil), // 38: GroupFile (*AnonymousGroupMessage)(nil), // 39: AnonymousGroupMessage (*VideoFile)(nil), // 40: VideoFile (*SourceMsg)(nil), // 41: SourceMsg (*Face)(nil), // 42: Face (*LightAppElem)(nil), // 43: LightAppElem (*CustomFace)(nil), // 44: CustomFace (*ContentHead)(nil), // 45: ContentHead (*MessageHead)(nil), // 46: MessageHead (*GroupInfo)(nil), // 47: GroupInfo (*DiscussInfo)(nil), // 48: DiscussInfo (*MutilTransHead)(nil), // 49: MutilTransHead (*C2CTempMessageHead)(nil), // 50: C2CTempMessageHead (*InstCtrl)(nil), // 51: InstCtrl (*InstInfo)(nil), // 52: InstInfo (*ExtGroupKeyInfo)(nil), // 53: ExtGroupKeyInfo (*SyncCookie)(nil), // 54: SyncCookie (*TransMsgInfo)(nil), // 55: TransMsgInfo (*GeneralFlags)(nil), // 56: GeneralFlags (*PbMultiMsgItem)(nil), // 57: PbMultiMsgItem (*PbMultiMsgNew)(nil), // 58: PbMultiMsgNew (*PbMultiMsgTransmit)(nil), // 59: PbMultiMsgTransmit (*MsgElemInfoServtype3)(nil), // 60: MsgElemInfo_servtype3 (*MsgElemInfoServtype33)(nil), // 61: MsgElemInfo_servtype33 (*SubMsgType0X4Body)(nil), // 62: SubMsgType0x4Body (*ResvAttr)(nil), // 63: ResvAttr (*AnimationImageShow)(nil), // 64: AnimationImageShow (*UinTypeUserDef)(nil), // 65: UinTypeUserDef (*GetGroupMsgReq)(nil), // 66: GetGroupMsgReq (*GetGroupMsgResp)(nil), // 67: GetGroupMsgResp (*PbGetOneDayRoamMsgReq)(nil), // 68: PbGetOneDayRoamMsgReq (*PbGetOneDayRoamMsgResp)(nil), // 69: PbGetOneDayRoamMsgResp } var file_msg_proto_depIdxs = []int32{ 0, // 0: GetMessageRequest.syncFlag:type_name -> SyncFlag 12, // 1: SendMessageRequest.routingHead:type_name -> RoutingHead 45, // 2: SendMessageRequest.contentHead:type_name -> ContentHead 21, // 3: SendMessageRequest.msgBody:type_name -> MessageBody 16, // 4: SendMessageRequest.msgCtrl:type_name -> MsgCtrl 5, // 5: MsgWithDrawReq.c2cWithDraw:type_name -> C2CMsgWithDrawReq 6, // 6: MsgWithDrawReq.groupWithDraw:type_name -> GroupMsgWithDrawReq 11, // 7: C2CMsgWithDrawReq.msgInfo:type_name -> C2CMsgInfo 10, // 8: GroupMsgWithDrawReq.msgList:type_name -> GroupMsgInfo 8, // 9: MsgWithDrawResp.c2cWithDraw:type_name -> C2CMsgWithDrawResp 9, // 10: MsgWithDrawResp.groupWithDraw:type_name -> GroupMsgWithDrawResp 12, // 11: C2CMsgInfo.routingHead:type_name -> RoutingHead 13, // 12: RoutingHead.c2c:type_name -> C2C 14, // 13: RoutingHead.grp:type_name -> Grp 15, // 14: RoutingHead.grpTmp:type_name -> GrpTmp 0, // 15: GetMessageResponse.syncFlag:type_name -> SyncFlag 19, // 16: GetMessageResponse.uinPairMsgs:type_name -> UinPairMessage 20, // 17: PushMessagePacket.message:type_name -> Message 20, // 18: UinPairMessage.messages:type_name -> Message 46, // 19: Message.head:type_name -> MessageHead 45, // 20: Message.content:type_name -> ContentHead 21, // 21: Message.body:type_name -> MessageBody 22, // 22: MessageBody.richText:type_name -> RichText 31, // 23: RichText.attr:type_name -> Attr 23, // 24: RichText.elems:type_name -> Elem 35, // 25: RichText.notOnlineFile:type_name -> NotOnlineFile 32, // 26: RichText.ptt:type_name -> Ptt 30, // 27: Elem.text:type_name -> Text 42, // 28: Elem.face:type_name -> Face 33, // 29: Elem.onlineImage:type_name -> OnlineImage 34, // 30: Elem.notOnlineImage:type_name -> NotOnlineImage 36, // 31: Elem.transElemInfo:type_name -> TransElem 44, // 32: Elem.customFace:type_name -> CustomFace 28, // 33: Elem.richMsg:type_name -> RichMsg 38, // 34: Elem.groupFile:type_name -> GroupFile 37, // 35: Elem.extraInfo:type_name -> ExtraInfo 40, // 36: Elem.videoFile:type_name -> VideoFile 39, // 37: Elem.anonGroupMsg:type_name -> AnonymousGroupMessage 25, // 38: Elem.QQWalletMsg:type_name -> QQWalletMsg 29, // 39: Elem.customElem:type_name -> CustomElem 56, // 40: Elem.generalFlags:type_name -> GeneralFlags 41, // 41: Elem.srcMsg:type_name -> SourceMsg 43, // 42: Elem.lightApp:type_name -> LightAppElem 24, // 43: Elem.commonElem:type_name -> CommonElem 26, // 44: QQWalletMsg.aioBody:type_name -> QQWalletAioBody 27, // 45: QQWalletAioBody.sender:type_name -> QQWalletAioElem 27, // 46: QQWalletAioBody.receiver:type_name -> QQWalletAioElem 23, // 47: SourceMsg.elems:type_name -> Elem 50, // 48: MessageHead.c2cTmpMsgHead:type_name -> C2CTempMessageHead 47, // 49: MessageHead.groupInfo:type_name -> GroupInfo 48, // 50: MessageHead.discussInfo:type_name -> DiscussInfo 49, // 51: MessageHead.mutiltransHead:type_name -> MutilTransHead 51, // 52: MessageHead.msgInstCtrl:type_name -> InstCtrl 53, // 53: MessageHead.extGroupKeyInfo:type_name -> ExtGroupKeyInfo 52, // 54: InstCtrl.msgSendToInst:type_name -> InstInfo 52, // 55: InstCtrl.msgExcludeInst:type_name -> InstInfo 52, // 56: InstCtrl.msgFromInst:type_name -> InstInfo 53, // 57: TransMsgInfo.extGroupKeyInfo:type_name -> ExtGroupKeyInfo 58, // 58: PbMultiMsgItem.buffer:type_name -> PbMultiMsgNew 20, // 59: PbMultiMsgNew.msg:type_name -> Message 20, // 60: PbMultiMsgTransmit.msg:type_name -> Message 57, // 61: PbMultiMsgTransmit.pbItemList:type_name -> PbMultiMsgItem 44, // 62: MsgElemInfo_servtype3.flash_troop_pic:type_name -> CustomFace 34, // 63: MsgElemInfo_servtype3.flash_c2c_pic:type_name -> NotOnlineImage 35, // 64: SubMsgType0x4Body.notOnlineFile:type_name -> NotOnlineFile 64, // 65: ResvAttr.image_show:type_name -> AnimationImageShow 20, // 66: GetGroupMsgResp.msg:type_name -> Message 20, // 67: PbGetOneDayRoamMsgResp.msg:type_name -> Message 68, // [68:68] is the sub-list for method output_type 68, // [68:68] is the sub-list for method input_type 68, // [68:68] is the sub-list for extension type_name 68, // [68:68] is the sub-list for extension extendee 0, // [0:68] is the sub-list for field type_name } func init() { file_msg_proto_init() } func file_msg_proto_init() { if File_msg_proto != nil { return } if !protoimpl.UnsafeEnabled { file_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoutingHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2C); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Grp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrpTmp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgCtrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushMessagePacket); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinPairMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageBody); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichText); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Elem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonElem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioBody); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioElem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomElem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Text); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attr); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ptt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineImage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineImage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransElem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtraInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnonymousGroupMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VideoFile); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceMsg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Face); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LightAppElem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomFace); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContentHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiscussInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MutilTransHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CTempMessageHead); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstCtrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtGroupKeyInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCookie); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransMsgInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneralFlags); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgNew); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgTransmit); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype33); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubMsgType0X4Body); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResvAttr); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnimationImageShow); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinTypeUserDef); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_msg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgResp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_msg_proto_rawDesc, NumEnums: 1, NumMessages: 69, NumExtensions: 0, NumServices: 0, }, GoTypes: file_msg_proto_goTypes, DependencyIndexes: file_msg_proto_depIdxs, EnumInfos: file_msg_proto_enumTypes, MessageInfos: file_msg_proto_msgTypes, }.Build() File_msg_proto = out.File file_msg_proto_rawDesc = nil file_msg_proto_goTypes = nil file_msg_proto_depIdxs = nil }