// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.11.4 // source: cmd0x346.proto package cmd0x346 import ( proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 type ApplyCleanTrafficRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` } func (x *ApplyCleanTrafficRsp) Reset() { *x = ApplyCleanTrafficRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyCleanTrafficRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyCleanTrafficRsp) ProtoMessage() {} func (x *ApplyCleanTrafficRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyCleanTrafficRsp.ProtoReflect.Descriptor instead. func (*ApplyCleanTrafficRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{0} } func (x *ApplyCleanTrafficRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyCleanTrafficRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } type ApplyCopyFromReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrcUin int64 `protobuf:"varint,10,opt,name=srcUin,proto3" json:"srcUin,omitempty"` SrcGroup int64 `protobuf:"varint,20,opt,name=srcGroup,proto3" json:"srcGroup,omitempty"` SrcSvcid int32 `protobuf:"varint,30,opt,name=srcSvcid,proto3" json:"srcSvcid,omitempty"` SrcParentfolder []byte `protobuf:"bytes,40,opt,name=srcParentfolder,proto3" json:"srcParentfolder,omitempty"` SrcUuid []byte `protobuf:"bytes,50,opt,name=srcUuid,proto3" json:"srcUuid,omitempty"` FileMd5 []byte `protobuf:"bytes,60,opt,name=fileMd5,proto3" json:"fileMd5,omitempty"` DstUin int64 `protobuf:"varint,70,opt,name=dstUin,proto3" json:"dstUin,omitempty"` FileSize int64 `protobuf:"varint,80,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,90,opt,name=fileName,proto3" json:"fileName,omitempty"` DangerLevel int32 `protobuf:"varint,100,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,110,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyCopyFromReq) Reset() { *x = ApplyCopyFromReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyCopyFromReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyCopyFromReq) ProtoMessage() {} func (x *ApplyCopyFromReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyCopyFromReq.ProtoReflect.Descriptor instead. func (*ApplyCopyFromReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{1} } func (x *ApplyCopyFromReq) GetSrcUin() int64 { if x != nil { return x.SrcUin } return 0 } func (x *ApplyCopyFromReq) GetSrcGroup() int64 { if x != nil { return x.SrcGroup } return 0 } func (x *ApplyCopyFromReq) GetSrcSvcid() int32 { if x != nil { return x.SrcSvcid } return 0 } func (x *ApplyCopyFromReq) GetSrcParentfolder() []byte { if x != nil { return x.SrcParentfolder } return nil } func (x *ApplyCopyFromReq) GetSrcUuid() []byte { if x != nil { return x.SrcUuid } return nil } func (x *ApplyCopyFromReq) GetFileMd5() []byte { if x != nil { return x.FileMd5 } return nil } func (x *ApplyCopyFromReq) GetDstUin() int64 { if x != nil { return x.DstUin } return 0 } func (x *ApplyCopyFromReq) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyCopyFromReq) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyCopyFromReq) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyCopyFromReq) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyCopyFromRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` Uuid []byte `protobuf:"bytes,30,opt,name=uuid,proto3" json:"uuid,omitempty"` TotalSpace int64 `protobuf:"varint,40,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyCopyFromRsp) Reset() { *x = ApplyCopyFromRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyCopyFromRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyCopyFromRsp) ProtoMessage() {} func (x *ApplyCopyFromRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyCopyFromRsp.ProtoReflect.Descriptor instead. func (*ApplyCopyFromRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{2} } func (x *ApplyCopyFromRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyCopyFromRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyCopyFromRsp) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyCopyFromRsp) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyCopyToReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DstId int64 `protobuf:"varint,10,opt,name=dstId,proto3" json:"dstId,omitempty"` DstUin int64 `protobuf:"varint,20,opt,name=dstUin,proto3" json:"dstUin,omitempty"` DstSvcid int32 `protobuf:"varint,30,opt,name=dstSvcid,proto3" json:"dstSvcid,omitempty"` SrcUin int64 `protobuf:"varint,40,opt,name=srcUin,proto3" json:"srcUin,omitempty"` FileSize int64 `protobuf:"varint,50,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,60,opt,name=fileName,proto3" json:"fileName,omitempty"` LocalFilepath string `protobuf:"bytes,70,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` Uuid []byte `protobuf:"bytes,80,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ApplyCopyToReq) Reset() { *x = ApplyCopyToReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyCopyToReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyCopyToReq) ProtoMessage() {} func (x *ApplyCopyToReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyCopyToReq.ProtoReflect.Descriptor instead. func (*ApplyCopyToReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{3} } func (x *ApplyCopyToReq) GetDstId() int64 { if x != nil { return x.DstId } return 0 } func (x *ApplyCopyToReq) GetDstUin() int64 { if x != nil { return x.DstUin } return 0 } func (x *ApplyCopyToReq) GetDstSvcid() int32 { if x != nil { return x.DstSvcid } return 0 } func (x *ApplyCopyToReq) GetSrcUin() int64 { if x != nil { return x.SrcUin } return 0 } func (x *ApplyCopyToReq) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyCopyToReq) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyCopyToReq) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyCopyToReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type ApplyCopyToRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` FileKey string `protobuf:"bytes,30,opt,name=fileKey,proto3" json:"fileKey,omitempty"` } func (x *ApplyCopyToRsp) Reset() { *x = ApplyCopyToRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyCopyToRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyCopyToRsp) ProtoMessage() {} func (x *ApplyCopyToRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyCopyToRsp.ProtoReflect.Descriptor instead. func (*ApplyCopyToRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{4} } func (x *ApplyCopyToRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyCopyToRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyCopyToRsp) GetFileKey() string { if x != nil { return x.FileKey } return "" } type ApplyDownloadAbsReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,20,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ApplyDownloadAbsReq) Reset() { *x = ApplyDownloadAbsReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyDownloadAbsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyDownloadAbsReq) ProtoMessage() {} func (x *ApplyDownloadAbsReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyDownloadAbsReq.ProtoReflect.Descriptor instead. func (*ApplyDownloadAbsReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{5} } func (x *ApplyDownloadAbsReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *ApplyDownloadAbsReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type ApplyDownloadAbsRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` DownloadInfo *DownloadInfo `protobuf:"bytes,30,opt,name=downloadInfo,proto3" json:"downloadInfo,omitempty"` } func (x *ApplyDownloadAbsRsp) Reset() { *x = ApplyDownloadAbsRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyDownloadAbsRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyDownloadAbsRsp) ProtoMessage() {} func (x *ApplyDownloadAbsRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyDownloadAbsRsp.ProtoReflect.Descriptor instead. func (*ApplyDownloadAbsRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{6} } func (x *ApplyDownloadAbsRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyDownloadAbsRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyDownloadAbsRsp) GetDownloadInfo() *DownloadInfo { if x != nil { return x.DownloadInfo } return nil } type ApplyDownloadReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,20,opt,name=uuid,proto3" json:"uuid,omitempty"` OwnerType int32 `protobuf:"varint,30,opt,name=ownerType,proto3" json:"ownerType,omitempty"` ExtIntype int32 `protobuf:"varint,500,opt,name=extIntype,proto3" json:"extIntype,omitempty"` } func (x *ApplyDownloadReq) Reset() { *x = ApplyDownloadReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyDownloadReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyDownloadReq) ProtoMessage() {} func (x *ApplyDownloadReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyDownloadReq.ProtoReflect.Descriptor instead. func (*ApplyDownloadReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{7} } func (x *ApplyDownloadReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *ApplyDownloadReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyDownloadReq) GetOwnerType() int32 { if x != nil { return x.OwnerType } return 0 } func (x *ApplyDownloadReq) GetExtIntype() int32 { if x != nil { return x.ExtIntype } return 0 } type ApplyDownloadRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` DownloadInfo *DownloadInfo `protobuf:"bytes,30,opt,name=downloadInfo,proto3" json:"downloadInfo,omitempty"` FileInfo *FileInfo `protobuf:"bytes,40,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` } func (x *ApplyDownloadRsp) Reset() { *x = ApplyDownloadRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyDownloadRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyDownloadRsp) ProtoMessage() {} func (x *ApplyDownloadRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyDownloadRsp.ProtoReflect.Descriptor instead. func (*ApplyDownloadRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{8} } func (x *ApplyDownloadRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyDownloadRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyDownloadRsp) GetDownloadInfo() *DownloadInfo { if x != nil { return x.DownloadInfo } return nil } func (x *ApplyDownloadRsp) GetFileInfo() *FileInfo { if x != nil { return x.FileInfo } return nil } type ApplyForwardFileReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` Uuid []byte `protobuf:"bytes,30,opt,name=uuid,proto3" json:"uuid,omitempty"` DangerLevel int32 `protobuf:"varint,40,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,50,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyForwardFileReq) Reset() { *x = ApplyForwardFileReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyForwardFileReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyForwardFileReq) ProtoMessage() {} func (x *ApplyForwardFileReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyForwardFileReq.ProtoReflect.Descriptor instead. func (*ApplyForwardFileReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{9} } func (x *ApplyForwardFileReq) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyForwardFileReq) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyForwardFileReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyForwardFileReq) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyForwardFileReq) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyForwardFileRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` TotalSpace int64 `protobuf:"varint,30,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,40,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` Uuid []byte `protobuf:"bytes,50,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *ApplyForwardFileRsp) Reset() { *x = ApplyForwardFileRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyForwardFileRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyForwardFileRsp) ProtoMessage() {} func (x *ApplyForwardFileRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyForwardFileRsp.ProtoReflect.Descriptor instead. func (*ApplyForwardFileRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{10} } func (x *ApplyForwardFileRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyForwardFileRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyForwardFileRsp) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyForwardFileRsp) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } func (x *ApplyForwardFileRsp) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type ApplyGetTrafficReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ApplyGetTrafficReq) Reset() { *x = ApplyGetTrafficReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyGetTrafficReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyGetTrafficReq) ProtoMessage() {} func (x *ApplyGetTrafficReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyGetTrafficReq.ProtoReflect.Descriptor instead. func (*ApplyGetTrafficReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{11} } type ApplyGetTrafficRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` UseFileSize int64 `protobuf:"varint,30,opt,name=useFileSize,proto3" json:"useFileSize,omitempty"` UseFileNum int32 `protobuf:"varint,40,opt,name=useFileNum,proto3" json:"useFileNum,omitempty"` AllFileSize int64 `protobuf:"varint,50,opt,name=allFileSize,proto3" json:"allFileSize,omitempty"` AllFileNum int32 `protobuf:"varint,60,opt,name=allFileNum,proto3" json:"allFileNum,omitempty"` } func (x *ApplyGetTrafficRsp) Reset() { *x = ApplyGetTrafficRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyGetTrafficRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyGetTrafficRsp) ProtoMessage() {} func (x *ApplyGetTrafficRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyGetTrafficRsp.ProtoReflect.Descriptor instead. func (*ApplyGetTrafficRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{12} } func (x *ApplyGetTrafficRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyGetTrafficRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyGetTrafficRsp) GetUseFileSize() int64 { if x != nil { return x.UseFileSize } return 0 } func (x *ApplyGetTrafficRsp) GetUseFileNum() int32 { if x != nil { return x.UseFileNum } return 0 } func (x *ApplyGetTrafficRsp) GetAllFileSize() int64 { if x != nil { return x.AllFileSize } return 0 } func (x *ApplyGetTrafficRsp) GetAllFileNum() int32 { if x != nil { return x.AllFileNum } return 0 } type ApplyListDownloadReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` BeginIndex int32 `protobuf:"varint,20,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` ReqCount int32 `protobuf:"varint,30,opt,name=reqCount,proto3" json:"reqCount,omitempty"` } func (x *ApplyListDownloadReq) Reset() { *x = ApplyListDownloadReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyListDownloadReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyListDownloadReq) ProtoMessage() {} func (x *ApplyListDownloadReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyListDownloadReq.ProtoReflect.Descriptor instead. func (*ApplyListDownloadReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{13} } func (x *ApplyListDownloadReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *ApplyListDownloadReq) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *ApplyListDownloadReq) GetReqCount() int32 { if x != nil { return x.ReqCount } return 0 } type ApplyListDownloadRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` TotalCount int32 `protobuf:"varint,30,opt,name=totalCount,proto3" json:"totalCount,omitempty"` BeginIndex int32 `protobuf:"varint,40,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` RspCount int32 `protobuf:"varint,50,opt,name=rspCount,proto3" json:"rspCount,omitempty"` IsEnd int32 `protobuf:"varint,60,opt,name=isEnd,proto3" json:"isEnd,omitempty"` FileList []*FileInfo `protobuf:"bytes,70,rep,name=fileList,proto3" json:"fileList,omitempty"` } func (x *ApplyListDownloadRsp) Reset() { *x = ApplyListDownloadRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyListDownloadRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyListDownloadRsp) ProtoMessage() {} func (x *ApplyListDownloadRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyListDownloadRsp.ProtoReflect.Descriptor instead. func (*ApplyListDownloadRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{14} } func (x *ApplyListDownloadRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyListDownloadRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyListDownloadRsp) GetTotalCount() int32 { if x != nil { return x.TotalCount } return 0 } func (x *ApplyListDownloadRsp) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *ApplyListDownloadRsp) GetRspCount() int32 { if x != nil { return x.RspCount } return 0 } func (x *ApplyListDownloadRsp) GetIsEnd() int32 { if x != nil { return x.IsEnd } return 0 } func (x *ApplyListDownloadRsp) GetFileList() []*FileInfo { if x != nil { return x.FileList } return nil } type ApplyUploadHitReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileSize int64 `protobuf:"varint,30,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,40,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,50,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` LocalFilepath string `protobuf:"bytes,60,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,70,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,80,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadHitReq) Reset() { *x = ApplyUploadHitReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitReq) ProtoMessage() {} func (x *ApplyUploadHitReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyUploadHitReq.ProtoReflect.Descriptor instead. func (*ApplyUploadHitReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{15} } func (x *ApplyUploadHitReq) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadHitReq) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadHitReq) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadHitReq) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadHitReq) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadHitReq) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadHitReq) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadHitReq) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadHitReqV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileSize int64 `protobuf:"varint,30,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,40,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,50,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` Bytes_3Sha []byte `protobuf:"bytes,60,opt,name=bytes_3sha,json=bytes3sha,proto3" json:"bytes_3sha,omitempty"` Sha []byte `protobuf:"bytes,70,opt,name=sha,proto3" json:"sha,omitempty"` LocalFilepath string `protobuf:"bytes,80,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,90,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,100,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadHitReqV2) Reset() { *x = ApplyUploadHitReqV2{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitReqV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitReqV2) ProtoMessage() {} func (x *ApplyUploadHitReqV2) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyUploadHitReqV2.ProtoReflect.Descriptor instead. func (*ApplyUploadHitReqV2) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{16} } func (x *ApplyUploadHitReqV2) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadHitReqV2) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadHitReqV2) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadHitReqV2) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadHitReqV2) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadHitReqV2) GetBytes_3Sha() []byte { if x != nil { return x.Bytes_3Sha } return nil } func (x *ApplyUploadHitReqV2) GetSha() []byte { if x != nil { return x.Sha } return nil } func (x *ApplyUploadHitReqV2) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadHitReqV2) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadHitReqV2) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadHitReqV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileSize int64 `protobuf:"varint,30,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,40,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,50,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` Sha []byte `protobuf:"bytes,60,opt,name=sha,proto3" json:"sha,omitempty"` LocalFilepath string `protobuf:"bytes,70,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,80,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,90,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadHitReqV3) Reset() { *x = ApplyUploadHitReqV3{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitReqV3) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitReqV3) ProtoMessage() {} func (x *ApplyUploadHitReqV3) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyUploadHitReqV3.ProtoReflect.Descriptor instead. func (*ApplyUploadHitReqV3) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{17} } func (x *ApplyUploadHitReqV3) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadHitReqV3) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadHitReqV3) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadHitReqV3) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadHitReqV3) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadHitReqV3) GetSha() []byte { if x != nil { return x.Sha } return nil } func (x *ApplyUploadHitReqV3) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadHitReqV3) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadHitReqV3) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadHitRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` UploadIp string `protobuf:"bytes,30,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadPort int32 `protobuf:"varint,40,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` UploadDomain string `protobuf:"bytes,50,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` Uuid []byte `protobuf:"bytes,60,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,70,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` TotalSpace int64 `protobuf:"varint,80,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,90,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` } func (x *ApplyUploadHitRsp) Reset() { *x = ApplyUploadHitRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitRsp) ProtoMessage() {} func (x *ApplyUploadHitRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyUploadHitRsp.ProtoReflect.Descriptor instead. func (*ApplyUploadHitRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{18} } func (x *ApplyUploadHitRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadHitRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadHitRsp) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadHitRsp) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadHitRsp) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadHitRsp) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadHitRsp) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadHitRsp) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadHitRsp) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } type ApplyUploadHitRspV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` UploadIp string `protobuf:"bytes,30,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadPort int32 `protobuf:"varint,40,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` UploadDomain string `protobuf:"bytes,50,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` Uuid []byte `protobuf:"bytes,60,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,70,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` TotalSpace int64 `protobuf:"varint,80,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,90,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` } func (x *ApplyUploadHitRspV2) Reset() { *x = ApplyUploadHitRspV2{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitRspV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitRspV2) ProtoMessage() {} func (x *ApplyUploadHitRspV2) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_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 ApplyUploadHitRspV2.ProtoReflect.Descriptor instead. func (*ApplyUploadHitRspV2) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{19} } func (x *ApplyUploadHitRspV2) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadHitRspV2) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadHitRspV2) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadHitRspV2) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadHitRspV2) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadHitRspV2) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadHitRspV2) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadHitRspV2) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadHitRspV2) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } type ApplyUploadHitRspV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` UploadIp string `protobuf:"bytes,30,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadPort int32 `protobuf:"varint,40,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` UploadDomain string `protobuf:"bytes,50,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` Uuid []byte `protobuf:"bytes,60,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,70,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` TotalSpace int64 `protobuf:"varint,80,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,90,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` } func (x *ApplyUploadHitRspV3) Reset() { *x = ApplyUploadHitRspV3{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadHitRspV3) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadHitRspV3) ProtoMessage() {} func (x *ApplyUploadHitRspV3) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadHitRspV3.ProtoReflect.Descriptor instead. func (*ApplyUploadHitRspV3) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{20} } func (x *ApplyUploadHitRspV3) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadHitRspV3) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadHitRspV3) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadHitRspV3) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadHitRspV3) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadHitRspV3) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadHitRspV3) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadHitRspV3) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadHitRspV3) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } type ApplyUploadReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileType int32 `protobuf:"varint,30,opt,name=fileType,proto3" json:"fileType,omitempty"` FileSize int64 `protobuf:"varint,40,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,50,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,60,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` LocalFilepath string `protobuf:"bytes,70,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,80,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,90,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadReq) Reset() { *x = ApplyUploadReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadReq) ProtoMessage() {} func (x *ApplyUploadReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadReq.ProtoReflect.Descriptor instead. func (*ApplyUploadReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{21} } func (x *ApplyUploadReq) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadReq) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadReq) GetFileType() int32 { if x != nil { return x.FileType } return 0 } func (x *ApplyUploadReq) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadReq) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadReq) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadReq) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadReq) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadReq) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadReqV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileSize int64 `protobuf:"varint,30,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,40,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,50,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` Bytes_3Sha []byte `protobuf:"bytes,60,opt,name=bytes_3sha,json=bytes3sha,proto3" json:"bytes_3sha,omitempty"` LocalFilepath string `protobuf:"bytes,70,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,80,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,90,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadReqV2) Reset() { *x = ApplyUploadReqV2{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadReqV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadReqV2) ProtoMessage() {} func (x *ApplyUploadReqV2) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadReqV2.ProtoReflect.Descriptor instead. func (*ApplyUploadReqV2) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{22} } func (x *ApplyUploadReqV2) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadReqV2) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadReqV2) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadReqV2) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadReqV2) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadReqV2) GetBytes_3Sha() []byte { if x != nil { return x.Bytes_3Sha } return nil } func (x *ApplyUploadReqV2) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadReqV2) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadReqV2) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadReqV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` FileSize int64 `protobuf:"varint,30,opt,name=fileSize,proto3" json:"fileSize,omitempty"` FileName string `protobuf:"bytes,40,opt,name=fileName,proto3" json:"fileName,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,50,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` Sha []byte `protobuf:"bytes,60,opt,name=sha,proto3" json:"sha,omitempty"` LocalFilepath string `protobuf:"bytes,70,opt,name=localFilepath,proto3" json:"localFilepath,omitempty"` DangerLevel int32 `protobuf:"varint,80,opt,name=dangerLevel,proto3" json:"dangerLevel,omitempty"` TotalSpace int64 `protobuf:"varint,90,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` } func (x *ApplyUploadReqV3) Reset() { *x = ApplyUploadReqV3{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadReqV3) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadReqV3) ProtoMessage() {} func (x *ApplyUploadReqV3) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadReqV3.ProtoReflect.Descriptor instead. func (*ApplyUploadReqV3) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{23} } func (x *ApplyUploadReqV3) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *ApplyUploadReqV3) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *ApplyUploadReqV3) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *ApplyUploadReqV3) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *ApplyUploadReqV3) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *ApplyUploadReqV3) GetSha() []byte { if x != nil { return x.Sha } return nil } func (x *ApplyUploadReqV3) GetLocalFilepath() string { if x != nil { return x.LocalFilepath } return "" } func (x *ApplyUploadReqV3) GetDangerLevel() int32 { if x != nil { return x.DangerLevel } return 0 } func (x *ApplyUploadReqV3) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } type ApplyUploadRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` TotalSpace int64 `protobuf:"varint,30,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,40,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` UploadedSize int64 `protobuf:"varint,50,opt,name=uploadedSize,proto3" json:"uploadedSize,omitempty"` UploadIp string `protobuf:"bytes,60,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadDomain string `protobuf:"bytes,70,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` UploadPort int32 `protobuf:"varint,80,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` Uuid []byte `protobuf:"bytes,90,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,100,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` BoolFileExist bool `protobuf:"varint,110,opt,name=boolFileExist,proto3" json:"boolFileExist,omitempty"` PackSize int32 `protobuf:"varint,120,opt,name=packSize,proto3" json:"packSize,omitempty"` UploadipList []string `protobuf:"bytes,130,rep,name=uploadipList,proto3" json:"uploadipList,omitempty"` } func (x *ApplyUploadRsp) Reset() { *x = ApplyUploadRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadRsp) ProtoMessage() {} func (x *ApplyUploadRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadRsp.ProtoReflect.Descriptor instead. func (*ApplyUploadRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{24} } func (x *ApplyUploadRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadRsp) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadRsp) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } func (x *ApplyUploadRsp) GetUploadedSize() int64 { if x != nil { return x.UploadedSize } return 0 } func (x *ApplyUploadRsp) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadRsp) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadRsp) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadRsp) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadRsp) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadRsp) GetBoolFileExist() bool { if x != nil { return x.BoolFileExist } return false } func (x *ApplyUploadRsp) GetPackSize() int32 { if x != nil { return x.PackSize } return 0 } func (x *ApplyUploadRsp) GetUploadipList() []string { if x != nil { return x.UploadipList } return nil } type ApplyUploadRspV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` TotalSpace int64 `protobuf:"varint,30,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,40,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` UploadedSize int64 `protobuf:"varint,50,opt,name=uploadedSize,proto3" json:"uploadedSize,omitempty"` UploadIp string `protobuf:"bytes,60,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadDomain string `protobuf:"bytes,70,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` UploadPort int32 `protobuf:"varint,80,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` Uuid []byte `protobuf:"bytes,90,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,100,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` BoolFileExist bool `protobuf:"varint,110,opt,name=boolFileExist,proto3" json:"boolFileExist,omitempty"` PackSize int32 `protobuf:"varint,120,opt,name=packSize,proto3" json:"packSize,omitempty"` UploadipList []string `protobuf:"bytes,130,rep,name=uploadipList,proto3" json:"uploadipList,omitempty"` HttpsvrApiVer int32 `protobuf:"varint,140,opt,name=httpsvrApiVer,proto3" json:"httpsvrApiVer,omitempty"` Sha []byte `protobuf:"bytes,141,opt,name=sha,proto3" json:"sha,omitempty"` } func (x *ApplyUploadRspV2) Reset() { *x = ApplyUploadRspV2{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadRspV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadRspV2) ProtoMessage() {} func (x *ApplyUploadRspV2) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadRspV2.ProtoReflect.Descriptor instead. func (*ApplyUploadRspV2) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{25} } func (x *ApplyUploadRspV2) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadRspV2) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadRspV2) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadRspV2) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } func (x *ApplyUploadRspV2) GetUploadedSize() int64 { if x != nil { return x.UploadedSize } return 0 } func (x *ApplyUploadRspV2) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadRspV2) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadRspV2) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadRspV2) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadRspV2) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadRspV2) GetBoolFileExist() bool { if x != nil { return x.BoolFileExist } return false } func (x *ApplyUploadRspV2) GetPackSize() int32 { if x != nil { return x.PackSize } return 0 } func (x *ApplyUploadRspV2) GetUploadipList() []string { if x != nil { return x.UploadipList } return nil } func (x *ApplyUploadRspV2) GetHttpsvrApiVer() int32 { if x != nil { return x.HttpsvrApiVer } return 0 } func (x *ApplyUploadRspV2) GetSha() []byte { if x != nil { return x.Sha } return nil } type ApplyUploadRspV3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` TotalSpace int64 `protobuf:"varint,30,opt,name=totalSpace,proto3" json:"totalSpace,omitempty"` UsedSpace int64 `protobuf:"varint,40,opt,name=usedSpace,proto3" json:"usedSpace,omitempty"` UploadedSize int64 `protobuf:"varint,50,opt,name=uploadedSize,proto3" json:"uploadedSize,omitempty"` UploadIp string `protobuf:"bytes,60,opt,name=uploadIp,proto3" json:"uploadIp,omitempty"` UploadDomain string `protobuf:"bytes,70,opt,name=uploadDomain,proto3" json:"uploadDomain,omitempty"` UploadPort int32 `protobuf:"varint,80,opt,name=uploadPort,proto3" json:"uploadPort,omitempty"` Uuid []byte `protobuf:"bytes,90,opt,name=uuid,proto3" json:"uuid,omitempty"` UploadKey []byte `protobuf:"bytes,100,opt,name=uploadKey,proto3" json:"uploadKey,omitempty"` BoolFileExist bool `protobuf:"varint,110,opt,name=boolFileExist,proto3" json:"boolFileExist,omitempty"` PackSize int32 `protobuf:"varint,120,opt,name=packSize,proto3" json:"packSize,omitempty"` UploadipList []string `protobuf:"bytes,130,rep,name=uploadipList,proto3" json:"uploadipList,omitempty"` } func (x *ApplyUploadRspV3) Reset() { *x = ApplyUploadRspV3{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyUploadRspV3) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyUploadRspV3) ProtoMessage() {} func (x *ApplyUploadRspV3) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyUploadRspV3.ProtoReflect.Descriptor instead. func (*ApplyUploadRspV3) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{26} } func (x *ApplyUploadRspV3) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *ApplyUploadRspV3) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *ApplyUploadRspV3) GetTotalSpace() int64 { if x != nil { return x.TotalSpace } return 0 } func (x *ApplyUploadRspV3) GetUsedSpace() int64 { if x != nil { return x.UsedSpace } return 0 } func (x *ApplyUploadRspV3) GetUploadedSize() int64 { if x != nil { return x.UploadedSize } return 0 } func (x *ApplyUploadRspV3) GetUploadIp() string { if x != nil { return x.UploadIp } return "" } func (x *ApplyUploadRspV3) GetUploadDomain() string { if x != nil { return x.UploadDomain } return "" } func (x *ApplyUploadRspV3) GetUploadPort() int32 { if x != nil { return x.UploadPort } return 0 } func (x *ApplyUploadRspV3) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *ApplyUploadRspV3) GetUploadKey() []byte { if x != nil { return x.UploadKey } return nil } func (x *ApplyUploadRspV3) GetBoolFileExist() bool { if x != nil { return x.BoolFileExist } return false } func (x *ApplyUploadRspV3) GetPackSize() int32 { if x != nil { return x.PackSize } return 0 } func (x *ApplyUploadRspV3) GetUploadipList() []string { if x != nil { return x.UploadipList } return nil } type DelMessageReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UinSender int64 `protobuf:"varint,1,opt,name=uinSender,proto3" json:"uinSender,omitempty"` UinReceiver int64 `protobuf:"varint,2,opt,name=uinReceiver,proto3" json:"uinReceiver,omitempty"` Time int32 `protobuf:"varint,10,opt,name=time,proto3" json:"time,omitempty"` Random int32 `protobuf:"varint,20,opt,name=random,proto3" json:"random,omitempty"` SeqNo int32 `protobuf:"varint,30,opt,name=seqNo,proto3" json:"seqNo,omitempty"` } func (x *DelMessageReq) Reset() { *x = DelMessageReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelMessageReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelMessageReq) ProtoMessage() {} func (x *DelMessageReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelMessageReq.ProtoReflect.Descriptor instead. func (*DelMessageReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{27} } func (x *DelMessageReq) GetUinSender() int64 { if x != nil { return x.UinSender } return 0 } func (x *DelMessageReq) GetUinReceiver() int64 { if x != nil { return x.UinReceiver } return 0 } func (x *DelMessageReq) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *DelMessageReq) GetRandom() int32 { if x != nil { return x.Random } return 0 } func (x *DelMessageReq) GetSeqNo() int32 { if x != nil { return x.SeqNo } return 0 } type DeleteFileReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` PeerUin int64 `protobuf:"varint,20,opt,name=peerUin,proto3" json:"peerUin,omitempty"` DeleteType int32 `protobuf:"varint,30,opt,name=deleteType,proto3" json:"deleteType,omitempty"` Uuid []byte `protobuf:"bytes,40,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *DeleteFileReq) Reset() { *x = DeleteFileReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteFileReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteFileReq) ProtoMessage() {} func (x *DeleteFileReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteFileReq.ProtoReflect.Descriptor instead. func (*DeleteFileReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{28} } func (x *DeleteFileReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *DeleteFileReq) GetPeerUin() int64 { if x != nil { return x.PeerUin } return 0 } func (x *DeleteFileReq) GetDeleteType() int32 { if x != nil { return x.DeleteType } return 0 } func (x *DeleteFileReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type DeleteFileRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` } func (x *DeleteFileRsp) Reset() { *x = DeleteFileRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteFileRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteFileRsp) ProtoMessage() {} func (x *DeleteFileRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteFileRsp.ProtoReflect.Descriptor instead. func (*DeleteFileRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{29} } func (x *DeleteFileRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *DeleteFileRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } type DownloadInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DownloadKey []byte `protobuf:"bytes,10,opt,name=downloadKey,proto3" json:"downloadKey,omitempty"` DownloadIp string `protobuf:"bytes,20,opt,name=downloadIp,proto3" json:"downloadIp,omitempty"` DownloadDomain string `protobuf:"bytes,30,opt,name=downloadDomain,proto3" json:"downloadDomain,omitempty"` Port int32 `protobuf:"varint,40,opt,name=port,proto3" json:"port,omitempty"` DownloadUrl string `protobuf:"bytes,50,opt,name=downloadUrl,proto3" json:"downloadUrl,omitempty"` DownloadipList []string `protobuf:"bytes,60,rep,name=downloadipList,proto3" json:"downloadipList,omitempty"` Cookie string `protobuf:"bytes,70,opt,name=cookie,proto3" json:"cookie,omitempty"` } func (x *DownloadInfo) Reset() { *x = DownloadInfo{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DownloadInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownloadInfo) ProtoMessage() {} func (x *DownloadInfo) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DownloadInfo.ProtoReflect.Descriptor instead. func (*DownloadInfo) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{30} } func (x *DownloadInfo) GetDownloadKey() []byte { if x != nil { return x.DownloadKey } return nil } func (x *DownloadInfo) GetDownloadIp() string { if x != nil { return x.DownloadIp } return "" } func (x *DownloadInfo) GetDownloadDomain() string { if x != nil { return x.DownloadDomain } return "" } func (x *DownloadInfo) GetPort() int32 { if x != nil { return x.Port } return 0 } func (x *DownloadInfo) GetDownloadUrl() string { if x != nil { return x.DownloadUrl } return "" } func (x *DownloadInfo) GetDownloadipList() []string { if x != nil { return x.DownloadipList } return nil } func (x *DownloadInfo) GetCookie() string { if x != nil { return x.Cookie } return "" } type DownloadSuccReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,20,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *DownloadSuccReq) Reset() { *x = DownloadSuccReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DownloadSuccReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownloadSuccReq) ProtoMessage() {} func (x *DownloadSuccReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DownloadSuccReq.ProtoReflect.Descriptor instead. func (*DownloadSuccReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{31} } func (x *DownloadSuccReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *DownloadSuccReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type DownloadSuccRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` DownStat int32 `protobuf:"varint,30,opt,name=downStat,proto3" json:"downStat,omitempty"` } func (x *DownloadSuccRsp) Reset() { *x = DownloadSuccRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DownloadSuccRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DownloadSuccRsp) ProtoMessage() {} func (x *DownloadSuccRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DownloadSuccRsp.ProtoReflect.Descriptor instead. func (*DownloadSuccRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{32} } func (x *DownloadSuccRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *DownloadSuccRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *DownloadSuccRsp) GetDownStat() int32 { if x != nil { return x.DownStat } return 0 } type ExtensionReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Type int64 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` DstPhonenum string `protobuf:"bytes,3,opt,name=dstPhonenum,proto3" json:"dstPhonenum,omitempty"` PhoneConvertType int32 `protobuf:"varint,4,opt,name=phoneConvertType,proto3" json:"phoneConvertType,omitempty"` Sig []byte `protobuf:"bytes,20,opt,name=sig,proto3" json:"sig,omitempty"` RouteId int64 `protobuf:"varint,100,opt,name=routeId,proto3" json:"routeId,omitempty"` DelMessageReq *DelMessageReq `protobuf:"bytes,90100,opt,name=delMessageReq,proto3" json:"delMessageReq,omitempty"` DownloadUrlType int32 `protobuf:"varint,90200,opt,name=downloadUrlType,proto3" json:"downloadUrlType,omitempty"` PttFormat int32 `protobuf:"varint,90300,opt,name=pttFormat,proto3" json:"pttFormat,omitempty"` IsNeedInnerIp int32 `protobuf:"varint,90400,opt,name=isNeedInnerIp,proto3" json:"isNeedInnerIp,omitempty"` NetType int32 `protobuf:"varint,90500,opt,name=netType,proto3" json:"netType,omitempty"` VoiceType int32 `protobuf:"varint,90600,opt,name=voiceType,proto3" json:"voiceType,omitempty"` FileType int32 `protobuf:"varint,90700,opt,name=fileType,proto3" json:"fileType,omitempty"` PttTime int32 `protobuf:"varint,90800,opt,name=pttTime,proto3" json:"pttTime,omitempty"` } func (x *ExtensionReq) Reset() { *x = ExtensionReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtensionReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtensionReq) ProtoMessage() {} func (x *ExtensionReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtensionReq.ProtoReflect.Descriptor instead. func (*ExtensionReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{33} } func (x *ExtensionReq) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *ExtensionReq) GetType() int64 { if x != nil { return x.Type } return 0 } func (x *ExtensionReq) GetDstPhonenum() string { if x != nil { return x.DstPhonenum } return "" } func (x *ExtensionReq) GetPhoneConvertType() int32 { if x != nil { return x.PhoneConvertType } return 0 } func (x *ExtensionReq) GetSig() []byte { if x != nil { return x.Sig } return nil } func (x *ExtensionReq) GetRouteId() int64 { if x != nil { return x.RouteId } return 0 } func (x *ExtensionReq) GetDelMessageReq() *DelMessageReq { if x != nil { return x.DelMessageReq } return nil } func (x *ExtensionReq) GetDownloadUrlType() int32 { if x != nil { return x.DownloadUrlType } return 0 } func (x *ExtensionReq) GetPttFormat() int32 { if x != nil { return x.PttFormat } return 0 } func (x *ExtensionReq) GetIsNeedInnerIp() int32 { if x != nil { return x.IsNeedInnerIp } return 0 } func (x *ExtensionReq) GetNetType() int32 { if x != nil { return x.NetType } return 0 } func (x *ExtensionReq) GetVoiceType() int32 { if x != nil { return x.VoiceType } return 0 } func (x *ExtensionReq) GetFileType() int32 { if x != nil { return x.FileType } return 0 } func (x *ExtensionReq) GetPttTime() int32 { if x != nil { return x.PttTime } return 0 } type ExtensionRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ExtensionRsp) Reset() { *x = ExtensionRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ExtensionRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ExtensionRsp) ProtoMessage() {} func (x *ExtensionRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ExtensionRsp.ProtoReflect.Descriptor instead. func (*ExtensionRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{34} } type FileInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` DangerEvel int32 `protobuf:"varint,2,opt,name=dangerEvel,proto3" json:"dangerEvel,omitempty"` FileSize int64 `protobuf:"varint,3,opt,name=fileSize,proto3" json:"fileSize,omitempty"` LifeTime int32 `protobuf:"varint,4,opt,name=lifeTime,proto3" json:"lifeTime,omitempty"` UploadTime int32 `protobuf:"varint,5,opt,name=uploadTime,proto3" json:"uploadTime,omitempty"` Uuid []byte `protobuf:"bytes,6,opt,name=uuid,proto3" json:"uuid,omitempty"` FileName string `protobuf:"bytes,7,opt,name=fileName,proto3" json:"fileName,omitempty"` AbsFileType int32 `protobuf:"varint,90,opt,name=absFileType,proto3" json:"absFileType,omitempty"` Bytes_10MMd5 []byte `protobuf:"bytes,100,opt,name=bytes_10mMd5,json=bytes10mMd5,proto3" json:"bytes_10mMd5,omitempty"` Sha []byte `protobuf:"bytes,101,opt,name=sha,proto3" json:"sha,omitempty"` ClientType int32 `protobuf:"varint,110,opt,name=clientType,proto3" json:"clientType,omitempty"` OwnerUin int64 `protobuf:"varint,120,opt,name=ownerUin,proto3" json:"ownerUin,omitempty"` PeerUin int64 `protobuf:"varint,121,opt,name=peerUin,proto3" json:"peerUin,omitempty"` ExpireTime int32 `protobuf:"varint,130,opt,name=expireTime,proto3" json:"expireTime,omitempty"` } func (x *FileInfo) Reset() { *x = FileInfo{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileInfo) ProtoMessage() {} func (x *FileInfo) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileInfo.ProtoReflect.Descriptor instead. func (*FileInfo) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{35} } func (x *FileInfo) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *FileInfo) GetDangerEvel() int32 { if x != nil { return x.DangerEvel } return 0 } func (x *FileInfo) GetFileSize() int64 { if x != nil { return x.FileSize } return 0 } func (x *FileInfo) GetLifeTime() int32 { if x != nil { return x.LifeTime } return 0 } func (x *FileInfo) GetUploadTime() int32 { if x != nil { return x.UploadTime } return 0 } func (x *FileInfo) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *FileInfo) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *FileInfo) GetAbsFileType() int32 { if x != nil { return x.AbsFileType } return 0 } func (x *FileInfo) GetBytes_10MMd5() []byte { if x != nil { return x.Bytes_10MMd5 } return nil } func (x *FileInfo) GetSha() []byte { if x != nil { return x.Sha } return nil } func (x *FileInfo) GetClientType() int32 { if x != nil { return x.ClientType } return 0 } func (x *FileInfo) GetOwnerUin() int64 { if x != nil { return x.OwnerUin } return 0 } func (x *FileInfo) GetPeerUin() int64 { if x != nil { return x.PeerUin } return 0 } func (x *FileInfo) GetExpireTime() int32 { if x != nil { return x.ExpireTime } return 0 } type FileQueryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,10,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,20,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *FileQueryReq) Reset() { *x = FileQueryReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileQueryReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileQueryReq) ProtoMessage() {} func (x *FileQueryReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileQueryReq.ProtoReflect.Descriptor instead. func (*FileQueryReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{36} } func (x *FileQueryReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *FileQueryReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type FileQueryRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` FileInfo *FileInfo `protobuf:"bytes,30,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` } func (x *FileQueryRsp) Reset() { *x = FileQueryRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileQueryRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileQueryRsp) ProtoMessage() {} func (x *FileQueryRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileQueryRsp.ProtoReflect.Descriptor instead. func (*FileQueryRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{37} } func (x *FileQueryRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *FileQueryRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *FileQueryRsp) GetFileInfo() *FileInfo { if x != nil { return x.FileInfo } return nil } type RecallFileReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *RecallFileReq) Reset() { *x = RecallFileReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecallFileReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecallFileReq) ProtoMessage() {} func (x *RecallFileReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RecallFileReq.ProtoReflect.Descriptor instead. func (*RecallFileReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{38} } func (x *RecallFileReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *RecallFileReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type RecallFileRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,1,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,2,opt,name=retMsg,proto3" json:"retMsg,omitempty"` } func (x *RecallFileRsp) Reset() { *x = RecallFileRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecallFileRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecallFileRsp) ProtoMessage() {} func (x *RecallFileRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RecallFileRsp.ProtoReflect.Descriptor instead. func (*RecallFileRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{39} } func (x *RecallFileRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *RecallFileRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } type RecvListQueryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` BeginIndex int32 `protobuf:"varint,2,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` ReqCount int32 `protobuf:"varint,3,opt,name=reqCount,proto3" json:"reqCount,omitempty"` } func (x *RecvListQueryReq) Reset() { *x = RecvListQueryReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecvListQueryReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecvListQueryReq) ProtoMessage() {} func (x *RecvListQueryReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RecvListQueryReq.ProtoReflect.Descriptor instead. func (*RecvListQueryReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{40} } func (x *RecvListQueryReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *RecvListQueryReq) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *RecvListQueryReq) GetReqCount() int32 { if x != nil { return x.ReqCount } return 0 } type RecvListQueryRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,1,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,2,opt,name=retMsg,proto3" json:"retMsg,omitempty"` FileTotCount int32 `protobuf:"varint,3,opt,name=fileTotCount,proto3" json:"fileTotCount,omitempty"` BeginIndex int32 `protobuf:"varint,4,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` RspFileCount int32 `protobuf:"varint,5,opt,name=rspFileCount,proto3" json:"rspFileCount,omitempty"` IsEnd int32 `protobuf:"varint,6,opt,name=isEnd,proto3" json:"isEnd,omitempty"` FileList []*FileInfo `protobuf:"bytes,7,rep,name=fileList,proto3" json:"fileList,omitempty"` } func (x *RecvListQueryRsp) Reset() { *x = RecvListQueryRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RecvListQueryRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RecvListQueryRsp) ProtoMessage() {} func (x *RecvListQueryRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RecvListQueryRsp.ProtoReflect.Descriptor instead. func (*RecvListQueryRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{41} } func (x *RecvListQueryRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *RecvListQueryRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *RecvListQueryRsp) GetFileTotCount() int32 { if x != nil { return x.FileTotCount } return 0 } func (x *RecvListQueryRsp) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *RecvListQueryRsp) GetRspFileCount() int32 { if x != nil { return x.RspFileCount } return 0 } func (x *RecvListQueryRsp) GetIsEnd() int32 { if x != nil { return x.IsEnd } return 0 } func (x *RecvListQueryRsp) GetFileList() []*FileInfo { if x != nil { return x.FileList } return nil } type RenewFileReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` Uuid []byte `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` AddTtl int32 `protobuf:"varint,3,opt,name=addTtl,proto3" json:"addTtl,omitempty"` } func (x *RenewFileReq) Reset() { *x = RenewFileReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RenewFileReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*RenewFileReq) ProtoMessage() {} func (x *RenewFileReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RenewFileReq.ProtoReflect.Descriptor instead. func (*RenewFileReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{42} } func (x *RenewFileReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *RenewFileReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } func (x *RenewFileReq) GetAddTtl() int32 { if x != nil { return x.AddTtl } return 0 } type RenewFileRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,1,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,2,opt,name=retMsg,proto3" json:"retMsg,omitempty"` } func (x *RenewFileRsp) Reset() { *x = RenewFileRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RenewFileRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*RenewFileRsp) ProtoMessage() {} func (x *RenewFileRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RenewFileRsp.ProtoReflect.Descriptor instead. func (*RenewFileRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{43} } func (x *RenewFileRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *RenewFileRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } type C346ReqBody struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cmd int32 `protobuf:"varint,1,opt,name=cmd,proto3" json:"cmd,omitempty"` Seq int32 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"` RecvListQueryReq *RecvListQueryReq `protobuf:"bytes,3,opt,name=recvListQueryReq,proto3" json:"recvListQueryReq,omitempty"` SendListQueryReq *SendListQueryReq `protobuf:"bytes,4,opt,name=sendListQueryReq,proto3" json:"sendListQueryReq,omitempty"` RenewFileReq *RenewFileReq `protobuf:"bytes,5,opt,name=renewFileReq,proto3" json:"renewFileReq,omitempty"` RecallFileReq *RecallFileReq `protobuf:"bytes,6,opt,name=recallFileReq,proto3" json:"recallFileReq,omitempty"` ApplyUploadReq *ApplyUploadReq `protobuf:"bytes,7,opt,name=applyUploadReq,proto3" json:"applyUploadReq,omitempty"` ApplyUploadHitReq *ApplyUploadHitReq `protobuf:"bytes,8,opt,name=applyUploadHitReq,proto3" json:"applyUploadHitReq,omitempty"` ApplyForwardFileReq *ApplyForwardFileReq `protobuf:"bytes,9,opt,name=applyForwardFileReq,proto3" json:"applyForwardFileReq,omitempty"` UploadSuccReq *UploadSuccReq `protobuf:"bytes,10,opt,name=uploadSuccReq,proto3" json:"uploadSuccReq,omitempty"` DeleteFileReq *DeleteFileReq `protobuf:"bytes,11,opt,name=deleteFileReq,proto3" json:"deleteFileReq,omitempty"` DownloadSuccReq *DownloadSuccReq `protobuf:"bytes,12,opt,name=downloadSuccReq,proto3" json:"downloadSuccReq,omitempty"` ApplyDownloadAbsReq *ApplyDownloadAbsReq `protobuf:"bytes,13,opt,name=applyDownloadAbsReq,proto3" json:"applyDownloadAbsReq,omitempty"` ApplyDownloadReq *ApplyDownloadReq `protobuf:"bytes,14,opt,name=applyDownloadReq,proto3" json:"applyDownloadReq,omitempty"` ApplyListDownloadReq *ApplyListDownloadReq `protobuf:"bytes,15,opt,name=applyListDownloadReq,proto3" json:"applyListDownloadReq,omitempty"` FileQueryReq *FileQueryReq `protobuf:"bytes,16,opt,name=fileQueryReq,proto3" json:"fileQueryReq,omitempty"` ApplyCopyFromReq *ApplyCopyFromReq `protobuf:"bytes,17,opt,name=applyCopyFromReq,proto3" json:"applyCopyFromReq,omitempty"` ApplyUploadReqV2 *ApplyUploadReqV2 `protobuf:"bytes,18,opt,name=applyUploadReqV2,proto3" json:"applyUploadReqV2,omitempty"` ApplyUploadReqV3 *ApplyUploadReqV3 `protobuf:"bytes,19,opt,name=applyUploadReqV3,proto3" json:"applyUploadReqV3,omitempty"` ApplyUploadHitReqV2 *ApplyUploadHitReqV2 `protobuf:"bytes,20,opt,name=applyUploadHitReqV2,proto3" json:"applyUploadHitReqV2,omitempty"` ApplyUploadHitReqV3 *ApplyUploadHitReqV3 `protobuf:"bytes,21,opt,name=applyUploadHitReqV3,proto3" json:"applyUploadHitReqV3,omitempty"` BusinessId int32 `protobuf:"varint,101,opt,name=businessId,proto3" json:"businessId,omitempty"` ClientType int32 `protobuf:"varint,102,opt,name=clientType,proto3" json:"clientType,omitempty"` ApplyCopyToReq *ApplyCopyToReq `protobuf:"bytes,90000,opt,name=applyCopyToReq,proto3" json:"applyCopyToReq,omitempty"` //ApplyCleanTrafficReq applyCleanTrafficReq = 90001; empty message ApplyGetTrafficReq *ApplyGetTrafficReq `protobuf:"bytes,90002,opt,name=applyGetTrafficReq,proto3" json:"applyGetTrafficReq,omitempty"` ExtensionReq *ExtensionReq `protobuf:"bytes,99999,opt,name=extensionReq,proto3" json:"extensionReq,omitempty"` } func (x *C346ReqBody) Reset() { *x = C346ReqBody{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C346ReqBody) String() string { return protoimpl.X.MessageStringOf(x) } func (*C346ReqBody) ProtoMessage() {} func (x *C346ReqBody) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C346ReqBody.ProtoReflect.Descriptor instead. func (*C346ReqBody) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{44} } func (x *C346ReqBody) GetCmd() int32 { if x != nil { return x.Cmd } return 0 } func (x *C346ReqBody) GetSeq() int32 { if x != nil { return x.Seq } return 0 } func (x *C346ReqBody) GetRecvListQueryReq() *RecvListQueryReq { if x != nil { return x.RecvListQueryReq } return nil } func (x *C346ReqBody) GetSendListQueryReq() *SendListQueryReq { if x != nil { return x.SendListQueryReq } return nil } func (x *C346ReqBody) GetRenewFileReq() *RenewFileReq { if x != nil { return x.RenewFileReq } return nil } func (x *C346ReqBody) GetRecallFileReq() *RecallFileReq { if x != nil { return x.RecallFileReq } return nil } func (x *C346ReqBody) GetApplyUploadReq() *ApplyUploadReq { if x != nil { return x.ApplyUploadReq } return nil } func (x *C346ReqBody) GetApplyUploadHitReq() *ApplyUploadHitReq { if x != nil { return x.ApplyUploadHitReq } return nil } func (x *C346ReqBody) GetApplyForwardFileReq() *ApplyForwardFileReq { if x != nil { return x.ApplyForwardFileReq } return nil } func (x *C346ReqBody) GetUploadSuccReq() *UploadSuccReq { if x != nil { return x.UploadSuccReq } return nil } func (x *C346ReqBody) GetDeleteFileReq() *DeleteFileReq { if x != nil { return x.DeleteFileReq } return nil } func (x *C346ReqBody) GetDownloadSuccReq() *DownloadSuccReq { if x != nil { return x.DownloadSuccReq } return nil } func (x *C346ReqBody) GetApplyDownloadAbsReq() *ApplyDownloadAbsReq { if x != nil { return x.ApplyDownloadAbsReq } return nil } func (x *C346ReqBody) GetApplyDownloadReq() *ApplyDownloadReq { if x != nil { return x.ApplyDownloadReq } return nil } func (x *C346ReqBody) GetApplyListDownloadReq() *ApplyListDownloadReq { if x != nil { return x.ApplyListDownloadReq } return nil } func (x *C346ReqBody) GetFileQueryReq() *FileQueryReq { if x != nil { return x.FileQueryReq } return nil } func (x *C346ReqBody) GetApplyCopyFromReq() *ApplyCopyFromReq { if x != nil { return x.ApplyCopyFromReq } return nil } func (x *C346ReqBody) GetApplyUploadReqV2() *ApplyUploadReqV2 { if x != nil { return x.ApplyUploadReqV2 } return nil } func (x *C346ReqBody) GetApplyUploadReqV3() *ApplyUploadReqV3 { if x != nil { return x.ApplyUploadReqV3 } return nil } func (x *C346ReqBody) GetApplyUploadHitReqV2() *ApplyUploadHitReqV2 { if x != nil { return x.ApplyUploadHitReqV2 } return nil } func (x *C346ReqBody) GetApplyUploadHitReqV3() *ApplyUploadHitReqV3 { if x != nil { return x.ApplyUploadHitReqV3 } return nil } func (x *C346ReqBody) GetBusinessId() int32 { if x != nil { return x.BusinessId } return 0 } func (x *C346ReqBody) GetClientType() int32 { if x != nil { return x.ClientType } return 0 } func (x *C346ReqBody) GetApplyCopyToReq() *ApplyCopyToReq { if x != nil { return x.ApplyCopyToReq } return nil } func (x *C346ReqBody) GetApplyGetTrafficReq() *ApplyGetTrafficReq { if x != nil { return x.ApplyGetTrafficReq } return nil } func (x *C346ReqBody) GetExtensionReq() *ExtensionReq { if x != nil { return x.ExtensionReq } return nil } type C346RspBody struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Cmd int32 `protobuf:"varint,1,opt,name=cmd,proto3" json:"cmd,omitempty"` Seq int32 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"` RecvListQueryRsp *RecvListQueryRsp `protobuf:"bytes,3,opt,name=recvListQueryRsp,proto3" json:"recvListQueryRsp,omitempty"` SendListQueryRsp *SendListQueryRsp `protobuf:"bytes,4,opt,name=sendListQueryRsp,proto3" json:"sendListQueryRsp,omitempty"` RenewFileRsp *RenewFileRsp `protobuf:"bytes,5,opt,name=renewFileRsp,proto3" json:"renewFileRsp,omitempty"` RecallFileRsp *RecallFileRsp `protobuf:"bytes,6,opt,name=recallFileRsp,proto3" json:"recallFileRsp,omitempty"` ApplyUploadRsp *ApplyUploadRsp `protobuf:"bytes,7,opt,name=applyUploadRsp,proto3" json:"applyUploadRsp,omitempty"` ApplyUploadHitRsp *ApplyUploadHitRsp `protobuf:"bytes,8,opt,name=applyUploadHitRsp,proto3" json:"applyUploadHitRsp,omitempty"` ApplyForwardFileRsp *ApplyForwardFileRsp `protobuf:"bytes,9,opt,name=applyForwardFileRsp,proto3" json:"applyForwardFileRsp,omitempty"` UploadSuccRsp *UploadSuccRsp `protobuf:"bytes,10,opt,name=uploadSuccRsp,proto3" json:"uploadSuccRsp,omitempty"` DeleteFileRsp *DeleteFileRsp `protobuf:"bytes,11,opt,name=deleteFileRsp,proto3" json:"deleteFileRsp,omitempty"` DownloadSuccRsp *DownloadSuccRsp `protobuf:"bytes,12,opt,name=downloadSuccRsp,proto3" json:"downloadSuccRsp,omitempty"` ApplyDownloadAbsRsp *ApplyDownloadAbsRsp `protobuf:"bytes,13,opt,name=applyDownloadAbsRsp,proto3" json:"applyDownloadAbsRsp,omitempty"` ApplyDownloadRsp *ApplyDownloadRsp `protobuf:"bytes,14,opt,name=applyDownloadRsp,proto3" json:"applyDownloadRsp,omitempty"` ApplyListDownloadRsp *ApplyListDownloadRsp `protobuf:"bytes,15,opt,name=applyListDownloadRsp,proto3" json:"applyListDownloadRsp,omitempty"` FileQueryRsp *FileQueryRsp `protobuf:"bytes,16,opt,name=fileQueryRsp,proto3" json:"fileQueryRsp,omitempty"` ApplyCopyFromRsp *ApplyCopyFromRsp `protobuf:"bytes,17,opt,name=applyCopyFromRsp,proto3" json:"applyCopyFromRsp,omitempty"` ApplyUploadRspV2 *ApplyUploadRspV2 `protobuf:"bytes,18,opt,name=applyUploadRspV2,proto3" json:"applyUploadRspV2,omitempty"` ApplyUploadRspV3 *ApplyUploadRspV3 `protobuf:"bytes,19,opt,name=applyUploadRspV3,proto3" json:"applyUploadRspV3,omitempty"` ApplyUploadHitRspV2 *ApplyUploadHitRspV2 `protobuf:"bytes,20,opt,name=applyUploadHitRspV2,proto3" json:"applyUploadHitRspV2,omitempty"` ApplyUploadHitRspV3 *ApplyUploadHitRspV3 `protobuf:"bytes,21,opt,name=applyUploadHitRspV3,proto3" json:"applyUploadHitRspV3,omitempty"` BusinessId int32 `protobuf:"varint,101,opt,name=businessId,proto3" json:"businessId,omitempty"` ClientType int32 `protobuf:"varint,102,opt,name=clientType,proto3" json:"clientType,omitempty"` ApplyCopyToRsp *ApplyCopyToRsp `protobuf:"bytes,90000,opt,name=applyCopyToRsp,proto3" json:"applyCopyToRsp,omitempty"` ApplyCleanTrafficRsp *ApplyCleanTrafficRsp `protobuf:"bytes,90001,opt,name=applyCleanTrafficRsp,proto3" json:"applyCleanTrafficRsp,omitempty"` ApplyGetTrafficRsp *ApplyGetTrafficRsp `protobuf:"bytes,90002,opt,name=applyGetTrafficRsp,proto3" json:"applyGetTrafficRsp,omitempty"` ExtensionRsp *ExtensionRsp `protobuf:"bytes,99999,opt,name=extensionRsp,proto3" json:"extensionRsp,omitempty"` } func (x *C346RspBody) Reset() { *x = C346RspBody{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *C346RspBody) String() string { return protoimpl.X.MessageStringOf(x) } func (*C346RspBody) ProtoMessage() {} func (x *C346RspBody) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use C346RspBody.ProtoReflect.Descriptor instead. func (*C346RspBody) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{45} } func (x *C346RspBody) GetCmd() int32 { if x != nil { return x.Cmd } return 0 } func (x *C346RspBody) GetSeq() int32 { if x != nil { return x.Seq } return 0 } func (x *C346RspBody) GetRecvListQueryRsp() *RecvListQueryRsp { if x != nil { return x.RecvListQueryRsp } return nil } func (x *C346RspBody) GetSendListQueryRsp() *SendListQueryRsp { if x != nil { return x.SendListQueryRsp } return nil } func (x *C346RspBody) GetRenewFileRsp() *RenewFileRsp { if x != nil { return x.RenewFileRsp } return nil } func (x *C346RspBody) GetRecallFileRsp() *RecallFileRsp { if x != nil { return x.RecallFileRsp } return nil } func (x *C346RspBody) GetApplyUploadRsp() *ApplyUploadRsp { if x != nil { return x.ApplyUploadRsp } return nil } func (x *C346RspBody) GetApplyUploadHitRsp() *ApplyUploadHitRsp { if x != nil { return x.ApplyUploadHitRsp } return nil } func (x *C346RspBody) GetApplyForwardFileRsp() *ApplyForwardFileRsp { if x != nil { return x.ApplyForwardFileRsp } return nil } func (x *C346RspBody) GetUploadSuccRsp() *UploadSuccRsp { if x != nil { return x.UploadSuccRsp } return nil } func (x *C346RspBody) GetDeleteFileRsp() *DeleteFileRsp { if x != nil { return x.DeleteFileRsp } return nil } func (x *C346RspBody) GetDownloadSuccRsp() *DownloadSuccRsp { if x != nil { return x.DownloadSuccRsp } return nil } func (x *C346RspBody) GetApplyDownloadAbsRsp() *ApplyDownloadAbsRsp { if x != nil { return x.ApplyDownloadAbsRsp } return nil } func (x *C346RspBody) GetApplyDownloadRsp() *ApplyDownloadRsp { if x != nil { return x.ApplyDownloadRsp } return nil } func (x *C346RspBody) GetApplyListDownloadRsp() *ApplyListDownloadRsp { if x != nil { return x.ApplyListDownloadRsp } return nil } func (x *C346RspBody) GetFileQueryRsp() *FileQueryRsp { if x != nil { return x.FileQueryRsp } return nil } func (x *C346RspBody) GetApplyCopyFromRsp() *ApplyCopyFromRsp { if x != nil { return x.ApplyCopyFromRsp } return nil } func (x *C346RspBody) GetApplyUploadRspV2() *ApplyUploadRspV2 { if x != nil { return x.ApplyUploadRspV2 } return nil } func (x *C346RspBody) GetApplyUploadRspV3() *ApplyUploadRspV3 { if x != nil { return x.ApplyUploadRspV3 } return nil } func (x *C346RspBody) GetApplyUploadHitRspV2() *ApplyUploadHitRspV2 { if x != nil { return x.ApplyUploadHitRspV2 } return nil } func (x *C346RspBody) GetApplyUploadHitRspV3() *ApplyUploadHitRspV3 { if x != nil { return x.ApplyUploadHitRspV3 } return nil } func (x *C346RspBody) GetBusinessId() int32 { if x != nil { return x.BusinessId } return 0 } func (x *C346RspBody) GetClientType() int32 { if x != nil { return x.ClientType } return 0 } func (x *C346RspBody) GetApplyCopyToRsp() *ApplyCopyToRsp { if x != nil { return x.ApplyCopyToRsp } return nil } func (x *C346RspBody) GetApplyCleanTrafficRsp() *ApplyCleanTrafficRsp { if x != nil { return x.ApplyCleanTrafficRsp } return nil } func (x *C346RspBody) GetApplyGetTrafficRsp() *ApplyGetTrafficRsp { if x != nil { return x.ApplyGetTrafficRsp } return nil } func (x *C346RspBody) GetExtensionRsp() *ExtensionRsp { if x != nil { return x.ExtensionRsp } return nil } type SendListQueryReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"` BeginIndex int32 `protobuf:"varint,2,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` ReqCount int32 `protobuf:"varint,3,opt,name=reqCount,proto3" json:"reqCount,omitempty"` } func (x *SendListQueryReq) Reset() { *x = SendListQueryReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendListQueryReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendListQueryReq) ProtoMessage() {} func (x *SendListQueryReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendListQueryReq.ProtoReflect.Descriptor instead. func (*SendListQueryReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{46} } func (x *SendListQueryReq) GetUin() int64 { if x != nil { return x.Uin } return 0 } func (x *SendListQueryReq) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *SendListQueryReq) GetReqCount() int32 { if x != nil { return x.ReqCount } return 0 } type SendListQueryRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,1,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,2,opt,name=retMsg,proto3" json:"retMsg,omitempty"` FileTotCount int32 `protobuf:"varint,3,opt,name=fileTotCount,proto3" json:"fileTotCount,omitempty"` BeginIndex int32 `protobuf:"varint,4,opt,name=beginIndex,proto3" json:"beginIndex,omitempty"` RspFileCount int32 `protobuf:"varint,5,opt,name=rspFileCount,proto3" json:"rspFileCount,omitempty"` IsEnd int32 `protobuf:"varint,6,opt,name=isEnd,proto3" json:"isEnd,omitempty"` TotLimit int64 `protobuf:"varint,7,opt,name=totLimit,proto3" json:"totLimit,omitempty"` UsedLimit int64 `protobuf:"varint,8,opt,name=usedLimit,proto3" json:"usedLimit,omitempty"` FileList []*FileInfo `protobuf:"bytes,9,rep,name=fileList,proto3" json:"fileList,omitempty"` } func (x *SendListQueryRsp) Reset() { *x = SendListQueryRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendListQueryRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendListQueryRsp) ProtoMessage() {} func (x *SendListQueryRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendListQueryRsp.ProtoReflect.Descriptor instead. func (*SendListQueryRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{47} } func (x *SendListQueryRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *SendListQueryRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *SendListQueryRsp) GetFileTotCount() int32 { if x != nil { return x.FileTotCount } return 0 } func (x *SendListQueryRsp) GetBeginIndex() int32 { if x != nil { return x.BeginIndex } return 0 } func (x *SendListQueryRsp) GetRspFileCount() int32 { if x != nil { return x.RspFileCount } return 0 } func (x *SendListQueryRsp) GetIsEnd() int32 { if x != nil { return x.IsEnd } return 0 } func (x *SendListQueryRsp) GetTotLimit() int64 { if x != nil { return x.TotLimit } return 0 } func (x *SendListQueryRsp) GetUsedLimit() int64 { if x != nil { return x.UsedLimit } return 0 } func (x *SendListQueryRsp) GetFileList() []*FileInfo { if x != nil { return x.FileList } return nil } type UploadSuccReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderUin int64 `protobuf:"varint,10,opt,name=senderUin,proto3" json:"senderUin,omitempty"` RecverUin int64 `protobuf:"varint,20,opt,name=recverUin,proto3" json:"recverUin,omitempty"` Uuid []byte `protobuf:"bytes,30,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *UploadSuccReq) Reset() { *x = UploadSuccReq{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadSuccReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadSuccReq) ProtoMessage() {} func (x *UploadSuccReq) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UploadSuccReq.ProtoReflect.Descriptor instead. func (*UploadSuccReq) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{48} } func (x *UploadSuccReq) GetSenderUin() int64 { if x != nil { return x.SenderUin } return 0 } func (x *UploadSuccReq) GetRecverUin() int64 { if x != nil { return x.RecverUin } return 0 } func (x *UploadSuccReq) GetUuid() []byte { if x != nil { return x.Uuid } return nil } type UploadSuccRsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RetCode int32 `protobuf:"varint,10,opt,name=retCode,proto3" json:"retCode,omitempty"` RetMsg string `protobuf:"bytes,20,opt,name=retMsg,proto3" json:"retMsg,omitempty"` FileInfo *FileInfo `protobuf:"bytes,30,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` } func (x *UploadSuccRsp) Reset() { *x = UploadSuccRsp{} if protoimpl.UnsafeEnabled { mi := &file_cmd0x346_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadSuccRsp) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadSuccRsp) ProtoMessage() {} func (x *UploadSuccRsp) ProtoReflect() protoreflect.Message { mi := &file_cmd0x346_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UploadSuccRsp.ProtoReflect.Descriptor instead. func (*UploadSuccRsp) Descriptor() ([]byte, []int) { return file_cmd0x346_proto_rawDescGZIP(), []int{49} } func (x *UploadSuccRsp) GetRetCode() int32 { if x != nil { return x.RetCode } return 0 } func (x *UploadSuccRsp) GetRetMsg() string { if x != nil { return x.RetMsg } return "" } func (x *UploadSuccRsp) GetFileInfo() *FileInfo { if x != nil { return x.FileInfo } return nil } var File_cmd0x346_proto protoreflect.FileDescriptor var file_cmd0x346_proto_rawDesc = []byte{ 0x0a, 0x0e, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x33, 0x34, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x48, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x22, 0xd2, 0x02, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x72, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x53, 0x76, 0x63, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x72, 0x63, 0x53, 0x76, 0x63, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x72, 0x63, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x72, 0x63, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x55, 0x75, 0x69, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x72, 0x63, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x50, 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, 0x5a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x73, 0x74, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x53, 0x76, 0x63, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x73, 0x74, 0x53, 0x76, 0x63, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x32, 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, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x3b, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x7a, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x75, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x18, 0xf4, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x22, 0xca, 0x01, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x64, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x73, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x73, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x92, 0x02, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 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, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 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, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x33, 0x73, 0x68, 0x61, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x33, 0x73, 0x68, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 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, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x50, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1e, 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, 0x28, 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, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x32, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 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, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x33, 0x73, 0x68, 0x61, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x33, 0x73, 0x68, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x1e, 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, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x22, 0x9d, 0x03, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xd9, 0x03, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x76, 0x72, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x76, 0x72, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x12, 0x11, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x68, 0x61, 0x22, 0x9f, 0x03, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x78, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x69, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x69, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x22, 0x6f, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x22, 0xee, 0x01, 0x0a, 0x0c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0x37, 0x0a, 0x0f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x5f, 0x0a, 0x0f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x73, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x18, 0x64, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x18, 0xf4, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0xd8, 0xc0, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x70, 0x74, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0xbc, 0xc1, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x74, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0d, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x18, 0xa0, 0xc2, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x84, 0xc3, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0xe8, 0xc3, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0xcc, 0xc4, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x70, 0x74, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0xb0, 0xc5, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x74, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x73, 0x70, 0x22, 0x92, 0x03, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 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, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x31, 0x30, 0x6d, 0x4d, 0x64, 0x35, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x78, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x79, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x67, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x35, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x22, 0x60, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe9, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x54, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x64, 0x64, 0x54, 0x74, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x22, 0xcc, 0x0b, 0x0a, 0x0b, 0x43, 0x33, 0x34, 0x36, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x52, 0x10, 0x72, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x52, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x65, 0x71, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x65, 0x71, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x32, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x33, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x56, 0x33, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x32, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x33, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x33, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x65, 0x71, 0x56, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x18, 0x90, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x18, 0x92, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x9f, 0x8d, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x99, 0x0c, 0x0a, 0x0b, 0x43, 0x33, 0x34, 0x36, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x52, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x52, 0x10, 0x72, 0x65, 0x63, 0x76, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x52, 0x0d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x52, 0x0f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x73, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x73, 0x70, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x62, 0x73, 0x52, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x73, 0x70, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x73, 0x70, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x32, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x32, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x32, 0x12, 0x3d, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x33, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x33, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x73, 0x70, 0x56, 0x33, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x32, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x32, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x33, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x33, 0x52, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x69, 0x74, 0x52, 0x73, 0x70, 0x56, 0x33, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x65, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x73, 0x70, 0x18, 0x90, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x73, 0x70, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x54, 0x6f, 0x52, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x18, 0x91, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x18, 0x92, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x73, 0x70, 0x18, 0x9f, 0x8d, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x73, 0x70, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x73, 0x70, 0x22, 0x60, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x71, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5f, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x75, 0x63, 0x63, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x3b, 0x63, 0x6d, 0x64, 0x30, 0x78, 0x33, 0x34, 0x36, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_cmd0x346_proto_rawDescOnce sync.Once file_cmd0x346_proto_rawDescData = file_cmd0x346_proto_rawDesc ) func file_cmd0x346_proto_rawDescGZIP() []byte { file_cmd0x346_proto_rawDescOnce.Do(func() { file_cmd0x346_proto_rawDescData = protoimpl.X.CompressGZIP(file_cmd0x346_proto_rawDescData) }) return file_cmd0x346_proto_rawDescData } var file_cmd0x346_proto_msgTypes = make([]protoimpl.MessageInfo, 50) var file_cmd0x346_proto_goTypes = []interface{}{ (*ApplyCleanTrafficRsp)(nil), // 0: ApplyCleanTrafficRsp (*ApplyCopyFromReq)(nil), // 1: ApplyCopyFromReq (*ApplyCopyFromRsp)(nil), // 2: ApplyCopyFromRsp (*ApplyCopyToReq)(nil), // 3: ApplyCopyToReq (*ApplyCopyToRsp)(nil), // 4: ApplyCopyToRsp (*ApplyDownloadAbsReq)(nil), // 5: ApplyDownloadAbsReq (*ApplyDownloadAbsRsp)(nil), // 6: ApplyDownloadAbsRsp (*ApplyDownloadReq)(nil), // 7: ApplyDownloadReq (*ApplyDownloadRsp)(nil), // 8: ApplyDownloadRsp (*ApplyForwardFileReq)(nil), // 9: ApplyForwardFileReq (*ApplyForwardFileRsp)(nil), // 10: ApplyForwardFileRsp (*ApplyGetTrafficReq)(nil), // 11: ApplyGetTrafficReq (*ApplyGetTrafficRsp)(nil), // 12: ApplyGetTrafficRsp (*ApplyListDownloadReq)(nil), // 13: ApplyListDownloadReq (*ApplyListDownloadRsp)(nil), // 14: ApplyListDownloadRsp (*ApplyUploadHitReq)(nil), // 15: ApplyUploadHitReq (*ApplyUploadHitReqV2)(nil), // 16: ApplyUploadHitReqV2 (*ApplyUploadHitReqV3)(nil), // 17: ApplyUploadHitReqV3 (*ApplyUploadHitRsp)(nil), // 18: ApplyUploadHitRsp (*ApplyUploadHitRspV2)(nil), // 19: ApplyUploadHitRspV2 (*ApplyUploadHitRspV3)(nil), // 20: ApplyUploadHitRspV3 (*ApplyUploadReq)(nil), // 21: ApplyUploadReq (*ApplyUploadReqV2)(nil), // 22: ApplyUploadReqV2 (*ApplyUploadReqV3)(nil), // 23: ApplyUploadReqV3 (*ApplyUploadRsp)(nil), // 24: ApplyUploadRsp (*ApplyUploadRspV2)(nil), // 25: ApplyUploadRspV2 (*ApplyUploadRspV3)(nil), // 26: ApplyUploadRspV3 (*DelMessageReq)(nil), // 27: DelMessageReq (*DeleteFileReq)(nil), // 28: DeleteFileReq (*DeleteFileRsp)(nil), // 29: DeleteFileRsp (*DownloadInfo)(nil), // 30: DownloadInfo (*DownloadSuccReq)(nil), // 31: DownloadSuccReq (*DownloadSuccRsp)(nil), // 32: DownloadSuccRsp (*ExtensionReq)(nil), // 33: ExtensionReq (*ExtensionRsp)(nil), // 34: ExtensionRsp (*FileInfo)(nil), // 35: FileInfo (*FileQueryReq)(nil), // 36: FileQueryReq (*FileQueryRsp)(nil), // 37: FileQueryRsp (*RecallFileReq)(nil), // 38: RecallFileReq (*RecallFileRsp)(nil), // 39: RecallFileRsp (*RecvListQueryReq)(nil), // 40: RecvListQueryReq (*RecvListQueryRsp)(nil), // 41: RecvListQueryRsp (*RenewFileReq)(nil), // 42: RenewFileReq (*RenewFileRsp)(nil), // 43: RenewFileRsp (*C346ReqBody)(nil), // 44: C346ReqBody (*C346RspBody)(nil), // 45: C346RspBody (*SendListQueryReq)(nil), // 46: SendListQueryReq (*SendListQueryRsp)(nil), // 47: SendListQueryRsp (*UploadSuccReq)(nil), // 48: UploadSuccReq (*UploadSuccRsp)(nil), // 49: UploadSuccRsp } var file_cmd0x346_proto_depIdxs = []int32{ 30, // 0: ApplyDownloadAbsRsp.downloadInfo:type_name -> DownloadInfo 30, // 1: ApplyDownloadRsp.downloadInfo:type_name -> DownloadInfo 35, // 2: ApplyDownloadRsp.fileInfo:type_name -> FileInfo 35, // 3: ApplyListDownloadRsp.fileList:type_name -> FileInfo 27, // 4: ExtensionReq.delMessageReq:type_name -> DelMessageReq 35, // 5: FileQueryRsp.fileInfo:type_name -> FileInfo 35, // 6: RecvListQueryRsp.fileList:type_name -> FileInfo 40, // 7: C346ReqBody.recvListQueryReq:type_name -> RecvListQueryReq 46, // 8: C346ReqBody.sendListQueryReq:type_name -> SendListQueryReq 42, // 9: C346ReqBody.renewFileReq:type_name -> RenewFileReq 38, // 10: C346ReqBody.recallFileReq:type_name -> RecallFileReq 21, // 11: C346ReqBody.applyUploadReq:type_name -> ApplyUploadReq 15, // 12: C346ReqBody.applyUploadHitReq:type_name -> ApplyUploadHitReq 9, // 13: C346ReqBody.applyForwardFileReq:type_name -> ApplyForwardFileReq 48, // 14: C346ReqBody.uploadSuccReq:type_name -> UploadSuccReq 28, // 15: C346ReqBody.deleteFileReq:type_name -> DeleteFileReq 31, // 16: C346ReqBody.downloadSuccReq:type_name -> DownloadSuccReq 5, // 17: C346ReqBody.applyDownloadAbsReq:type_name -> ApplyDownloadAbsReq 7, // 18: C346ReqBody.applyDownloadReq:type_name -> ApplyDownloadReq 13, // 19: C346ReqBody.applyListDownloadReq:type_name -> ApplyListDownloadReq 36, // 20: C346ReqBody.fileQueryReq:type_name -> FileQueryReq 1, // 21: C346ReqBody.applyCopyFromReq:type_name -> ApplyCopyFromReq 22, // 22: C346ReqBody.applyUploadReqV2:type_name -> ApplyUploadReqV2 23, // 23: C346ReqBody.applyUploadReqV3:type_name -> ApplyUploadReqV3 16, // 24: C346ReqBody.applyUploadHitReqV2:type_name -> ApplyUploadHitReqV2 17, // 25: C346ReqBody.applyUploadHitReqV3:type_name -> ApplyUploadHitReqV3 3, // 26: C346ReqBody.applyCopyToReq:type_name -> ApplyCopyToReq 11, // 27: C346ReqBody.applyGetTrafficReq:type_name -> ApplyGetTrafficReq 33, // 28: C346ReqBody.extensionReq:type_name -> ExtensionReq 41, // 29: C346RspBody.recvListQueryRsp:type_name -> RecvListQueryRsp 47, // 30: C346RspBody.sendListQueryRsp:type_name -> SendListQueryRsp 43, // 31: C346RspBody.renewFileRsp:type_name -> RenewFileRsp 39, // 32: C346RspBody.recallFileRsp:type_name -> RecallFileRsp 24, // 33: C346RspBody.applyUploadRsp:type_name -> ApplyUploadRsp 18, // 34: C346RspBody.applyUploadHitRsp:type_name -> ApplyUploadHitRsp 10, // 35: C346RspBody.applyForwardFileRsp:type_name -> ApplyForwardFileRsp 49, // 36: C346RspBody.uploadSuccRsp:type_name -> UploadSuccRsp 29, // 37: C346RspBody.deleteFileRsp:type_name -> DeleteFileRsp 32, // 38: C346RspBody.downloadSuccRsp:type_name -> DownloadSuccRsp 6, // 39: C346RspBody.applyDownloadAbsRsp:type_name -> ApplyDownloadAbsRsp 8, // 40: C346RspBody.applyDownloadRsp:type_name -> ApplyDownloadRsp 14, // 41: C346RspBody.applyListDownloadRsp:type_name -> ApplyListDownloadRsp 37, // 42: C346RspBody.fileQueryRsp:type_name -> FileQueryRsp 2, // 43: C346RspBody.applyCopyFromRsp:type_name -> ApplyCopyFromRsp 25, // 44: C346RspBody.applyUploadRspV2:type_name -> ApplyUploadRspV2 26, // 45: C346RspBody.applyUploadRspV3:type_name -> ApplyUploadRspV3 19, // 46: C346RspBody.applyUploadHitRspV2:type_name -> ApplyUploadHitRspV2 20, // 47: C346RspBody.applyUploadHitRspV3:type_name -> ApplyUploadHitRspV3 4, // 48: C346RspBody.applyCopyToRsp:type_name -> ApplyCopyToRsp 0, // 49: C346RspBody.applyCleanTrafficRsp:type_name -> ApplyCleanTrafficRsp 12, // 50: C346RspBody.applyGetTrafficRsp:type_name -> ApplyGetTrafficRsp 34, // 51: C346RspBody.extensionRsp:type_name -> ExtensionRsp 35, // 52: SendListQueryRsp.fileList:type_name -> FileInfo 35, // 53: UploadSuccRsp.fileInfo:type_name -> FileInfo 54, // [54:54] is the sub-list for method output_type 54, // [54:54] is the sub-list for method input_type 54, // [54:54] is the sub-list for extension type_name 54, // [54:54] is the sub-list for extension extendee 0, // [0:54] is the sub-list for field type_name } func init() { file_cmd0x346_proto_init() } func file_cmd0x346_proto_init() { if File_cmd0x346_proto != nil { return } if !protoimpl.UnsafeEnabled { file_cmd0x346_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyCleanTrafficRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyCopyFromReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyCopyFromRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyCopyToReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyCopyToRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyDownloadAbsReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyDownloadAbsRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyDownloadReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyDownloadRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyForwardFileReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyForwardFileRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyGetTrafficReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyGetTrafficRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyListDownloadReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyListDownloadRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitReqV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitReqV3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitRspV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadHitRspV3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadReqV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadReqV3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadRspV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyUploadRspV3); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelMessageReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFileReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFileRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DownloadInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DownloadSuccReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DownloadSuccRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtensionReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtensionRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileQueryReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileQueryRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecallFileReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecallFileRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecvListQueryReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RecvListQueryRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RenewFileReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RenewFileRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C346ReqBody); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C346RspBody); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendListQueryReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendListQueryRsp); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadSuccReq); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_cmd0x346_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadSuccRsp); 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_cmd0x346_proto_rawDesc, NumEnums: 0, NumMessages: 50, NumExtensions: 0, NumServices: 0, }, GoTypes: file_cmd0x346_proto_goTypes, DependencyIndexes: file_cmd0x346_proto_depIdxs, MessageInfos: file_cmd0x346_proto_msgTypes, }.Build() File_cmd0x346_proto = out.File file_cmd0x346_proto_rawDesc = nil file_cmd0x346_proto_goTypes = nil file_cmd0x346_proto_depIdxs = nil }