From 90392f27c59c3e02a1f1dfd36edbd851c52b56d3 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Sat, 30 Oct 2021 17:11:39 +0800 Subject: [PATCH] feat: GetGroupImageDownloadUrl impl --- client/entities.go | 2 +- client/image.go | 109 +- client/pb/cmd0x388/cmd0x388.pb.go | 3044 +++++++++++++++++++++++++++++ client/pb/cmd0x388/cmd0x388.proto | 255 +++ client/pb/data.pb.go | 2234 ++++----------------- client/pb/data.proto | 135 -- client/ptt.go | 66 +- go.sum | 2 + message/message.go | 2 + 9 files changed, 3790 insertions(+), 2059 deletions(-) create mode 100644 client/pb/cmd0x388/cmd0x388.pb.go create mode 100644 client/pb/cmd0x388/cmd0x388.proto diff --git a/client/entities.go b/client/entities.go index d762e138..cf38201f 100644 --- a/client/entities.go +++ b/client/entities.go @@ -269,7 +269,7 @@ type ( ResourceId string UploadKey []byte UploadIp []string - UploadPort []int32 + UploadPort []uint32 FileKey []byte FileId int64 } diff --git a/client/image.go b/client/image.go index 6a7373fe..fa310f60 100644 --- a/client/image.go +++ b/client/image.go @@ -4,21 +4,21 @@ import ( "bytes" "encoding/hex" "fmt" + "github.com/Mrs4s/MiraiGo/client/pb/highway" + "github.com/Mrs4s/MiraiGo/client/pb/oidb" "image" _ "image/gif" "io" "math/rand" "os" "strings" - - "github.com/Mrs4s/MiraiGo/client/pb/highway" - "github.com/Mrs4s/MiraiGo/client/pb/oidb" + "time" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "github.com/Mrs4s/MiraiGo/binary" - "github.com/Mrs4s/MiraiGo/client/pb" + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x388" "github.com/Mrs4s/MiraiGo/message" "github.com/Mrs4s/MiraiGo/protocol/packets" "github.com/Mrs4s/MiraiGo/utils" @@ -26,6 +26,7 @@ import ( func init() { decoders["ImgStore.GroupPicUp"] = decodeGroupImageStoreResponse + decoders["ImgStore.GroupPicDown"] = decodeGroupImageDownloadResponse decoders["OidbSvc.0xe07_0"] = decodeImageOcrResponse } @@ -124,6 +125,14 @@ func (c *QQClient) UploadPrivateImage(target int64, img io.ReadSeeker) (*message return c.uploadPrivateImage(target, img, 0) } +func (c *QQClient) GetGroupImageDownloadUrl(fileId, groupCode int64, fileMd5 []byte) (string, error) { + i, err := c.sendAndWait(c.buildGroupImageDownloadPacket(fileId, groupCode, fileMd5)) + if err != nil { + return "", err + } + return i.(string), nil +} + func (c *QQClient) uploadPrivateImage(target int64, img io.ReadSeeker, count int) (*message.FriendImageElement, error) { _, _ = img.Seek(0, io.SeekStart) count++ @@ -208,22 +217,22 @@ func (c *QQClient) QueryFriendImage(target int64, hash []byte, size int32) (*mes func (c *QQClient) buildGroupImageStorePacket(groupCode int64, md5 []byte, size int32) (uint16, []byte) { seq := c.nextSeq() name := utils.RandomString(16) + ".gif" - req := &pb.D388ReqBody{ - NetType: 3, - Subcmd: 1, - MsgTryUpImgReq: []*pb.TryUpImgReq{ + req := &cmd0x388.D388ReqBody{ + NetType: proto.Uint32(3), + Subcmd: proto.Uint32(1), + TryupImgReq: []*cmd0x388.TryUpImgReq{ { - GroupCode: groupCode, - SrcUin: c.Uin, + GroupCode: proto.Uint64(uint64(groupCode)), + SrcUin: proto.Uint64(uint64(c.Uin)), FileMd5: md5, - FileSize: int64(size), - FileName: name, - SrcTerm: 5, - PlatformType: 9, - BuType: 1, - PicType: 1000, - BuildVer: "8.2.7.4410", - AppPicType: 1006, + FileSize: proto.Uint64(uint64(size)), + FileName: utils.S2B(name), + SrcTerm: proto.Uint32(5), + PlatformType: proto.Uint32(9), + BuType: proto.Uint32(1), + PicType: proto.Uint32(1000), + BuildVer: utils.S2B("8.2.7.4410"), + AppPicType: proto.Uint32(1006), FileIndex: EmptyBytes, TransferUrl: EmptyBytes, }, @@ -235,6 +244,32 @@ func (c *QQClient) buildGroupImageStorePacket(groupCode int64, md5 []byte, size return seq, packet } +func (c *QQClient) buildGroupImageDownloadPacket(fileId, groupCode int64, fileMd5 []byte) (uint16, []byte) { + seq := c.nextSeq() + req := &cmd0x388.D388ReqBody{ + NetType: proto.Uint32(3), + Subcmd: proto.Uint32(2), + GetimgUrlReq: []*cmd0x388.GetImgUrlReq{ + { + FileId: proto.Uint64(0), // index + DstUin: proto.Uint64(uint64(c.Uin)), + GroupCode: proto.Uint64(uint64(groupCode)), + FileMd5: fileMd5, + PicUpTimestamp: proto.Uint32(uint32(time.Now().Unix())), + Fileid: proto.Uint64(uint64(fileId)), + UrlFlag: proto.Uint32(8), + UrlType: proto.Uint32(3), + ReqPlatformType: proto.Uint32(9), + ReqTerm: proto.Uint32(5), + InnerIp: proto.Uint32(0), + }, + }, + } + payload, _ := proto.Marshal(req) + packet := packets.BuildUniPacket(c.Uin, seq, "ImgStore.GroupPicDown", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload) + return seq, packet +} + func (c *QQClient) uploadOcrImage(img io.Reader, length int64, sum []byte) (string, error) { r := make([]byte, 16) rand.Read(r) @@ -277,32 +312,46 @@ func (c *QQClient) buildImageOcrRequestPacket(url, md5 string, size, weight, hei // ImgStore.GroupPicUp func decodeGroupImageStoreResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { - pkt := pb.D388RespBody{} + pkt := cmd0x388.D388RspBody{} err := proto.Unmarshal(payload, &pkt) if err != nil { return nil, errors.Wrap(err, "failed to unmarshal protobuf message") } - rsp := pkt.MsgTryUpImgRsp[0] - if rsp.Result != 0 { + rsp := pkt.TryupImgRsp[0] + if rsp.GetResult() != 0 { return &imageUploadResponse{ - ResultCode: rsp.Result, - Message: rsp.FailMsg, + ResultCode: int32(rsp.GetResult()), + Message: utils.B2S(rsp.GetFailMsg()), }, nil } - if rsp.BoolFileExit { - if rsp.MsgImgInfo != nil { - return &imageUploadResponse{IsExists: true, FileId: rsp.Fid, Width: rsp.MsgImgInfo.FileWidth, Height: rsp.MsgImgInfo.FileHeight}, nil + if rsp.GetFileExit() { + if rsp.GetImgInfo() != nil { + return &imageUploadResponse{IsExists: true, FileId: int64(rsp.GetFileid()), Width: int32(rsp.ImgInfo.GetFileWidth()), Height: int32(rsp.ImgInfo.GetFileHeight())}, nil } - return &imageUploadResponse{IsExists: true, FileId: rsp.Fid}, nil + return &imageUploadResponse{IsExists: true, FileId: int64(rsp.GetFileid())}, nil } return &imageUploadResponse{ - FileId: rsp.Fid, + FileId: int64(rsp.GetFileid()), UploadKey: rsp.UpUkey, - UploadIp: rsp.Uint32UpIp, - UploadPort: rsp.Uint32UpPort, + UploadIp: rsp.GetUpIp(), + UploadPort: rsp.GetUpPort(), }, nil } +func decodeGroupImageDownloadResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { + pkt := cmd0x388.D388RspBody{} + if err := proto.Unmarshal(payload, &pkt); err != nil { + return nil, errors.Wrap(err, "unmarshal protobuf message error") + } + if len(pkt.GetimgUrlRsp) == 0 { + return nil, errors.New("response not found") + } + if len(pkt.GetimgUrlRsp[0].FailMsg) != 0 { + return nil, errors.New(utils.B2S(pkt.GetimgUrlRsp[0].FailMsg)) + } + return "https://" + utils.B2S(pkt.GetimgUrlRsp[0].DownDomain) + utils.B2S(pkt.GetimgUrlRsp[0].BigDownPara), nil +} + // OidbSvc.0xe07_0 func decodeImageOcrResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { pkg := oidb.OIDBSSOPkg{} diff --git a/client/pb/cmd0x388/cmd0x388.pb.go b/client/pb/cmd0x388/cmd0x388.pb.go new file mode 100644 index 00000000..6a65acff --- /dev/null +++ b/client/pb/cmd0x388/cmd0x388.pb.go @@ -0,0 +1,3044 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: cmd0x388.proto + +package cmd0x388 + +import ( + 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) +) + +type DelImgReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SrcUin *uint64 `protobuf:"varint,1,opt,name=srcUin" json:"srcUin,omitempty"` + DstUin *uint64 `protobuf:"varint,2,opt,name=dstUin" json:"dstUin,omitempty"` + ReqTerm *uint32 `protobuf:"varint,3,opt,name=reqTerm" json:"reqTerm,omitempty"` + ReqPlatformType *uint32 `protobuf:"varint,4,opt,name=reqPlatformType" json:"reqPlatformType,omitempty"` + BuType *uint32 `protobuf:"varint,5,opt,name=buType" json:"buType,omitempty"` + BuildVer []byte `protobuf:"bytes,6,opt,name=buildVer" json:"buildVer,omitempty"` + FileResid []byte `protobuf:"bytes,7,opt,name=fileResid" json:"fileResid,omitempty"` + PicWidth *uint32 `protobuf:"varint,8,opt,name=picWidth" json:"picWidth,omitempty"` + PicHeight *uint32 `protobuf:"varint,9,opt,name=picHeight" json:"picHeight,omitempty"` +} + +func (x *DelImgReq) Reset() { + *x = DelImgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelImgReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelImgReq) ProtoMessage() {} + +func (x *DelImgReq) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 DelImgReq.ProtoReflect.Descriptor instead. +func (*DelImgReq) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{0} +} + +func (x *DelImgReq) GetSrcUin() uint64 { + if x != nil && x.SrcUin != nil { + return *x.SrcUin + } + return 0 +} + +func (x *DelImgReq) GetDstUin() uint64 { + if x != nil && x.DstUin != nil { + return *x.DstUin + } + return 0 +} + +func (x *DelImgReq) GetReqTerm() uint32 { + if x != nil && x.ReqTerm != nil { + return *x.ReqTerm + } + return 0 +} + +func (x *DelImgReq) GetReqPlatformType() uint32 { + if x != nil && x.ReqPlatformType != nil { + return *x.ReqPlatformType + } + return 0 +} + +func (x *DelImgReq) GetBuType() uint32 { + if x != nil && x.BuType != nil { + return *x.BuType + } + return 0 +} + +func (x *DelImgReq) GetBuildVer() []byte { + if x != nil { + return x.BuildVer + } + return nil +} + +func (x *DelImgReq) GetFileResid() []byte { + if x != nil { + return x.FileResid + } + return nil +} + +func (x *DelImgReq) GetPicWidth() uint32 { + if x != nil && x.PicWidth != nil { + return *x.PicWidth + } + return 0 +} + +func (x *DelImgReq) GetPicHeight() uint32 { + if x != nil && x.PicHeight != nil { + return *x.PicHeight + } + return 0 +} + +type DelImgRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + FailMsg []byte `protobuf:"bytes,2,opt,name=failMsg" json:"failMsg,omitempty"` + FileResid []byte `protobuf:"bytes,3,opt,name=fileResid" json:"fileResid,omitempty"` +} + +func (x *DelImgRsp) Reset() { + *x = DelImgRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelImgRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelImgRsp) ProtoMessage() {} + +func (x *DelImgRsp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 DelImgRsp.ProtoReflect.Descriptor instead. +func (*DelImgRsp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{1} +} + +func (x *DelImgRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *DelImgRsp) GetFailMsg() []byte { + if x != nil { + return x.FailMsg + } + return nil +} + +func (x *DelImgRsp) GetFileResid() []byte { + if x != nil { + return x.FileResid + } + return nil +} + +type ExpRoamExtendInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Resid []byte `protobuf:"bytes,1,opt,name=resid" json:"resid,omitempty"` +} + +func (x *ExpRoamExtendInfo) Reset() { + *x = ExpRoamExtendInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExpRoamExtendInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExpRoamExtendInfo) ProtoMessage() {} + +func (x *ExpRoamExtendInfo) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 ExpRoamExtendInfo.ProtoReflect.Descriptor instead. +func (*ExpRoamExtendInfo) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{2} +} + +func (x *ExpRoamExtendInfo) GetResid() []byte { + if x != nil { + return x.Resid + } + return nil +} + +type ExpRoamPicInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShopFlag *uint32 `protobuf:"varint,1,opt,name=shopFlag" json:"shopFlag,omitempty"` + PkgId *uint32 `protobuf:"varint,2,opt,name=pkgId" json:"pkgId,omitempty"` + PicId []byte `protobuf:"bytes,3,opt,name=picId" json:"picId,omitempty"` +} + +func (x *ExpRoamPicInfo) Reset() { + *x = ExpRoamPicInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExpRoamPicInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExpRoamPicInfo) ProtoMessage() {} + +func (x *ExpRoamPicInfo) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 ExpRoamPicInfo.ProtoReflect.Descriptor instead. +func (*ExpRoamPicInfo) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{3} +} + +func (x *ExpRoamPicInfo) GetShopFlag() uint32 { + if x != nil && x.ShopFlag != nil { + return *x.ShopFlag + } + return 0 +} + +func (x *ExpRoamPicInfo) GetPkgId() uint32 { + if x != nil && x.PkgId != nil { + return *x.PkgId + } + return 0 +} + +func (x *ExpRoamPicInfo) GetPicId() []byte { + if x != nil { + return x.PicId + } + return nil +} + +type ExtensionCommPicTryUp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extinfo [][]byte `protobuf:"bytes,1,rep,name=extinfo" json:"extinfo,omitempty"` +} + +func (x *ExtensionCommPicTryUp) Reset() { + *x = ExtensionCommPicTryUp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionCommPicTryUp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionCommPicTryUp) ProtoMessage() {} + +func (x *ExtensionCommPicTryUp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 ExtensionCommPicTryUp.ProtoReflect.Descriptor instead. +func (*ExtensionCommPicTryUp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{4} +} + +func (x *ExtensionCommPicTryUp) GetExtinfo() [][]byte { + if x != nil { + return x.Extinfo + } + return nil +} + +type ExtensionExpRoamTryUp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExproamPicInfo []*ExpRoamPicInfo `protobuf:"bytes,1,rep,name=exproamPicInfo" json:"exproamPicInfo,omitempty"` +} + +func (x *ExtensionExpRoamTryUp) Reset() { + *x = ExtensionExpRoamTryUp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionExpRoamTryUp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionExpRoamTryUp) ProtoMessage() {} + +func (x *ExtensionExpRoamTryUp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 ExtensionExpRoamTryUp.ProtoReflect.Descriptor instead. +func (*ExtensionExpRoamTryUp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{5} +} + +func (x *ExtensionExpRoamTryUp) GetExproamPicInfo() []*ExpRoamPicInfo { + if x != nil { + return x.ExproamPicInfo + } + return nil +} + +type GetImgUrlReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` + DstUin *uint64 `protobuf:"varint,2,opt,name=dstUin" json:"dstUin,omitempty"` + Fileid *uint64 `protobuf:"varint,3,opt,name=fileid" json:"fileid,omitempty"` + FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` + UrlFlag *uint32 `protobuf:"varint,5,opt,name=urlFlag" json:"urlFlag,omitempty"` + UrlType *uint32 `protobuf:"varint,6,opt,name=urlType" json:"urlType,omitempty"` + ReqTerm *uint32 `protobuf:"varint,7,opt,name=reqTerm" json:"reqTerm,omitempty"` + ReqPlatformType *uint32 `protobuf:"varint,8,opt,name=reqPlatformType" json:"reqPlatformType,omitempty"` + InnerIp *uint32 `protobuf:"varint,9,opt,name=innerIp" json:"innerIp,omitempty"` + BuType *uint32 `protobuf:"varint,10,opt,name=buType" json:"buType,omitempty"` + BuildVer []byte `protobuf:"bytes,11,opt,name=buildVer" json:"buildVer,omitempty"` + FileId *uint64 `protobuf:"varint,12,opt,name=fileId" json:"fileId,omitempty"` + FileSize *uint64 `protobuf:"varint,13,opt,name=fileSize" json:"fileSize,omitempty"` + OriginalPic *uint32 `protobuf:"varint,14,opt,name=originalPic" json:"originalPic,omitempty"` + RetryReq *uint32 `protobuf:"varint,15,opt,name=retryReq" json:"retryReq,omitempty"` + FileHeight *uint32 `protobuf:"varint,16,opt,name=fileHeight" json:"fileHeight,omitempty"` + FileWidth *uint32 `protobuf:"varint,17,opt,name=fileWidth" json:"fileWidth,omitempty"` + PicType *uint32 `protobuf:"varint,18,opt,name=picType" json:"picType,omitempty"` + PicUpTimestamp *uint32 `protobuf:"varint,19,opt,name=picUpTimestamp" json:"picUpTimestamp,omitempty"` + ReqTransferType *uint32 `protobuf:"varint,20,opt,name=reqTransferType" json:"reqTransferType,omitempty"` + QqmeetGuildId *uint64 `protobuf:"varint,21,opt,name=qqmeetGuildId" json:"qqmeetGuildId,omitempty"` + QqmeetChannelId *uint64 `protobuf:"varint,22,opt,name=qqmeetChannelId" json:"qqmeetChannelId,omitempty"` + DownloadIndex []byte `protobuf:"bytes,23,opt,name=downloadIndex" json:"downloadIndex,omitempty"` +} + +func (x *GetImgUrlReq) Reset() { + *x = GetImgUrlReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImgUrlReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImgUrlReq) ProtoMessage() {} + +func (x *GetImgUrlReq) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 GetImgUrlReq.ProtoReflect.Descriptor instead. +func (*GetImgUrlReq) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{6} +} + +func (x *GetImgUrlReq) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *GetImgUrlReq) GetDstUin() uint64 { + if x != nil && x.DstUin != nil { + return *x.DstUin + } + return 0 +} + +func (x *GetImgUrlReq) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *GetImgUrlReq) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *GetImgUrlReq) GetUrlFlag() uint32 { + if x != nil && x.UrlFlag != nil { + return *x.UrlFlag + } + return 0 +} + +func (x *GetImgUrlReq) GetUrlType() uint32 { + if x != nil && x.UrlType != nil { + return *x.UrlType + } + return 0 +} + +func (x *GetImgUrlReq) GetReqTerm() uint32 { + if x != nil && x.ReqTerm != nil { + return *x.ReqTerm + } + return 0 +} + +func (x *GetImgUrlReq) GetReqPlatformType() uint32 { + if x != nil && x.ReqPlatformType != nil { + return *x.ReqPlatformType + } + return 0 +} + +func (x *GetImgUrlReq) GetInnerIp() uint32 { + if x != nil && x.InnerIp != nil { + return *x.InnerIp + } + return 0 +} + +func (x *GetImgUrlReq) GetBuType() uint32 { + if x != nil && x.BuType != nil { + return *x.BuType + } + return 0 +} + +func (x *GetImgUrlReq) GetBuildVer() []byte { + if x != nil { + return x.BuildVer + } + return nil +} + +func (x *GetImgUrlReq) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *GetImgUrlReq) GetFileSize() uint64 { + if x != nil && x.FileSize != nil { + return *x.FileSize + } + return 0 +} + +func (x *GetImgUrlReq) GetOriginalPic() uint32 { + if x != nil && x.OriginalPic != nil { + return *x.OriginalPic + } + return 0 +} + +func (x *GetImgUrlReq) GetRetryReq() uint32 { + if x != nil && x.RetryReq != nil { + return *x.RetryReq + } + return 0 +} + +func (x *GetImgUrlReq) GetFileHeight() uint32 { + if x != nil && x.FileHeight != nil { + return *x.FileHeight + } + return 0 +} + +func (x *GetImgUrlReq) GetFileWidth() uint32 { + if x != nil && x.FileWidth != nil { + return *x.FileWidth + } + return 0 +} + +func (x *GetImgUrlReq) GetPicType() uint32 { + if x != nil && x.PicType != nil { + return *x.PicType + } + return 0 +} + +func (x *GetImgUrlReq) GetPicUpTimestamp() uint32 { + if x != nil && x.PicUpTimestamp != nil { + return *x.PicUpTimestamp + } + return 0 +} + +func (x *GetImgUrlReq) GetReqTransferType() uint32 { + if x != nil && x.ReqTransferType != nil { + return *x.ReqTransferType + } + return 0 +} + +func (x *GetImgUrlReq) GetQqmeetGuildId() uint64 { + if x != nil && x.QqmeetGuildId != nil { + return *x.QqmeetGuildId + } + return 0 +} + +func (x *GetImgUrlReq) GetQqmeetChannelId() uint64 { + if x != nil && x.QqmeetChannelId != nil { + return *x.QqmeetChannelId + } + return 0 +} + +func (x *GetImgUrlReq) GetDownloadIndex() []byte { + if x != nil { + return x.DownloadIndex + } + return nil +} + +type GetImgUrlRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fileid *uint64 `protobuf:"varint,1,opt,name=fileid" json:"fileid,omitempty"` + FileMd5 []byte `protobuf:"bytes,2,opt,name=fileMd5" json:"fileMd5,omitempty"` + Result *uint32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + FailMsg []byte `protobuf:"bytes,4,opt,name=failMsg" json:"failMsg,omitempty"` + ImgInfo *ImgInfo `protobuf:"bytes,5,opt,name=imgInfo" json:"imgInfo,omitempty"` + ThumbDownUrl [][]byte `protobuf:"bytes,6,rep,name=thumbDownUrl" json:"thumbDownUrl,omitempty"` + OriginalDownUrl [][]byte `protobuf:"bytes,7,rep,name=originalDownUrl" json:"originalDownUrl,omitempty"` + BigDownUrl [][]byte `protobuf:"bytes,8,rep,name=bigDownUrl" json:"bigDownUrl,omitempty"` + DownIp []uint32 `protobuf:"varint,9,rep,name=downIp" json:"downIp,omitempty"` + DownPort []uint32 `protobuf:"varint,10,rep,name=downPort" json:"downPort,omitempty"` + DownDomain []byte `protobuf:"bytes,11,opt,name=downDomain" json:"downDomain,omitempty"` + ThumbDownPara []byte `protobuf:"bytes,12,opt,name=thumbDownPara" json:"thumbDownPara,omitempty"` + OriginalDownPara []byte `protobuf:"bytes,13,opt,name=originalDownPara" json:"originalDownPara,omitempty"` + BigDownPara []byte `protobuf:"bytes,14,opt,name=bigDownPara" json:"bigDownPara,omitempty"` + FileId *uint64 `protobuf:"varint,15,opt,name=fileId" json:"fileId,omitempty"` + AutoDownType *uint32 `protobuf:"varint,16,opt,name=autoDownType" json:"autoDownType,omitempty"` + OrderDownType []uint32 `protobuf:"varint,17,rep,name=orderDownType" json:"orderDownType,omitempty"` + BigThumbDownPara []byte `protobuf:"bytes,19,opt,name=bigThumbDownPara" json:"bigThumbDownPara,omitempty"` + HttpsUrlFlag *uint32 `protobuf:"varint,20,opt,name=httpsUrlFlag" json:"httpsUrlFlag,omitempty"` + DownIp6 []*IPv6Info `protobuf:"bytes,26,rep,name=downIp6" json:"downIp6,omitempty"` + ClientIp6 []byte `protobuf:"bytes,27,opt,name=clientIp6" json:"clientIp6,omitempty"` +} + +func (x *GetImgUrlRsp) Reset() { + *x = GetImgUrlRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImgUrlRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImgUrlRsp) ProtoMessage() {} + +func (x *GetImgUrlRsp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 GetImgUrlRsp.ProtoReflect.Descriptor instead. +func (*GetImgUrlRsp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{7} +} + +func (x *GetImgUrlRsp) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *GetImgUrlRsp) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *GetImgUrlRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *GetImgUrlRsp) GetFailMsg() []byte { + if x != nil { + return x.FailMsg + } + return nil +} + +func (x *GetImgUrlRsp) GetImgInfo() *ImgInfo { + if x != nil { + return x.ImgInfo + } + return nil +} + +func (x *GetImgUrlRsp) GetThumbDownUrl() [][]byte { + if x != nil { + return x.ThumbDownUrl + } + return nil +} + +func (x *GetImgUrlRsp) GetOriginalDownUrl() [][]byte { + if x != nil { + return x.OriginalDownUrl + } + return nil +} + +func (x *GetImgUrlRsp) GetBigDownUrl() [][]byte { + if x != nil { + return x.BigDownUrl + } + return nil +} + +func (x *GetImgUrlRsp) GetDownIp() []uint32 { + if x != nil { + return x.DownIp + } + return nil +} + +func (x *GetImgUrlRsp) GetDownPort() []uint32 { + if x != nil { + return x.DownPort + } + return nil +} + +func (x *GetImgUrlRsp) GetDownDomain() []byte { + if x != nil { + return x.DownDomain + } + return nil +} + +func (x *GetImgUrlRsp) GetThumbDownPara() []byte { + if x != nil { + return x.ThumbDownPara + } + return nil +} + +func (x *GetImgUrlRsp) GetOriginalDownPara() []byte { + if x != nil { + return x.OriginalDownPara + } + return nil +} + +func (x *GetImgUrlRsp) GetBigDownPara() []byte { + if x != nil { + return x.BigDownPara + } + return nil +} + +func (x *GetImgUrlRsp) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *GetImgUrlRsp) GetAutoDownType() uint32 { + if x != nil && x.AutoDownType != nil { + return *x.AutoDownType + } + return 0 +} + +func (x *GetImgUrlRsp) GetOrderDownType() []uint32 { + if x != nil { + return x.OrderDownType + } + return nil +} + +func (x *GetImgUrlRsp) GetBigThumbDownPara() []byte { + if x != nil { + return x.BigThumbDownPara + } + return nil +} + +func (x *GetImgUrlRsp) GetHttpsUrlFlag() uint32 { + if x != nil && x.HttpsUrlFlag != nil { + return *x.HttpsUrlFlag + } + return 0 +} + +func (x *GetImgUrlRsp) GetDownIp6() []*IPv6Info { + if x != nil { + return x.DownIp6 + } + return nil +} + +func (x *GetImgUrlRsp) GetClientIp6() []byte { + if x != nil { + return x.ClientIp6 + } + return nil +} + +type GetPttUrlReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` + DstUin *uint64 `protobuf:"varint,2,opt,name=dstUin" json:"dstUin,omitempty"` + Fileid *uint64 `protobuf:"varint,3,opt,name=fileid" json:"fileid,omitempty"` + FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` + ReqTerm *uint32 `protobuf:"varint,5,opt,name=reqTerm" json:"reqTerm,omitempty"` + ReqPlatformType *uint32 `protobuf:"varint,6,opt,name=reqPlatformType" json:"reqPlatformType,omitempty"` + InnerIp *uint32 `protobuf:"varint,7,opt,name=innerIp" json:"innerIp,omitempty"` + BuType *uint32 `protobuf:"varint,8,opt,name=buType" json:"buType,omitempty"` + BuildVer []byte `protobuf:"bytes,9,opt,name=buildVer" json:"buildVer,omitempty"` + FileId *uint64 `protobuf:"varint,10,opt,name=fileId" json:"fileId,omitempty"` + FileKey []byte `protobuf:"bytes,11,opt,name=fileKey" json:"fileKey,omitempty"` + Codec *uint32 `protobuf:"varint,12,opt,name=codec" json:"codec,omitempty"` + BuId *uint32 `protobuf:"varint,13,opt,name=buId" json:"buId,omitempty"` + ReqTransferType *uint32 `protobuf:"varint,14,opt,name=reqTransferType" json:"reqTransferType,omitempty"` + IsAuto *uint32 `protobuf:"varint,15,opt,name=isAuto" json:"isAuto,omitempty"` +} + +func (x *GetPttUrlReq) Reset() { + *x = GetPttUrlReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPttUrlReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPttUrlReq) ProtoMessage() {} + +func (x *GetPttUrlReq) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 GetPttUrlReq.ProtoReflect.Descriptor instead. +func (*GetPttUrlReq) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{8} +} + +func (x *GetPttUrlReq) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *GetPttUrlReq) GetDstUin() uint64 { + if x != nil && x.DstUin != nil { + return *x.DstUin + } + return 0 +} + +func (x *GetPttUrlReq) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *GetPttUrlReq) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *GetPttUrlReq) GetReqTerm() uint32 { + if x != nil && x.ReqTerm != nil { + return *x.ReqTerm + } + return 0 +} + +func (x *GetPttUrlReq) GetReqPlatformType() uint32 { + if x != nil && x.ReqPlatformType != nil { + return *x.ReqPlatformType + } + return 0 +} + +func (x *GetPttUrlReq) GetInnerIp() uint32 { + if x != nil && x.InnerIp != nil { + return *x.InnerIp + } + return 0 +} + +func (x *GetPttUrlReq) GetBuType() uint32 { + if x != nil && x.BuType != nil { + return *x.BuType + } + return 0 +} + +func (x *GetPttUrlReq) GetBuildVer() []byte { + if x != nil { + return x.BuildVer + } + return nil +} + +func (x *GetPttUrlReq) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *GetPttUrlReq) GetFileKey() []byte { + if x != nil { + return x.FileKey + } + return nil +} + +func (x *GetPttUrlReq) GetCodec() uint32 { + if x != nil && x.Codec != nil { + return *x.Codec + } + return 0 +} + +func (x *GetPttUrlReq) GetBuId() uint32 { + if x != nil && x.BuId != nil { + return *x.BuId + } + return 0 +} + +func (x *GetPttUrlReq) GetReqTransferType() uint32 { + if x != nil && x.ReqTransferType != nil { + return *x.ReqTransferType + } + return 0 +} + +func (x *GetPttUrlReq) GetIsAuto() uint32 { + if x != nil && x.IsAuto != nil { + return *x.IsAuto + } + return 0 +} + +type GetPttUrlRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fileid *uint64 `protobuf:"varint,1,opt,name=fileid" json:"fileid,omitempty"` + FileMd5 []byte `protobuf:"bytes,2,opt,name=fileMd5" json:"fileMd5,omitempty"` + Result *uint32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + FailMsg []byte `protobuf:"bytes,4,opt,name=failMsg" json:"failMsg,omitempty"` + DownUrl [][]byte `protobuf:"bytes,5,rep,name=downUrl" json:"downUrl,omitempty"` + DownIp []uint32 `protobuf:"varint,6,rep,name=downIp" json:"downIp,omitempty"` + DownPort []uint32 `protobuf:"varint,7,rep,name=downPort" json:"downPort,omitempty"` + DownDomain []byte `protobuf:"bytes,8,opt,name=downDomain" json:"downDomain,omitempty"` + DownPara []byte `protobuf:"bytes,9,opt,name=downPara" json:"downPara,omitempty"` + FileId *uint64 `protobuf:"varint,10,opt,name=fileId" json:"fileId,omitempty"` + TransferType *uint32 `protobuf:"varint,11,opt,name=transferType" json:"transferType,omitempty"` + AllowRetry *uint32 `protobuf:"varint,12,opt,name=allowRetry" json:"allowRetry,omitempty"` + DownIp6 []*IPv6Info `protobuf:"bytes,26,rep,name=downIp6" json:"downIp6,omitempty"` + ClientIp6 []byte `protobuf:"bytes,27,opt,name=clientIp6" json:"clientIp6,omitempty"` + Domain *string `protobuf:"bytes,28,opt,name=domain" json:"domain,omitempty"` +} + +func (x *GetPttUrlRsp) Reset() { + *x = GetPttUrlRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPttUrlRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPttUrlRsp) ProtoMessage() {} + +func (x *GetPttUrlRsp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 GetPttUrlRsp.ProtoReflect.Descriptor instead. +func (*GetPttUrlRsp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{9} +} + +func (x *GetPttUrlRsp) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *GetPttUrlRsp) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *GetPttUrlRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *GetPttUrlRsp) GetFailMsg() []byte { + if x != nil { + return x.FailMsg + } + return nil +} + +func (x *GetPttUrlRsp) GetDownUrl() [][]byte { + if x != nil { + return x.DownUrl + } + return nil +} + +func (x *GetPttUrlRsp) GetDownIp() []uint32 { + if x != nil { + return x.DownIp + } + return nil +} + +func (x *GetPttUrlRsp) GetDownPort() []uint32 { + if x != nil { + return x.DownPort + } + return nil +} + +func (x *GetPttUrlRsp) GetDownDomain() []byte { + if x != nil { + return x.DownDomain + } + return nil +} + +func (x *GetPttUrlRsp) GetDownPara() []byte { + if x != nil { + return x.DownPara + } + return nil +} + +func (x *GetPttUrlRsp) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *GetPttUrlRsp) GetTransferType() uint32 { + if x != nil && x.TransferType != nil { + return *x.TransferType + } + return 0 +} + +func (x *GetPttUrlRsp) GetAllowRetry() uint32 { + if x != nil && x.AllowRetry != nil { + return *x.AllowRetry + } + return 0 +} + +func (x *GetPttUrlRsp) GetDownIp6() []*IPv6Info { + if x != nil { + return x.DownIp6 + } + return nil +} + +func (x *GetPttUrlRsp) GetClientIp6() []byte { + if x != nil { + return x.ClientIp6 + } + return nil +} + +func (x *GetPttUrlRsp) GetDomain() string { + if x != nil && x.Domain != nil { + return *x.Domain + } + return "" +} + +type IPv6Info struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ip6 []byte `protobuf:"bytes,1,opt,name=ip6" json:"ip6,omitempty"` + Port *uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` +} + +func (x *IPv6Info) Reset() { + *x = IPv6Info{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IPv6Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IPv6Info) ProtoMessage() {} + +func (x *IPv6Info) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 IPv6Info.ProtoReflect.Descriptor instead. +func (*IPv6Info) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{10} +} + +func (x *IPv6Info) GetIp6() []byte { + if x != nil { + return x.Ip6 + } + return nil +} + +func (x *IPv6Info) GetPort() uint32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +type ImgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileMd5 []byte `protobuf:"bytes,1,opt,name=fileMd5" json:"fileMd5,omitempty"` + FileType *uint32 `protobuf:"varint,2,opt,name=fileType" json:"fileType,omitempty"` + FileSize *uint64 `protobuf:"varint,3,opt,name=fileSize" json:"fileSize,omitempty"` + FileWidth *uint32 `protobuf:"varint,4,opt,name=fileWidth" json:"fileWidth,omitempty"` + FileHeight *uint32 `protobuf:"varint,5,opt,name=fileHeight" json:"fileHeight,omitempty"` +} + +func (x *ImgInfo) Reset() { + *x = ImgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImgInfo) ProtoMessage() {} + +func (x *ImgInfo) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 ImgInfo.ProtoReflect.Descriptor instead. +func (*ImgInfo) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{11} +} + +func (x *ImgInfo) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *ImgInfo) GetFileType() uint32 { + if x != nil && x.FileType != nil { + return *x.FileType + } + return 0 +} + +func (x *ImgInfo) GetFileSize() uint64 { + if x != nil && x.FileSize != nil { + return *x.FileSize + } + return 0 +} + +func (x *ImgInfo) GetFileWidth() uint32 { + if x != nil && x.FileWidth != nil { + return *x.FileWidth + } + return 0 +} + +func (x *ImgInfo) GetFileHeight() uint32 { + if x != nil && x.FileHeight != nil { + return *x.FileHeight + } + return 0 +} + +type PicSize struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Original *uint32 `protobuf:"varint,1,opt,name=original" json:"original,omitempty"` + Thumb *uint32 `protobuf:"varint,2,opt,name=thumb" json:"thumb,omitempty"` + High *uint32 `protobuf:"varint,3,opt,name=high" json:"high,omitempty"` +} + +func (x *PicSize) Reset() { + *x = PicSize{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PicSize) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PicSize) ProtoMessage() {} + +func (x *PicSize) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 PicSize.ProtoReflect.Descriptor instead. +func (*PicSize) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{12} +} + +func (x *PicSize) GetOriginal() uint32 { + if x != nil && x.Original != nil { + return *x.Original + } + return 0 +} + +func (x *PicSize) GetThumb() uint32 { + if x != nil && x.Thumb != nil { + return *x.Thumb + } + return 0 +} + +func (x *PicSize) GetHigh() uint32 { + if x != nil && x.High != nil { + return *x.High + } + return 0 +} + +type D388ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NetType *uint32 `protobuf:"varint,1,opt,name=netType" json:"netType,omitempty"` + Subcmd *uint32 `protobuf:"varint,2,opt,name=subcmd" json:"subcmd,omitempty"` + TryupImgReq []*TryUpImgReq `protobuf:"bytes,3,rep,name=tryupImgReq" json:"tryupImgReq,omitempty"` + GetimgUrlReq []*GetImgUrlReq `protobuf:"bytes,4,rep,name=getimgUrlReq" json:"getimgUrlReq,omitempty"` + TryupPttReq []*TryUpPttReq `protobuf:"bytes,5,rep,name=tryupPttReq" json:"tryupPttReq,omitempty"` + GetpttUrlReq []*GetPttUrlReq `protobuf:"bytes,6,rep,name=getpttUrlReq" json:"getpttUrlReq,omitempty"` + CommandId *uint32 `protobuf:"varint,7,opt,name=commandId" json:"commandId,omitempty"` + DelImgReq []*DelImgReq `protobuf:"bytes,8,rep,name=delImgReq" json:"delImgReq,omitempty"` + Extension []byte `protobuf:"bytes,1001,opt,name=extension" json:"extension,omitempty"` +} + +func (x *D388ReqBody) Reset() { + *x = D388ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *D388ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*D388ReqBody) ProtoMessage() {} + +func (x *D388ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 D388ReqBody.ProtoReflect.Descriptor instead. +func (*D388ReqBody) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{13} +} + +func (x *D388ReqBody) GetNetType() uint32 { + if x != nil && x.NetType != nil { + return *x.NetType + } + return 0 +} + +func (x *D388ReqBody) GetSubcmd() uint32 { + if x != nil && x.Subcmd != nil { + return *x.Subcmd + } + return 0 +} + +func (x *D388ReqBody) GetTryupImgReq() []*TryUpImgReq { + if x != nil { + return x.TryupImgReq + } + return nil +} + +func (x *D388ReqBody) GetGetimgUrlReq() []*GetImgUrlReq { + if x != nil { + return x.GetimgUrlReq + } + return nil +} + +func (x *D388ReqBody) GetTryupPttReq() []*TryUpPttReq { + if x != nil { + return x.TryupPttReq + } + return nil +} + +func (x *D388ReqBody) GetGetpttUrlReq() []*GetPttUrlReq { + if x != nil { + return x.GetpttUrlReq + } + return nil +} + +func (x *D388ReqBody) GetCommandId() uint32 { + if x != nil && x.CommandId != nil { + return *x.CommandId + } + return 0 +} + +func (x *D388ReqBody) GetDelImgReq() []*DelImgReq { + if x != nil { + return x.DelImgReq + } + return nil +} + +func (x *D388ReqBody) GetExtension() []byte { + if x != nil { + return x.Extension + } + return nil +} + +type D388RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientIp *uint32 `protobuf:"varint,1,opt,name=clientIp" json:"clientIp,omitempty"` + Subcmd *uint32 `protobuf:"varint,2,opt,name=subcmd" json:"subcmd,omitempty"` + TryupImgRsp []*D388TryUpImgRsp `protobuf:"bytes,3,rep,name=tryupImgRsp" json:"tryupImgRsp,omitempty"` + GetimgUrlRsp []*GetImgUrlRsp `protobuf:"bytes,4,rep,name=getimgUrlRsp" json:"getimgUrlRsp,omitempty"` + TryupPttRsp []*TryUpPttRsp `protobuf:"bytes,5,rep,name=tryupPttRsp" json:"tryupPttRsp,omitempty"` + GetpttUrlRsp []*GetPttUrlRsp `protobuf:"bytes,6,rep,name=getpttUrlRsp" json:"getpttUrlRsp,omitempty"` + DelImgRsp []*DelImgRsp `protobuf:"bytes,7,rep,name=delImgRsp" json:"delImgRsp,omitempty"` +} + +func (x *D388RspBody) Reset() { + *x = D388RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *D388RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*D388RspBody) ProtoMessage() {} + +func (x *D388RspBody) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 D388RspBody.ProtoReflect.Descriptor instead. +func (*D388RspBody) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{14} +} + +func (x *D388RspBody) GetClientIp() uint32 { + if x != nil && x.ClientIp != nil { + return *x.ClientIp + } + return 0 +} + +func (x *D388RspBody) GetSubcmd() uint32 { + if x != nil && x.Subcmd != nil { + return *x.Subcmd + } + return 0 +} + +func (x *D388RspBody) GetTryupImgRsp() []*D388TryUpImgRsp { + if x != nil { + return x.TryupImgRsp + } + return nil +} + +func (x *D388RspBody) GetGetimgUrlRsp() []*GetImgUrlRsp { + if x != nil { + return x.GetimgUrlRsp + } + return nil +} + +func (x *D388RspBody) GetTryupPttRsp() []*TryUpPttRsp { + if x != nil { + return x.TryupPttRsp + } + return nil +} + +func (x *D388RspBody) GetGetpttUrlRsp() []*GetPttUrlRsp { + if x != nil { + return x.GetpttUrlRsp + } + return nil +} + +func (x *D388RspBody) GetDelImgRsp() []*DelImgRsp { + if x != nil { + return x.DelImgRsp + } + return nil +} + +type TryUpImgReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` + SrcUin *uint64 `protobuf:"varint,2,opt,name=srcUin" json:"srcUin,omitempty"` + FileId *uint64 `protobuf:"varint,3,opt,name=fileId" json:"fileId,omitempty"` + FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` + FileSize *uint64 `protobuf:"varint,5,opt,name=fileSize" json:"fileSize,omitempty"` + FileName []byte `protobuf:"bytes,6,opt,name=fileName" json:"fileName,omitempty"` + SrcTerm *uint32 `protobuf:"varint,7,opt,name=srcTerm" json:"srcTerm,omitempty"` + PlatformType *uint32 `protobuf:"varint,8,opt,name=platformType" json:"platformType,omitempty"` + BuType *uint32 `protobuf:"varint,9,opt,name=buType" json:"buType,omitempty"` + PicWidth *uint32 `protobuf:"varint,10,opt,name=picWidth" json:"picWidth,omitempty"` + PicHeight *uint32 `protobuf:"varint,11,opt,name=picHeight" json:"picHeight,omitempty"` + PicType *uint32 `protobuf:"varint,12,opt,name=picType" json:"picType,omitempty"` + BuildVer []byte `protobuf:"bytes,13,opt,name=buildVer" json:"buildVer,omitempty"` + InnerIp *uint32 `protobuf:"varint,14,opt,name=innerIp" json:"innerIp,omitempty"` + AppPicType *uint32 `protobuf:"varint,15,opt,name=appPicType" json:"appPicType,omitempty"` + OriginalPic *uint32 `protobuf:"varint,16,opt,name=originalPic" json:"originalPic,omitempty"` + FileIndex []byte `protobuf:"bytes,17,opt,name=fileIndex" json:"fileIndex,omitempty"` + DstUin *uint64 `protobuf:"varint,18,opt,name=dstUin" json:"dstUin,omitempty"` + SrvUpload *uint32 `protobuf:"varint,19,opt,name=srvUpload" json:"srvUpload,omitempty"` + TransferUrl []byte `protobuf:"bytes,20,opt,name=transferUrl" json:"transferUrl,omitempty"` + QqmeetGuildId *uint64 `protobuf:"varint,21,opt,name=qqmeetGuildId" json:"qqmeetGuildId,omitempty"` + QqmeetChannelId *uint64 `protobuf:"varint,22,opt,name=qqmeetChannelId" json:"qqmeetChannelId,omitempty"` +} + +func (x *TryUpImgReq) Reset() { + *x = TryUpImgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TryUpImgReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TryUpImgReq) ProtoMessage() {} + +func (x *TryUpImgReq) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 TryUpImgReq.ProtoReflect.Descriptor instead. +func (*TryUpImgReq) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{15} +} + +func (x *TryUpImgReq) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *TryUpImgReq) GetSrcUin() uint64 { + if x != nil && x.SrcUin != nil { + return *x.SrcUin + } + return 0 +} + +func (x *TryUpImgReq) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *TryUpImgReq) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *TryUpImgReq) GetFileSize() uint64 { + if x != nil && x.FileSize != nil { + return *x.FileSize + } + return 0 +} + +func (x *TryUpImgReq) GetFileName() []byte { + if x != nil { + return x.FileName + } + return nil +} + +func (x *TryUpImgReq) GetSrcTerm() uint32 { + if x != nil && x.SrcTerm != nil { + return *x.SrcTerm + } + return 0 +} + +func (x *TryUpImgReq) GetPlatformType() uint32 { + if x != nil && x.PlatformType != nil { + return *x.PlatformType + } + return 0 +} + +func (x *TryUpImgReq) GetBuType() uint32 { + if x != nil && x.BuType != nil { + return *x.BuType + } + return 0 +} + +func (x *TryUpImgReq) GetPicWidth() uint32 { + if x != nil && x.PicWidth != nil { + return *x.PicWidth + } + return 0 +} + +func (x *TryUpImgReq) GetPicHeight() uint32 { + if x != nil && x.PicHeight != nil { + return *x.PicHeight + } + return 0 +} + +func (x *TryUpImgReq) GetPicType() uint32 { + if x != nil && x.PicType != nil { + return *x.PicType + } + return 0 +} + +func (x *TryUpImgReq) GetBuildVer() []byte { + if x != nil { + return x.BuildVer + } + return nil +} + +func (x *TryUpImgReq) GetInnerIp() uint32 { + if x != nil && x.InnerIp != nil { + return *x.InnerIp + } + return 0 +} + +func (x *TryUpImgReq) GetAppPicType() uint32 { + if x != nil && x.AppPicType != nil { + return *x.AppPicType + } + return 0 +} + +func (x *TryUpImgReq) GetOriginalPic() uint32 { + if x != nil && x.OriginalPic != nil { + return *x.OriginalPic + } + return 0 +} + +func (x *TryUpImgReq) GetFileIndex() []byte { + if x != nil { + return x.FileIndex + } + return nil +} + +func (x *TryUpImgReq) GetDstUin() uint64 { + if x != nil && x.DstUin != nil { + return *x.DstUin + } + return 0 +} + +func (x *TryUpImgReq) GetSrvUpload() uint32 { + if x != nil && x.SrvUpload != nil { + return *x.SrvUpload + } + return 0 +} + +func (x *TryUpImgReq) GetTransferUrl() []byte { + if x != nil { + return x.TransferUrl + } + return nil +} + +func (x *TryUpImgReq) GetQqmeetGuildId() uint64 { + if x != nil && x.QqmeetGuildId != nil { + return *x.QqmeetGuildId + } + return 0 +} + +func (x *TryUpImgReq) GetQqmeetChannelId() uint64 { + if x != nil && x.QqmeetChannelId != nil { + return *x.QqmeetChannelId + } + return 0 +} + +type D388TryUpImgRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileId *uint64 `protobuf:"varint,1,opt,name=fileId" json:"fileId,omitempty"` + Result *uint32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + FailMsg []byte `protobuf:"bytes,3,opt,name=failMsg" json:"failMsg,omitempty"` + FileExit *bool `protobuf:"varint,4,opt,name=fileExit" json:"fileExit,omitempty"` + ImgInfo *ImgInfo `protobuf:"bytes,5,opt,name=imgInfo" json:"imgInfo,omitempty"` + UpIp []uint32 `protobuf:"varint,6,rep,name=upIp" json:"upIp,omitempty"` + UpPort []uint32 `protobuf:"varint,7,rep,name=upPort" json:"upPort,omitempty"` + UpUkey []byte `protobuf:"bytes,8,opt,name=upUkey" json:"upUkey,omitempty"` + Fileid *uint64 `protobuf:"varint,9,opt,name=fileid" json:"fileid,omitempty"` + UpOffset *uint64 `protobuf:"varint,10,opt,name=upOffset" json:"upOffset,omitempty"` + BlockSize *uint64 `protobuf:"varint,11,opt,name=blockSize" json:"blockSize,omitempty"` + NewBigChan *bool `protobuf:"varint,12,opt,name=newBigChan" json:"newBigChan,omitempty"` + UpIp6 []*IPv6Info `protobuf:"bytes,26,rep,name=upIp6" json:"upIp6,omitempty"` + ClientIp6 []byte `protobuf:"bytes,27,opt,name=clientIp6" json:"clientIp6,omitempty"` + DownloadIndex []byte `protobuf:"bytes,28,opt,name=downloadIndex" json:"downloadIndex,omitempty"` + Info4Busi *TryUpInfo4Busi `protobuf:"bytes,1001,opt,name=info4Busi" json:"info4Busi,omitempty"` +} + +func (x *D388TryUpImgRsp) Reset() { + *x = D388TryUpImgRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *D388TryUpImgRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*D388TryUpImgRsp) ProtoMessage() {} + +func (x *D388TryUpImgRsp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 D388TryUpImgRsp.ProtoReflect.Descriptor instead. +func (*D388TryUpImgRsp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{16} +} + +func (x *D388TryUpImgRsp) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *D388TryUpImgRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *D388TryUpImgRsp) GetFailMsg() []byte { + if x != nil { + return x.FailMsg + } + return nil +} + +func (x *D388TryUpImgRsp) GetFileExit() bool { + if x != nil && x.FileExit != nil { + return *x.FileExit + } + return false +} + +func (x *D388TryUpImgRsp) GetImgInfo() *ImgInfo { + if x != nil { + return x.ImgInfo + } + return nil +} + +func (x *D388TryUpImgRsp) GetUpIp() []uint32 { + if x != nil { + return x.UpIp + } + return nil +} + +func (x *D388TryUpImgRsp) GetUpPort() []uint32 { + if x != nil { + return x.UpPort + } + return nil +} + +func (x *D388TryUpImgRsp) GetUpUkey() []byte { + if x != nil { + return x.UpUkey + } + return nil +} + +func (x *D388TryUpImgRsp) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *D388TryUpImgRsp) GetUpOffset() uint64 { + if x != nil && x.UpOffset != nil { + return *x.UpOffset + } + return 0 +} + +func (x *D388TryUpImgRsp) GetBlockSize() uint64 { + if x != nil && x.BlockSize != nil { + return *x.BlockSize + } + return 0 +} + +func (x *D388TryUpImgRsp) GetNewBigChan() bool { + if x != nil && x.NewBigChan != nil { + return *x.NewBigChan + } + return false +} + +func (x *D388TryUpImgRsp) GetUpIp6() []*IPv6Info { + if x != nil { + return x.UpIp6 + } + return nil +} + +func (x *D388TryUpImgRsp) GetClientIp6() []byte { + if x != nil { + return x.ClientIp6 + } + return nil +} + +func (x *D388TryUpImgRsp) GetDownloadIndex() []byte { + if x != nil { + return x.DownloadIndex + } + return nil +} + +func (x *D388TryUpImgRsp) GetInfo4Busi() *TryUpInfo4Busi { + if x != nil { + return x.Info4Busi + } + return nil +} + +type TryUpInfo4Busi struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DownDomain []byte `protobuf:"bytes,1,opt,name=downDomain" json:"downDomain,omitempty"` + ThumbDownUrl []byte `protobuf:"bytes,2,opt,name=thumbDownUrl" json:"thumbDownUrl,omitempty"` + OriginalDownUrl []byte `protobuf:"bytes,3,opt,name=originalDownUrl" json:"originalDownUrl,omitempty"` + BigDownUrl []byte `protobuf:"bytes,4,opt,name=bigDownUrl" json:"bigDownUrl,omitempty"` + FileResid []byte `protobuf:"bytes,5,opt,name=fileResid" json:"fileResid,omitempty"` +} + +func (x *TryUpInfo4Busi) Reset() { + *x = TryUpInfo4Busi{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TryUpInfo4Busi) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TryUpInfo4Busi) ProtoMessage() {} + +func (x *TryUpInfo4Busi) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 TryUpInfo4Busi.ProtoReflect.Descriptor instead. +func (*TryUpInfo4Busi) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{17} +} + +func (x *TryUpInfo4Busi) GetDownDomain() []byte { + if x != nil { + return x.DownDomain + } + return nil +} + +func (x *TryUpInfo4Busi) GetThumbDownUrl() []byte { + if x != nil { + return x.ThumbDownUrl + } + return nil +} + +func (x *TryUpInfo4Busi) GetOriginalDownUrl() []byte { + if x != nil { + return x.OriginalDownUrl + } + return nil +} + +func (x *TryUpInfo4Busi) GetBigDownUrl() []byte { + if x != nil { + return x.BigDownUrl + } + return nil +} + +func (x *TryUpInfo4Busi) GetFileResid() []byte { + if x != nil { + return x.FileResid + } + return nil +} + +type TryUpPttReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupCode *uint64 `protobuf:"varint,1,opt,name=groupCode" json:"groupCode,omitempty"` + SrcUin *uint64 `protobuf:"varint,2,opt,name=srcUin" json:"srcUin,omitempty"` + FileId *uint64 `protobuf:"varint,3,opt,name=fileId" json:"fileId,omitempty"` + FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5" json:"fileMd5,omitempty"` + FileSize *uint64 `protobuf:"varint,5,opt,name=fileSize" json:"fileSize,omitempty"` + FileName []byte `protobuf:"bytes,6,opt,name=fileName" json:"fileName,omitempty"` + SrcTerm *uint32 `protobuf:"varint,7,opt,name=srcTerm" json:"srcTerm,omitempty"` + PlatformType *uint32 `protobuf:"varint,8,opt,name=platformType" json:"platformType,omitempty"` + BuType *uint32 `protobuf:"varint,9,opt,name=buType" json:"buType,omitempty"` + BuildVer []byte `protobuf:"bytes,10,opt,name=buildVer" json:"buildVer,omitempty"` + InnerIp *uint32 `protobuf:"varint,11,opt,name=innerIp" json:"innerIp,omitempty"` + VoiceLength *uint32 `protobuf:"varint,12,opt,name=voiceLength" json:"voiceLength,omitempty"` + NewUpChan *bool `protobuf:"varint,13,opt,name=newUpChan" json:"newUpChan,omitempty"` + Codec *uint32 `protobuf:"varint,14,opt,name=codec" json:"codec,omitempty"` + VoiceType *uint32 `protobuf:"varint,15,opt,name=voiceType" json:"voiceType,omitempty"` + BuId *uint32 `protobuf:"varint,16,opt,name=buId" json:"buId,omitempty"` +} + +func (x *TryUpPttReq) Reset() { + *x = TryUpPttReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TryUpPttReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TryUpPttReq) ProtoMessage() {} + +func (x *TryUpPttReq) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 TryUpPttReq.ProtoReflect.Descriptor instead. +func (*TryUpPttReq) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{18} +} + +func (x *TryUpPttReq) GetGroupCode() uint64 { + if x != nil && x.GroupCode != nil { + return *x.GroupCode + } + return 0 +} + +func (x *TryUpPttReq) GetSrcUin() uint64 { + if x != nil && x.SrcUin != nil { + return *x.SrcUin + } + return 0 +} + +func (x *TryUpPttReq) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *TryUpPttReq) GetFileMd5() []byte { + if x != nil { + return x.FileMd5 + } + return nil +} + +func (x *TryUpPttReq) GetFileSize() uint64 { + if x != nil && x.FileSize != nil { + return *x.FileSize + } + return 0 +} + +func (x *TryUpPttReq) GetFileName() []byte { + if x != nil { + return x.FileName + } + return nil +} + +func (x *TryUpPttReq) GetSrcTerm() uint32 { + if x != nil && x.SrcTerm != nil { + return *x.SrcTerm + } + return 0 +} + +func (x *TryUpPttReq) GetPlatformType() uint32 { + if x != nil && x.PlatformType != nil { + return *x.PlatformType + } + return 0 +} + +func (x *TryUpPttReq) GetBuType() uint32 { + if x != nil && x.BuType != nil { + return *x.BuType + } + return 0 +} + +func (x *TryUpPttReq) GetBuildVer() []byte { + if x != nil { + return x.BuildVer + } + return nil +} + +func (x *TryUpPttReq) GetInnerIp() uint32 { + if x != nil && x.InnerIp != nil { + return *x.InnerIp + } + return 0 +} + +func (x *TryUpPttReq) GetVoiceLength() uint32 { + if x != nil && x.VoiceLength != nil { + return *x.VoiceLength + } + return 0 +} + +func (x *TryUpPttReq) GetNewUpChan() bool { + if x != nil && x.NewUpChan != nil { + return *x.NewUpChan + } + return false +} + +func (x *TryUpPttReq) GetCodec() uint32 { + if x != nil && x.Codec != nil { + return *x.Codec + } + return 0 +} + +func (x *TryUpPttReq) GetVoiceType() uint32 { + if x != nil && x.VoiceType != nil { + return *x.VoiceType + } + return 0 +} + +func (x *TryUpPttReq) GetBuId() uint32 { + if x != nil && x.BuId != nil { + return *x.BuId + } + return 0 +} + +type TryUpPttRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FileId *uint64 `protobuf:"varint,1,opt,name=fileId" json:"fileId,omitempty"` + Result *uint32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + FailMsg []byte `protobuf:"bytes,3,opt,name=failMsg" json:"failMsg,omitempty"` + FileExit *bool `protobuf:"varint,4,opt,name=fileExit" json:"fileExit,omitempty"` + UpIp []uint32 `protobuf:"varint,5,rep,name=upIp" json:"upIp,omitempty"` + UpPort []uint32 `protobuf:"varint,6,rep,name=upPort" json:"upPort,omitempty"` + UpUkey []byte `protobuf:"bytes,7,opt,name=upUkey" json:"upUkey,omitempty"` + Fileid *uint64 `protobuf:"varint,8,opt,name=fileid" json:"fileid,omitempty"` + UpOffset *uint64 `protobuf:"varint,9,opt,name=upOffset" json:"upOffset,omitempty"` + BlockSize *uint64 `protobuf:"varint,10,opt,name=blockSize" json:"blockSize,omitempty"` + FileKey []byte `protobuf:"bytes,11,opt,name=fileKey" json:"fileKey,omitempty"` + ChannelType *uint32 `protobuf:"varint,12,opt,name=channelType" json:"channelType,omitempty"` + UpIp6 []*IPv6Info `protobuf:"bytes,26,rep,name=upIp6" json:"upIp6,omitempty"` + ClientIp6 []byte `protobuf:"bytes,27,opt,name=clientIp6" json:"clientIp6,omitempty"` +} + +func (x *TryUpPttRsp) Reset() { + *x = TryUpPttRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_cmd0x388_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TryUpPttRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TryUpPttRsp) ProtoMessage() {} + +func (x *TryUpPttRsp) ProtoReflect() protoreflect.Message { + mi := &file_cmd0x388_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 TryUpPttRsp.ProtoReflect.Descriptor instead. +func (*TryUpPttRsp) Descriptor() ([]byte, []int) { + return file_cmd0x388_proto_rawDescGZIP(), []int{19} +} + +func (x *TryUpPttRsp) GetFileId() uint64 { + if x != nil && x.FileId != nil { + return *x.FileId + } + return 0 +} + +func (x *TryUpPttRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *TryUpPttRsp) GetFailMsg() []byte { + if x != nil { + return x.FailMsg + } + return nil +} + +func (x *TryUpPttRsp) GetFileExit() bool { + if x != nil && x.FileExit != nil { + return *x.FileExit + } + return false +} + +func (x *TryUpPttRsp) GetUpIp() []uint32 { + if x != nil { + return x.UpIp + } + return nil +} + +func (x *TryUpPttRsp) GetUpPort() []uint32 { + if x != nil { + return x.UpPort + } + return nil +} + +func (x *TryUpPttRsp) GetUpUkey() []byte { + if x != nil { + return x.UpUkey + } + return nil +} + +func (x *TryUpPttRsp) GetFileid() uint64 { + if x != nil && x.Fileid != nil { + return *x.Fileid + } + return 0 +} + +func (x *TryUpPttRsp) GetUpOffset() uint64 { + if x != nil && x.UpOffset != nil { + return *x.UpOffset + } + return 0 +} + +func (x *TryUpPttRsp) GetBlockSize() uint64 { + if x != nil && x.BlockSize != nil { + return *x.BlockSize + } + return 0 +} + +func (x *TryUpPttRsp) GetFileKey() []byte { + if x != nil { + return x.FileKey + } + return nil +} + +func (x *TryUpPttRsp) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *TryUpPttRsp) GetUpIp6() []*IPv6Info { + if x != nil { + return x.UpIp6 + } + return nil +} + +func (x *TryUpPttRsp) GetClientIp6() []byte { + if x != nil { + return x.ClientIp6 + } + return nil +} + +var File_cmd0x388_proto protoreflect.FileDescriptor + +var file_cmd0x388_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x33, 0x38, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x5b, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 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, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, + 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x45, + 0x78, 0x70, 0x52, 0x6f, 0x61, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x72, 0x65, 0x73, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x52, 0x6f, 0x61, + 0x6d, 0x50, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x70, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x70, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x22, 0x31, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x50, 0x69, 0x63, 0x54, 0x72, 0x79, 0x55, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x65, 0x78, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x50, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x70, 0x52, 0x6f, 0x61, 0x6d, 0x54, 0x72, 0x79, 0x55, 0x70, 0x12, 0x37, 0x0a, 0x0e, + 0x65, 0x78, 0x70, 0x72, 0x6f, 0x61, 0x6d, 0x50, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x6f, 0x61, 0x6d, 0x50, 0x69, + 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x72, 0x6f, 0x61, 0x6d, 0x50, 0x69, + 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xce, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, + 0x55, 0x72, 0x6c, 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, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x65, 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, 0x18, + 0x0a, 0x07, 0x75, 0x72, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x75, 0x72, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x72, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x72, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, + 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, + 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x56, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x70, 0x69, 0x63, 0x55, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x69, 0x63, 0x55, 0x70, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x72, 0x65, 0x71, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xc1, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x6d, + 0x67, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x07, 0x69, + 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x49, + 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x69, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, + 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, + 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, + 0x0a, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x0a, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x64, + 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, + 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, + 0x6e, 0x50, 0x61, 0x72, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, + 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x54, 0x68, + 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x10, 0x62, 0x69, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x55, 0x72, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x23, 0x0a, 0x07, 0x64, 0x6f, 0x77, 0x6e, 0x49, + 0x70, 0x36, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x50, 0x76, 0x36, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x36, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x22, 0xa6, 0x03, 0x0a, 0x0c, 0x47, + 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 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, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, + 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 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, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x28, 0x0a, + 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x49, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x12, 0x0a, + 0x04, 0x62, 0x75, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, 0x75, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x73, 0x41, 0x75, 0x74, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x73, 0x41, + 0x75, 0x74, 0x6f, 0x22, 0xb3, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, + 0x6c, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 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, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6f, 0x77, 0x6e, + 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x6f, 0x77, 0x6e, 0x55, + 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, + 0x77, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x6f, + 0x77, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x23, + 0x0a, 0x07, 0x64, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x36, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x09, 0x2e, 0x49, 0x50, 0x76, 0x36, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x6f, 0x77, 0x6e, + 0x49, 0x70, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, + 0x36, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x30, 0x0a, 0x08, 0x49, 0x50, 0x76, + 0x36, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x36, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x03, 0x69, 0x70, 0x36, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x07, + 0x49, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, + 0x64, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, + 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, + 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 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, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6c, + 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4f, 0x0a, 0x07, 0x50, 0x69, 0x63, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, + 0x68, 0x75, 0x6d, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x22, 0xec, 0x02, 0x0a, 0x0b, 0x44, 0x33, 0x38, + 0x38, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, 0x2e, 0x0a, 0x0b, 0x74, 0x72, + 0x79, 0x75, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x52, 0x0b, 0x74, + 0x72, 0x79, 0x75, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0c, 0x67, 0x65, + 0x74, 0x69, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x52, + 0x0c, 0x67, 0x65, 0x74, 0x69, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, + 0x0b, 0x74, 0x72, 0x79, 0x75, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, + 0x52, 0x0b, 0x74, 0x72, 0x79, 0x75, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, + 0x0c, 0x67, 0x65, 0x74, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, + 0x65, 0x71, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x28, + 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x52, 0x09, 0x64, + 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb5, 0x02, 0x0a, 0x0b, 0x44, 0x33, 0x38, 0x38, + 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x74, + 0x72, 0x79, 0x75, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x73, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x44, 0x33, 0x38, 0x38, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, + 0x73, 0x70, 0x52, 0x0b, 0x74, 0x72, 0x79, 0x75, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x73, 0x70, 0x12, + 0x31, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x69, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x67, 0x55, 0x72, + 0x6c, 0x52, 0x73, 0x70, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x69, 0x6d, 0x67, 0x55, 0x72, 0x6c, 0x52, + 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0b, 0x74, 0x72, 0x79, 0x75, 0x70, 0x50, 0x74, 0x74, 0x52, 0x73, + 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, + 0x74, 0x74, 0x52, 0x73, 0x70, 0x52, 0x0b, 0x74, 0x72, 0x79, 0x75, 0x70, 0x50, 0x74, 0x74, 0x52, + 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, + 0x73, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x74, + 0x74, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x70, 0x74, 0x74, 0x55, + 0x72, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, + 0x73, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x65, 0x6c, 0x49, 0x6d, + 0x67, 0x52, 0x73, 0x70, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x49, 0x6d, 0x67, 0x52, 0x73, 0x70, 0x22, + 0x95, 0x05, 0x0a, 0x0b, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 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, 0x16, 0x0a, + 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 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, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x62, + 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x50, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x50, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, + 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x72, 0x76, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x72, 0x76, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x55, 0x72, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x71, 0x6d, 0x65, 0x65, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, + 0x0f, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x71, 0x6d, 0x65, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x44, 0x33, 0x38, 0x38, + 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, + 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x61, + 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, + 0x74, 0x12, 0x22, 0x0a, 0x07, 0x69, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x49, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x69, 0x6d, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x70, 0x49, 0x70, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x04, 0x75, 0x70, 0x49, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x50, + 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x69, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x65, 0x77, 0x42, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x1f, 0x0a, 0x05, 0x75, + 0x70, 0x49, 0x70, 0x36, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x50, 0x76, + 0x36, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x70, 0x49, 0x70, 0x36, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x34, 0x42, 0x75, 0x73, 0x69, 0x18, 0xe9, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x34, 0x42, 0x75, 0x73, 0x69, 0x52, 0x09, 0x69, 0x6e, 0x66, 0x6f, 0x34, 0x42, 0x75, 0x73, 0x69, + 0x22, 0xbc, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x34, 0x42, + 0x75, 0x73, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, + 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, + 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x69, 0x67, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, + 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x69, 0x64, 0x22, + 0xc1, 0x03, 0x0a, 0x0b, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 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, 0x16, 0x0a, + 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, + 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 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, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x62, + 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x6e, 0x65, 0x77, 0x55, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x64, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x62, 0x75, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x62, + 0x75, 0x49, 0x64, 0x22, 0x84, 0x03, 0x0a, 0x0b, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, + 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x70, 0x49, + 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x75, 0x70, 0x49, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x75, + 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x65, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x65, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x75, + 0x70, 0x49, 0x70, 0x36, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x50, 0x76, + 0x36, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x70, 0x49, 0x70, 0x36, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, + 0x3b, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x33, 0x38, 0x38, +} + +var ( + file_cmd0x388_proto_rawDescOnce sync.Once + file_cmd0x388_proto_rawDescData = file_cmd0x388_proto_rawDesc +) + +func file_cmd0x388_proto_rawDescGZIP() []byte { + file_cmd0x388_proto_rawDescOnce.Do(func() { + file_cmd0x388_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd0x388_proto_rawDescData) + }) + return file_cmd0x388_proto_rawDescData +} + +var file_cmd0x388_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_cmd0x388_proto_goTypes = []interface{}{ + (*DelImgReq)(nil), // 0: DelImgReq + (*DelImgRsp)(nil), // 1: DelImgRsp + (*ExpRoamExtendInfo)(nil), // 2: ExpRoamExtendInfo + (*ExpRoamPicInfo)(nil), // 3: ExpRoamPicInfo + (*ExtensionCommPicTryUp)(nil), // 4: ExtensionCommPicTryUp + (*ExtensionExpRoamTryUp)(nil), // 5: ExtensionExpRoamTryUp + (*GetImgUrlReq)(nil), // 6: GetImgUrlReq + (*GetImgUrlRsp)(nil), // 7: GetImgUrlRsp + (*GetPttUrlReq)(nil), // 8: GetPttUrlReq + (*GetPttUrlRsp)(nil), // 9: GetPttUrlRsp + (*IPv6Info)(nil), // 10: IPv6Info + (*ImgInfo)(nil), // 11: ImgInfo + (*PicSize)(nil), // 12: PicSize + (*D388ReqBody)(nil), // 13: D388ReqBody + (*D388RspBody)(nil), // 14: D388RspBody + (*TryUpImgReq)(nil), // 15: TryUpImgReq + (*D388TryUpImgRsp)(nil), // 16: D388TryUpImgRsp + (*TryUpInfo4Busi)(nil), // 17: TryUpInfo4Busi + (*TryUpPttReq)(nil), // 18: TryUpPttReq + (*TryUpPttRsp)(nil), // 19: TryUpPttRsp +} +var file_cmd0x388_proto_depIdxs = []int32{ + 3, // 0: ExtensionExpRoamTryUp.exproamPicInfo:type_name -> ExpRoamPicInfo + 11, // 1: GetImgUrlRsp.imgInfo:type_name -> ImgInfo + 10, // 2: GetImgUrlRsp.downIp6:type_name -> IPv6Info + 10, // 3: GetPttUrlRsp.downIp6:type_name -> IPv6Info + 15, // 4: D388ReqBody.tryupImgReq:type_name -> TryUpImgReq + 6, // 5: D388ReqBody.getimgUrlReq:type_name -> GetImgUrlReq + 18, // 6: D388ReqBody.tryupPttReq:type_name -> TryUpPttReq + 8, // 7: D388ReqBody.getpttUrlReq:type_name -> GetPttUrlReq + 0, // 8: D388ReqBody.delImgReq:type_name -> DelImgReq + 16, // 9: D388RspBody.tryupImgRsp:type_name -> D388TryUpImgRsp + 7, // 10: D388RspBody.getimgUrlRsp:type_name -> GetImgUrlRsp + 19, // 11: D388RspBody.tryupPttRsp:type_name -> TryUpPttRsp + 9, // 12: D388RspBody.getpttUrlRsp:type_name -> GetPttUrlRsp + 1, // 13: D388RspBody.delImgRsp:type_name -> DelImgRsp + 11, // 14: D388TryUpImgRsp.imgInfo:type_name -> ImgInfo + 10, // 15: D388TryUpImgRsp.upIp6:type_name -> IPv6Info + 17, // 16: D388TryUpImgRsp.info4Busi:type_name -> TryUpInfo4Busi + 10, // 17: TryUpPttRsp.upIp6:type_name -> IPv6Info + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_cmd0x388_proto_init() } +func file_cmd0x388_proto_init() { + if File_cmd0x388_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cmd0x388_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelImgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelImgRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExpRoamExtendInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExpRoamPicInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionCommPicTryUp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionExpRoamTryUp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImgUrlReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImgUrlRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPttUrlReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPttUrlRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IPv6Info); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PicSize); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*D388ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*D388RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TryUpImgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*D388TryUpImgRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TryUpInfo4Busi); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TryUpPttReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cmd0x388_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TryUpPttRsp); 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_cmd0x388_proto_rawDesc, + NumEnums: 0, + NumMessages: 20, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cmd0x388_proto_goTypes, + DependencyIndexes: file_cmd0x388_proto_depIdxs, + MessageInfos: file_cmd0x388_proto_msgTypes, + }.Build() + File_cmd0x388_proto = out.File + file_cmd0x388_proto_rawDesc = nil + file_cmd0x388_proto_goTypes = nil + file_cmd0x388_proto_depIdxs = nil +} diff --git a/client/pb/cmd0x388/cmd0x388.proto b/client/pb/cmd0x388/cmd0x388.proto new file mode 100644 index 00000000..dc7f731c --- /dev/null +++ b/client/pb/cmd0x388/cmd0x388.proto @@ -0,0 +1,255 @@ +syntax = "proto2"; + +option go_package = "./;cmd0x388"; + + message DelImgReq { + optional uint64 srcUin = 1; + optional uint64 dstUin = 2; + optional uint32 reqTerm = 3; + optional uint32 reqPlatformType = 4; + optional uint32 buType = 5; + optional bytes buildVer = 6; + optional bytes fileResid = 7; + optional uint32 picWidth = 8; + optional uint32 picHeight = 9; + } + + message DelImgRsp { + optional uint32 result = 1; + optional bytes failMsg = 2; + optional bytes fileResid = 3; + } + + message ExpRoamExtendInfo { + optional bytes resid = 1; + } + + message ExpRoamPicInfo { + optional uint32 shopFlag = 1; + optional uint32 pkgId = 2; + optional bytes picId = 3; + } + + message ExtensionCommPicTryUp { + repeated bytes extinfo = 1; + } + + message ExtensionExpRoamTryUp { + repeated ExpRoamPicInfo exproamPicInfo = 1; + } + + message GetImgUrlReq { + optional uint64 groupCode = 1; + optional uint64 dstUin = 2; + optional uint64 fileid = 3; + optional bytes fileMd5 = 4; + optional uint32 urlFlag = 5; + optional uint32 urlType = 6; + optional uint32 reqTerm = 7; + optional uint32 reqPlatformType = 8; + optional uint32 innerIp = 9; + optional uint32 buType = 10; + optional bytes buildVer = 11; + optional uint64 fileId = 12; + optional uint64 fileSize = 13; + optional uint32 originalPic = 14; + optional uint32 retryReq = 15; + optional uint32 fileHeight = 16; + optional uint32 fileWidth = 17; + optional uint32 picType = 18; + optional uint32 picUpTimestamp = 19; + optional uint32 reqTransferType = 20; + optional uint64 qqmeetGuildId = 21; + optional uint64 qqmeetChannelId = 22; + optional bytes downloadIndex = 23; + } + + message GetImgUrlRsp { + optional uint64 fileid = 1; + optional bytes fileMd5 = 2; + optional uint32 result = 3; + optional bytes failMsg = 4; + optional ImgInfo imgInfo = 5; + repeated bytes thumbDownUrl = 6; + repeated bytes originalDownUrl = 7; + repeated bytes bigDownUrl = 8; + repeated uint32 downIp = 9; + repeated uint32 downPort = 10; + optional bytes downDomain = 11; + optional bytes thumbDownPara = 12; + optional bytes originalDownPara = 13; + optional bytes bigDownPara = 14; + optional uint64 fileId = 15; + optional uint32 autoDownType = 16; + repeated uint32 orderDownType = 17; + optional bytes bigThumbDownPara = 19; + optional uint32 httpsUrlFlag = 20; + repeated IPv6Info downIp6 = 26; + optional bytes clientIp6 = 27; + } + + message GetPttUrlReq { + optional uint64 groupCode = 1; + optional uint64 dstUin = 2; + optional uint64 fileid = 3; + optional bytes fileMd5 = 4; + optional uint32 reqTerm = 5; + optional uint32 reqPlatformType = 6; + optional uint32 innerIp = 7; + optional uint32 buType = 8; + optional bytes buildVer = 9; + optional uint64 fileId = 10; + optional bytes fileKey = 11; + optional uint32 codec = 12; + optional uint32 buId = 13; + optional uint32 reqTransferType = 14; + optional uint32 isAuto = 15; + } + + message GetPttUrlRsp { + optional uint64 fileid = 1; + optional bytes fileMd5 = 2; + optional uint32 result = 3; + optional bytes failMsg = 4; + repeated bytes downUrl = 5; + repeated uint32 downIp = 6; + repeated uint32 downPort = 7; + optional bytes downDomain = 8; + optional bytes downPara = 9; + optional uint64 fileId = 10; + optional uint32 transferType = 11; + optional uint32 allowRetry = 12; + repeated IPv6Info downIp6 = 26; + optional bytes clientIp6 = 27; + optional string domain = 28; + } + + message IPv6Info { + optional bytes ip6 = 1; + optional uint32 port = 2; + } + + message ImgInfo { + optional bytes fileMd5 = 1; + optional uint32 fileType = 2; + optional uint64 fileSize = 3; + optional uint32 fileWidth = 4; + optional uint32 fileHeight = 5; + } + + message PicSize { + optional uint32 original = 1; + optional uint32 thumb = 2; + optional uint32 high = 3; + } + + message D388ReqBody { + optional uint32 netType = 1; + optional uint32 subcmd = 2; + repeated TryUpImgReq tryupImgReq = 3; + repeated GetImgUrlReq getimgUrlReq = 4; + repeated TryUpPttReq tryupPttReq = 5; + repeated GetPttUrlReq getpttUrlReq = 6; + optional uint32 commandId = 7; + repeated DelImgReq delImgReq = 8; + optional bytes extension = 1001; + } + + message D388RspBody { + optional uint32 clientIp = 1; + optional uint32 subcmd = 2; + repeated D388TryUpImgRsp tryupImgRsp = 3; + repeated GetImgUrlRsp getimgUrlRsp = 4; + repeated TryUpPttRsp tryupPttRsp = 5; + repeated GetPttUrlRsp getpttUrlRsp = 6; + repeated DelImgRsp delImgRsp = 7; + } + + message TryUpImgReq { + optional uint64 groupCode = 1; + optional uint64 srcUin = 2; + optional uint64 fileId = 3; + optional bytes fileMd5 = 4; + optional uint64 fileSize = 5; + optional bytes fileName = 6; + optional uint32 srcTerm = 7; + optional uint32 platformType = 8; + optional uint32 buType = 9; + optional uint32 picWidth = 10; + optional uint32 picHeight = 11; + optional uint32 picType = 12; + optional bytes buildVer = 13; + optional uint32 innerIp = 14; + optional uint32 appPicType = 15; + optional uint32 originalPic = 16; + optional bytes fileIndex = 17; + optional uint64 dstUin = 18; + optional uint32 srvUpload = 19; + optional bytes transferUrl = 20; + optional uint64 qqmeetGuildId = 21; + optional uint64 qqmeetChannelId = 22; + } + + message D388TryUpImgRsp { + optional uint64 fileId = 1; + optional uint32 result = 2; + optional bytes failMsg = 3; + optional bool fileExit = 4; + optional ImgInfo imgInfo = 5; + repeated uint32 upIp = 6; + repeated uint32 upPort = 7; + optional bytes upUkey = 8; + optional uint64 fileid = 9; + optional uint64 upOffset = 10; + optional uint64 blockSize = 11; + optional bool newBigChan = 12; + repeated IPv6Info upIp6 = 26; + optional bytes clientIp6 = 27; + optional bytes downloadIndex = 28; + optional TryUpInfo4Busi info4Busi = 1001; + } + + message TryUpInfo4Busi { + optional bytes downDomain = 1; + optional bytes thumbDownUrl = 2; + optional bytes originalDownUrl = 3; + optional bytes bigDownUrl = 4; + optional bytes fileResid = 5; + } + + message TryUpPttReq { + optional uint64 groupCode = 1; + optional uint64 srcUin = 2; + optional uint64 fileId = 3; + optional bytes fileMd5 = 4; + optional uint64 fileSize = 5; + optional bytes fileName = 6; + optional uint32 srcTerm = 7; + optional uint32 platformType = 8; + optional uint32 buType = 9; + optional bytes buildVer = 10; + optional uint32 innerIp = 11; + optional uint32 voiceLength = 12; + optional bool newUpChan = 13; + optional uint32 codec = 14; + optional uint32 voiceType = 15; + optional uint32 buId = 16; + } + + message TryUpPttRsp { + optional uint64 fileId = 1; + optional uint32 result = 2; + optional bytes failMsg = 3; + optional bool fileExit = 4; + repeated uint32 upIp = 5; + repeated uint32 upPort = 6; + optional bytes upUkey = 7; + optional uint64 fileid = 8; + optional uint64 upOffset = 9; + optional uint64 blockSize = 10; + optional bytes fileKey = 11; + optional uint32 channelType = 12; + repeated IPv6Info upIp6 = 26; + optional bytes clientIp6 = 27; + } + diff --git a/client/pb/data.pb.go b/client/pb/data.pb.go index 60bc8ee6..e469be7c 100644 --- a/client/pb/data.pb.go +++ b/client/pb/data.pb.go @@ -1,17 +1,16 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.17.1 +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: data.proto package pb import ( - reflect "reflect" - sync "sync" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) const ( @@ -361,477 +360,6 @@ func (x *D50ReqBody) GetReqMutualmarkLbsshare() int32 { return 0 } -type D388ReqBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NetType int32 `protobuf:"varint,1,opt,name=netType,proto3" json:"netType,omitempty"` - Subcmd int32 `protobuf:"varint,2,opt,name=subcmd,proto3" json:"subcmd,omitempty"` - MsgTryUpImgReq []*TryUpImgReq `protobuf:"bytes,3,rep,name=msgTryUpImgReq,proto3" json:"msgTryUpImgReq,omitempty"` - MsgTryUpPttReq []*TryUpPttReq `protobuf:"bytes,5,rep,name=msgTryUpPttReq,proto3" json:"msgTryUpPttReq,omitempty"` - MsgGetPttReq []*GetPttUrlReq `protobuf:"bytes,6,rep,name=msgGetPttReq,proto3" json:"msgGetPttReq,omitempty"` - CommandId int32 `protobuf:"varint,7,opt,name=commandId,proto3" json:"commandId,omitempty"` - Extension []byte `protobuf:"bytes,1001,opt,name=extension,proto3" json:"extension,omitempty"` -} - -func (x *D388ReqBody) Reset() { - *x = D388ReqBody{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *D388ReqBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*D388ReqBody) ProtoMessage() {} - -func (x *D388ReqBody) ProtoReflect() protoreflect.Message { - mi := &file_data_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 D388ReqBody.ProtoReflect.Descriptor instead. -func (*D388ReqBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{4} -} - -func (x *D388ReqBody) GetNetType() int32 { - if x != nil { - return x.NetType - } - return 0 -} - -func (x *D388ReqBody) GetSubcmd() int32 { - if x != nil { - return x.Subcmd - } - return 0 -} - -func (x *D388ReqBody) GetMsgTryUpImgReq() []*TryUpImgReq { - if x != nil { - return x.MsgTryUpImgReq - } - return nil -} - -func (x *D388ReqBody) GetMsgTryUpPttReq() []*TryUpPttReq { - if x != nil { - return x.MsgTryUpPttReq - } - return nil -} - -func (x *D388ReqBody) GetMsgGetPttReq() []*GetPttUrlReq { - if x != nil { - return x.MsgGetPttReq - } - return nil -} - -func (x *D388ReqBody) GetCommandId() int32 { - if x != nil { - return x.CommandId - } - return 0 -} - -func (x *D388ReqBody) GetExtension() []byte { - if x != nil { - return x.Extension - } - return nil -} - -type D388RespBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClientIp int32 `protobuf:"varint,1,opt,name=clientIp,proto3" json:"clientIp,omitempty"` - SubCmd int32 `protobuf:"varint,2,opt,name=subCmd,proto3" json:"subCmd,omitempty"` - MsgTryUpImgRsp []*TryUpImgResp `protobuf:"bytes,3,rep,name=msgTryUpImgRsp,proto3" json:"msgTryUpImgRsp,omitempty"` - MsgTryUpPttRsp []*TryUpPttResp `protobuf:"bytes,5,rep,name=msgTryUpPttRsp,proto3" json:"msgTryUpPttRsp,omitempty"` - MsgGetPttUrlRsp []*GetPttUrlRsp `protobuf:"bytes,6,rep,name=msgGetPttUrlRsp,proto3" json:"msgGetPttUrlRsp,omitempty"` -} - -func (x *D388RespBody) Reset() { - *x = D388RespBody{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *D388RespBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*D388RespBody) ProtoMessage() {} - -func (x *D388RespBody) ProtoReflect() protoreflect.Message { - mi := &file_data_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 D388RespBody.ProtoReflect.Descriptor instead. -func (*D388RespBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{5} -} - -func (x *D388RespBody) GetClientIp() int32 { - if x != nil { - return x.ClientIp - } - return 0 -} - -func (x *D388RespBody) GetSubCmd() int32 { - if x != nil { - return x.SubCmd - } - return 0 -} - -func (x *D388RespBody) GetMsgTryUpImgRsp() []*TryUpImgResp { - if x != nil { - return x.MsgTryUpImgRsp - } - return nil -} - -func (x *D388RespBody) GetMsgTryUpPttRsp() []*TryUpPttResp { - if x != nil { - return x.MsgTryUpPttRsp - } - return nil -} - -func (x *D388RespBody) GetMsgGetPttUrlRsp() []*GetPttUrlRsp { - if x != nil { - return x.MsgGetPttUrlRsp - } - return nil -} - -type GetPttUrlReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupCode int64 `protobuf:"varint,1,opt,name=groupCode,proto3" json:"groupCode,omitempty"` - DstUin int64 `protobuf:"varint,2,opt,name=dstUin,proto3" json:"dstUin,omitempty"` - FileId int64 `protobuf:"varint,3,opt,name=fileId,proto3" json:"fileId,omitempty"` - FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` - ReqTerm int32 `protobuf:"varint,5,opt,name=reqTerm,proto3" json:"reqTerm,omitempty"` - ReqPlatformType int32 `protobuf:"varint,6,opt,name=reqPlatformType,proto3" json:"reqPlatformType,omitempty"` - InnerIp int32 `protobuf:"varint,7,opt,name=innerIp,proto3" json:"innerIp,omitempty"` - BuType int32 `protobuf:"varint,8,opt,name=buType,proto3" json:"buType,omitempty"` - BuildVer []byte `protobuf:"bytes,9,opt,name=buildVer,proto3" json:"buildVer,omitempty"` - //int64 fileId = 10; - FileKey []byte `protobuf:"bytes,11,opt,name=fileKey,proto3" json:"fileKey,omitempty"` - Codec int32 `protobuf:"varint,12,opt,name=codec,proto3" json:"codec,omitempty"` - BuId int32 `protobuf:"varint,13,opt,name=buId,proto3" json:"buId,omitempty"` - ReqTransferType int32 `protobuf:"varint,14,opt,name=reqTransferType,proto3" json:"reqTransferType,omitempty"` - IsAuto int32 `protobuf:"varint,15,opt,name=isAuto,proto3" json:"isAuto,omitempty"` -} - -func (x *GetPttUrlReq) Reset() { - *x = GetPttUrlReq{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetPttUrlReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetPttUrlReq) ProtoMessage() {} - -func (x *GetPttUrlReq) ProtoReflect() protoreflect.Message { - mi := &file_data_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 GetPttUrlReq.ProtoReflect.Descriptor instead. -func (*GetPttUrlReq) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{6} -} - -func (x *GetPttUrlReq) GetGroupCode() int64 { - if x != nil { - return x.GroupCode - } - return 0 -} - -func (x *GetPttUrlReq) GetDstUin() int64 { - if x != nil { - return x.DstUin - } - return 0 -} - -func (x *GetPttUrlReq) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *GetPttUrlReq) GetFileMd5() []byte { - if x != nil { - return x.FileMd5 - } - return nil -} - -func (x *GetPttUrlReq) GetReqTerm() int32 { - if x != nil { - return x.ReqTerm - } - return 0 -} - -func (x *GetPttUrlReq) GetReqPlatformType() int32 { - if x != nil { - return x.ReqPlatformType - } - return 0 -} - -func (x *GetPttUrlReq) GetInnerIp() int32 { - if x != nil { - return x.InnerIp - } - return 0 -} - -func (x *GetPttUrlReq) GetBuType() int32 { - if x != nil { - return x.BuType - } - return 0 -} - -func (x *GetPttUrlReq) GetBuildVer() []byte { - if x != nil { - return x.BuildVer - } - return nil -} - -func (x *GetPttUrlReq) GetFileKey() []byte { - if x != nil { - return x.FileKey - } - return nil -} - -func (x *GetPttUrlReq) GetCodec() int32 { - if x != nil { - return x.Codec - } - return 0 -} - -func (x *GetPttUrlReq) GetBuId() int32 { - if x != nil { - return x.BuId - } - return 0 -} - -func (x *GetPttUrlReq) GetReqTransferType() int32 { - if x != nil { - return x.ReqTransferType - } - return 0 -} - -func (x *GetPttUrlReq) GetIsAuto() int32 { - if x != nil { - return x.IsAuto - } - return 0 -} - -type GetPttUrlRsp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FileId int64 `protobuf:"varint,1,opt,name=fileId,proto3" json:"fileId,omitempty"` - FileMd5 []byte `protobuf:"bytes,2,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` - Result int32 `protobuf:"varint,3,opt,name=result,proto3" json:"result,omitempty"` - FailMsg []byte `protobuf:"bytes,4,opt,name=failMsg,proto3" json:"failMsg,omitempty"` - BytesDownUrl []byte `protobuf:"bytes,5,opt,name=bytesDownUrl,proto3" json:"bytesDownUrl,omitempty"` - Uint32DownIp []int32 `protobuf:"varint,6,rep,packed,name=uint32DownIp,proto3" json:"uint32DownIp,omitempty"` - Uint32DownPort []int32 `protobuf:"varint,7,rep,packed,name=uint32DownPort,proto3" json:"uint32DownPort,omitempty"` - DownDomain []byte `protobuf:"bytes,8,opt,name=downDomain,proto3" json:"downDomain,omitempty"` - DownPara []byte `protobuf:"bytes,9,opt,name=downPara,proto3" json:"downPara,omitempty"` - //int64 fileId = 10; - TransferType int32 `protobuf:"varint,11,opt,name=transferType,proto3" json:"transferType,omitempty"` - AllowRetry int32 `protobuf:"varint,12,opt,name=allowRetry,proto3" json:"allowRetry,omitempty"` - //repeated IPv6Info msgDownIp6 = 26; - ClientIp6 []byte `protobuf:"bytes,27,opt,name=clientIp6,proto3" json:"clientIp6,omitempty"` - StrDomain string `protobuf:"bytes,28,opt,name=strDomain,proto3" json:"strDomain,omitempty"` -} - -func (x *GetPttUrlRsp) Reset() { - *x = GetPttUrlRsp{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetPttUrlRsp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetPttUrlRsp) ProtoMessage() {} - -func (x *GetPttUrlRsp) ProtoReflect() protoreflect.Message { - mi := &file_data_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 GetPttUrlRsp.ProtoReflect.Descriptor instead. -func (*GetPttUrlRsp) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{7} -} - -func (x *GetPttUrlRsp) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *GetPttUrlRsp) GetFileMd5() []byte { - if x != nil { - return x.FileMd5 - } - return nil -} - -func (x *GetPttUrlRsp) GetResult() int32 { - if x != nil { - return x.Result - } - return 0 -} - -func (x *GetPttUrlRsp) GetFailMsg() []byte { - if x != nil { - return x.FailMsg - } - return nil -} - -func (x *GetPttUrlRsp) GetBytesDownUrl() []byte { - if x != nil { - return x.BytesDownUrl - } - return nil -} - -func (x *GetPttUrlRsp) GetUint32DownIp() []int32 { - if x != nil { - return x.Uint32DownIp - } - return nil -} - -func (x *GetPttUrlRsp) GetUint32DownPort() []int32 { - if x != nil { - return x.Uint32DownPort - } - return nil -} - -func (x *GetPttUrlRsp) GetDownDomain() []byte { - if x != nil { - return x.DownDomain - } - return nil -} - -func (x *GetPttUrlRsp) GetDownPara() []byte { - if x != nil { - return x.DownPara - } - return nil -} - -func (x *GetPttUrlRsp) GetTransferType() int32 { - if x != nil { - return x.TransferType - } - return 0 -} - -func (x *GetPttUrlRsp) GetAllowRetry() int32 { - if x != nil { - return x.AllowRetry - } - return 0 -} - -func (x *GetPttUrlRsp) GetClientIp6() []byte { - if x != nil { - return x.ClientIp6 - } - return nil -} - -func (x *GetPttUrlRsp) GetStrDomain() string { - if x != nil { - return x.StrDomain - } - return "" -} - type ReqDataHighwayHead struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -846,7 +374,7 @@ type ReqDataHighwayHead struct { func (x *ReqDataHighwayHead) Reset() { *x = ReqDataHighwayHead{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[8] + mi := &file_data_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -859,7 +387,7 @@ func (x *ReqDataHighwayHead) String() string { func (*ReqDataHighwayHead) ProtoMessage() {} func (x *ReqDataHighwayHead) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[8] + mi := &file_data_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -872,7 +400,7 @@ func (x *ReqDataHighwayHead) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDataHighwayHead.ProtoReflect.Descriptor instead. func (*ReqDataHighwayHead) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{8} + return file_data_proto_rawDescGZIP(), []int{4} } func (x *ReqDataHighwayHead) GetMsgBasehead() *DataHighwayHead { @@ -923,7 +451,7 @@ type RspDataHighwayHead struct { func (x *RspDataHighwayHead) Reset() { *x = RspDataHighwayHead{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[9] + mi := &file_data_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -936,7 +464,7 @@ func (x *RspDataHighwayHead) String() string { func (*RspDataHighwayHead) ProtoMessage() {} func (x *RspDataHighwayHead) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[9] + mi := &file_data_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -949,7 +477,7 @@ func (x *RspDataHighwayHead) ProtoReflect() protoreflect.Message { // Deprecated: Use RspDataHighwayHead.ProtoReflect.Descriptor instead. func (*RspDataHighwayHead) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{9} + return file_data_proto_rawDescGZIP(), []int{5} } func (x *RspDataHighwayHead) GetMsgBasehead() *DataHighwayHead { @@ -1042,7 +570,7 @@ type DataHighwayHead struct { func (x *DataHighwayHead) Reset() { *x = DataHighwayHead{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[10] + mi := &file_data_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1055,7 +583,7 @@ func (x *DataHighwayHead) String() string { func (*DataHighwayHead) ProtoMessage() {} func (x *DataHighwayHead) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[10] + mi := &file_data_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1068,7 +596,7 @@ func (x *DataHighwayHead) ProtoReflect() protoreflect.Message { // Deprecated: Use DataHighwayHead.ProtoReflect.Descriptor instead. func (*DataHighwayHead) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{10} + return file_data_proto_rawDescGZIP(), []int{6} } func (x *DataHighwayHead) GetVersion() int32 { @@ -1163,7 +691,7 @@ type SegHead struct { func (x *SegHead) Reset() { *x = SegHead{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[11] + mi := &file_data_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1176,7 +704,7 @@ func (x *SegHead) String() string { func (*SegHead) ProtoMessage() {} func (x *SegHead) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[11] + mi := &file_data_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1189,7 +717,7 @@ func (x *SegHead) ProtoReflect() protoreflect.Message { // Deprecated: Use SegHead.ProtoReflect.Descriptor instead. func (*SegHead) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{11} + return file_data_proto_rawDescGZIP(), []int{7} } func (x *SegHead) GetServiceid() int32 { @@ -1276,697 +804,6 @@ func (x *SegHead) GetUpdateCacheip() int32 { return 0 } -type TryUpImgReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupCode int64 `protobuf:"varint,1,opt,name=groupCode,proto3" json:"groupCode,omitempty"` - SrcUin int64 `protobuf:"varint,2,opt,name=srcUin,proto3" json:"srcUin,omitempty"` - FileId int64 `protobuf:"varint,3,opt,name=fileId,proto3" json:"fileId,omitempty"` - FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` - FileSize int64 `protobuf:"varint,5,opt,name=fileSize,proto3" json:"fileSize,omitempty"` - FileName string `protobuf:"bytes,6,opt,name=fileName,proto3" json:"fileName,omitempty"` - SrcTerm int32 `protobuf:"varint,7,opt,name=srcTerm,proto3" json:"srcTerm,omitempty"` - PlatformType int32 `protobuf:"varint,8,opt,name=platformType,proto3" json:"platformType,omitempty"` - BuType int32 `protobuf:"varint,9,opt,name=buType,proto3" json:"buType,omitempty"` - PicWidth int32 `protobuf:"varint,10,opt,name=picWidth,proto3" json:"picWidth,omitempty"` - PicHeight int32 `protobuf:"varint,11,opt,name=picHeight,proto3" json:"picHeight,omitempty"` - PicType int32 `protobuf:"varint,12,opt,name=picType,proto3" json:"picType,omitempty"` - BuildVer string `protobuf:"bytes,13,opt,name=buildVer,proto3" json:"buildVer,omitempty"` - InnerIp int32 `protobuf:"varint,14,opt,name=innerIp,proto3" json:"innerIp,omitempty"` - AppPicType int32 `protobuf:"varint,15,opt,name=appPicType,proto3" json:"appPicType,omitempty"` - OriginalPic int32 `protobuf:"varint,16,opt,name=originalPic,proto3" json:"originalPic,omitempty"` - FileIndex []byte `protobuf:"bytes,17,opt,name=fileIndex,proto3" json:"fileIndex,omitempty"` - DstUin int64 `protobuf:"varint,18,opt,name=dstUin,proto3" json:"dstUin,omitempty"` - SrvUpload int32 `protobuf:"varint,19,opt,name=srvUpload,proto3" json:"srvUpload,omitempty"` - TransferUrl []byte `protobuf:"bytes,20,opt,name=transferUrl,proto3" json:"transferUrl,omitempty"` -} - -func (x *TryUpImgReq) Reset() { - *x = TryUpImgReq{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TryUpImgReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TryUpImgReq) ProtoMessage() {} - -func (x *TryUpImgReq) ProtoReflect() protoreflect.Message { - mi := &file_data_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 TryUpImgReq.ProtoReflect.Descriptor instead. -func (*TryUpImgReq) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{12} -} - -func (x *TryUpImgReq) GetGroupCode() int64 { - if x != nil { - return x.GroupCode - } - return 0 -} - -func (x *TryUpImgReq) GetSrcUin() int64 { - if x != nil { - return x.SrcUin - } - return 0 -} - -func (x *TryUpImgReq) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *TryUpImgReq) GetFileMd5() []byte { - if x != nil { - return x.FileMd5 - } - return nil -} - -func (x *TryUpImgReq) GetFileSize() int64 { - if x != nil { - return x.FileSize - } - return 0 -} - -func (x *TryUpImgReq) GetFileName() string { - if x != nil { - return x.FileName - } - return "" -} - -func (x *TryUpImgReq) GetSrcTerm() int32 { - if x != nil { - return x.SrcTerm - } - return 0 -} - -func (x *TryUpImgReq) GetPlatformType() int32 { - if x != nil { - return x.PlatformType - } - return 0 -} - -func (x *TryUpImgReq) GetBuType() int32 { - if x != nil { - return x.BuType - } - return 0 -} - -func (x *TryUpImgReq) GetPicWidth() int32 { - if x != nil { - return x.PicWidth - } - return 0 -} - -func (x *TryUpImgReq) GetPicHeight() int32 { - if x != nil { - return x.PicHeight - } - return 0 -} - -func (x *TryUpImgReq) GetPicType() int32 { - if x != nil { - return x.PicType - } - return 0 -} - -func (x *TryUpImgReq) GetBuildVer() string { - if x != nil { - return x.BuildVer - } - return "" -} - -func (x *TryUpImgReq) GetInnerIp() int32 { - if x != nil { - return x.InnerIp - } - return 0 -} - -func (x *TryUpImgReq) GetAppPicType() int32 { - if x != nil { - return x.AppPicType - } - return 0 -} - -func (x *TryUpImgReq) GetOriginalPic() int32 { - if x != nil { - return x.OriginalPic - } - return 0 -} - -func (x *TryUpImgReq) GetFileIndex() []byte { - if x != nil { - return x.FileIndex - } - return nil -} - -func (x *TryUpImgReq) GetDstUin() int64 { - if x != nil { - return x.DstUin - } - return 0 -} - -func (x *TryUpImgReq) GetSrvUpload() int32 { - if x != nil { - return x.SrvUpload - } - return 0 -} - -func (x *TryUpImgReq) GetTransferUrl() []byte { - if x != nil { - return x.TransferUrl - } - return nil -} - -type TryUpImgResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FileId int64 `protobuf:"varint,1,opt,name=fileId,proto3" json:"fileId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` - FailMsg string `protobuf:"bytes,3,opt,name=failMsg,proto3" json:"failMsg,omitempty"` - BoolFileExit bool `protobuf:"varint,4,opt,name=boolFileExit,proto3" json:"boolFileExit,omitempty"` - MsgImgInfo *ImgInfo `protobuf:"bytes,5,opt,name=msgImgInfo,proto3" json:"msgImgInfo,omitempty"` - Uint32UpIp []uint32 `protobuf:"varint,6,rep,packed,name=uint32UpIp,proto3" json:"uint32UpIp,omitempty"` - Uint32UpPort []uint32 `protobuf:"varint,7,rep,packed,name=uint32UpPort,proto3" json:"uint32UpPort,omitempty"` - UpUkey []byte `protobuf:"bytes,8,opt,name=upUkey,proto3" json:"upUkey,omitempty"` - Fid int64 `protobuf:"varint,9,opt,name=fid,proto3" json:"fid,omitempty"` -} - -func (x *TryUpImgResp) Reset() { - *x = TryUpImgResp{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TryUpImgResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TryUpImgResp) ProtoMessage() {} - -func (x *TryUpImgResp) ProtoReflect() protoreflect.Message { - mi := &file_data_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 TryUpImgResp.ProtoReflect.Descriptor instead. -func (*TryUpImgResp) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{13} -} - -func (x *TryUpImgResp) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *TryUpImgResp) GetResult() int32 { - if x != nil { - return x.Result - } - return 0 -} - -func (x *TryUpImgResp) GetFailMsg() string { - if x != nil { - return x.FailMsg - } - return "" -} - -func (x *TryUpImgResp) GetBoolFileExit() bool { - if x != nil { - return x.BoolFileExit - } - return false -} - -func (x *TryUpImgResp) GetMsgImgInfo() *ImgInfo { - if x != nil { - return x.MsgImgInfo - } - return nil -} - -func (x *TryUpImgResp) GetUint32UpIp() []uint32 { - if x != nil { - return x.Uint32UpIp - } - return nil -} - -func (x *TryUpImgResp) GetUint32UpPort() []uint32 { - if x != nil { - return x.Uint32UpPort - } - return nil -} - -func (x *TryUpImgResp) GetUpUkey() []byte { - if x != nil { - return x.UpUkey - } - return nil -} - -func (x *TryUpImgResp) GetFid() int64 { - if x != nil { - return x.Fid - } - return 0 -} - -type TryUpPttReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupCode int64 `protobuf:"varint,1,opt,name=groupCode,proto3" json:"groupCode,omitempty"` - SrcUin int64 `protobuf:"varint,2,opt,name=srcUin,proto3" json:"srcUin,omitempty"` - FileId int64 `protobuf:"varint,3,opt,name=fileId,proto3" json:"fileId,omitempty"` - FileMd5 []byte `protobuf:"bytes,4,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` - FileSize int64 `protobuf:"varint,5,opt,name=fileSize,proto3" json:"fileSize,omitempty"` - FileName []byte `protobuf:"bytes,6,opt,name=fileName,proto3" json:"fileName,omitempty"` - SrcTerm int32 `protobuf:"varint,7,opt,name=srcTerm,proto3" json:"srcTerm,omitempty"` - PlatformType int32 `protobuf:"varint,8,opt,name=platformType,proto3" json:"platformType,omitempty"` - BuType int32 `protobuf:"varint,9,opt,name=buType,proto3" json:"buType,omitempty"` - BuildVer string `protobuf:"bytes,10,opt,name=buildVer,proto3" json:"buildVer,omitempty"` - InnerIp int32 `protobuf:"varint,11,opt,name=innerIp,proto3" json:"innerIp,omitempty"` - VoiceLength int32 `protobuf:"varint,12,opt,name=voiceLength,proto3" json:"voiceLength,omitempty"` - BoolNewUpChan bool `protobuf:"varint,13,opt,name=boolNewUpChan,proto3" json:"boolNewUpChan,omitempty"` - Codec int32 `protobuf:"varint,14,opt,name=codec,proto3" json:"codec,omitempty"` - VoiceType int32 `protobuf:"varint,15,opt,name=voiceType,proto3" json:"voiceType,omitempty"` - BuId int32 `protobuf:"varint,16,opt,name=buId,proto3" json:"buId,omitempty"` -} - -func (x *TryUpPttReq) Reset() { - *x = TryUpPttReq{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TryUpPttReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TryUpPttReq) ProtoMessage() {} - -func (x *TryUpPttReq) ProtoReflect() protoreflect.Message { - mi := &file_data_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 TryUpPttReq.ProtoReflect.Descriptor instead. -func (*TryUpPttReq) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{14} -} - -func (x *TryUpPttReq) GetGroupCode() int64 { - if x != nil { - return x.GroupCode - } - return 0 -} - -func (x *TryUpPttReq) GetSrcUin() int64 { - if x != nil { - return x.SrcUin - } - return 0 -} - -func (x *TryUpPttReq) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *TryUpPttReq) GetFileMd5() []byte { - if x != nil { - return x.FileMd5 - } - return nil -} - -func (x *TryUpPttReq) GetFileSize() int64 { - if x != nil { - return x.FileSize - } - return 0 -} - -func (x *TryUpPttReq) GetFileName() []byte { - if x != nil { - return x.FileName - } - return nil -} - -func (x *TryUpPttReq) GetSrcTerm() int32 { - if x != nil { - return x.SrcTerm - } - return 0 -} - -func (x *TryUpPttReq) GetPlatformType() int32 { - if x != nil { - return x.PlatformType - } - return 0 -} - -func (x *TryUpPttReq) GetBuType() int32 { - if x != nil { - return x.BuType - } - return 0 -} - -func (x *TryUpPttReq) GetBuildVer() string { - if x != nil { - return x.BuildVer - } - return "" -} - -func (x *TryUpPttReq) GetInnerIp() int32 { - if x != nil { - return x.InnerIp - } - return 0 -} - -func (x *TryUpPttReq) GetVoiceLength() int32 { - if x != nil { - return x.VoiceLength - } - return 0 -} - -func (x *TryUpPttReq) GetBoolNewUpChan() bool { - if x != nil { - return x.BoolNewUpChan - } - return false -} - -func (x *TryUpPttReq) GetCodec() int32 { - if x != nil { - return x.Codec - } - return 0 -} - -func (x *TryUpPttReq) GetVoiceType() int32 { - if x != nil { - return x.VoiceType - } - return 0 -} - -func (x *TryUpPttReq) GetBuId() int32 { - if x != nil { - return x.BuId - } - return 0 -} - -type TryUpPttResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FileId int64 `protobuf:"varint,1,opt,name=fileId,proto3" json:"fileId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` - FailMsg string `protobuf:"bytes,3,opt,name=failMsg,proto3" json:"failMsg,omitempty"` - BoolFileExit bool `protobuf:"varint,4,opt,name=boolFileExit,proto3" json:"boolFileExit,omitempty"` - Uint32UpIp []int32 `protobuf:"varint,5,rep,packed,name=uint32UpIp,proto3" json:"uint32UpIp,omitempty"` - Uint32UpPort []int32 `protobuf:"varint,6,rep,packed,name=uint32UpPort,proto3" json:"uint32UpPort,omitempty"` - UpUkey []byte `protobuf:"bytes,7,opt,name=upUkey,proto3" json:"upUkey,omitempty"` - FileId2 int64 `protobuf:"varint,8,opt,name=fileId2,proto3" json:"fileId2,omitempty"` - UpOffset int64 `protobuf:"varint,9,opt,name=upOffset,proto3" json:"upOffset,omitempty"` - BlockSize int64 `protobuf:"varint,10,opt,name=blockSize,proto3" json:"blockSize,omitempty"` - FileKey []byte `protobuf:"bytes,11,opt,name=fileKey,proto3" json:"fileKey,omitempty"` - ChannelType int32 `protobuf:"varint,12,opt,name=channelType,proto3" json:"channelType,omitempty"` -} - -func (x *TryUpPttResp) Reset() { - *x = TryUpPttResp{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TryUpPttResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TryUpPttResp) ProtoMessage() {} - -func (x *TryUpPttResp) ProtoReflect() protoreflect.Message { - mi := &file_data_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 TryUpPttResp.ProtoReflect.Descriptor instead. -func (*TryUpPttResp) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{15} -} - -func (x *TryUpPttResp) GetFileId() int64 { - if x != nil { - return x.FileId - } - return 0 -} - -func (x *TryUpPttResp) GetResult() int32 { - if x != nil { - return x.Result - } - return 0 -} - -func (x *TryUpPttResp) GetFailMsg() string { - if x != nil { - return x.FailMsg - } - return "" -} - -func (x *TryUpPttResp) GetBoolFileExit() bool { - if x != nil { - return x.BoolFileExit - } - return false -} - -func (x *TryUpPttResp) GetUint32UpIp() []int32 { - if x != nil { - return x.Uint32UpIp - } - return nil -} - -func (x *TryUpPttResp) GetUint32UpPort() []int32 { - if x != nil { - return x.Uint32UpPort - } - return nil -} - -func (x *TryUpPttResp) GetUpUkey() []byte { - if x != nil { - return x.UpUkey - } - return nil -} - -func (x *TryUpPttResp) GetFileId2() int64 { - if x != nil { - return x.FileId2 - } - return 0 -} - -func (x *TryUpPttResp) GetUpOffset() int64 { - if x != nil { - return x.UpOffset - } - return 0 -} - -func (x *TryUpPttResp) GetBlockSize() int64 { - if x != nil { - return x.BlockSize - } - return 0 -} - -func (x *TryUpPttResp) GetFileKey() []byte { - if x != nil { - return x.FileKey - } - return nil -} - -func (x *TryUpPttResp) GetChannelType() int32 { - if x != nil { - return x.ChannelType - } - return 0 -} - -type ImgInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FileMd5 []byte `protobuf:"bytes,1,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` - FileType int32 `protobuf:"varint,2,opt,name=fileType,proto3" json:"fileType,omitempty"` - FileSize int64 `protobuf:"varint,3,opt,name=fileSize,proto3" json:"fileSize,omitempty"` - FileWidth int32 `protobuf:"varint,4,opt,name=fileWidth,proto3" json:"fileWidth,omitempty"` - FileHeight int32 `protobuf:"varint,5,opt,name=fileHeight,proto3" json:"fileHeight,omitempty"` -} - -func (x *ImgInfo) Reset() { - *x = ImgInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ImgInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ImgInfo) ProtoMessage() {} - -func (x *ImgInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_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 ImgInfo.ProtoReflect.Descriptor instead. -func (*ImgInfo) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{16} -} - -func (x *ImgInfo) GetFileMd5() []byte { - if x != nil { - return x.FileMd5 - } - return nil -} - -func (x *ImgInfo) GetFileType() int32 { - if x != nil { - return x.FileType - } - return 0 -} - -func (x *ImgInfo) GetFileSize() int64 { - if x != nil { - return x.FileSize - } - return 0 -} - -func (x *ImgInfo) GetFileWidth() int32 { - if x != nil { - return x.FileWidth - } - return 0 -} - -func (x *ImgInfo) GetFileHeight() int32 { - if x != nil { - return x.FileHeight - } - return 0 -} - type DeleteMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1978,7 +815,7 @@ type DeleteMessageRequest struct { func (x *DeleteMessageRequest) Reset() { *x = DeleteMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[17] + mi := &file_data_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1991,7 +828,7 @@ func (x *DeleteMessageRequest) String() string { func (*DeleteMessageRequest) ProtoMessage() {} func (x *DeleteMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[17] + mi := &file_data_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2004,7 +841,7 @@ func (x *DeleteMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessageRequest.ProtoReflect.Descriptor instead. func (*DeleteMessageRequest) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{17} + return file_data_proto_rawDescGZIP(), []int{8} } func (x *DeleteMessageRequest) GetItems() []*MessageItem { @@ -2030,7 +867,7 @@ type MessageItem struct { func (x *MessageItem) Reset() { *x = MessageItem{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[18] + mi := &file_data_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2043,7 +880,7 @@ func (x *MessageItem) String() string { func (*MessageItem) ProtoMessage() {} func (x *MessageItem) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[18] + mi := &file_data_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2056,7 +893,7 @@ func (x *MessageItem) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageItem.ProtoReflect.Descriptor instead. func (*MessageItem) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{18} + return file_data_proto_rawDescGZIP(), []int{9} } func (x *MessageItem) GetFromUin() int64 { @@ -2112,7 +949,7 @@ type SubD4 struct { func (x *SubD4) Reset() { *x = SubD4{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[19] + mi := &file_data_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2125,7 +962,7 @@ func (x *SubD4) String() string { func (*SubD4) ProtoMessage() {} func (x *SubD4) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[19] + mi := &file_data_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2138,7 +975,7 @@ func (x *SubD4) ProtoReflect() protoreflect.Message { // Deprecated: Use SubD4.ProtoReflect.Descriptor instead. func (*SubD4) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{19} + return file_data_proto_rawDescGZIP(), []int{10} } func (x *SubD4) GetUin() int64 { @@ -2163,7 +1000,7 @@ type Sub8A struct { func (x *Sub8A) Reset() { *x = Sub8A{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[20] + mi := &file_data_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2176,7 +1013,7 @@ func (x *Sub8A) String() string { func (*Sub8A) ProtoMessage() {} func (x *Sub8A) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[20] + mi := &file_data_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2189,7 +1026,7 @@ func (x *Sub8A) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub8A.ProtoReflect.Descriptor instead. func (*Sub8A) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{20} + return file_data_proto_rawDescGZIP(), []int{11} } func (x *Sub8A) GetMsgInfo() []*Sub8AMsgInfo { @@ -2246,7 +1083,7 @@ type Sub8AMsgInfo struct { func (x *Sub8AMsgInfo) Reset() { *x = Sub8AMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[21] + mi := &file_data_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2259,7 +1096,7 @@ func (x *Sub8AMsgInfo) String() string { func (*Sub8AMsgInfo) ProtoMessage() {} func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[21] + mi := &file_data_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2272,7 +1109,7 @@ func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub8AMsgInfo.ProtoReflect.Descriptor instead. func (*Sub8AMsgInfo) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{21} + return file_data_proto_rawDescGZIP(), []int{12} } func (x *Sub8AMsgInfo) GetFromUin() int64 { @@ -2350,7 +1187,7 @@ type SubB3 struct { func (x *SubB3) Reset() { *x = SubB3{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[22] + mi := &file_data_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2363,7 +1200,7 @@ func (x *SubB3) String() string { func (*SubB3) ProtoMessage() {} func (x *SubB3) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[22] + mi := &file_data_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2376,7 +1213,7 @@ func (x *SubB3) ProtoReflect() protoreflect.Message { // Deprecated: Use SubB3.ProtoReflect.Descriptor instead. func (*SubB3) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{22} + return file_data_proto_rawDescGZIP(), []int{13} } func (x *SubB3) GetType() int32 { @@ -2405,7 +1242,7 @@ type SubB3AddFrdNotify struct { func (x *SubB3AddFrdNotify) Reset() { *x = SubB3AddFrdNotify{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[23] + mi := &file_data_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2418,7 +1255,7 @@ func (x *SubB3AddFrdNotify) String() string { func (*SubB3AddFrdNotify) ProtoMessage() {} func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[23] + mi := &file_data_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2431,7 +1268,7 @@ func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use SubB3AddFrdNotify.ProtoReflect.Descriptor instead. func (*SubB3AddFrdNotify) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{23} + return file_data_proto_rawDescGZIP(), []int{14} } func (x *SubB3AddFrdNotify) GetUin() int64 { @@ -2460,7 +1297,7 @@ type Sub44 struct { func (x *Sub44) Reset() { *x = Sub44{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[24] + mi := &file_data_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2473,7 +1310,7 @@ func (x *Sub44) String() string { func (*Sub44) ProtoMessage() {} func (x *Sub44) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[24] + mi := &file_data_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2486,7 +1323,7 @@ func (x *Sub44) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44.ProtoReflect.Descriptor instead. func (*Sub44) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{24} + return file_data_proto_rawDescGZIP(), []int{15} } func (x *Sub44) GetFriendSyncMsg() *Sub44FriendSyncMsg { @@ -2521,7 +1358,7 @@ type Sub44FriendSyncMsg struct { func (x *Sub44FriendSyncMsg) Reset() { *x = Sub44FriendSyncMsg{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[25] + mi := &file_data_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2534,7 +1371,7 @@ func (x *Sub44FriendSyncMsg) String() string { func (*Sub44FriendSyncMsg) ProtoMessage() {} func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[25] + mi := &file_data_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2547,7 +1384,7 @@ func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44FriendSyncMsg.ProtoReflect.Descriptor instead. func (*Sub44FriendSyncMsg) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{25} + return file_data_proto_rawDescGZIP(), []int{16} } func (x *Sub44FriendSyncMsg) GetUin() int64 { @@ -2635,7 +1472,7 @@ type Sub44GroupSyncMsg struct { func (x *Sub44GroupSyncMsg) Reset() { *x = Sub44GroupSyncMsg{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[26] + mi := &file_data_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2648,7 +1485,7 @@ func (x *Sub44GroupSyncMsg) String() string { func (*Sub44GroupSyncMsg) ProtoMessage() {} func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[26] + mi := &file_data_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2661,7 +1498,7 @@ func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use Sub44GroupSyncMsg.ProtoReflect.Descriptor instead. func (*Sub44GroupSyncMsg) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{26} + return file_data_proto_rawDescGZIP(), []int{17} } func (x *Sub44GroupSyncMsg) GetMsgType() int32 { @@ -2812,7 +1649,7 @@ type GroupMemberReqBody struct { func (x *GroupMemberReqBody) Reset() { *x = GroupMemberReqBody{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[27] + mi := &file_data_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2825,7 +1662,7 @@ func (x *GroupMemberReqBody) String() string { func (*GroupMemberReqBody) ProtoMessage() {} func (x *GroupMemberReqBody) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[27] + mi := &file_data_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2838,7 +1675,7 @@ func (x *GroupMemberReqBody) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberReqBody.ProtoReflect.Descriptor instead. func (*GroupMemberReqBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{27} + return file_data_proto_rawDescGZIP(), []int{18} } func (x *GroupMemberReqBody) GetGroupCode() int64 { @@ -2891,7 +1728,7 @@ type GroupMemberRspBody struct { func (x *GroupMemberRspBody) Reset() { *x = GroupMemberRspBody{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[28] + mi := &file_data_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2904,7 +1741,7 @@ func (x *GroupMemberRspBody) String() string { func (*GroupMemberRspBody) ProtoMessage() {} func (x *GroupMemberRspBody) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[28] + mi := &file_data_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2917,7 +1754,7 @@ func (x *GroupMemberRspBody) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberRspBody.ProtoReflect.Descriptor instead. func (*GroupMemberRspBody) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{28} + return file_data_proto_rawDescGZIP(), []int{19} } func (x *GroupMemberRspBody) GetGroupCode() int64 { @@ -3004,7 +1841,7 @@ type GroupMemberInfo struct { func (x *GroupMemberInfo) Reset() { *x = GroupMemberInfo{} if protoimpl.UnsafeEnabled { - mi := &file_data_proto_msgTypes[29] + mi := &file_data_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3017,7 +1854,7 @@ func (x *GroupMemberInfo) String() string { func (*GroupMemberInfo) ProtoMessage() {} func (x *GroupMemberInfo) ProtoReflect() protoreflect.Message { - mi := &file_data_proto_msgTypes[29] + mi := &file_data_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3030,7 +1867,7 @@ func (x *GroupMemberInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMemberInfo.ProtoReflect.Descriptor instead. func (*GroupMemberInfo) Descriptor() ([]byte, []int) { - return file_data_proto_rawDescGZIP(), []int{29} + return file_data_proto_rawDescGZIP(), []int{20} } func (x *GroupMemberInfo) GetUin() int64 { @@ -3335,475 +2172,276 @@ var file_data_proto_rawDesc = []byte{ 0x75, 0x74, 0x75, 0x61, 0x6c, 0x6d, 0x61, 0x72, 0x6b, 0x4c, 0x62, 0x73, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x89, 0x86, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x72, 0x65, 0x71, 0x4d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x6d, 0x61, 0x72, 0x6b, 0x4c, 0x62, 0x73, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x22, 0x9b, 0x02, 0x0a, 0x0b, 0x44, 0x33, 0x38, 0x38, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, - 0x62, 0x63, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, - 0x6d, 0x64, 0x12, 0x34, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, - 0x67, 0x52, 0x65, 0x71, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x79, - 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x54, 0x72, 0x79, - 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x54, - 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x52, 0x0e, - 0x6d, 0x73, 0x67, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x12, 0x31, - 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, - 0x52, 0x65, 0x71, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe9, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe9, - 0x01, 0x0a, 0x0c, 0x44, 0x33, 0x38, 0x38, 0x52, 0x65, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, - 0x43, 0x6d, 0x64, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, - 0x6d, 0x67, 0x52, 0x73, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x72, - 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x54, - 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x73, - 0x67, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x73, 0x70, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x73, - 0x70, 0x12, 0x37, 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, - 0x6c, 0x52, 0x73, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x52, 0x0f, 0x6d, 0x73, 0x67, 0x47, 0x65, - 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x22, 0x8e, 0x03, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 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, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, - 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 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, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x28, 0x0a, - 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x49, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x75, 0x49, 0x64, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x62, 0x75, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x71, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x22, 0x9e, 0x03, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x65, 0x49, 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, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, 0x67, - 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x55, 0x72, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x77, - 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, - 0x77, 0x6e, 0x49, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x44, 0x6f, 0x77, 0x6e, 0x49, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0e, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x12, 0x22, 0x0a, 0x0c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x70, 0x36, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0xb6, 0x01, 0x0a, - 0x12, 0x52, 0x65, 0x71, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, - 0x65, 0x61, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x68, 0x65, - 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x42, - 0x61, 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, - 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x65, - 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, 0x61, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xda, 0x02, 0x0a, 0x12, 0x52, 0x73, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x12, 0x32, 0x0a, 0x0b, - 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, - 0x65, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, - 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x65, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0a, - 0x6d, 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x74, 0x63, 0x6f, 0x73, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x74, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x72, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, - 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1e, - 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x66, 0x6c, 0x61, 0x67, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xe5, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x48, 0x65, - 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x69, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x61, 0x74, 0x61, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x74, - 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x74, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, - 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x64, 0x35, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x69, 0x70, 0x22, 0xc5, - 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x79, 0x55, 0x70, 0x49, 0x6d, 0x67, 0x52, 0x65, 0x71, 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, 0x16, 0x0a, 0x06, - 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, - 0x63, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 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, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x62, 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x70, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x56, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, - 0x64, 0x56, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, - 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x50, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x50, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, 0x63, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x50, 0x69, 0x63, - 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x72, 0x76, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x72, 0x76, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x55, 0x72, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x22, 0x94, 0x02, 0x0a, 0x0c, 0x54, 0x72, 0x79, 0x55, 0x70, - 0x49, 0x6d, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, - 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x4d, 0x73, - 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, - 0x65, 0x45, 0x78, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x49, 0x6d, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x49, 0x6d, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x49, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1e, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x49, 0x70, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x49, 0x70, 0x12, - 0x22, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x66, - 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x69, 0x64, 0x22, 0xc9, 0x03, - 0x0a, 0x0b, 0x54, 0x72, 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x71, 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, 0x16, 0x0a, 0x06, 0x73, - 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, - 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 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, 0x53, 0x69, 0x7a, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x73, 0x72, 0x63, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x75, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x75, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, - 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, - 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, - 0x6f, 0x6f, 0x6c, 0x4e, 0x65, 0x77, 0x55, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x4e, 0x65, 0x77, 0x55, 0x70, 0x43, 0x68, 0x61, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x75, 0x49, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x62, 0x75, 0x49, 0x64, 0x22, 0xe8, 0x02, 0x0a, 0x0c, 0x54, 0x72, - 0x79, 0x55, 0x70, 0x50, 0x74, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, - 0x69, 0x6c, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x69, - 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, - 0x45, 0x78, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, - 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x55, 0x70, 0x49, 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x55, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c, - 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x70, 0x55, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x75, 0x70, - 0x55, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x32, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x32, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x75, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, - 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, - 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x07, 0x49, 0x6d, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x04, 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, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0x3a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x99, 0x01, 0x0a, - 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x19, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x44, - 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, - 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x38, 0x41, 0x12, 0x28, 0x0a, - 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, - 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, - 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xf2, 0x01, 0x0a, 0x0c, - 0x53, 0x75, 0x62, 0x38, 0x41, 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, 0x65, 0x76, 0x53, - 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x76, 0x53, 0x65, 0x71, - 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, - 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, - 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0f, 0x6d, 0x73, 0x67, 0x41, - 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x53, - 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, - 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x34, 0x34, 0x12, - 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0d, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0c, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, - 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, - 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66, 0x55, 0x69, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, - 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, - 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, - 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, - 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, - 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x78, - 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x49, - 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, 0x64, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, - 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x78, 0x74, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, - 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, 0x10, - 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, - 0x0a, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 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, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, - 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, - 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x66, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x07, 0x0a, 0x0f, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, - 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, - 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6e, 0x63, 0x65, - 0x72, 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, 0x6f, - 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63, - 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x76, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6c, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6a, 0x6f, 0x69, - 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, - 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, - 0x72, 0x55, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, - 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x26, 0x0a, - 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x43, 0x61, 0x72, 0x64, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, - 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x53, - 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, - 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x53, - 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, - 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, - 0x76, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, 0x76, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, - 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1d, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x22, 0xb6, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, + 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x42, 0x61, + 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, + 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x0a, 0x6d, + 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x08, 0x2e, 0x53, 0x65, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, + 0x71, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xda, 0x02, 0x0a, 0x12, 0x52, 0x73, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, + 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x68, 0x65, 0x61, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x69, 0x67, 0x68, + 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, + 0x68, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, + 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x65, 0x67, 0x48, 0x65, + 0x61, 0x64, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x74, + 0x63, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x74, 0x63, 0x6f, + 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x73, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x73, 0x52, 0x65, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, + 0x73, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, + 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, + 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xe5, 0x02, 0x0a, 0x07, 0x53, + 0x65, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, + 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x6d, 0x64, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x41, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x69, 0x70, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x69, 0x70, 0x22, 0x3a, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x99, + 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x6d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x19, 0x0a, 0x05, 0x53, 0x75, + 0x62, 0x44, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x38, 0x41, 0x12, + 0x28, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 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, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xf2, 0x01, + 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x38, 0x41, 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, 0x65, + 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x65, 0x76, 0x53, + 0x65, 0x71, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x3c, 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x42, 0x33, + 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0f, 0x6d, 0x73, + 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x39, 0x0a, + 0x11, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x34, + 0x34, 0x12, 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, + 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0d, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0c, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, + 0x63, 0x4d, 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34, 0x34, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x66, 0x55, 0x69, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x75, 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, + 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x34, + 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x61, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x55, 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x75, 0x72, + 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x4d, + 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, + 0x63, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x53, 0x72, + 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, + 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63, + 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x78, + 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xac, 0x01, 0x0a, 0x12, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x42, 0x6f, + 0x64, 0x79, 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, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, + 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x56, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x69, 0x63, 0x68, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x22, 0xd0, 0x01, 0x0a, 0x12, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, + 0x79, 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, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x6d, + 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, + 0x6d, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, + 0x65, 0x6c, 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x6c, + 0x66, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x07, + 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x75, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6e, + 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, + 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x76, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6c, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6a, + 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x67, 0x62, 0x61, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x62, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x67, 0x62, + 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x62, 0x61, 0x72, 0x43, 0x6e, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x4d, 0x6f, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x69, 0x73, 0x59, 0x65, 0x61, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x56, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x51, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69, 0x70, + 0x4c, 0x65, 0x76, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x69, 0x70, 0x4c, 0x65, + 0x76, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x24, 0x0a, + 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x72, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x54, 0x69, 0x74, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x23, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6a, - 0x6f, 0x62, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, - 0x05, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x68, 0x6f, - 0x6e, 0x6f, 0x72, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x23, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, + 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x3b, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3818,63 +2456,47 @@ func file_data_proto_rawDescGZIP() []byte { return file_data_proto_rawDescData } -var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_data_proto_goTypes = []interface{}{ (*DeviceInfo)(nil), // 0: DeviceInfo (*RequestBody)(nil), // 1: RequestBody (*ConfigSeq)(nil), // 2: ConfigSeq (*D50ReqBody)(nil), // 3: D50ReqBody - (*D388ReqBody)(nil), // 4: D388ReqBody - (*D388RespBody)(nil), // 5: D388RespBody - (*GetPttUrlReq)(nil), // 6: GetPttUrlReq - (*GetPttUrlRsp)(nil), // 7: GetPttUrlRsp - (*ReqDataHighwayHead)(nil), // 8: ReqDataHighwayHead - (*RspDataHighwayHead)(nil), // 9: RspDataHighwayHead - (*DataHighwayHead)(nil), // 10: DataHighwayHead - (*SegHead)(nil), // 11: SegHead - (*TryUpImgReq)(nil), // 12: TryUpImgReq - (*TryUpImgResp)(nil), // 13: TryUpImgResp - (*TryUpPttReq)(nil), // 14: TryUpPttReq - (*TryUpPttResp)(nil), // 15: TryUpPttResp - (*ImgInfo)(nil), // 16: ImgInfo - (*DeleteMessageRequest)(nil), // 17: DeleteMessageRequest - (*MessageItem)(nil), // 18: MessageItem - (*SubD4)(nil), // 19: SubD4 - (*Sub8A)(nil), // 20: Sub8A - (*Sub8AMsgInfo)(nil), // 21: Sub8AMsgInfo - (*SubB3)(nil), // 22: SubB3 - (*SubB3AddFrdNotify)(nil), // 23: SubB3AddFrdNotify - (*Sub44)(nil), // 24: Sub44 - (*Sub44FriendSyncMsg)(nil), // 25: Sub44FriendSyncMsg - (*Sub44GroupSyncMsg)(nil), // 26: Sub44GroupSyncMsg - (*GroupMemberReqBody)(nil), // 27: GroupMemberReqBody - (*GroupMemberRspBody)(nil), // 28: GroupMemberRspBody - (*GroupMemberInfo)(nil), // 29: GroupMemberInfo + (*ReqDataHighwayHead)(nil), // 4: ReqDataHighwayHead + (*RspDataHighwayHead)(nil), // 5: RspDataHighwayHead + (*DataHighwayHead)(nil), // 6: DataHighwayHead + (*SegHead)(nil), // 7: SegHead + (*DeleteMessageRequest)(nil), // 8: DeleteMessageRequest + (*MessageItem)(nil), // 9: MessageItem + (*SubD4)(nil), // 10: SubD4 + (*Sub8A)(nil), // 11: Sub8A + (*Sub8AMsgInfo)(nil), // 12: Sub8AMsgInfo + (*SubB3)(nil), // 13: SubB3 + (*SubB3AddFrdNotify)(nil), // 14: SubB3AddFrdNotify + (*Sub44)(nil), // 15: Sub44 + (*Sub44FriendSyncMsg)(nil), // 16: Sub44FriendSyncMsg + (*Sub44GroupSyncMsg)(nil), // 17: Sub44GroupSyncMsg + (*GroupMemberReqBody)(nil), // 18: GroupMemberReqBody + (*GroupMemberRspBody)(nil), // 19: GroupMemberRspBody + (*GroupMemberInfo)(nil), // 20: GroupMemberInfo } var file_data_proto_depIdxs = []int32{ 2, // 0: RequestBody.rpt_config_list:type_name -> ConfigSeq - 12, // 1: D388ReqBody.msgTryUpImgReq:type_name -> TryUpImgReq - 14, // 2: D388ReqBody.msgTryUpPttReq:type_name -> TryUpPttReq - 6, // 3: D388ReqBody.msgGetPttReq:type_name -> GetPttUrlReq - 13, // 4: D388RespBody.msgTryUpImgRsp:type_name -> TryUpImgResp - 15, // 5: D388RespBody.msgTryUpPttRsp:type_name -> TryUpPttResp - 7, // 6: D388RespBody.msgGetPttUrlRsp:type_name -> GetPttUrlRsp - 10, // 7: ReqDataHighwayHead.msgBasehead:type_name -> DataHighwayHead - 11, // 8: ReqDataHighwayHead.msgSeghead:type_name -> SegHead - 10, // 9: RspDataHighwayHead.msgBasehead:type_name -> DataHighwayHead - 11, // 10: RspDataHighwayHead.msgSeghead:type_name -> SegHead - 16, // 11: TryUpImgResp.msgImgInfo:type_name -> ImgInfo - 18, // 12: DeleteMessageRequest.items:type_name -> MessageItem - 21, // 13: Sub8A.msg_info:type_name -> Sub8AMsgInfo - 23, // 14: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify - 25, // 15: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg - 26, // 16: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg - 29, // 17: GroupMemberRspBody.memInfo:type_name -> GroupMemberInfo - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 6, // 1: ReqDataHighwayHead.msgBasehead:type_name -> DataHighwayHead + 7, // 2: ReqDataHighwayHead.msgSeghead:type_name -> SegHead + 6, // 3: RspDataHighwayHead.msgBasehead:type_name -> DataHighwayHead + 7, // 4: RspDataHighwayHead.msgSeghead:type_name -> SegHead + 9, // 5: DeleteMessageRequest.items:type_name -> MessageItem + 12, // 6: Sub8A.msg_info:type_name -> Sub8AMsgInfo + 14, // 7: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify + 16, // 8: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg + 17, // 9: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg + 20, // 10: GroupMemberRspBody.memInfo:type_name -> GroupMemberInfo + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_data_proto_init() } @@ -3932,54 +2554,6 @@ func file_data_proto_init() { } } file_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*D388ReqBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*D388RespBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPttUrlReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPttUrlRsp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReqDataHighwayHead); i { case 0: return &v.state @@ -3991,7 +2565,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RspDataHighwayHead); i { case 0: return &v.state @@ -4003,7 +2577,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataHighwayHead); i { case 0: return &v.state @@ -4015,7 +2589,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SegHead); i { case 0: return &v.state @@ -4027,67 +2601,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TryUpImgReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TryUpImgResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TryUpPttReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TryUpPttResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImgInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_data_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteMessageRequest); i { case 0: return &v.state @@ -4099,7 +2613,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageItem); i { case 0: return &v.state @@ -4111,7 +2625,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubD4); i { case 0: return &v.state @@ -4123,7 +2637,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub8A); i { case 0: return &v.state @@ -4135,7 +2649,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub8AMsgInfo); i { case 0: return &v.state @@ -4147,7 +2661,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubB3); i { case 0: return &v.state @@ -4159,7 +2673,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubB3AddFrdNotify); i { case 0: return &v.state @@ -4171,7 +2685,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44); i { case 0: return &v.state @@ -4183,7 +2697,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44FriendSyncMsg); i { case 0: return &v.state @@ -4195,7 +2709,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sub44GroupSyncMsg); i { case 0: return &v.state @@ -4207,7 +2721,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberReqBody); i { case 0: return &v.state @@ -4219,7 +2733,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberRspBody); i { case 0: return &v.state @@ -4231,7 +2745,7 @@ func file_data_proto_init() { return nil } } - file_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMemberInfo); i { case 0: return &v.state @@ -4250,7 +2764,7 @@ func file_data_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_data_proto_rawDesc, NumEnums: 0, - NumMessages: 30, + NumMessages: 21, NumExtensions: 0, NumServices: 0, }, diff --git a/client/pb/data.proto b/client/pb/data.proto index c0426272..7536e190 100644 --- a/client/pb/data.proto +++ b/client/pb/data.proto @@ -38,60 +38,6 @@ message D50ReqBody { int32 reqMutualmarkLbsshare = 181001; } -message D388ReqBody { - int32 netType = 1; - int32 subcmd = 2; - repeated TryUpImgReq msgTryUpImgReq = 3; - repeated TryUpPttReq msgTryUpPttReq = 5; - repeated GetPttUrlReq msgGetPttReq = 6; - int32 commandId = 7; - bytes extension = 1001; -} - -message D388RespBody { - int32 clientIp = 1; - int32 subCmd = 2; - repeated TryUpImgResp msgTryUpImgRsp = 3; - repeated TryUpPttResp msgTryUpPttRsp = 5; - repeated GetPttUrlRsp msgGetPttUrlRsp = 6; -} - -message GetPttUrlReq { - int64 groupCode = 1; - int64 dstUin = 2; - int64 fileId = 3; - bytes fileMd5 = 4; - int32 reqTerm = 5; - int32 reqPlatformType = 6; - int32 innerIp = 7; - int32 buType = 8; - bytes buildVer = 9; - //int64 fileId = 10; - bytes fileKey = 11; - int32 codec = 12; - int32 buId = 13; - int32 reqTransferType = 14; - int32 isAuto = 15; -} - -message GetPttUrlRsp { - int64 fileId = 1; - bytes fileMd5 = 2; - int32 result = 3; - bytes failMsg = 4; - bytes bytesDownUrl = 5; - repeated int32 uint32DownIp = 6; - repeated int32 uint32DownPort = 7; - bytes downDomain = 8; - bytes downPara = 9; - //int64 fileId = 10; - int32 transferType = 11; - int32 allowRetry = 12; - //repeated IPv6Info msgDownIp6 = 26; - bytes clientIp6 = 27; - string strDomain = 28; -} - message ReqDataHighwayHead { DataHighwayHead msgBasehead = 1; SegHead msgSeghead = 2; @@ -141,87 +87,6 @@ message SegHead { int32 updateCacheip = 12; } -message TryUpImgReq { - int64 groupCode = 1; - int64 srcUin = 2; - int64 fileId = 3; - bytes fileMd5 = 4; - int64 fileSize = 5; - string fileName = 6; - int32 srcTerm = 7; - int32 platformType = 8; - int32 buType = 9; - int32 picWidth = 10; - int32 picHeight = 11; - int32 picType = 12; - string buildVer = 13; - int32 innerIp = 14; - int32 appPicType = 15; - int32 originalPic = 16; - bytes fileIndex = 17; - int64 dstUin = 18; - int32 srvUpload = 19; - bytes transferUrl = 20; -} - -message TryUpImgResp { - int64 fileId = 1; - int32 result = 2; - string failMsg = 3; - bool boolFileExit = 4; - ImgInfo msgImgInfo = 5; - repeated uint32 uint32UpIp = 6; - repeated uint32 uint32UpPort = 7; - bytes upUkey = 8; - int64 fid = 9; -} - -message TryUpPttReq { - int64 groupCode = 1; - int64 srcUin = 2; - int64 fileId = 3; - bytes fileMd5 = 4; - int64 fileSize = 5; - bytes fileName = 6; - int32 srcTerm = 7; - int32 platformType = 8; - int32 buType = 9; - string buildVer = 10; - int32 innerIp = 11; - int32 voiceLength = 12; - bool boolNewUpChan = 13; - int32 codec = 14; - int32 voiceType = 15; - int32 buId = 16; - -} - -message TryUpPttResp { - int64 fileId = 1; - int32 result = 2; - string failMsg = 3; - bool boolFileExit = 4; - repeated int32 uint32UpIp = 5; - repeated int32 uint32UpPort = 6; - bytes upUkey = 7; - int64 fileId2 = 8; - int64 upOffset = 9; - int64 blockSize = 10; - bytes fileKey = 11; - int32 channelType = 12; - // List? msgUpIp6 = 26; - // bytes clientIp6 = 27; - -} - -message ImgInfo { - bytes fileMd5 = 1; - int32 fileType = 2; - int64 fileSize = 3; - int32 fileWidth = 4; - int32 fileHeight = 5; -} - message DeleteMessageRequest { repeated MessageItem items = 1; } diff --git a/client/ptt.go b/client/ptt.go index 250472a5..cc7ba2bc 100644 --- a/client/ptt.go +++ b/client/ptt.go @@ -3,6 +3,7 @@ package client import ( "crypto/md5" "encoding/hex" + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x388" "io" "os" @@ -10,7 +11,6 @@ import ( "google.golang.org/protobuf/proto" "github.com/Mrs4s/MiraiGo/binary" - "github.com/Mrs4s/MiraiGo/client/pb" "github.com/Mrs4s/MiraiGo/client/pb/cmd0x346" "github.com/Mrs4s/MiraiGo/client/pb/msg" "github.com/Mrs4s/MiraiGo/client/pb/pttcenter" @@ -45,11 +45,11 @@ func (c *QQClient) UploadGroupPtt(groupCode int64, voice io.ReadSeeker) (*messag if len(rsp) == 0 { return nil, errors.New("miss rsp") } - pkt := pb.D388RespBody{} + pkt := cmd0x388.D388RspBody{} if err = proto.Unmarshal(rsp, &pkt); err != nil { return nil, errors.Wrap(err, "failed to unmarshal protobuf message") } - if len(pkt.MsgTryUpPttRsp) == 0 { + if len(pkt.TryupPttRsp) == 0 { return nil, errors.New("miss try up rsp") } return &message.GroupVoiceElement{ @@ -59,7 +59,7 @@ func (c *QQClient) UploadGroupPtt(groupCode int64, voice io.ReadSeeker) (*messag FileMd5: fh[:], FileName: proto.String(hex.EncodeToString(fh[:]) + ".amr"), FileSize: proto.Int32(int32(length)), - GroupFileKey: pkt.MsgTryUpPttRsp[0].FileKey, + GroupFileKey: pkt.TryupPttRsp[0].FileKey, BoolValid: proto.Bool(true), PbReserve: []byte{8, 0, 40, 0, 56, 0}, }, @@ -194,25 +194,25 @@ func (c *QQClient) buildGroupPttStorePacket(groupCode int64, md5 []byte, size, c } func (c *QQClient) buildGroupPttStoreBDHExt(groupCode int64, md5 []byte, size, codec, voiceLength int32) []byte { - req := &pb.D388ReqBody{ - NetType: 3, - Subcmd: 3, - MsgTryUpPttReq: []*pb.TryUpPttReq{ + req := &cmd0x388.D388ReqBody{ + NetType: proto.Uint32(3), + Subcmd: proto.Uint32(3), + TryupPttReq: []*cmd0x388.TryUpPttReq{ { - GroupCode: groupCode, - SrcUin: c.Uin, - FileMd5: md5, - FileSize: int64(size), - FileName: md5, - SrcTerm: 5, - PlatformType: 9, - BuType: 4, - InnerIp: 0, - BuildVer: "6.5.5.663", - VoiceLength: voiceLength, - Codec: codec, - VoiceType: 1, - BoolNewUpChan: true, + GroupCode: proto.Uint64(uint64(groupCode)), + SrcUin: proto.Uint64(uint64(c.Uin)), + FileMd5: md5, + FileSize: proto.Uint64(uint64(size)), + FileName: md5, + SrcTerm: proto.Uint32(5), + PlatformType: proto.Uint32(9), + BuType: proto.Uint32(4), + InnerIp: proto.Uint32(0), + BuildVer: utils.S2B("6.5.5.663"), + VoiceLength: proto.Uint32(uint32(voiceLength)), + Codec: proto.Uint32(uint32(codec)), + VoiceType: proto.Uint32(1), + NewUpChan: proto.Bool(true), }, }, } @@ -288,31 +288,31 @@ func (c *QQClient) buildPttGroupShortVideoUploadReqPacket(videoHash, thumbHash [ // PttStore.GroupPttUp func decodeGroupPttStoreResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { - pkt := pb.D388RespBody{} + pkt := cmd0x388.D388RspBody{} err := proto.Unmarshal(payload, &pkt) if err != nil { return nil, errors.Wrap(err, "failed to unmarshal protobuf message") } - rsp := pkt.MsgTryUpPttRsp[0] - if rsp.Result != 0 { + rsp := pkt.TryupPttRsp[0] + if rsp.GetResult() != 0 { return pttUploadResponse{ - ResultCode: rsp.Result, - Message: rsp.FailMsg, + ResultCode: int32(rsp.GetResult()), + Message: utils.B2S(rsp.GetFailMsg()), }, nil } - if rsp.BoolFileExit { + if rsp.GetFileExit() { return pttUploadResponse{IsExists: true}, nil } - ip := make([]string, 0, len(rsp.Uint32UpIp)) - for _, i := range rsp.Uint32UpIp { - ip = append(ip, binary.UInt32ToIPV4Address(uint32(i))) + ip := make([]string, 0, len(rsp.GetUpIp())) + for _, i := range rsp.GetUpIp() { + ip = append(ip, binary.UInt32ToIPV4Address(i)) } return pttUploadResponse{ UploadKey: rsp.UpUkey, UploadIp: ip, - UploadPort: rsp.Uint32UpPort, + UploadPort: rsp.GetUpPort(), FileKey: rsp.FileKey, - FileId: rsp.FileId2, + FileId: int64(rsp.GetFileid()), }, nil } diff --git a/go.sum b/go.sum index a69e26f7..e6233636 100644 --- a/go.sum +++ b/go.sum @@ -18,10 +18,12 @@ github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE= github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.1.0 h1:K3hMW5epkdAVwibsQEfR/7Zj0Qgt4DxtNumTq/VloO8= github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/message/message.go b/message/message.go index 6582a95f..53b24c90 100644 --- a/message/message.go +++ b/message/message.go @@ -444,6 +444,7 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement { continue } res = append(res, &GroupImageElement{ + FileId: int64(elem.CustomFace.GetFileId()), ImageId: elem.CustomFace.GetFilePath(), Size: elem.CustomFace.GetSize(), Width: elem.CustomFace.GetWidth(), @@ -536,6 +537,7 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement { _ = proto.Unmarshal(elem.CommonElem.PbElem, flash) if flash.FlashTroopPic != nil { res = append(res, &GroupImageElement{ + FileId: int64(flash.FlashTroopPic.GetFileId()), ImageId: flash.FlashTroopPic.GetFilePath(), Size: flash.FlashTroopPic.GetSize(), Width: flash.FlashTroopPic.GetWidth(),