// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.1 // protoc v5.29.3 // source: rtc.proto package rtc import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ParticipantMetaData struct { state protoimpl.MessageState `protogen:"open.v1"` GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"` UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ParticipantMetaData) Reset() { *x = ParticipantMetaData{} mi := &file_rtc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ParticipantMetaData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ParticipantMetaData) ProtoMessage() {} func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ParticipantMetaData.ProtoReflect.Descriptor instead. func (*ParticipantMetaData) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{0} } func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo { if x != nil { return x.GroupInfo } return nil } func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { if x != nil { return x.GroupMemberInfo } return nil } func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo { if x != nil { return x.UserInfo } return nil } type GroupInfo struct { state protoimpl.MessageState `protogen:"open.v1"` GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` CreateTime int64 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification,proto3" json:"needVerification,omitempty"` LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"` ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"` NotificationUpdateTime int64 `protobuf:"varint,16,opt,name=notificationUpdateTime,proto3" json:"notificationUpdateTime,omitempty"` NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID,proto3" json:"notificationUserID,omitempty"` DisplayIsRead bool `protobuf:"varint,18,opt,name=displayIsRead,proto3" json:"displayIsRead,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GroupInfo) Reset() { *x = GroupInfo{} mi := &file_rtc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupInfo) ProtoMessage() {} func (x *GroupInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{1} } func (x *GroupInfo) GetGroupID() string { if x != nil { return x.GroupID } return "" } func (x *GroupInfo) GetGroupName() string { if x != nil { return x.GroupName } return "" } func (x *GroupInfo) GetNotification() string { if x != nil { return x.Notification } return "" } func (x *GroupInfo) GetIntroduction() string { if x != nil { return x.Introduction } return "" } func (x *GroupInfo) GetFaceURL() string { if x != nil { return x.FaceURL } return "" } func (x *GroupInfo) GetOwnerUserID() string { if x != nil { return x.OwnerUserID } return "" } func (x *GroupInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *GroupInfo) GetMemberCount() uint32 { if x != nil { return x.MemberCount } return 0 } func (x *GroupInfo) GetEx() string { if x != nil { return x.Ex } return "" } func (x *GroupInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *GroupInfo) GetCreatorUserID() string { if x != nil { return x.CreatorUserID } return "" } func (x *GroupInfo) GetGroupType() int32 { if x != nil { return x.GroupType } return 0 } func (x *GroupInfo) GetNeedVerification() int32 { if x != nil { return x.NeedVerification } return 0 } func (x *GroupInfo) GetLookMemberInfo() int32 { if x != nil { return x.LookMemberInfo } return 0 } func (x *GroupInfo) GetApplyMemberFriend() int32 { if x != nil { return x.ApplyMemberFriend } return 0 } func (x *GroupInfo) GetNotificationUpdateTime() int64 { if x != nil { return x.NotificationUpdateTime } return 0 } func (x *GroupInfo) GetNotificationUserID() string { if x != nil { return x.NotificationUserID } return "" } func (x *GroupInfo) GetDisplayIsRead() bool { if x != nil { return x.DisplayIsRead } return false } type GroupMemberFullInfo struct { state protoimpl.MessageState `protogen:"open.v1"` GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` JoinTime int64 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` MuteEndTime int64 `protobuf:"varint,11,opt,name=muteEndTime,proto3" json:"muteEndTime,omitempty"` InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GroupMemberFullInfo) Reset() { *x = GroupMemberFullInfo{} mi := &file_rtc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GroupMemberFullInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GroupMemberFullInfo) ProtoMessage() {} func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead. func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{2} } func (x *GroupMemberFullInfo) GetGroupID() string { if x != nil { return x.GroupID } return "" } func (x *GroupMemberFullInfo) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *GroupMemberFullInfo) GetRoleLevel() int32 { if x != nil { return x.RoleLevel } return 0 } func (x *GroupMemberFullInfo) GetJoinTime() int64 { if x != nil { return x.JoinTime } return 0 } func (x *GroupMemberFullInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *GroupMemberFullInfo) GetFaceURL() string { if x != nil { return x.FaceURL } return "" } func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { if x != nil { return x.AppMangerLevel } return 0 } func (x *GroupMemberFullInfo) GetJoinSource() int32 { if x != nil { return x.JoinSource } return 0 } func (x *GroupMemberFullInfo) GetOperatorUserID() string { if x != nil { return x.OperatorUserID } return "" } func (x *GroupMemberFullInfo) GetEx() string { if x != nil { return x.Ex } return "" } func (x *GroupMemberFullInfo) GetMuteEndTime() int64 { if x != nil { return x.MuteEndTime } return 0 } func (x *GroupMemberFullInfo) GetInviterUserID() string { if x != nil { return x.InviterUserID } return "" } type PublicUserInfo struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` Ex string `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PublicUserInfo) Reset() { *x = PublicUserInfo{} mi := &file_rtc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PublicUserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PublicUserInfo) ProtoMessage() {} func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PublicUserInfo.ProtoReflect.Descriptor instead. func (*PublicUserInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{3} } func (x *PublicUserInfo) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *PublicUserInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *PublicUserInfo) GetFaceURL() string { if x != nil { return x.FaceURL } return "" } func (x *PublicUserInfo) GetEx() string { if x != nil { return x.Ex } return "" } type GetJoinTokenReq struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"` MetaData *ParticipantMetaData `protobuf:"bytes,3,opt,name=metaData,proto3" json:"metaData,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetJoinTokenReq) Reset() { *x = GetJoinTokenReq{} mi := &file_rtc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetJoinTokenReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetJoinTokenReq) ProtoMessage() {} func (x *GetJoinTokenReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetJoinTokenReq.ProtoReflect.Descriptor instead. func (*GetJoinTokenReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{4} } func (x *GetJoinTokenReq) GetRoom() string { if x != nil { return x.Room } return "" } func (x *GetJoinTokenReq) GetIdentity() string { if x != nil { return x.Identity } return "" } func (x *GetJoinTokenReq) GetMetaData() *ParticipantMetaData { if x != nil { return x.MetaData } return nil } type GetJoinTokenResp struct { state protoimpl.MessageState `protogen:"open.v1"` Jwt string `protobuf:"bytes,1,opt,name=jwt,proto3" json:"jwt,omitempty"` LiveURL string `protobuf:"bytes,2,opt,name=liveURL,proto3" json:"liveURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetJoinTokenResp) Reset() { *x = GetJoinTokenResp{} mi := &file_rtc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetJoinTokenResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetJoinTokenResp) ProtoMessage() {} func (x *GetJoinTokenResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetJoinTokenResp.ProtoReflect.Descriptor instead. func (*GetJoinTokenResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{5} } func (x *GetJoinTokenResp) GetJwt() string { if x != nil { return x.Jwt } return "" } func (x *GetJoinTokenResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } type SignalReq struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Payload: // // *SignalReq_Invite // *SignalReq_InviteInGroup // *SignalReq_Cancel // *SignalReq_Accept // *SignalReq_HungUp // *SignalReq_Reject // *SignalReq_GetTokenByRoomID Payload isSignalReq_Payload `protobuf_oneof:"payload"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalReq) Reset() { *x = SignalReq{} mi := &file_rtc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalReq) ProtoMessage() {} func (x *SignalReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalReq.ProtoReflect.Descriptor instead. func (*SignalReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{6} } func (x *SignalReq) GetPayload() isSignalReq_Payload { if x != nil { return x.Payload } return nil } func (x *SignalReq) GetInvite() *SignalInviteReq { if x != nil { if x, ok := x.Payload.(*SignalReq_Invite); ok { return x.Invite } } return nil } func (x *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { if x != nil { if x, ok := x.Payload.(*SignalReq_InviteInGroup); ok { return x.InviteInGroup } } return nil } func (x *SignalReq) GetCancel() *SignalCancelReq { if x != nil { if x, ok := x.Payload.(*SignalReq_Cancel); ok { return x.Cancel } } return nil } func (x *SignalReq) GetAccept() *SignalAcceptReq { if x != nil { if x, ok := x.Payload.(*SignalReq_Accept); ok { return x.Accept } } return nil } func (x *SignalReq) GetHungUp() *SignalHungUpReq { if x != nil { if x, ok := x.Payload.(*SignalReq_HungUp); ok { return x.HungUp } } return nil } func (x *SignalReq) GetReject() *SignalRejectReq { if x != nil { if x, ok := x.Payload.(*SignalReq_Reject); ok { return x.Reject } } return nil } func (x *SignalReq) GetGetTokenByRoomID() *SignalGetTokenByRoomIDReq { if x != nil { if x, ok := x.Payload.(*SignalReq_GetTokenByRoomID); ok { return x.GetTokenByRoomID } } return nil } type isSignalReq_Payload interface { isSignalReq_Payload() } type SignalReq_Invite struct { Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` } type SignalReq_InviteInGroup struct { InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` } type SignalReq_Cancel struct { Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` } type SignalReq_Accept struct { Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` } type SignalReq_HungUp struct { HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` } type SignalReq_Reject struct { Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` } type SignalReq_GetTokenByRoomID struct { GetTokenByRoomID *SignalGetTokenByRoomIDReq `protobuf:"bytes,7,opt,name=getTokenByRoomID,proto3,oneof"` } func (*SignalReq_Invite) isSignalReq_Payload() {} func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} func (*SignalReq_Cancel) isSignalReq_Payload() {} func (*SignalReq_Accept) isSignalReq_Payload() {} func (*SignalReq_HungUp) isSignalReq_Payload() {} func (*SignalReq_Reject) isSignalReq_Payload() {} func (*SignalReq_GetTokenByRoomID) isSignalReq_Payload() {} type SignalSendCustomSignalReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` CustomInfo string `protobuf:"bytes,2,opt,name=customInfo,proto3" json:"customInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalSendCustomSignalReq) Reset() { *x = SignalSendCustomSignalReq{} mi := &file_rtc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalSendCustomSignalReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalSendCustomSignalReq) ProtoMessage() {} func (x *SignalSendCustomSignalReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalSendCustomSignalReq.ProtoReflect.Descriptor instead. func (*SignalSendCustomSignalReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{7} } func (x *SignalSendCustomSignalReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalSendCustomSignalReq) GetCustomInfo() string { if x != nil { return x.CustomInfo } return "" } type SignalSendCustomSignalResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalSendCustomSignalResp) Reset() { *x = SignalSendCustomSignalResp{} mi := &file_rtc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalSendCustomSignalResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalSendCustomSignalResp) ProtoMessage() {} func (x *SignalSendCustomSignalResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalSendCustomSignalResp.ProtoReflect.Descriptor instead. func (*SignalSendCustomSignalResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{8} } type SignalGetMeetingsReq struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetMeetingsReq) Reset() { *x = SignalGetMeetingsReq{} mi := &file_rtc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetMeetingsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetMeetingsReq) ProtoMessage() {} func (x *SignalGetMeetingsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetMeetingsReq.ProtoReflect.Descriptor instead. func (*SignalGetMeetingsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{9} } func (x *SignalGetMeetingsReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalGetMeetingsResp struct { state protoimpl.MessageState `protogen:"open.v1"` MeetingInfoList []*MeetingInfo `protobuf:"bytes,1,rep,name=meetingInfoList,proto3" json:"meetingInfoList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetMeetingsResp) Reset() { *x = SignalGetMeetingsResp{} mi := &file_rtc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetMeetingsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetMeetingsResp) ProtoMessage() {} func (x *SignalGetMeetingsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetMeetingsResp.ProtoReflect.Descriptor instead. func (*SignalGetMeetingsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{10} } func (x *SignalGetMeetingsResp) GetMeetingInfoList() []*MeetingInfo { if x != nil { return x.MeetingInfoList } return nil } type SignalOperateStreamReq struct { state protoimpl.MessageState `protogen:"open.v1"` StreamType string `protobuf:"bytes,1,opt,name=streamType,proto3" json:"streamType,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"` Mute bool `protobuf:"varint,4,opt,name=mute,proto3" json:"mute,omitempty"` MuteAll bool `protobuf:"varint,5,opt,name=muteAll,proto3" json:"muteAll,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalOperateStreamReq) Reset() { *x = SignalOperateStreamReq{} mi := &file_rtc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalOperateStreamReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalOperateStreamReq) ProtoMessage() {} func (x *SignalOperateStreamReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalOperateStreamReq.ProtoReflect.Descriptor instead. func (*SignalOperateStreamReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{11} } func (x *SignalOperateStreamReq) GetStreamType() string { if x != nil { return x.StreamType } return "" } func (x *SignalOperateStreamReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalOperateStreamReq) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *SignalOperateStreamReq) GetMute() bool { if x != nil { return x.Mute } return false } func (x *SignalOperateStreamReq) GetMuteAll() bool { if x != nil { return x.MuteAll } return false } type SignalOperateStreamResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalOperateStreamResp) Reset() { *x = SignalOperateStreamResp{} mi := &file_rtc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalOperateStreamResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalOperateStreamResp) ProtoMessage() {} func (x *SignalOperateStreamResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalOperateStreamResp.ProtoReflect.Descriptor instead. func (*SignalOperateStreamResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{12} } type SignalOnStreamChangeReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` StreamType string `protobuf:"bytes,2,opt,name=streamType,proto3" json:"streamType,omitempty"` Mute bool `protobuf:"varint,3,opt,name=mute,proto3" json:"mute,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalOnStreamChangeReq) Reset() { *x = SignalOnStreamChangeReq{} mi := &file_rtc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalOnStreamChangeReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalOnStreamChangeReq) ProtoMessage() {} func (x *SignalOnStreamChangeReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalOnStreamChangeReq.ProtoReflect.Descriptor instead. func (*SignalOnStreamChangeReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{13} } func (x *SignalOnStreamChangeReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalOnStreamChangeReq) GetStreamType() string { if x != nil { return x.StreamType } return "" } func (x *SignalOnStreamChangeReq) GetMute() bool { if x != nil { return x.Mute } return false } type SignalCreateMeetingReq struct { state protoimpl.MessageState `protogen:"open.v1"` MeetingDuration int64 `protobuf:"varint,1,opt,name=meetingDuration,proto3" json:"meetingDuration,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` MeetingName string `protobuf:"bytes,3,opt,name=meetingName,proto3" json:"meetingName,omitempty"` MeetingHostUserID string `protobuf:"bytes,4,opt,name=meetingHostUserID,proto3" json:"meetingHostUserID,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,5,opt,name=participant,proto3" json:"participant,omitempty"` InviteeUserIDList []string `protobuf:"bytes,6,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` StartTime int64 `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"` Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCreateMeetingReq) Reset() { *x = SignalCreateMeetingReq{} mi := &file_rtc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCreateMeetingReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCreateMeetingReq) ProtoMessage() {} func (x *SignalCreateMeetingReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCreateMeetingReq.ProtoReflect.Descriptor instead. func (*SignalCreateMeetingReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{14} } func (x *SignalCreateMeetingReq) GetMeetingDuration() int64 { if x != nil { return x.MeetingDuration } return 0 } func (x *SignalCreateMeetingReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalCreateMeetingReq) GetMeetingName() string { if x != nil { return x.MeetingName } return "" } func (x *SignalCreateMeetingReq) GetMeetingHostUserID() string { if x != nil { return x.MeetingHostUserID } return "" } func (x *SignalCreateMeetingReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalCreateMeetingReq) GetInviteeUserIDList() []string { if x != nil { return x.InviteeUserIDList } return nil } func (x *SignalCreateMeetingReq) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *SignalCreateMeetingReq) GetEx() string { if x != nil { return x.Ex } return "" } type SignalCreateMeetingResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCreateMeetingResp) Reset() { *x = SignalCreateMeetingResp{} mi := &file_rtc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCreateMeetingResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCreateMeetingResp) ProtoMessage() {} func (x *SignalCreateMeetingResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCreateMeetingResp.ProtoReflect.Descriptor instead. func (*SignalCreateMeetingResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{15} } func (x *SignalCreateMeetingResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalCreateMeetingResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalCreateMeetingResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } type SignalJoinMeetingReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalJoinMeetingReq) Reset() { *x = SignalJoinMeetingReq{} mi := &file_rtc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalJoinMeetingReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalJoinMeetingReq) ProtoMessage() {} func (x *SignalJoinMeetingReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalJoinMeetingReq.ProtoReflect.Descriptor instead. func (*SignalJoinMeetingReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{16} } func (x *SignalJoinMeetingReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalJoinMeetingReq) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *SignalJoinMeetingReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } type SignalJoinMeetingResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalJoinMeetingResp) Reset() { *x = SignalJoinMeetingResp{} mi := &file_rtc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalJoinMeetingResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalJoinMeetingResp) ProtoMessage() {} func (x *SignalJoinMeetingResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalJoinMeetingResp.ProtoReflect.Descriptor instead. func (*SignalJoinMeetingResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{17} } func (x *SignalJoinMeetingResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalJoinMeetingResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalJoinMeetingResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } type SignalResp struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Payload: // // *SignalResp_Invite // *SignalResp_InviteInGroup // *SignalResp_Cancel // *SignalResp_Accept // *SignalResp_HungUp // *SignalResp_Reject // *SignalResp_GetTokenByRoomID Payload isSignalResp_Payload `protobuf_oneof:"payload"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalResp) Reset() { *x = SignalResp{} mi := &file_rtc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalResp) ProtoMessage() {} func (x *SignalResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalResp.ProtoReflect.Descriptor instead. func (*SignalResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{18} } func (x *SignalResp) GetPayload() isSignalResp_Payload { if x != nil { return x.Payload } return nil } func (x *SignalResp) GetInvite() *SignalInviteResp { if x != nil { if x, ok := x.Payload.(*SignalResp_Invite); ok { return x.Invite } } return nil } func (x *SignalResp) GetInviteInGroup() *SignalInviteInGroupResp { if x != nil { if x, ok := x.Payload.(*SignalResp_InviteInGroup); ok { return x.InviteInGroup } } return nil } func (x *SignalResp) GetCancel() *SignalCancelResp { if x != nil { if x, ok := x.Payload.(*SignalResp_Cancel); ok { return x.Cancel } } return nil } func (x *SignalResp) GetAccept() *SignalAcceptResp { if x != nil { if x, ok := x.Payload.(*SignalResp_Accept); ok { return x.Accept } } return nil } func (x *SignalResp) GetHungUp() *SignalHungUpResp { if x != nil { if x, ok := x.Payload.(*SignalResp_HungUp); ok { return x.HungUp } } return nil } func (x *SignalResp) GetReject() *SignalRejectResp { if x != nil { if x, ok := x.Payload.(*SignalResp_Reject); ok { return x.Reject } } return nil } func (x *SignalResp) GetGetTokenByRoomID() *SignalGetTokenByRoomIDResp { if x != nil { if x, ok := x.Payload.(*SignalResp_GetTokenByRoomID); ok { return x.GetTokenByRoomID } } return nil } type isSignalResp_Payload interface { isSignalResp_Payload() } type SignalResp_Invite struct { Invite *SignalInviteResp `protobuf:"bytes,1,opt,name=invite,proto3,oneof"` } type SignalResp_InviteInGroup struct { InviteInGroup *SignalInviteInGroupResp `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"` } type SignalResp_Cancel struct { Cancel *SignalCancelResp `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"` } type SignalResp_Accept struct { Accept *SignalAcceptResp `protobuf:"bytes,4,opt,name=accept,proto3,oneof"` } type SignalResp_HungUp struct { HungUp *SignalHungUpResp `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"` } type SignalResp_Reject struct { Reject *SignalRejectResp `protobuf:"bytes,6,opt,name=reject,proto3,oneof"` } type SignalResp_GetTokenByRoomID struct { GetTokenByRoomID *SignalGetTokenByRoomIDResp `protobuf:"bytes,7,opt,name=getTokenByRoomID,proto3,oneof"` } func (*SignalResp_Invite) isSignalResp_Payload() {} func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} func (*SignalResp_Cancel) isSignalResp_Payload() {} func (*SignalResp_Accept) isSignalResp_Payload() {} func (*SignalResp_HungUp) isSignalResp_Payload() {} func (*SignalResp_Reject) isSignalResp_Payload() {} func (*SignalResp_GetTokenByRoomID) isSignalResp_Payload() {} type InvitationInfo struct { state protoimpl.MessageState `protogen:"open.v1"` InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` CustomData string `protobuf:"bytes,3,opt,name=customData,proto3" json:"customData,omitempty"` GroupID string `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"` RoomID string `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"` Timeout int32 `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"` MediaType string `protobuf:"bytes,7,opt,name=mediaType,proto3" json:"mediaType,omitempty"` PlatformID int32 `protobuf:"varint,8,opt,name=platformID,proto3" json:"platformID,omitempty"` SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` InitiateTime int64 `protobuf:"varint,10,opt,name=initiateTime,proto3" json:"initiateTime,omitempty"` BusyLineUserIDList []string `protobuf:"bytes,11,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *InvitationInfo) Reset() { *x = InvitationInfo{} mi := &file_rtc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *InvitationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvitationInfo) ProtoMessage() {} func (x *InvitationInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvitationInfo.ProtoReflect.Descriptor instead. func (*InvitationInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{19} } func (x *InvitationInfo) GetInviterUserID() string { if x != nil { return x.InviterUserID } return "" } func (x *InvitationInfo) GetInviteeUserIDList() []string { if x != nil { return x.InviteeUserIDList } return nil } func (x *InvitationInfo) GetCustomData() string { if x != nil { return x.CustomData } return "" } func (x *InvitationInfo) GetGroupID() string { if x != nil { return x.GroupID } return "" } func (x *InvitationInfo) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *InvitationInfo) GetTimeout() int32 { if x != nil { return x.Timeout } return 0 } func (x *InvitationInfo) GetMediaType() string { if x != nil { return x.MediaType } return "" } func (x *InvitationInfo) GetPlatformID() int32 { if x != nil { return x.PlatformID } return 0 } func (x *InvitationInfo) GetSessionType() int32 { if x != nil { return x.SessionType } return 0 } func (x *InvitationInfo) GetInitiateTime() int64 { if x != nil { return x.InitiateTime } return 0 } func (x *InvitationInfo) GetBusyLineUserIDList() []string { if x != nil { return x.BusyLineUserIDList } return nil } type MeetingInfo struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` MeetingName string `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"` Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` HostUserID string `protobuf:"bytes,4,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"` InviteeUserIDList []string `protobuf:"bytes,5,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` //邀请列表 CreateTime int64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"` StartTime int64 `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime int64 `protobuf:"varint,8,opt,name=endTime,proto3" json:"endTime,omitempty"` ParticipantCanUnmuteSelf bool `protobuf:"varint,9,opt,name=participantCanUnmuteSelf,proto3" json:"participantCanUnmuteSelf,omitempty"` //成员是否能自己解除禁言 ParticipantCanEnableVideo bool `protobuf:"varint,10,opt,name=participantCanEnableVideo,proto3" json:"participantCanEnableVideo,omitempty"` //成员是否能开启视频 OnlyHostInviteUser bool `protobuf:"varint,11,opt,name=onlyHostInviteUser,proto3" json:"onlyHostInviteUser,omitempty"` //仅主持人可邀请用户 OnlyHostShareScreen bool `protobuf:"varint,12,opt,name=onlyHostShareScreen,proto3" json:"onlyHostShareScreen,omitempty"` //仅主持人可共享屏幕 JoinDisableMicrophone bool `protobuf:"varint,13,opt,name=joinDisableMicrophone,proto3" json:"joinDisableMicrophone,omitempty"` //加入是否默认关麦克风 JoinDisableVideo bool `protobuf:"varint,14,opt,name=joinDisableVideo,proto3" json:"joinDisableVideo,omitempty"` //加入是否默认关视频 IsMuteAllVideo bool `protobuf:"varint,15,opt,name=isMuteAllVideo,proto3" json:"isMuteAllVideo,omitempty"` // 是否全员禁用视频 IsMuteAllMicrophone bool `protobuf:"varint,16,opt,name=isMuteAllMicrophone,proto3" json:"isMuteAllMicrophone,omitempty"` // 是否全员禁用麦克风 CanScreenUserIDList []string `protobuf:"bytes,17,rep,name=canScreenUserIDList,proto3" json:"canScreenUserIDList,omitempty"` // 可共享屏幕的ID列表 DisableMicrophoneUserIDList []string `protobuf:"bytes,18,rep,name=disableMicrophoneUserIDList,proto3" json:"disableMicrophoneUserIDList,omitempty"` // 当前被禁言麦克风的id列表 DisableVideoUserIDList []string `protobuf:"bytes,19,rep,name=disableVideoUserIDList,proto3" json:"disableVideoUserIDList,omitempty"` // 当前禁用视频流的ID列表 PinedUserIDList []string `protobuf:"bytes,20,rep,name=pinedUserIDList,proto3" json:"pinedUserIDList,omitempty"` // 置顶ID列表 BeWatchedUserIDList []string `protobuf:"bytes,21,rep,name=beWatchedUserIDList,proto3" json:"beWatchedUserIDList,omitempty"` // 正在被观看用户列表 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeetingInfo) Reset() { *x = MeetingInfo{} mi := &file_rtc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeetingInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeetingInfo) ProtoMessage() {} func (x *MeetingInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MeetingInfo.ProtoReflect.Descriptor instead. func (*MeetingInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{20} } func (x *MeetingInfo) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *MeetingInfo) GetMeetingName() string { if x != nil { return x.MeetingName } return "" } func (x *MeetingInfo) GetEx() string { if x != nil { return x.Ex } return "" } func (x *MeetingInfo) GetHostUserID() string { if x != nil { return x.HostUserID } return "" } func (x *MeetingInfo) GetInviteeUserIDList() []string { if x != nil { return x.InviteeUserIDList } return nil } func (x *MeetingInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *MeetingInfo) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *MeetingInfo) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *MeetingInfo) GetParticipantCanUnmuteSelf() bool { if x != nil { return x.ParticipantCanUnmuteSelf } return false } func (x *MeetingInfo) GetParticipantCanEnableVideo() bool { if x != nil { return x.ParticipantCanEnableVideo } return false } func (x *MeetingInfo) GetOnlyHostInviteUser() bool { if x != nil { return x.OnlyHostInviteUser } return false } func (x *MeetingInfo) GetOnlyHostShareScreen() bool { if x != nil { return x.OnlyHostShareScreen } return false } func (x *MeetingInfo) GetJoinDisableMicrophone() bool { if x != nil { return x.JoinDisableMicrophone } return false } func (x *MeetingInfo) GetJoinDisableVideo() bool { if x != nil { return x.JoinDisableVideo } return false } func (x *MeetingInfo) GetIsMuteAllVideo() bool { if x != nil { return x.IsMuteAllVideo } return false } func (x *MeetingInfo) GetIsMuteAllMicrophone() bool { if x != nil { return x.IsMuteAllMicrophone } return false } func (x *MeetingInfo) GetCanScreenUserIDList() []string { if x != nil { return x.CanScreenUserIDList } return nil } func (x *MeetingInfo) GetDisableMicrophoneUserIDList() []string { if x != nil { return x.DisableMicrophoneUserIDList } return nil } func (x *MeetingInfo) GetDisableVideoUserIDList() []string { if x != nil { return x.DisableVideoUserIDList } return nil } func (x *MeetingInfo) GetPinedUserIDList() []string { if x != nil { return x.PinedUserIDList } return nil } func (x *MeetingInfo) GetBeWatchedUserIDList() []string { if x != nil { return x.BeWatchedUserIDList } return nil } type SignalInviteReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` UserID string `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalInviteReq) Reset() { *x = SignalInviteReq{} mi := &file_rtc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalInviteReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalInviteReq) ProtoMessage() {} func (x *SignalInviteReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalInviteReq.ProtoReflect.Descriptor instead. func (*SignalInviteReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{21} } func (x *SignalInviteReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalInviteReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalInviteReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalInviteResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` BusyLineUserIDList []string `protobuf:"bytes,4,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalInviteResp) Reset() { *x = SignalInviteResp{} mi := &file_rtc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalInviteResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalInviteResp) ProtoMessage() {} func (x *SignalInviteResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalInviteResp.ProtoReflect.Descriptor instead. func (*SignalInviteResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{22} } func (x *SignalInviteResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalInviteResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalInviteResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } func (x *SignalInviteResp) GetBusyLineUserIDList() []string { if x != nil { return x.BusyLineUserIDList } return nil } type SignalInviteInGroupReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` UserID string `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalInviteInGroupReq) Reset() { *x = SignalInviteInGroupReq{} mi := &file_rtc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalInviteInGroupReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (x *SignalInviteInGroupReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalInviteInGroupReq.ProtoReflect.Descriptor instead. func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{23} } func (x *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalInviteInGroupReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalInviteInGroupResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` BusyLineUserIDList []string `protobuf:"bytes,4,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalInviteInGroupResp) Reset() { *x = SignalInviteInGroupResp{} mi := &file_rtc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalInviteInGroupResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalInviteInGroupResp) ProtoMessage() {} func (x *SignalInviteInGroupResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalInviteInGroupResp.ProtoReflect.Descriptor instead. func (*SignalInviteInGroupResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{24} } func (x *SignalInviteInGroupResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalInviteInGroupResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalInviteInGroupResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } func (x *SignalInviteInGroupResp) GetBusyLineUserIDList() []string { if x != nil { return x.BusyLineUserIDList } return nil } type SignalCancelReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` UserID string `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCancelReq) Reset() { *x = SignalCancelReq{} mi := &file_rtc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCancelReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCancelReq) ProtoMessage() {} func (x *SignalCancelReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCancelReq.ProtoReflect.Descriptor instead. func (*SignalCancelReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{25} } func (x *SignalCancelReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalCancelReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalCancelReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalCancelResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCancelResp) Reset() { *x = SignalCancelResp{} mi := &file_rtc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCancelResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCancelResp) ProtoMessage() {} func (x *SignalCancelResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCancelResp.ProtoReflect.Descriptor instead. func (*SignalCancelResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{26} } type SignalAcceptReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` OpUserPlatformID int32 `protobuf:"varint,4,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` UserID string `protobuf:"bytes,5,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalAcceptReq) Reset() { *x = SignalAcceptReq{} mi := &file_rtc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalAcceptReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalAcceptReq) ProtoMessage() {} func (x *SignalAcceptReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalAcceptReq.ProtoReflect.Descriptor instead. func (*SignalAcceptReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{27} } func (x *SignalAcceptReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalAcceptReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalAcceptReq) GetOpUserPlatformID() int32 { if x != nil { return x.OpUserPlatformID } return 0 } func (x *SignalAcceptReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalAcceptResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` RoomID string `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"` LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalAcceptResp) Reset() { *x = SignalAcceptResp{} mi := &file_rtc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalAcceptResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalAcceptResp) ProtoMessage() {} func (x *SignalAcceptResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalAcceptResp.ProtoReflect.Descriptor instead. func (*SignalAcceptResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{28} } func (x *SignalAcceptResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalAcceptResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalAcceptResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } type SignalHungUpReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalHungUpReq) Reset() { *x = SignalHungUpReq{} mi := &file_rtc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalHungUpReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalHungUpReq) ProtoMessage() {} func (x *SignalHungUpReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalHungUpReq.ProtoReflect.Descriptor instead. func (*SignalHungUpReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{29} } func (x *SignalHungUpReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalHungUpReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalHungUpResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalHungUpResp) Reset() { *x = SignalHungUpResp{} mi := &file_rtc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalHungUpResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalHungUpResp) ProtoMessage() {} func (x *SignalHungUpResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalHungUpResp.ProtoReflect.Descriptor instead. func (*SignalHungUpResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{30} } type SignalRejectReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"` OpUserPlatformID int32 `protobuf:"varint,4,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"` UserID string `protobuf:"bytes,5,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalRejectReq) Reset() { *x = SignalRejectReq{} mi := &file_rtc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalRejectReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalRejectReq) ProtoMessage() {} func (x *SignalRejectReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalRejectReq.ProtoReflect.Descriptor instead. func (*SignalRejectReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{31} } func (x *SignalRejectReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } func (x *SignalRejectReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalRejectReq) GetOpUserPlatformID() int32 { if x != nil { return x.OpUserPlatformID } return 0 } func (x *SignalRejectReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalRejectResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalRejectResp) Reset() { *x = SignalRejectResp{} mi := &file_rtc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalRejectResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalRejectResp) ProtoMessage() {} func (x *SignalRejectResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalRejectResp.ProtoReflect.Descriptor instead. func (*SignalRejectResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{32} } type SignalGetRoomByGroupIDReq struct { state protoimpl.MessageState `protogen:"open.v1"` GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetRoomByGroupIDReq) Reset() { *x = SignalGetRoomByGroupIDReq{} mi := &file_rtc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetRoomByGroupIDReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetRoomByGroupIDReq) ProtoMessage() {} func (x *SignalGetRoomByGroupIDReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetRoomByGroupIDReq.ProtoReflect.Descriptor instead. func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{33} } func (x *SignalGetRoomByGroupIDReq) GetGroupID() string { if x != nil { return x.GroupID } return "" } type SignalGetRoomByGroupIDResp struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` Participant []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"` RoomID string `protobuf:"bytes,3,opt,name=roomID,proto3" json:"roomID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetRoomByGroupIDResp) Reset() { *x = SignalGetRoomByGroupIDResp{} mi := &file_rtc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetRoomByGroupIDResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetRoomByGroupIDResp) ProtoMessage() {} func (x *SignalGetRoomByGroupIDResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetRoomByGroupIDResp.ProtoReflect.Descriptor instead. func (*SignalGetRoomByGroupIDResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{34} } func (x *SignalGetRoomByGroupIDResp) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalGetRoomByGroupIDResp) GetParticipant() []*ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalGetRoomByGroupIDResp) GetRoomID() string { if x != nil { return x.RoomID } return "" } type SignalOnRoomParticipantConnectedReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` Participant []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalOnRoomParticipantConnectedReq) Reset() { *x = SignalOnRoomParticipantConnectedReq{} mi := &file_rtc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalOnRoomParticipantConnectedReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalOnRoomParticipantConnectedReq) ProtoMessage() {} func (x *SignalOnRoomParticipantConnectedReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalOnRoomParticipantConnectedReq.ProtoReflect.Descriptor instead. func (*SignalOnRoomParticipantConnectedReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{35} } func (x *SignalOnRoomParticipantConnectedReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalOnRoomParticipantConnectedReq) GetParticipant() []*ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalOnRoomParticipantConnectedReq) GetGroupID() string { if x != nil { return x.GroupID } return "" } type SignalOnRoomParticipantDisconnectedReq struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` Participant []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalOnRoomParticipantDisconnectedReq) Reset() { *x = SignalOnRoomParticipantDisconnectedReq{} mi := &file_rtc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalOnRoomParticipantDisconnectedReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalOnRoomParticipantDisconnectedReq) ProtoMessage() {} func (x *SignalOnRoomParticipantDisconnectedReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalOnRoomParticipantDisconnectedReq.ProtoReflect.Descriptor instead. func (*SignalOnRoomParticipantDisconnectedReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{36} } func (x *SignalOnRoomParticipantDisconnectedReq) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *SignalOnRoomParticipantDisconnectedReq) GetParticipant() []*ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalOnRoomParticipantDisconnectedReq) GetGroupID() string { if x != nil { return x.GroupID } return "" } type SignalGetTokenByRoomIDReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` Participant *ParticipantMetaData `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant,omitempty"` UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetTokenByRoomIDReq) Reset() { *x = SignalGetTokenByRoomIDReq{} mi := &file_rtc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetTokenByRoomIDReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetTokenByRoomIDReq) ProtoMessage() {} func (x *SignalGetTokenByRoomIDReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetTokenByRoomIDReq.ProtoReflect.Descriptor instead. func (*SignalGetTokenByRoomIDReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{37} } func (x *SignalGetTokenByRoomIDReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalGetTokenByRoomIDReq) GetParticipant() *ParticipantMetaData { if x != nil { return x.Participant } return nil } func (x *SignalGetTokenByRoomIDReq) GetUserID() string { if x != nil { return x.UserID } return "" } type SignalGetTokenByRoomIDResp struct { state protoimpl.MessageState `protogen:"open.v1"` Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` LiveURL string `protobuf:"bytes,2,opt,name=liveURL,proto3" json:"liveURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetTokenByRoomIDResp) Reset() { *x = SignalGetTokenByRoomIDResp{} mi := &file_rtc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetTokenByRoomIDResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetTokenByRoomIDResp) ProtoMessage() {} func (x *SignalGetTokenByRoomIDResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetTokenByRoomIDResp.ProtoReflect.Descriptor instead. func (*SignalGetTokenByRoomIDResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{38} } func (x *SignalGetTokenByRoomIDResp) GetToken() string { if x != nil { return x.Token } return "" } func (x *SignalGetTokenByRoomIDResp) GetLiveURL() string { if x != nil { return x.LiveURL } return "" } type SignalUpdateMeetingInfoReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` MeetingName *StringValue `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"` Ex *StringValue `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` InviteeUserIDList []string `protobuf:"bytes,4,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` StartTime *Int64Value `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime *Int64Value `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime,omitempty"` ParticipantCanUnmuteSelf *BoolValue `protobuf:"bytes,7,opt,name=participantCanUnmuteSelf,proto3" json:"participantCanUnmuteSelf,omitempty"` ParticipantCanEnableVideo *BoolValue `protobuf:"bytes,8,opt,name=participantCanEnableVideo,proto3" json:"participantCanEnableVideo,omitempty"` OnlyHostInviteUser *BoolValue `protobuf:"bytes,9,opt,name=onlyHostInviteUser,proto3" json:"onlyHostInviteUser,omitempty"` OnlyHostShareScreen *BoolValue `protobuf:"bytes,10,opt,name=onlyHostShareScreen,proto3" json:"onlyHostShareScreen,omitempty"` JoinDisableMicrophone *BoolValue `protobuf:"bytes,11,opt,name=joinDisableMicrophone,proto3" json:"joinDisableMicrophone,omitempty"` JoinDisableVideo *BoolValue `protobuf:"bytes,12,opt,name=joinDisableVideo,proto3" json:"joinDisableVideo,omitempty"` IsMuteAllVideo *BoolValue `protobuf:"bytes,13,opt,name=isMuteAllVideo,proto3" json:"isMuteAllVideo,omitempty"` IsMuteAllMicrophone *BoolValue `protobuf:"bytes,14,opt,name=isMuteAllMicrophone,proto3" json:"isMuteAllMicrophone,omitempty"` AddCanScreenUserIDList []string `protobuf:"bytes,15,rep,name=addCanScreenUserIDList,proto3" json:"addCanScreenUserIDList,omitempty"` ReduceCanScreenUserIDList []string `protobuf:"bytes,16,rep,name=reduceCanScreenUserIDList,proto3" json:"reduceCanScreenUserIDList,omitempty"` CanScreenUserIDList []string `protobuf:"bytes,17,rep,name=canScreenUserIDList,proto3" json:"canScreenUserIDList,omitempty"` AddDisableMicrophoneUserIDList []string `protobuf:"bytes,18,rep,name=addDisableMicrophoneUserIDList,proto3" json:"addDisableMicrophoneUserIDList,omitempty"` ReduceDisableMicrophoneUserIDList []string `protobuf:"bytes,19,rep,name=reduceDisableMicrophoneUserIDList,proto3" json:"reduceDisableMicrophoneUserIDList,omitempty"` DisableMicrophoneUserIDList []string `protobuf:"bytes,20,rep,name=disableMicrophoneUserIDList,proto3" json:"disableMicrophoneUserIDList,omitempty"` AddDisableVideoUserIDList []string `protobuf:"bytes,21,rep,name=addDisableVideoUserIDList,proto3" json:"addDisableVideoUserIDList,omitempty"` ReduceDisableVideoUserIDList []string `protobuf:"bytes,22,rep,name=reduceDisableVideoUserIDList,proto3" json:"reduceDisableVideoUserIDList,omitempty"` DisableVideoUserIDList []string `protobuf:"bytes,23,rep,name=disableVideoUserIDList,proto3" json:"disableVideoUserIDList,omitempty"` AddPinedUserIDList []string `protobuf:"bytes,24,rep,name=addPinedUserIDList,proto3" json:"addPinedUserIDList,omitempty"` ReducePinedUserIDList []string `protobuf:"bytes,25,rep,name=reducePinedUserIDList,proto3" json:"reducePinedUserIDList,omitempty"` PinedUserIDList []string `protobuf:"bytes,26,rep,name=pinedUserIDList,proto3" json:"pinedUserIDList,omitempty"` AddBeWatchedUserIDList []string `protobuf:"bytes,27,rep,name=addBeWatchedUserIDList,proto3" json:"addBeWatchedUserIDList,omitempty"` ReduceBeWatchedUserIDList []string `protobuf:"bytes,28,rep,name=reduceBeWatchedUserIDList,proto3" json:"reduceBeWatchedUserIDList,omitempty"` BeWatchedUserIDList []string `protobuf:"bytes,29,rep,name=beWatchedUserIDList,proto3" json:"beWatchedUserIDList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalUpdateMeetingInfoReq) Reset() { *x = SignalUpdateMeetingInfoReq{} mi := &file_rtc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalUpdateMeetingInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalUpdateMeetingInfoReq) ProtoMessage() {} func (x *SignalUpdateMeetingInfoReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalUpdateMeetingInfoReq.ProtoReflect.Descriptor instead. func (*SignalUpdateMeetingInfoReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{39} } func (x *SignalUpdateMeetingInfoReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalUpdateMeetingInfoReq) GetMeetingName() *StringValue { if x != nil { return x.MeetingName } return nil } func (x *SignalUpdateMeetingInfoReq) GetEx() *StringValue { if x != nil { return x.Ex } return nil } func (x *SignalUpdateMeetingInfoReq) GetInviteeUserIDList() []string { if x != nil { return x.InviteeUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetStartTime() *Int64Value { if x != nil { return x.StartTime } return nil } func (x *SignalUpdateMeetingInfoReq) GetEndTime() *Int64Value { if x != nil { return x.EndTime } return nil } func (x *SignalUpdateMeetingInfoReq) GetParticipantCanUnmuteSelf() *BoolValue { if x != nil { return x.ParticipantCanUnmuteSelf } return nil } func (x *SignalUpdateMeetingInfoReq) GetParticipantCanEnableVideo() *BoolValue { if x != nil { return x.ParticipantCanEnableVideo } return nil } func (x *SignalUpdateMeetingInfoReq) GetOnlyHostInviteUser() *BoolValue { if x != nil { return x.OnlyHostInviteUser } return nil } func (x *SignalUpdateMeetingInfoReq) GetOnlyHostShareScreen() *BoolValue { if x != nil { return x.OnlyHostShareScreen } return nil } func (x *SignalUpdateMeetingInfoReq) GetJoinDisableMicrophone() *BoolValue { if x != nil { return x.JoinDisableMicrophone } return nil } func (x *SignalUpdateMeetingInfoReq) GetJoinDisableVideo() *BoolValue { if x != nil { return x.JoinDisableVideo } return nil } func (x *SignalUpdateMeetingInfoReq) GetIsMuteAllVideo() *BoolValue { if x != nil { return x.IsMuteAllVideo } return nil } func (x *SignalUpdateMeetingInfoReq) GetIsMuteAllMicrophone() *BoolValue { if x != nil { return x.IsMuteAllMicrophone } return nil } func (x *SignalUpdateMeetingInfoReq) GetAddCanScreenUserIDList() []string { if x != nil { return x.AddCanScreenUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetReduceCanScreenUserIDList() []string { if x != nil { return x.ReduceCanScreenUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetCanScreenUserIDList() []string { if x != nil { return x.CanScreenUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetAddDisableMicrophoneUserIDList() []string { if x != nil { return x.AddDisableMicrophoneUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetReduceDisableMicrophoneUserIDList() []string { if x != nil { return x.ReduceDisableMicrophoneUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetDisableMicrophoneUserIDList() []string { if x != nil { return x.DisableMicrophoneUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetAddDisableVideoUserIDList() []string { if x != nil { return x.AddDisableVideoUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetReduceDisableVideoUserIDList() []string { if x != nil { return x.ReduceDisableVideoUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetDisableVideoUserIDList() []string { if x != nil { return x.DisableVideoUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetAddPinedUserIDList() []string { if x != nil { return x.AddPinedUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetReducePinedUserIDList() []string { if x != nil { return x.ReducePinedUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetPinedUserIDList() []string { if x != nil { return x.PinedUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetAddBeWatchedUserIDList() []string { if x != nil { return x.AddBeWatchedUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetReduceBeWatchedUserIDList() []string { if x != nil { return x.ReduceBeWatchedUserIDList } return nil } func (x *SignalUpdateMeetingInfoReq) GetBeWatchedUserIDList() []string { if x != nil { return x.BeWatchedUserIDList } return nil } type SignalUpdateMeetingInfoResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalUpdateMeetingInfoResp) Reset() { *x = SignalUpdateMeetingInfoResp{} mi := &file_rtc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalUpdateMeetingInfoResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalUpdateMeetingInfoResp) ProtoMessage() {} func (x *SignalUpdateMeetingInfoResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalUpdateMeetingInfoResp.ProtoReflect.Descriptor instead. func (*SignalUpdateMeetingInfoResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{40} } type SignalCloseRoomReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCloseRoomReq) Reset() { *x = SignalCloseRoomReq{} mi := &file_rtc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCloseRoomReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCloseRoomReq) ProtoMessage() {} func (x *SignalCloseRoomReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCloseRoomReq.ProtoReflect.Descriptor instead. func (*SignalCloseRoomReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{41} } func (x *SignalCloseRoomReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } type SignalCloseRoomResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalCloseRoomResp) Reset() { *x = SignalCloseRoomResp{} mi := &file_rtc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalCloseRoomResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalCloseRoomResp) ProtoMessage() {} func (x *SignalCloseRoomResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalCloseRoomResp.ProtoReflect.Descriptor instead. func (*SignalCloseRoomResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{42} } type SignalMessageAssembleReq struct { state protoimpl.MessageState `protogen:"open.v1"` SignalReq *SignalReq `protobuf:"bytes,1,opt,name=signalReq,proto3" json:"signalReq,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalMessageAssembleReq) Reset() { *x = SignalMessageAssembleReq{} mi := &file_rtc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalMessageAssembleReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalMessageAssembleReq) ProtoMessage() {} func (x *SignalMessageAssembleReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalMessageAssembleReq.ProtoReflect.Descriptor instead. func (*SignalMessageAssembleReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{43} } func (x *SignalMessageAssembleReq) GetSignalReq() *SignalReq { if x != nil { return x.SignalReq } return nil } type SignalMessageAssembleResp struct { state protoimpl.MessageState `protogen:"open.v1"` SignalResp *SignalResp `protobuf:"bytes,1,opt,name=signalResp,proto3" json:"signalResp,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalMessageAssembleResp) Reset() { *x = SignalMessageAssembleResp{} mi := &file_rtc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalMessageAssembleResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalMessageAssembleResp) ProtoMessage() {} func (x *SignalMessageAssembleResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalMessageAssembleResp.ProtoReflect.Descriptor instead. func (*SignalMessageAssembleResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{44} } func (x *SignalMessageAssembleResp) GetSignalResp() *SignalResp { if x != nil { return x.SignalResp } return nil } type SignalGetRoomsReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomIDs []string `protobuf:"bytes,1,rep,name=roomIDs,proto3" json:"roomIDs,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetRoomsReq) Reset() { *x = SignalGetRoomsReq{} mi := &file_rtc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetRoomsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetRoomsReq) ProtoMessage() {} func (x *SignalGetRoomsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetRoomsReq.ProtoReflect.Descriptor instead. func (*SignalGetRoomsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{45} } func (x *SignalGetRoomsReq) GetRoomIDs() []string { if x != nil { return x.RoomIDs } return nil } type SignalGetRoomsResp struct { state protoimpl.MessageState `protogen:"open.v1"` RoomList []*SignalGetRoomByGroupIDResp `protobuf:"bytes,1,rep,name=roomList,proto3" json:"roomList,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalGetRoomsResp) Reset() { *x = SignalGetRoomsResp{} mi := &file_rtc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalGetRoomsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalGetRoomsResp) ProtoMessage() {} func (x *SignalGetRoomsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalGetRoomsResp.ProtoReflect.Descriptor instead. func (*SignalGetRoomsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{46} } func (x *SignalGetRoomsResp) GetRoomList() []*SignalGetRoomByGroupIDResp { if x != nil { return x.RoomList } return nil } type GetSignalInvitationInfoReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationInfoReq) Reset() { *x = GetSignalInvitationInfoReq{} mi := &file_rtc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationInfoReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationInfoReq) ProtoMessage() {} func (x *GetSignalInvitationInfoReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationInfoReq.ProtoReflect.Descriptor instead. func (*GetSignalInvitationInfoReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{47} } func (x *GetSignalInvitationInfoReq) GetRoomID() string { if x != nil { return x.RoomID } return "" } type GetSignalInvitationInfoResp struct { state protoimpl.MessageState `protogen:"open.v1"` InvitationInfo *InvitationInfo `protobuf:"bytes,1,opt,name=invitationInfo,proto3" json:"invitationInfo,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationInfoResp) Reset() { *x = GetSignalInvitationInfoResp{} mi := &file_rtc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationInfoResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationInfoResp) ProtoMessage() {} func (x *GetSignalInvitationInfoResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationInfoResp.ProtoReflect.Descriptor instead. func (*GetSignalInvitationInfoResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{48} } func (x *GetSignalInvitationInfoResp) GetInvitationInfo() *InvitationInfo { if x != nil { return x.InvitationInfo } return nil } func (x *GetSignalInvitationInfoResp) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } type GetSignalInvitationInfoStartAppReq struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationInfoStartAppReq) Reset() { *x = GetSignalInvitationInfoStartAppReq{} mi := &file_rtc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationInfoStartAppReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationInfoStartAppReq) ProtoMessage() {} func (x *GetSignalInvitationInfoStartAppReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationInfoStartAppReq.ProtoReflect.Descriptor instead. func (*GetSignalInvitationInfoStartAppReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{49} } func (x *GetSignalInvitationInfoStartAppReq) GetUserID() string { if x != nil { return x.UserID } return "" } type GetSignalInvitationInfoStartAppResp struct { state protoimpl.MessageState `protogen:"open.v1"` Invitation *InvitationInfo `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationInfoStartAppResp) Reset() { *x = GetSignalInvitationInfoStartAppResp{} mi := &file_rtc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationInfoStartAppResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationInfoStartAppResp) ProtoMessage() {} func (x *GetSignalInvitationInfoStartAppResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationInfoStartAppResp.ProtoReflect.Descriptor instead. func (*GetSignalInvitationInfoStartAppResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{50} } func (x *GetSignalInvitationInfoStartAppResp) GetInvitation() *InvitationInfo { if x != nil { return x.Invitation } return nil } func (x *GetSignalInvitationInfoStartAppResp) GetOfflinePushInfo() *OfflinePushInfo { if x != nil { return x.OfflinePushInfo } return nil } type OfflinePushInfo struct { state protoimpl.MessageState `protogen:"open.v1"` Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"` IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"` SignalInfo string `protobuf:"bytes,6,opt,name=signalInfo,proto3" json:"signalInfo,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *OfflinePushInfo) Reset() { *x = OfflinePushInfo{} mi := &file_rtc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *OfflinePushInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*OfflinePushInfo) ProtoMessage() {} func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead. func (*OfflinePushInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{51} } func (x *OfflinePushInfo) GetTitle() string { if x != nil { return x.Title } return "" } func (x *OfflinePushInfo) GetDesc() string { if x != nil { return x.Desc } return "" } func (x *OfflinePushInfo) GetEx() string { if x != nil { return x.Ex } return "" } func (x *OfflinePushInfo) GetIOSPushSound() string { if x != nil { return x.IOSPushSound } return "" } func (x *OfflinePushInfo) GetIOSBadgeCount() bool { if x != nil { return x.IOSBadgeCount } return false } func (x *OfflinePushInfo) GetSignalInfo() string { if x != nil { return x.SignalInfo } return "" } type SignalUser struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` Status int32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalUser) Reset() { *x = SignalUser{} mi := &file_rtc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalUser) ProtoMessage() {} func (x *SignalUser) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalUser.ProtoReflect.Descriptor instead. func (*SignalUser) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{52} } func (x *SignalUser) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *SignalUser) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *SignalUser) GetStatus() int32 { if x != nil { return x.Status } return 0 } type SignalRecord struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` SID string `protobuf:"bytes,2,opt,name=sID,proto3" json:"sID,omitempty"` FileName string `protobuf:"bytes,3,opt,name=fileName,proto3" json:"fileName,omitempty"` MediaType string `protobuf:"bytes,4,opt,name=mediaType,proto3" json:"mediaType,omitempty"` SessionType int32 `protobuf:"varint,5,opt,name=sessionType,proto3" json:"sessionType,omitempty"` InviterUserID string `protobuf:"bytes,6,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"` InviterUserNickname string `protobuf:"bytes,7,opt,name=inviterUserNickname,proto3" json:"inviterUserNickname,omitempty"` GroupID string `protobuf:"bytes,8,opt,name=groupID,proto3" json:"groupID,omitempty"` GroupName string `protobuf:"bytes,9,opt,name=groupName,proto3" json:"groupName,omitempty"` InviterUsers []*SignalUser `protobuf:"bytes,10,rep,name=inviterUsers,proto3" json:"inviterUsers,omitempty"` CreateTime int64 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"` EndTime int64 `protobuf:"varint,12,opt,name=endTime,proto3" json:"endTime,omitempty"` Size string `protobuf:"bytes,13,opt,name=size,proto3" json:"size,omitempty"` FileURL string `protobuf:"bytes,14,opt,name=fileURL,proto3" json:"fileURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SignalRecord) Reset() { *x = SignalRecord{} mi := &file_rtc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SignalRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignalRecord) ProtoMessage() {} func (x *SignalRecord) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignalRecord.ProtoReflect.Descriptor instead. func (*SignalRecord) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{53} } func (x *SignalRecord) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *SignalRecord) GetSID() string { if x != nil { return x.SID } return "" } func (x *SignalRecord) GetFileName() string { if x != nil { return x.FileName } return "" } func (x *SignalRecord) GetMediaType() string { if x != nil { return x.MediaType } return "" } func (x *SignalRecord) GetSessionType() int32 { if x != nil { return x.SessionType } return 0 } func (x *SignalRecord) GetInviterUserID() string { if x != nil { return x.InviterUserID } return "" } func (x *SignalRecord) GetInviterUserNickname() string { if x != nil { return x.InviterUserNickname } return "" } func (x *SignalRecord) GetGroupID() string { if x != nil { return x.GroupID } return "" } func (x *SignalRecord) GetGroupName() string { if x != nil { return x.GroupName } return "" } func (x *SignalRecord) GetInviterUsers() []*SignalUser { if x != nil { return x.InviterUsers } return nil } func (x *SignalRecord) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *SignalRecord) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *SignalRecord) GetSize() string { if x != nil { return x.Size } return "" } func (x *SignalRecord) GetFileURL() string { if x != nil { return x.FileURL } return "" } type MeetingUser struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeetingUser) Reset() { *x = MeetingUser{} mi := &file_rtc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeetingUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeetingUser) ProtoMessage() {} func (x *MeetingUser) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MeetingUser.ProtoReflect.Descriptor instead. func (*MeetingUser) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{54} } func (x *MeetingUser) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *MeetingUser) GetNickname() string { if x != nil { return x.Nickname } return "" } type FileRecord struct { state protoimpl.MessageState `protogen:"open.v1"` Size string `protobuf:"bytes,1,opt,name=size,proto3" json:"size,omitempty"` FileURL string `protobuf:"bytes,2,opt,name=fileURL,proto3" json:"fileURL,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *FileRecord) Reset() { *x = FileRecord{} mi := &file_rtc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FileRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileRecord) ProtoMessage() {} func (x *FileRecord) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FileRecord.ProtoReflect.Descriptor instead. func (*FileRecord) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{55} } func (x *FileRecord) GetSize() string { if x != nil { return x.Size } return "" } func (x *FileRecord) GetFileURL() string { if x != nil { return x.FileURL } return "" } type MeetingRecord struct { state protoimpl.MessageState `protogen:"open.v1"` RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"` MeetingName string `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"` Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` HostUserID string `protobuf:"bytes,4,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"` HostUserNickname string `protobuf:"bytes,5,opt,name=hostUserNickname,proto3" json:"hostUserNickname,omitempty"` CreateTime int64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"` StartTime int64 `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime int64 `protobuf:"varint,8,opt,name=endTime,proto3" json:"endTime,omitempty"` JoinedUsers []*MeetingUser `protobuf:"bytes,9,rep,name=joinedUsers,proto3" json:"joinedUsers,omitempty"` Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` FileRecords []*FileRecord `protobuf:"bytes,11,rep,name=fileRecords,proto3" json:"fileRecords,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MeetingRecord) Reset() { *x = MeetingRecord{} mi := &file_rtc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MeetingRecord) String() string { return protoimpl.X.MessageStringOf(x) } func (*MeetingRecord) ProtoMessage() {} func (x *MeetingRecord) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MeetingRecord.ProtoReflect.Descriptor instead. func (*MeetingRecord) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{56} } func (x *MeetingRecord) GetRoomID() string { if x != nil { return x.RoomID } return "" } func (x *MeetingRecord) GetMeetingName() string { if x != nil { return x.MeetingName } return "" } func (x *MeetingRecord) GetEx() string { if x != nil { return x.Ex } return "" } func (x *MeetingRecord) GetHostUserID() string { if x != nil { return x.HostUserID } return "" } func (x *MeetingRecord) GetHostUserNickname() string { if x != nil { return x.HostUserNickname } return "" } func (x *MeetingRecord) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *MeetingRecord) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *MeetingRecord) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *MeetingRecord) GetJoinedUsers() []*MeetingUser { if x != nil { return x.JoinedUsers } return nil } func (x *MeetingRecord) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *MeetingRecord) GetFileRecords() []*FileRecord { if x != nil { return x.FileRecords } return nil } type GetSignalInvitationRecordsReq struct { state protoimpl.MessageState `protogen:"open.v1"` Pagination *RequestPagination `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` SessionType int32 `protobuf:"varint,2,opt,name=sessionType,proto3" json:"sessionType,omitempty"` SendID string `protobuf:"bytes,3,opt,name=sendID,proto3" json:"sendID,omitempty"` RecvID string `protobuf:"bytes,4,opt,name=recvID,proto3" json:"recvID,omitempty"` StartTime int64 `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime int64 `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"` JoinedUsers []*UserInfo `protobuf:"bytes,7,rep,name=JoinedUsers,proto3" json:"JoinedUsers,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationRecordsReq) Reset() { *x = GetSignalInvitationRecordsReq{} mi := &file_rtc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationRecordsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationRecordsReq) ProtoMessage() {} func (x *GetSignalInvitationRecordsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationRecordsReq.ProtoReflect.Descriptor instead. func (*GetSignalInvitationRecordsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{57} } func (x *GetSignalInvitationRecordsReq) GetPagination() *RequestPagination { if x != nil { return x.Pagination } return nil } func (x *GetSignalInvitationRecordsReq) GetSessionType() int32 { if x != nil { return x.SessionType } return 0 } func (x *GetSignalInvitationRecordsReq) GetSendID() string { if x != nil { return x.SendID } return "" } func (x *GetSignalInvitationRecordsReq) GetRecvID() string { if x != nil { return x.RecvID } return "" } func (x *GetSignalInvitationRecordsReq) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *GetSignalInvitationRecordsReq) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *GetSignalInvitationRecordsReq) GetJoinedUsers() []*UserInfo { if x != nil { return x.JoinedUsers } return nil } type RequestPagination struct { state protoimpl.MessageState `protogen:"open.v1"` PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"` ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RequestPagination) Reset() { *x = RequestPagination{} mi := &file_rtc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RequestPagination) String() string { return protoimpl.X.MessageStringOf(x) } func (*RequestPagination) ProtoMessage() {} func (x *RequestPagination) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead. func (*RequestPagination) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{58} } func (x *RequestPagination) GetPageNumber() int32 { if x != nil { return x.PageNumber } return 0 } func (x *RequestPagination) GetShowNumber() int32 { if x != nil { return x.ShowNumber } return 0 } type UserInfo struct { state protoimpl.MessageState `protogen:"open.v1"` UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` Ex string `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex,omitempty"` CreateTime int64 `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"` AppMangerLevel int32 `protobuf:"varint,6,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` GlobalRecvMsgOpt int32 `protobuf:"varint,7,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` Status int32 `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UserInfo) Reset() { *x = UserInfo{} mi := &file_rtc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserInfo) ProtoMessage() {} func (x *UserInfo) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{59} } func (x *UserInfo) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *UserInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserInfo) GetFaceURL() string { if x != nil { return x.FaceURL } return "" } func (x *UserInfo) GetEx() string { if x != nil { return x.Ex } return "" } func (x *UserInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *UserInfo) GetAppMangerLevel() int32 { if x != nil { return x.AppMangerLevel } return 0 } func (x *UserInfo) GetGlobalRecvMsgOpt() int32 { if x != nil { return x.GlobalRecvMsgOpt } return 0 } func (x *UserInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } type GetSignalInvitationRecordsResp struct { state protoimpl.MessageState `protogen:"open.v1"` Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` SignalRecords []*SignalRecord `protobuf:"bytes,2,rep,name=signalRecords,proto3" json:"signalRecords,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetSignalInvitationRecordsResp) Reset() { *x = GetSignalInvitationRecordsResp{} mi := &file_rtc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetSignalInvitationRecordsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSignalInvitationRecordsResp) ProtoMessage() {} func (x *GetSignalInvitationRecordsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSignalInvitationRecordsResp.ProtoReflect.Descriptor instead. func (*GetSignalInvitationRecordsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{60} } func (x *GetSignalInvitationRecordsResp) GetTotal() int32 { if x != nil { return x.Total } return 0 } func (x *GetSignalInvitationRecordsResp) GetSignalRecords() []*SignalRecord { if x != nil { return x.SignalRecords } return nil } type DeleteSignalRecordsReq struct { state protoimpl.MessageState `protogen:"open.v1"` SIDs []string `protobuf:"bytes,1,rep,name=sIDs,proto3" json:"sIDs,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteSignalRecordsReq) Reset() { *x = DeleteSignalRecordsReq{} mi := &file_rtc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeleteSignalRecordsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteSignalRecordsReq) ProtoMessage() {} func (x *DeleteSignalRecordsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteSignalRecordsReq.ProtoReflect.Descriptor instead. func (*DeleteSignalRecordsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{61} } func (x *DeleteSignalRecordsReq) GetSIDs() []string { if x != nil { return x.SIDs } return nil } type DeleteSignalRecordsResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteSignalRecordsResp) Reset() { *x = DeleteSignalRecordsResp{} mi := &file_rtc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeleteSignalRecordsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteSignalRecordsResp) ProtoMessage() {} func (x *DeleteSignalRecordsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteSignalRecordsResp.ProtoReflect.Descriptor instead. func (*DeleteSignalRecordsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{62} } type GetMeetingRecordsReq struct { state protoimpl.MessageState `protogen:"open.v1"` HostUserID string `protobuf:"bytes,1,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"` JoinedUserID string `protobuf:"bytes,2,opt,name=joinedUserID,proto3" json:"joinedUserID,omitempty"` StartTime int64 `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime int64 `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"` Pagination *RequestPagination `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMeetingRecordsReq) Reset() { *x = GetMeetingRecordsReq{} mi := &file_rtc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetMeetingRecordsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMeetingRecordsReq) ProtoMessage() {} func (x *GetMeetingRecordsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMeetingRecordsReq.ProtoReflect.Descriptor instead. func (*GetMeetingRecordsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{63} } func (x *GetMeetingRecordsReq) GetHostUserID() string { if x != nil { return x.HostUserID } return "" } func (x *GetMeetingRecordsReq) GetJoinedUserID() string { if x != nil { return x.JoinedUserID } return "" } func (x *GetMeetingRecordsReq) GetStartTime() int64 { if x != nil { return x.StartTime } return 0 } func (x *GetMeetingRecordsReq) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } func (x *GetMeetingRecordsReq) GetPagination() *RequestPagination { if x != nil { return x.Pagination } return nil } type GetMeetingRecordsResp struct { state protoimpl.MessageState `protogen:"open.v1"` Total int32 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` MeetingRecords []*MeetingRecord `protobuf:"bytes,2,rep,name=meetingRecords,proto3" json:"meetingRecords,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMeetingRecordsResp) Reset() { *x = GetMeetingRecordsResp{} mi := &file_rtc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetMeetingRecordsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMeetingRecordsResp) ProtoMessage() {} func (x *GetMeetingRecordsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMeetingRecordsResp.ProtoReflect.Descriptor instead. func (*GetMeetingRecordsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{64} } func (x *GetMeetingRecordsResp) GetTotal() int32 { if x != nil { return x.Total } return 0 } func (x *GetMeetingRecordsResp) GetMeetingRecords() []*MeetingRecord { if x != nil { return x.MeetingRecords } return nil } type DeleteMeetingRecordsReq struct { state protoimpl.MessageState `protogen:"open.v1"` RoomIDs []string `protobuf:"bytes,1,rep,name=roomIDs,proto3" json:"roomIDs,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteMeetingRecordsReq) Reset() { *x = DeleteMeetingRecordsReq{} mi := &file_rtc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeleteMeetingRecordsReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteMeetingRecordsReq) ProtoMessage() {} func (x *DeleteMeetingRecordsReq) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteMeetingRecordsReq.ProtoReflect.Descriptor instead. func (*DeleteMeetingRecordsReq) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{65} } func (x *DeleteMeetingRecordsReq) GetRoomIDs() []string { if x != nil { return x.RoomIDs } return nil } type DeleteMeetingRecordsResp struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteMeetingRecordsResp) Reset() { *x = DeleteMeetingRecordsResp{} mi := &file_rtc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeleteMeetingRecordsResp) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteMeetingRecordsResp) ProtoMessage() {} func (x *DeleteMeetingRecordsResp) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteMeetingRecordsResp.ProtoReflect.Descriptor instead. func (*DeleteMeetingRecordsResp) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{66} } // Wrapper message for `double`. // // The JSON representation for `DoubleValue` is JSON number. type DoubleValue struct { state protoimpl.MessageState `protogen:"open.v1"` // The double value. Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DoubleValue) Reset() { *x = DoubleValue{} mi := &file_rtc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DoubleValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*DoubleValue) ProtoMessage() {} func (x *DoubleValue) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead. func (*DoubleValue) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{67} } func (x *DoubleValue) GetValue() float64 { if x != nil { return x.Value } return 0 } // Wrapper message for `float`. // // The JSON representation for `FloatValue` is JSON number. type FloatValue struct { state protoimpl.MessageState `protogen:"open.v1"` // The float value. Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *FloatValue) Reset() { *x = FloatValue{} mi := &file_rtc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FloatValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*FloatValue) ProtoMessage() {} func (x *FloatValue) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FloatValue.ProtoReflect.Descriptor instead. func (*FloatValue) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{68} } func (x *FloatValue) GetValue() float32 { if x != nil { return x.Value } return 0 } // Wrapper message for `int64`. // // The JSON representation for `Int64Value` is JSON string. type Int64Value struct { state protoimpl.MessageState `protogen:"open.v1"` // The int64 value. Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Int64Value) Reset() { *x = Int64Value{} mi := &file_rtc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Int64Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int64Value) ProtoMessage() {} func (x *Int64Value) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int64Value.ProtoReflect.Descriptor instead. func (*Int64Value) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{69} } func (x *Int64Value) GetValue() int64 { if x != nil { return x.Value } return 0 } // Wrapper message for `uint64`. // // The JSON representation for `UInt64Value` is JSON string. type UInt64Value struct { state protoimpl.MessageState `protogen:"open.v1"` // The uint64 value. Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UInt64Value) Reset() { *x = UInt64Value{} mi := &file_rtc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UInt64Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*UInt64Value) ProtoMessage() {} func (x *UInt64Value) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UInt64Value.ProtoReflect.Descriptor instead. func (*UInt64Value) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{70} } func (x *UInt64Value) GetValue() uint64 { if x != nil { return x.Value } return 0 } // Wrapper message for `int32`. // // The JSON representation for `Int32Value` is JSON number. type Int32Value struct { state protoimpl.MessageState `protogen:"open.v1"` // The int32 value. Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Int32Value) Reset() { *x = Int32Value{} mi := &file_rtc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Int32Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*Int32Value) ProtoMessage() {} func (x *Int32Value) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Int32Value.ProtoReflect.Descriptor instead. func (*Int32Value) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{71} } func (x *Int32Value) GetValue() int32 { if x != nil { return x.Value } return 0 } // Wrapper message for `uint32`. // // The JSON representation for `UInt32Value` is JSON number. type UInt32Value struct { state protoimpl.MessageState `protogen:"open.v1"` // The uint32 value. Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UInt32Value) Reset() { *x = UInt32Value{} mi := &file_rtc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UInt32Value) String() string { return protoimpl.X.MessageStringOf(x) } func (*UInt32Value) ProtoMessage() {} func (x *UInt32Value) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UInt32Value.ProtoReflect.Descriptor instead. func (*UInt32Value) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{72} } func (x *UInt32Value) GetValue() uint32 { if x != nil { return x.Value } return 0 } // Wrapper message for `bool`. // // The JSON representation for `BoolValue` is JSON `true` and `false`. type BoolValue struct { state protoimpl.MessageState `protogen:"open.v1"` // The bool value. Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BoolValue) Reset() { *x = BoolValue{} mi := &file_rtc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BoolValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*BoolValue) ProtoMessage() {} func (x *BoolValue) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BoolValue.ProtoReflect.Descriptor instead. func (*BoolValue) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{73} } func (x *BoolValue) GetValue() bool { if x != nil { return x.Value } return false } // Wrapper message for `string`. // // The JSON representation for `StringValue` is JSON string. type StringValue struct { state protoimpl.MessageState `protogen:"open.v1"` // The string value. Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StringValue) Reset() { *x = StringValue{} mi := &file_rtc_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *StringValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*StringValue) ProtoMessage() {} func (x *StringValue) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StringValue.ProtoReflect.Descriptor instead. func (*StringValue) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{74} } func (x *StringValue) GetValue() string { if x != nil { return x.Value } return "" } // Wrapper message for `bytes`. // // The JSON representation for `BytesValue` is JSON string. type BytesValue struct { state protoimpl.MessageState `protogen:"open.v1"` // The bytes value. Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BytesValue) Reset() { *x = BytesValue{} mi := &file_rtc_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BytesValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*BytesValue) ProtoMessage() {} func (x *BytesValue) ProtoReflect() protoreflect.Message { mi := &file_rtc_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BytesValue.ProtoReflect.Descriptor instead. func (*BytesValue) Descriptor() ([]byte, []int) { return file_rtc_proto_rawDescGZIP(), []int{75} } func (x *BytesValue) GetValue() []byte { if x != nil { return x.Value } return nil } var File_rtc_proto protoreflect.FileDescriptor var file_rtc_proto_rawDesc = []byte{ 0x0a, 0x09, 0x72, 0x74, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x72, 0x74, 0x63, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x85, 0x05, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x73, 0x52, 0x65, 0x61, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x77, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6a, 0x77, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x99, 0x03, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x53, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2e, 0x0a, 0x14, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x53, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x22, 0xc2, 0x02, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x61, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xa1, 0x03, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x84, 0x03, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9d, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5a, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x35, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xa5, 0x01, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x26, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x4c, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x9c, 0x0d, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x65, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x4c, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x3e, 0x0a, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x44, 0x0a, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x40, 0x0a, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x21, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x21, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2c, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x22, 0x4c, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2d, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x22, 0x51, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x9a, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x3c, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9a, 0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc1, 0x03, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x41, 0x0a, 0x0b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xfc, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf4, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6f, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x2c, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x49, 0x44, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xca, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0xc6, 0x0b, 0x0a, 0x0a, 0x52, 0x74, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x12, 0x27, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x17, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x72, 0x74, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_rtc_proto_rawDescOnce sync.Once file_rtc_proto_rawDescData = file_rtc_proto_rawDesc ) func file_rtc_proto_rawDescGZIP() []byte { file_rtc_proto_rawDescOnce.Do(func() { file_rtc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rtc_proto_rawDescData) }) return file_rtc_proto_rawDescData } var file_rtc_proto_msgTypes = make([]protoimpl.MessageInfo, 76) var file_rtc_proto_goTypes = []any{ (*ParticipantMetaData)(nil), // 0: rtc.ParticipantMetaData (*GroupInfo)(nil), // 1: rtc.GroupInfo (*GroupMemberFullInfo)(nil), // 2: rtc.GroupMemberFullInfo (*PublicUserInfo)(nil), // 3: rtc.PublicUserInfo (*GetJoinTokenReq)(nil), // 4: rtc.GetJoinTokenReq (*GetJoinTokenResp)(nil), // 5: rtc.GetJoinTokenResp (*SignalReq)(nil), // 6: rtc.SignalReq (*SignalSendCustomSignalReq)(nil), // 7: rtc.SignalSendCustomSignalReq (*SignalSendCustomSignalResp)(nil), // 8: rtc.SignalSendCustomSignalResp (*SignalGetMeetingsReq)(nil), // 9: rtc.SignalGetMeetingsReq (*SignalGetMeetingsResp)(nil), // 10: rtc.SignalGetMeetingsResp (*SignalOperateStreamReq)(nil), // 11: rtc.SignalOperateStreamReq (*SignalOperateStreamResp)(nil), // 12: rtc.SignalOperateStreamResp (*SignalOnStreamChangeReq)(nil), // 13: rtc.SignalOnStreamChangeReq (*SignalCreateMeetingReq)(nil), // 14: rtc.SignalCreateMeetingReq (*SignalCreateMeetingResp)(nil), // 15: rtc.SignalCreateMeetingResp (*SignalJoinMeetingReq)(nil), // 16: rtc.SignalJoinMeetingReq (*SignalJoinMeetingResp)(nil), // 17: rtc.SignalJoinMeetingResp (*SignalResp)(nil), // 18: rtc.SignalResp (*InvitationInfo)(nil), // 19: rtc.InvitationInfo (*MeetingInfo)(nil), // 20: rtc.MeetingInfo (*SignalInviteReq)(nil), // 21: rtc.SignalInviteReq (*SignalInviteResp)(nil), // 22: rtc.SignalInviteResp (*SignalInviteInGroupReq)(nil), // 23: rtc.SignalInviteInGroupReq (*SignalInviteInGroupResp)(nil), // 24: rtc.SignalInviteInGroupResp (*SignalCancelReq)(nil), // 25: rtc.SignalCancelReq (*SignalCancelResp)(nil), // 26: rtc.SignalCancelResp (*SignalAcceptReq)(nil), // 27: rtc.SignalAcceptReq (*SignalAcceptResp)(nil), // 28: rtc.SignalAcceptResp (*SignalHungUpReq)(nil), // 29: rtc.SignalHungUpReq (*SignalHungUpResp)(nil), // 30: rtc.SignalHungUpResp (*SignalRejectReq)(nil), // 31: rtc.SignalRejectReq (*SignalRejectResp)(nil), // 32: rtc.SignalRejectResp (*SignalGetRoomByGroupIDReq)(nil), // 33: rtc.SignalGetRoomByGroupIDReq (*SignalGetRoomByGroupIDResp)(nil), // 34: rtc.SignalGetRoomByGroupIDResp (*SignalOnRoomParticipantConnectedReq)(nil), // 35: rtc.SignalOnRoomParticipantConnectedReq (*SignalOnRoomParticipantDisconnectedReq)(nil), // 36: rtc.SignalOnRoomParticipantDisconnectedReq (*SignalGetTokenByRoomIDReq)(nil), // 37: rtc.SignalGetTokenByRoomIDReq (*SignalGetTokenByRoomIDResp)(nil), // 38: rtc.SignalGetTokenByRoomIDResp (*SignalUpdateMeetingInfoReq)(nil), // 39: rtc.SignalUpdateMeetingInfoReq (*SignalUpdateMeetingInfoResp)(nil), // 40: rtc.SignalUpdateMeetingInfoResp (*SignalCloseRoomReq)(nil), // 41: rtc.SignalCloseRoomReq (*SignalCloseRoomResp)(nil), // 42: rtc.SignalCloseRoomResp (*SignalMessageAssembleReq)(nil), // 43: rtc.SignalMessageAssembleReq (*SignalMessageAssembleResp)(nil), // 44: rtc.SignalMessageAssembleResp (*SignalGetRoomsReq)(nil), // 45: rtc.SignalGetRoomsReq (*SignalGetRoomsResp)(nil), // 46: rtc.SignalGetRoomsResp (*GetSignalInvitationInfoReq)(nil), // 47: rtc.GetSignalInvitationInfoReq (*GetSignalInvitationInfoResp)(nil), // 48: rtc.GetSignalInvitationInfoResp (*GetSignalInvitationInfoStartAppReq)(nil), // 49: rtc.GetSignalInvitationInfoStartAppReq (*GetSignalInvitationInfoStartAppResp)(nil), // 50: rtc.GetSignalInvitationInfoStartAppResp (*OfflinePushInfo)(nil), // 51: rtc.OfflinePushInfo (*SignalUser)(nil), // 52: rtc.SignalUser (*SignalRecord)(nil), // 53: rtc.SignalRecord (*MeetingUser)(nil), // 54: rtc.MeetingUser (*FileRecord)(nil), // 55: rtc.FileRecord (*MeetingRecord)(nil), // 56: rtc.MeetingRecord (*GetSignalInvitationRecordsReq)(nil), // 57: rtc.GetSignalInvitationRecordsReq (*RequestPagination)(nil), // 58: rtc.RequestPagination (*UserInfo)(nil), // 59: rtc.UserInfo (*GetSignalInvitationRecordsResp)(nil), // 60: rtc.GetSignalInvitationRecordsResp (*DeleteSignalRecordsReq)(nil), // 61: rtc.DeleteSignalRecordsReq (*DeleteSignalRecordsResp)(nil), // 62: rtc.DeleteSignalRecordsResp (*GetMeetingRecordsReq)(nil), // 63: rtc.GetMeetingRecordsReq (*GetMeetingRecordsResp)(nil), // 64: rtc.GetMeetingRecordsResp (*DeleteMeetingRecordsReq)(nil), // 65: rtc.DeleteMeetingRecordsReq (*DeleteMeetingRecordsResp)(nil), // 66: rtc.DeleteMeetingRecordsResp (*DoubleValue)(nil), // 67: rtc.DoubleValue (*FloatValue)(nil), // 68: rtc.FloatValue (*Int64Value)(nil), // 69: rtc.Int64Value (*UInt64Value)(nil), // 70: rtc.UInt64Value (*Int32Value)(nil), // 71: rtc.Int32Value (*UInt32Value)(nil), // 72: rtc.UInt32Value (*BoolValue)(nil), // 73: rtc.BoolValue (*StringValue)(nil), // 74: rtc.StringValue (*BytesValue)(nil), // 75: rtc.BytesValue } var file_rtc_proto_depIdxs = []int32{ 1, // 0: rtc.ParticipantMetaData.groupInfo:type_name -> rtc.GroupInfo 2, // 1: rtc.ParticipantMetaData.groupMemberInfo:type_name -> rtc.GroupMemberFullInfo 3, // 2: rtc.ParticipantMetaData.userInfo:type_name -> rtc.PublicUserInfo 0, // 3: rtc.GetJoinTokenReq.metaData:type_name -> rtc.ParticipantMetaData 21, // 4: rtc.SignalReq.invite:type_name -> rtc.SignalInviteReq 23, // 5: rtc.SignalReq.inviteInGroup:type_name -> rtc.SignalInviteInGroupReq 25, // 6: rtc.SignalReq.cancel:type_name -> rtc.SignalCancelReq 27, // 7: rtc.SignalReq.accept:type_name -> rtc.SignalAcceptReq 29, // 8: rtc.SignalReq.hungUp:type_name -> rtc.SignalHungUpReq 31, // 9: rtc.SignalReq.reject:type_name -> rtc.SignalRejectReq 37, // 10: rtc.SignalReq.getTokenByRoomID:type_name -> rtc.SignalGetTokenByRoomIDReq 20, // 11: rtc.SignalGetMeetingsResp.meetingInfoList:type_name -> rtc.MeetingInfo 0, // 12: rtc.SignalCreateMeetingReq.participant:type_name -> rtc.ParticipantMetaData 0, // 13: rtc.SignalJoinMeetingReq.participant:type_name -> rtc.ParticipantMetaData 22, // 14: rtc.SignalResp.invite:type_name -> rtc.SignalInviteResp 24, // 15: rtc.SignalResp.inviteInGroup:type_name -> rtc.SignalInviteInGroupResp 26, // 16: rtc.SignalResp.cancel:type_name -> rtc.SignalCancelResp 28, // 17: rtc.SignalResp.accept:type_name -> rtc.SignalAcceptResp 30, // 18: rtc.SignalResp.hungUp:type_name -> rtc.SignalHungUpResp 32, // 19: rtc.SignalResp.reject:type_name -> rtc.SignalRejectResp 38, // 20: rtc.SignalResp.getTokenByRoomID:type_name -> rtc.SignalGetTokenByRoomIDResp 19, // 21: rtc.SignalInviteReq.invitation:type_name -> rtc.InvitationInfo 51, // 22: rtc.SignalInviteReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 0, // 23: rtc.SignalInviteReq.participant:type_name -> rtc.ParticipantMetaData 19, // 24: rtc.SignalInviteInGroupReq.invitation:type_name -> rtc.InvitationInfo 51, // 25: rtc.SignalInviteInGroupReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 0, // 26: rtc.SignalInviteInGroupReq.participant:type_name -> rtc.ParticipantMetaData 19, // 27: rtc.SignalCancelReq.invitation:type_name -> rtc.InvitationInfo 51, // 28: rtc.SignalCancelReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 0, // 29: rtc.SignalCancelReq.participant:type_name -> rtc.ParticipantMetaData 19, // 30: rtc.SignalAcceptReq.invitation:type_name -> rtc.InvitationInfo 51, // 31: rtc.SignalAcceptReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 0, // 32: rtc.SignalAcceptReq.participant:type_name -> rtc.ParticipantMetaData 19, // 33: rtc.SignalHungUpReq.invitation:type_name -> rtc.InvitationInfo 51, // 34: rtc.SignalHungUpReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 19, // 35: rtc.SignalRejectReq.invitation:type_name -> rtc.InvitationInfo 51, // 36: rtc.SignalRejectReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo 0, // 37: rtc.SignalRejectReq.participant:type_name -> rtc.ParticipantMetaData 19, // 38: rtc.SignalGetRoomByGroupIDResp.invitation:type_name -> rtc.InvitationInfo 0, // 39: rtc.SignalGetRoomByGroupIDResp.participant:type_name -> rtc.ParticipantMetaData 19, // 40: rtc.SignalOnRoomParticipantConnectedReq.invitation:type_name -> rtc.InvitationInfo 0, // 41: rtc.SignalOnRoomParticipantConnectedReq.participant:type_name -> rtc.ParticipantMetaData 19, // 42: rtc.SignalOnRoomParticipantDisconnectedReq.invitation:type_name -> rtc.InvitationInfo 0, // 43: rtc.SignalOnRoomParticipantDisconnectedReq.participant:type_name -> rtc.ParticipantMetaData 0, // 44: rtc.SignalGetTokenByRoomIDReq.participant:type_name -> rtc.ParticipantMetaData 74, // 45: rtc.SignalUpdateMeetingInfoReq.meetingName:type_name -> rtc.StringValue 74, // 46: rtc.SignalUpdateMeetingInfoReq.ex:type_name -> rtc.StringValue 69, // 47: rtc.SignalUpdateMeetingInfoReq.startTime:type_name -> rtc.Int64Value 69, // 48: rtc.SignalUpdateMeetingInfoReq.endTime:type_name -> rtc.Int64Value 73, // 49: rtc.SignalUpdateMeetingInfoReq.participantCanUnmuteSelf:type_name -> rtc.BoolValue 73, // 50: rtc.SignalUpdateMeetingInfoReq.participantCanEnableVideo:type_name -> rtc.BoolValue 73, // 51: rtc.SignalUpdateMeetingInfoReq.onlyHostInviteUser:type_name -> rtc.BoolValue 73, // 52: rtc.SignalUpdateMeetingInfoReq.onlyHostShareScreen:type_name -> rtc.BoolValue 73, // 53: rtc.SignalUpdateMeetingInfoReq.joinDisableMicrophone:type_name -> rtc.BoolValue 73, // 54: rtc.SignalUpdateMeetingInfoReq.joinDisableVideo:type_name -> rtc.BoolValue 73, // 55: rtc.SignalUpdateMeetingInfoReq.isMuteAllVideo:type_name -> rtc.BoolValue 73, // 56: rtc.SignalUpdateMeetingInfoReq.isMuteAllMicrophone:type_name -> rtc.BoolValue 6, // 57: rtc.SignalMessageAssembleReq.signalReq:type_name -> rtc.SignalReq 18, // 58: rtc.SignalMessageAssembleResp.signalResp:type_name -> rtc.SignalResp 34, // 59: rtc.SignalGetRoomsResp.roomList:type_name -> rtc.SignalGetRoomByGroupIDResp 19, // 60: rtc.GetSignalInvitationInfoResp.invitationInfo:type_name -> rtc.InvitationInfo 51, // 61: rtc.GetSignalInvitationInfoResp.offlinePushInfo:type_name -> rtc.OfflinePushInfo 19, // 62: rtc.GetSignalInvitationInfoStartAppResp.invitation:type_name -> rtc.InvitationInfo 51, // 63: rtc.GetSignalInvitationInfoStartAppResp.offlinePushInfo:type_name -> rtc.OfflinePushInfo 52, // 64: rtc.SignalRecord.inviterUsers:type_name -> rtc.SignalUser 54, // 65: rtc.MeetingRecord.joinedUsers:type_name -> rtc.MeetingUser 55, // 66: rtc.MeetingRecord.fileRecords:type_name -> rtc.FileRecord 58, // 67: rtc.GetSignalInvitationRecordsReq.pagination:type_name -> rtc.RequestPagination 59, // 68: rtc.GetSignalInvitationRecordsReq.JoinedUsers:type_name -> rtc.UserInfo 53, // 69: rtc.GetSignalInvitationRecordsResp.signalRecords:type_name -> rtc.SignalRecord 58, // 70: rtc.GetMeetingRecordsReq.pagination:type_name -> rtc.RequestPagination 56, // 71: rtc.GetMeetingRecordsResp.meetingRecords:type_name -> rtc.MeetingRecord 43, // 72: rtc.RtcService.SignalMessageAssemble:input_type -> rtc.SignalMessageAssembleReq 33, // 73: rtc.RtcService.SignalGetRoomByGroupID:input_type -> rtc.SignalGetRoomByGroupIDReq 37, // 74: rtc.RtcService.SignalGetTokenByRoomID:input_type -> rtc.SignalGetTokenByRoomIDReq 45, // 75: rtc.RtcService.SignalGetRooms:input_type -> rtc.SignalGetRoomsReq 47, // 76: rtc.RtcService.GetSignalInvitationInfo:input_type -> rtc.GetSignalInvitationInfoReq 49, // 77: rtc.RtcService.GetSignalInvitationInfoStartApp:input_type -> rtc.GetSignalInvitationInfoStartAppReq 14, // 78: rtc.RtcService.SignalCreateMeeting:input_type -> rtc.SignalCreateMeetingReq 16, // 79: rtc.RtcService.SignalJoinMeeting:input_type -> rtc.SignalJoinMeetingReq 39, // 80: rtc.RtcService.SignalUpdateMeetingInfo:input_type -> rtc.SignalUpdateMeetingInfoReq 41, // 81: rtc.RtcService.SignalCloseRoom:input_type -> rtc.SignalCloseRoomReq 9, // 82: rtc.RtcService.SignalGetMeetings:input_type -> rtc.SignalGetMeetingsReq 11, // 83: rtc.RtcService.SignalOperateStream:input_type -> rtc.SignalOperateStreamReq 7, // 84: rtc.RtcService.SignalSendCustomSignal:input_type -> rtc.SignalSendCustomSignalReq 57, // 85: rtc.RtcService.GetSignalInvitationRecords:input_type -> rtc.GetSignalInvitationRecordsReq 61, // 86: rtc.RtcService.DeleteSignalRecords:input_type -> rtc.DeleteSignalRecordsReq 63, // 87: rtc.RtcService.GetMeetingRecords:input_type -> rtc.GetMeetingRecordsReq 65, // 88: rtc.RtcService.DeleteMeetingRecords:input_type -> rtc.DeleteMeetingRecordsReq 44, // 89: rtc.RtcService.SignalMessageAssemble:output_type -> rtc.SignalMessageAssembleResp 34, // 90: rtc.RtcService.SignalGetRoomByGroupID:output_type -> rtc.SignalGetRoomByGroupIDResp 38, // 91: rtc.RtcService.SignalGetTokenByRoomID:output_type -> rtc.SignalGetTokenByRoomIDResp 46, // 92: rtc.RtcService.SignalGetRooms:output_type -> rtc.SignalGetRoomsResp 48, // 93: rtc.RtcService.GetSignalInvitationInfo:output_type -> rtc.GetSignalInvitationInfoResp 50, // 94: rtc.RtcService.GetSignalInvitationInfoStartApp:output_type -> rtc.GetSignalInvitationInfoStartAppResp 15, // 95: rtc.RtcService.SignalCreateMeeting:output_type -> rtc.SignalCreateMeetingResp 17, // 96: rtc.RtcService.SignalJoinMeeting:output_type -> rtc.SignalJoinMeetingResp 40, // 97: rtc.RtcService.SignalUpdateMeetingInfo:output_type -> rtc.SignalUpdateMeetingInfoResp 42, // 98: rtc.RtcService.SignalCloseRoom:output_type -> rtc.SignalCloseRoomResp 10, // 99: rtc.RtcService.SignalGetMeetings:output_type -> rtc.SignalGetMeetingsResp 12, // 100: rtc.RtcService.SignalOperateStream:output_type -> rtc.SignalOperateStreamResp 8, // 101: rtc.RtcService.SignalSendCustomSignal:output_type -> rtc.SignalSendCustomSignalResp 60, // 102: rtc.RtcService.GetSignalInvitationRecords:output_type -> rtc.GetSignalInvitationRecordsResp 62, // 103: rtc.RtcService.DeleteSignalRecords:output_type -> rtc.DeleteSignalRecordsResp 64, // 104: rtc.RtcService.GetMeetingRecords:output_type -> rtc.GetMeetingRecordsResp 66, // 105: rtc.RtcService.DeleteMeetingRecords:output_type -> rtc.DeleteMeetingRecordsResp 89, // [89:106] is the sub-list for method output_type 72, // [72:89] is the sub-list for method input_type 72, // [72:72] is the sub-list for extension type_name 72, // [72:72] is the sub-list for extension extendee 0, // [0:72] is the sub-list for field type_name } func init() { file_rtc_proto_init() } func file_rtc_proto_init() { if File_rtc_proto != nil { return } file_rtc_proto_msgTypes[6].OneofWrappers = []any{ (*SignalReq_Invite)(nil), (*SignalReq_InviteInGroup)(nil), (*SignalReq_Cancel)(nil), (*SignalReq_Accept)(nil), (*SignalReq_HungUp)(nil), (*SignalReq_Reject)(nil), (*SignalReq_GetTokenByRoomID)(nil), } file_rtc_proto_msgTypes[18].OneofWrappers = []any{ (*SignalResp_Invite)(nil), (*SignalResp_InviteInGroup)(nil), (*SignalResp_Cancel)(nil), (*SignalResp_Accept)(nil), (*SignalResp_HungUp)(nil), (*SignalResp_Reject)(nil), (*SignalResp_GetTokenByRoomID)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rtc_proto_rawDesc, NumEnums: 0, NumMessages: 76, NumExtensions: 0, NumServices: 1, }, GoTypes: file_rtc_proto_goTypes, DependencyIndexes: file_rtc_proto_depIdxs, MessageInfos: file_rtc_proto_msgTypes, }.Build() File_rtc_proto = out.File file_rtc_proto_rawDesc = nil file_rtc_proto_goTypes = nil file_rtc_proto_depIdxs = nil }