// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1-devel // protoc v3.21.8 // source: user.proto package user import ( chat "git.ikuban.com/server/pw-protobuf/api/chat" common "git.ikuban.com/server/pw-protobuf/api/common" statistics "git.ikuban.com/server/pw-protobuf/api/statistics" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" 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 AddUserCreditRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Credit int64 `protobuf:"varint,2,opt,name=credit,proto3" json:"credit"` // 积分 Detail string `protobuf:"bytes,3,opt,name=detail,proto3" json:"detail"` } func (x *AddUserCreditRequest) Reset() { *x = AddUserCreditRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddUserCreditRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddUserCreditRequest) ProtoMessage() {} func (x *AddUserCreditRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AddUserCreditRequest.ProtoReflect.Descriptor instead. func (*AddUserCreditRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{0} } func (x *AddUserCreditRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *AddUserCreditRequest) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *AddUserCreditRequest) GetDetail() string { if x != nil { return x.Detail } return "" } type ReportUserBlackRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,1,opt,name=personId,proto3" json:"personId"` Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result"` } func (x *ReportUserBlackRequest) Reset() { *x = ReportUserBlackRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReportUserBlackRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReportUserBlackRequest) ProtoMessage() {} func (x *ReportUserBlackRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReportUserBlackRequest.ProtoReflect.Descriptor instead. func (*ReportUserBlackRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{1} } func (x *ReportUserBlackRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *ReportUserBlackRequest) GetResult() string { if x != nil { return x.Result } return "" } type SendMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int64 `protobuf:"varint,1,opt,name=roomId,proto3" json:"roomId"` // 房间ID Message *common.Message `protobuf:"bytes,2,opt,name=message,proto3" json:"message"` // 消息 MsgType string `protobuf:"bytes,3,opt,name=msgType,proto3" json:"msgType"` // 消息类型 WebsocketTag string `protobuf:"bytes,4,opt,name=websocketTag,proto3" json:"websocketTag"` } func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{2} } func (x *SendMessageRequest) GetRoomId() int64 { if x != nil { return x.RoomId } return 0 } func (x *SendMessageRequest) GetMessage() *common.Message { if x != nil && x.Message != nil { return x.Message } return &common.Message{} } func (x *SendMessageRequest) GetMsgType() string { if x != nil { return x.MsgType } return "" } func (x *SendMessageRequest) GetWebsocketTag() string { if x != nil { return x.WebsocketTag } return "" } type ManagerFindIsCheckQualityUserListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page"` PageSize int64 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"` Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id"` // 用户ID Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name"` // 姓名 Sex int64 `protobuf:"varint,5,opt,name=sex,proto3" json:"sex"` // 性别 } func (x *ManagerFindIsCheckQualityUserListRequest) Reset() { *x = ManagerFindIsCheckQualityUserListRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ManagerFindIsCheckQualityUserListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ManagerFindIsCheckQualityUserListRequest) ProtoMessage() {} func (x *ManagerFindIsCheckQualityUserListRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ManagerFindIsCheckQualityUserListRequest.ProtoReflect.Descriptor instead. func (*ManagerFindIsCheckQualityUserListRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{3} } func (x *ManagerFindIsCheckQualityUserListRequest) GetPage() int64 { if x != nil { return x.Page } return 0 } func (x *ManagerFindIsCheckQualityUserListRequest) GetPageSize() int64 { if x != nil { return x.PageSize } return 0 } func (x *ManagerFindIsCheckQualityUserListRequest) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *ManagerFindIsCheckQualityUserListRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *ManagerFindIsCheckQualityUserListRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } type ManagerUpdateUserCreditRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,1,opt,name=personId,proto3" json:"personId"` Num int64 `protobuf:"varint,2,opt,name=num,proto3" json:"num"` Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title"` } func (x *ManagerUpdateUserCreditRequest) Reset() { *x = ManagerUpdateUserCreditRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ManagerUpdateUserCreditRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ManagerUpdateUserCreditRequest) ProtoMessage() {} func (x *ManagerUpdateUserCreditRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ManagerUpdateUserCreditRequest.ProtoReflect.Descriptor instead. func (*ManagerUpdateUserCreditRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{4} } func (x *ManagerUpdateUserCreditRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *ManagerUpdateUserCreditRequest) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *ManagerUpdateUserCreditRequest) GetTitle() string { if x != nil { return x.Title } return "" } type ManagerMarkHighQualityUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PassIds []string `protobuf:"bytes,1,rep,name=passIds,proto3" json:"passIds"` UnPassIds []string `protobuf:"bytes,2,rep,name=unPassIds,proto3" json:"unPassIds"` } func (x *ManagerMarkHighQualityUserRequest) Reset() { *x = ManagerMarkHighQualityUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ManagerMarkHighQualityUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ManagerMarkHighQualityUserRequest) ProtoMessage() {} func (x *ManagerMarkHighQualityUserRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ManagerMarkHighQualityUserRequest.ProtoReflect.Descriptor instead. func (*ManagerMarkHighQualityUserRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{5} } func (x *ManagerMarkHighQualityUserRequest) GetPassIds() []string { if x != nil { return x.PassIds } return make([]string, 0) } func (x *ManagerMarkHighQualityUserRequest) GetUnPassIds() []string { if x != nil { return x.UnPassIds } return make([]string, 0) } type GetRecommendUserDBRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sex int64 `protobuf:"varint,2,opt,name=sex,proto3" json:"sex"` PersonIds []string `protobuf:"bytes,3,rep,name=personIds,proto3" json:"personIds"` // 匹配过的用户 } func (x *GetRecommendUserDBRequest) Reset() { *x = GetRecommendUserDBRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRecommendUserDBRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRecommendUserDBRequest) ProtoMessage() {} func (x *GetRecommendUserDBRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetRecommendUserDBRequest.ProtoReflect.Descriptor instead. func (*GetRecommendUserDBRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{6} } func (x *GetRecommendUserDBRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *GetRecommendUserDBRequest) GetPersonIds() []string { if x != nil { return x.PersonIds } return make([]string, 0) } type FindRecommendHighQualityUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 数量 Sex int64 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex"` PersonId string `protobuf:"bytes,4,opt,name=personId,proto3" json:"personId"` // ID } func (x *FindRecommendHighQualityUserRequest) Reset() { *x = FindRecommendHighQualityUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindRecommendHighQualityUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindRecommendHighQualityUserRequest) ProtoMessage() {} func (x *FindRecommendHighQualityUserRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindRecommendHighQualityUserRequest.ProtoReflect.Descriptor instead. func (*FindRecommendHighQualityUserRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{7} } func (x *FindRecommendHighQualityUserRequest) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *FindRecommendHighQualityUserRequest) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *FindRecommendHighQualityUserRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } type FindRecommendHighQualityUserReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonIdList []string `protobuf:"bytes,1,rep,name=personIdList,proto3" json:"personIdList"` } func (x *FindRecommendHighQualityUserReply) Reset() { *x = FindRecommendHighQualityUserReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindRecommendHighQualityUserReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindRecommendHighQualityUserReply) ProtoMessage() {} func (x *FindRecommendHighQualityUserReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindRecommendHighQualityUserReply.ProtoReflect.Descriptor instead. func (*FindRecommendHighQualityUserReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{8} } func (x *FindRecommendHighQualityUserReply) GetPersonIdList() []string { if x != nil { return x.PersonIdList } return make([]string, 0) } type UpdateUserMatchedNumAndReturnUserMsgReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TodayMatchedNum int64 `protobuf:"varint,1,opt,name=todayMatchedNum,proto3" json:"todayMatchedNum"` // 今日被匹配数 Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` // 昵称 AvatarUrl string `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像链接 Sex int64 `protobuf:"varint,4,opt,name=sex,proto3" json:"sex"` // 性别 Age int64 `protobuf:"varint,5,opt,name=age,proto3" json:"age"` // 年龄 City string `protobuf:"bytes,6,opt,name=city,proto3" json:"city"` //城市 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) Reset() { *x = UpdateUserMatchedNumAndReturnUserMsgReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateUserMatchedNumAndReturnUserMsgReply) ProtoMessage() {} func (x *UpdateUserMatchedNumAndReturnUserMsgReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateUserMatchedNumAndReturnUserMsgReply.ProtoReflect.Descriptor instead. func (*UpdateUserMatchedNumAndReturnUserMsgReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{9} } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetTodayMatchedNum() int64 { if x != nil { return x.TodayMatchedNum } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UpdateUserMatchedNumAndReturnUserMsgReply) GetCity() string { if x != nil { return x.City } return "" } type GetUserDBMsgFromWebsocketReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Sex int64 `protobuf:"varint,2,opt,name=sex,proto3" json:"sex"` // 性别 Weight int64 `protobuf:"varint,3,opt,name=weight,proto3" json:"weight"` // 权重 WorkingStatus string `protobuf:"bytes,4,opt,name=workingStatus,proto3" json:"workingStatus"` // 工作状态 TodayMatchedNum int64 `protobuf:"varint,5,opt,name=todayMatchedNum,proto3" json:"todayMatchedNum"` // 今日被匹配数 } func (x *GetUserDBMsgFromWebsocketReply) Reset() { *x = GetUserDBMsgFromWebsocketReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetUserDBMsgFromWebsocketReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetUserDBMsgFromWebsocketReply) ProtoMessage() {} func (x *GetUserDBMsgFromWebsocketReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetUserDBMsgFromWebsocketReply.ProtoReflect.Descriptor instead. func (*GetUserDBMsgFromWebsocketReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{10} } func (x *GetUserDBMsgFromWebsocketReply) GetId() string { if x != nil { return x.Id } return "" } func (x *GetUserDBMsgFromWebsocketReply) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetWeight() int64 { if x != nil { return x.Weight } return 0 } func (x *GetUserDBMsgFromWebsocketReply) GetWorkingStatus() string { if x != nil { return x.WorkingStatus } return "" } func (x *GetUserDBMsgFromWebsocketReply) GetTodayMatchedNum() int64 { if x != nil { return x.TodayMatchedNum } return 0 } type UpdateUserMatchedNumRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId string `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"` } func (x *UpdateUserMatchedNumRequest) Reset() { *x = UpdateUserMatchedNumRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateUserMatchedNumRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateUserMatchedNumRequest) ProtoMessage() {} func (x *UpdateUserMatchedNumRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateUserMatchedNumRequest.ProtoReflect.Descriptor instead. func (*UpdateUserMatchedNumRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{11} } func (x *UpdateUserMatchedNumRequest) GetUserId() string { if x != nil { return x.UserId } return "" } type SendNewMessageUnreadReminderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,1,opt,name=personId,proto3" json:"personId"` SendPersonId string `protobuf:"bytes,2,opt,name=sendPersonId,proto3" json:"sendPersonId"` } func (x *SendNewMessageUnreadReminderRequest) Reset() { *x = SendNewMessageUnreadReminderRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendNewMessageUnreadReminderRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendNewMessageUnreadReminderRequest) ProtoMessage() {} func (x *SendNewMessageUnreadReminderRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendNewMessageUnreadReminderRequest.ProtoReflect.Descriptor instead. func (*SendNewMessageUnreadReminderRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{12} } func (x *SendNewMessageUnreadReminderRequest) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *SendNewMessageUnreadReminderRequest) GetSendPersonId() string { if x != nil { return x.SendPersonId } return "" } type SendMsgReduceCreditReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsSendReminder bool `protobuf:"varint,1,opt,name=isSendReminder,proto3" json:"isSendReminder"` // 是否发送免费次数用完提醒 } func (x *SendMsgReduceCreditReply) Reset() { *x = SendMsgReduceCreditReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMsgReduceCreditReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMsgReduceCreditReply) ProtoMessage() {} func (x *SendMsgReduceCreditReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SendMsgReduceCreditReply.ProtoReflect.Descriptor instead. func (*SendMsgReduceCreditReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{13} } func (x *SendMsgReduceCreditReply) GetIsSendReminder() bool { if x != nil { return x.IsSendReminder } return false } type UserFreeNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplyScripNum int64 `protobuf:"varint,1,opt,name=replyScripNum,proto3" json:"replyScripNum"` // 今日可免费回复纸条的次数 CreateScripNum int64 `protobuf:"varint,2,opt,name=createScripNum,proto3" json:"createScripNum"` // 今日免费创建纸条的次数 MatchingNum int64 `protobuf:"varint,3,opt,name=matchingNum,proto3" json:"matchingNum"` // 今日免费匹配数 } func (x *UserFreeNum) Reset() { *x = UserFreeNum{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFreeNum) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFreeNum) ProtoMessage() {} func (x *UserFreeNum) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFreeNum.ProtoReflect.Descriptor instead. func (*UserFreeNum) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{14} } func (x *UserFreeNum) GetReplyScripNum() int64 { if x != nil { return x.ReplyScripNum } return 0 } func (x *UserFreeNum) GetCreateScripNum() int64 { if x != nil { return x.CreateScripNum } return 0 } func (x *UserFreeNum) GetMatchingNum() int64 { if x != nil { return x.MatchingNum } return 0 } type ReplyScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,4,opt,name=scripId,proto3" json:"scripId"` // 小纸条ID Message *common.Message `protobuf:"bytes,5,opt,name=message,proto3" json:"message"` // 回复内容 只需要提供 回复小纸条的内容 或 回复小纸条的素材链接 MsgType string `protobuf:"bytes,6,opt,name=msgType,proto3" json:"msgType"` } func (x *ReplyScripRequest) Reset() { *x = ReplyScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplyScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplyScripRequest) ProtoMessage() {} func (x *ReplyScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplyScripRequest.ProtoReflect.Descriptor instead. func (*ReplyScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{15} } func (x *ReplyScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } func (x *ReplyScripRequest) GetMessage() *common.Message { if x != nil && x.Message != nil { return x.Message } return &common.Message{} } func (x *ReplyScripRequest) GetMsgType() string { if x != nil { return x.MsgType } return "" } type PersonLookScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,3,opt,name=scripId,proto3" json:"scripId"` // 纸条id } func (x *PersonLookScripRequest) Reset() { *x = PersonLookScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PersonLookScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PersonLookScripRequest) ProtoMessage() {} func (x *PersonLookScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PersonLookScripRequest.ProtoReflect.Descriptor instead. func (*PersonLookScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{16} } func (x *PersonLookScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } type UserFindScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NextId int64 `protobuf:"varint,3,opt,name=nextId,proto3" json:"nextId"` Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset"` } func (x *UserFindScripRequest) Reset() { *x = UserFindScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFindScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFindScripRequest) ProtoMessage() {} func (x *UserFindScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFindScripRequest.ProtoReflect.Descriptor instead. func (*UserFindScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{17} } func (x *UserFindScripRequest) GetNextId() int64 { if x != nil { return x.NextId } return 0 } func (x *UserFindScripRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } type DeleteScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ScripId int64 `protobuf:"varint,1,opt,name=scripId,proto3" json:"scripId"` // 纸条id } func (x *DeleteScripRequest) Reset() { *x = DeleteScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteScripRequest) ProtoMessage() {} func (x *DeleteScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteScripRequest.ProtoReflect.Descriptor instead. func (*DeleteScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{18} } func (x *DeleteScripRequest) GetScripId() int64 { if x != nil { return x.ScripId } return 0 } type CreateScripRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text"` // 纸条内容 PictureUrl string `protobuf:"bytes,2,opt,name=pictureUrl,proto3" json:"pictureUrl"` // 纸条背景图 } func (x *CreateScripRequest) Reset() { *x = CreateScripRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateScripRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateScripRequest) ProtoMessage() {} func (x *CreateScripRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateScripRequest.ProtoReflect.Descriptor instead. func (*CreateScripRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{19} } func (x *CreateScripRequest) GetText() string { if x != nil { return x.Text } return "" } func (x *CreateScripRequest) GetPictureUrl() string { if x != nil { return x.PictureUrl } return "" } type FindMatchingAvatarAndNumReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int64 `protobuf:"varint,1,opt,name=num,proto3" json:"num"` // 匹配人数 List []string `protobuf:"bytes,2,rep,name=list,proto3" json:"list"` // 头像列表 } func (x *FindMatchingAvatarAndNumReply) Reset() { *x = FindMatchingAvatarAndNumReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindMatchingAvatarAndNumReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindMatchingAvatarAndNumReply) ProtoMessage() {} func (x *FindMatchingAvatarAndNumReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindMatchingAvatarAndNumReply.ProtoReflect.Descriptor instead. func (*FindMatchingAvatarAndNumReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{20} } func (x *FindMatchingAvatarAndNumReply) GetNum() int64 { if x != nil { return x.Num } return 0 } func (x *FindMatchingAvatarAndNumReply) GetList() []string { if x != nil { return x.List } return make([]string, 0) } type UserRechargeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RechargeTemplateId int64 `protobuf:"varint,1,opt,name=RechargeTemplateId,proto3" json:"RechargeTemplateId"` // 充值套餐ID } func (x *UserRechargeRequest) Reset() { *x = UserRechargeRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserRechargeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserRechargeRequest) ProtoMessage() {} func (x *UserRechargeRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserRechargeRequest.ProtoReflect.Descriptor instead. func (*UserRechargeRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{21} } func (x *UserRechargeRequest) GetRechargeTemplateId() int64 { if x != nil { return x.RechargeTemplateId } return 0 } type RechargeList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*RechargeInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` } func (x *RechargeList) Reset() { *x = RechargeList{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RechargeList) String() string { return protoimpl.X.MessageStringOf(x) } func (*RechargeList) ProtoMessage() {} func (x *RechargeList) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RechargeList.ProtoReflect.Descriptor instead. func (*RechargeList) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{22} } func (x *RechargeList) GetList() []*RechargeInfo { if x != nil { return x.List } return make([]*RechargeInfo, 0) } type RechargeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id"` Price int64 `protobuf:"varint,2,opt,name=price,proto3" json:"price"` Credit int64 `protobuf:"varint,3,opt,name=credit,proto3" json:"credit"` // 积分 GiveCredit int64 `protobuf:"varint,4,opt,name=giveCredit,proto3" json:"giveCredit"` // 赠送的积分 Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description"` // 描述 Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title"` // 标题 } func (x *RechargeInfo) Reset() { *x = RechargeInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RechargeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RechargeInfo) ProtoMessage() {} func (x *RechargeInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RechargeInfo.ProtoReflect.Descriptor instead. func (*RechargeInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{23} } func (x *RechargeInfo) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *RechargeInfo) GetPrice() int64 { if x != nil { return x.Price } return 0 } func (x *RechargeInfo) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *RechargeInfo) GetGiveCredit() int64 { if x != nil { return x.GiveCredit } return 0 } func (x *RechargeInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *RechargeInfo) GetTitle() string { if x != nil { return x.Title } return "" } type InformationStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsFinishInformation bool `protobuf:"varint,1,opt,name=isFinishInformation,proto3" json:"isFinishInformation"` //是否完善资料 IsGetAward bool `protobuf:"varint,2,opt,name=isGetAward,proto3" json:"isGetAward"` // 是否领取奖励 } func (x *InformationStatus) Reset() { *x = InformationStatus{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InformationStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*InformationStatus) ProtoMessage() {} func (x *InformationStatus) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InformationStatus.ProtoReflect.Descriptor instead. func (*InformationStatus) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{24} } func (x *InformationStatus) GetIsFinishInformation() bool { if x != nil { return x.IsFinishInformation } return false } func (x *InformationStatus) GetIsGetAward() bool { if x != nil { return x.IsGetAward } return false } type UserBalance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Credit int64 `protobuf:"varint,2,opt,name=credit,proto3" json:"credit"` // 积分 } func (x *UserBalance) Reset() { *x = UserBalance{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserBalance) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserBalance) ProtoMessage() {} func (x *UserBalance) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserBalance.ProtoReflect.Descriptor instead. func (*UserBalance) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{25} } func (x *UserBalance) GetId() string { if x != nil { return x.Id } return "" } func (x *UserBalance) GetCredit() int64 { if x != nil { return x.Credit } return 0 } type UserFindChatListReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*UserChatInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` NextId int64 `protobuf:"varint,2,opt,name=nextId,proto3" json:"nextId"` } func (x *UserFindChatListReply) Reset() { *x = UserFindChatListReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserFindChatListReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserFindChatListReply) ProtoMessage() {} func (x *UserFindChatListReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserFindChatListReply.ProtoReflect.Descriptor instead. func (*UserFindChatListReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{26} } func (x *UserFindChatListReply) GetList() []*UserChatInfo { if x != nil { return x.List } return make([]*UserChatInfo, 0) } func (x *UserFindChatListReply) GetNextId() int64 { if x != nil { return x.NextId } return 0 } type UserChatInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PersonId string `protobuf:"bytes,2,opt,name=personId,proto3" json:"personId"` // 用户ID UnreadNum int64 `protobuf:"varint,3,opt,name=unreadNum,proto3" json:"unreadNum"` // 用户未读数 LastContent string `protobuf:"bytes,4,opt,name=lastContent,proto3" json:"lastContent"` // 上次发送内容 LastTime int64 `protobuf:"varint,5,opt,name=lastTime,proto3" json:"lastTime"` // 上次发送时间 Likeability int64 `protobuf:"varint,6,opt,name=likeability,proto3" json:"likeability"` // 好感度 Sex int64 `protobuf:"varint,8,opt,name=sex,proto3" json:"sex"` // 性别 AvatarUrl string `protobuf:"bytes,9,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像 Nickname string `protobuf:"bytes,10,opt,name=nickname,proto3" json:"nickname"` // 昵称 Age int64 `protobuf:"varint,11,opt,name=age,proto3" json:"age"` // 年龄 RoomId int64 `protobuf:"varint,12,opt,name=roomId,proto3" json:"roomId"` // 房间号ID } func (x *UserChatInfo) Reset() { *x = UserChatInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UserChatInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserChatInfo) ProtoMessage() {} func (x *UserChatInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserChatInfo.ProtoReflect.Descriptor instead. func (*UserChatInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{27} } func (x *UserChatInfo) GetPersonId() string { if x != nil { return x.PersonId } return "" } func (x *UserChatInfo) GetUnreadNum() int64 { if x != nil { return x.UnreadNum } return 0 } func (x *UserChatInfo) GetLastContent() string { if x != nil { return x.LastContent } return "" } func (x *UserChatInfo) GetLastTime() int64 { if x != nil { return x.LastTime } return 0 } func (x *UserChatInfo) GetLikeability() int64 { if x != nil { return x.Likeability } return 0 } func (x *UserChatInfo) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UserChatInfo) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UserChatInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserChatInfo) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UserChatInfo) GetRoomId() int64 { if x != nil { return x.RoomId } return 0 } type UserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // id Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` // 昵称 AvatarUrl string `protobuf:"bytes,3,opt,name=avatarUrl,proto3" json:"avatarUrl"` // 头像链接 Age int64 `protobuf:"varint,4,opt,name=age,proto3" json:"age"` // 年龄 Sex int64 `protobuf:"varint,5,opt,name=sex,proto3" json:"sex"` // 性别 Constellation string `protobuf:"bytes,6,opt,name=constellation,proto3" json:"constellation"` // 星座 Credit int64 `protobuf:"varint,7,opt,name=credit,proto3" json:"credit"` // 积分 TagList []int64 `protobuf:"varint,8,rep,packed,name=tagList,proto3" json:"tagList"` // 标签 Signature string `protobuf:"bytes,9,opt,name=signature,proto3" json:"signature"` // 签名 IntroduceVoice string `protobuf:"bytes,10,opt,name=introduceVoice,proto3" json:"introduceVoice"` // 介绍语音 Province string `protobuf:"bytes,11,opt,name=province,proto3" json:"province"` // 省 City string `protobuf:"bytes,12,opt,name=city,proto3" json:"city"` // 市 Area string `protobuf:"bytes,13,opt,name=area,proto3" json:"area"` // 区 UserId int64 `protobuf:"varint,14,opt,name=userId,proto3" json:"userId"` // 用户ID IsBlack bool `protobuf:"varint,15,opt,name=isBlack,proto3" json:"isBlack"` // 是否被封号 IsRegister bool `protobuf:"varint,16,opt,name=isRegister,proto3" json:"isRegister"` // 是否注册 UpdateNicknameNum int64 `protobuf:"varint,17,opt,name=UpdateNicknameNum,proto3" json:"UpdateNicknameNum"` // 今日更新昵称数 UpdateAvatarUrlNum int64 `protobuf:"varint,18,opt,name=UpdateAvatarUrlNum,proto3" json:"UpdateAvatarUrlNum"` // 今日更新头像数 UpdatePicturesNum int64 `protobuf:"varint,19,opt,name=UpdatePicturesNum,proto3" json:"UpdatePicturesNum"` // 今日更新相册数 UpdateSignatureNum int64 `protobuf:"varint,20,opt,name=UpdateSignatureNum,proto3" json:"UpdateSignatureNum"` // 今日更新签名数 } func (x *UserInfo) Reset() { *x = UserInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[28] 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_user_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{28} } func (x *UserInfo) GetId() string { if x != nil { return x.Id } return "" } func (x *UserInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserInfo) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *UserInfo) GetAge() int64 { if x != nil { return x.Age } return 0 } func (x *UserInfo) GetSex() int64 { if x != nil { return x.Sex } return 0 } func (x *UserInfo) GetConstellation() string { if x != nil { return x.Constellation } return "" } func (x *UserInfo) GetCredit() int64 { if x != nil { return x.Credit } return 0 } func (x *UserInfo) GetTagList() []int64 { if x != nil { return x.TagList } return make([]int64, 0) } func (x *UserInfo) GetSignature() string { if x != nil { return x.Signature } return "" } func (x *UserInfo) GetIntroduceVoice() string { if x != nil { return x.IntroduceVoice } return "" } func (x *UserInfo) GetProvince() string { if x != nil { return x.Province } return "" } func (x *UserInfo) GetCity() string { if x != nil { return x.City } return "" } func (x *UserInfo) GetArea() string { if x != nil { return x.Area } return "" } func (x *UserInfo) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *UserInfo) GetIsBlack() bool { if x != nil { return x.IsBlack } return false } func (x *UserInfo) GetIsRegister() bool { if x != nil { return x.IsRegister } return false } func (x *UserInfo) GetUpdateNicknameNum() int64 { if x != nil { return x.UpdateNicknameNum } return 0 } func (x *UserInfo) GetUpdateAvatarUrlNum() int64 { if x != nil { return x.UpdateAvatarUrlNum } return 0 } func (x *UserInfo) GetUpdatePicturesNum() int64 { if x != nil { return x.UpdatePicturesNum } return 0 } func (x *UserInfo) GetUpdateSignatureNum() int64 { if x != nil { return x.UpdateSignatureNum } return 0 } type KeyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key"` } func (x *KeyRequest) Reset() { *x = KeyRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KeyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*KeyRequest) ProtoMessage() {} func (x *KeyRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use KeyRequest.ProtoReflect.Descriptor instead. func (*KeyRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{29} } func (x *KeyRequest) GetKey() string { if x != nil { return x.Key } return "" } type CreatePayRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Money int64 `protobuf:"varint,1,opt,name=money,proto3" json:"money"` // 支付金额 单位 分 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type"` // 类型 OpenId string `protobuf:"bytes,3,opt,name=openId,proto3" json:"openId"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"` Attach string `protobuf:"bytes,5,opt,name=attach,proto3" json:"attach"` } func (x *CreatePayRequest) Reset() { *x = CreatePayRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreatePayRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreatePayRequest) ProtoMessage() {} func (x *CreatePayRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreatePayRequest.ProtoReflect.Descriptor instead. func (*CreatePayRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{30} } func (x *CreatePayRequest) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *CreatePayRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *CreatePayRequest) GetOpenId() string { if x != nil { return x.OpenId } return "" } func (x *CreatePayRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CreatePayRequest) GetAttach() string { if x != nil { return x.Attach } return "" } type PayInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PayInfo *structpb.Value `protobuf:"bytes,1,opt,name=payInfo,proto3" json:"payInfo"` OrderId int64 `protobuf:"varint,2,opt,name=orderId,proto3" json:"orderId"` } func (x *PayInfo) Reset() { *x = PayInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayInfo) ProtoMessage() {} func (x *PayInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayInfo.ProtoReflect.Descriptor instead. func (*PayInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{31} } func (x *PayInfo) GetPayInfo() *structpb.Value { if x != nil && x.PayInfo != nil { return x.PayInfo } return &structpb.Value{} } func (x *PayInfo) GetOrderId() int64 { if x != nil { return x.OrderId } return 0 } type PayOrderInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` OrderID int64 `protobuf:"varint,2,opt,name=orderID,proto3" json:"orderID"` // 订单的唯一ID Money int64 `protobuf:"varint,3,opt,name=money,proto3" json:"money"` // 支付金额 ,单位分 Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type"` // 类型 TransactionID string `protobuf:"bytes,5,opt,name=TransactionID,proto3" json:"TransactionID"` OpenId string `protobuf:"bytes,6,opt,name=openId,proto3" json:"openId"` Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description"` Status string `protobuf:"bytes,9,opt,name=status,proto3" json:"status"` // 状态 PayTime int64 `protobuf:"varint,10,opt,name=payTime,proto3" json:"payTime"` // 支付时间 CreateTime int64 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime"` // 创建时间 } func (x *PayOrderInfo) Reset() { *x = PayOrderInfo{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayOrderInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayOrderInfo) ProtoMessage() {} func (x *PayOrderInfo) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayOrderInfo.ProtoReflect.Descriptor instead. func (*PayOrderInfo) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{32} } func (x *PayOrderInfo) GetUserID() string { if x != nil { return x.UserID } return "" } func (x *PayOrderInfo) GetOrderID() int64 { if x != nil { return x.OrderID } return 0 } func (x *PayOrderInfo) GetMoney() int64 { if x != nil { return x.Money } return 0 } func (x *PayOrderInfo) GetType() string { if x != nil { return x.Type } return "" } func (x *PayOrderInfo) GetTransactionID() string { if x != nil { return x.TransactionID } return "" } func (x *PayOrderInfo) GetOpenId() string { if x != nil { return x.OpenId } return "" } func (x *PayOrderInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *PayOrderInfo) GetStatus() string { if x != nil { return x.Status } return "" } func (x *PayOrderInfo) GetPayTime() int64 { if x != nil { return x.PayTime } return 0 } func (x *PayOrderInfo) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } type PayOrderList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*PayOrderInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` NextId int64 `protobuf:"varint,2,opt,name=nextId,proto3" json:"nextId"` } func (x *PayOrderList) Reset() { *x = PayOrderList{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayOrderList) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayOrderList) ProtoMessage() {} func (x *PayOrderList) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayOrderList.ProtoReflect.Descriptor instead. func (*PayOrderList) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{33} } func (x *PayOrderList) GetList() []*PayOrderInfo { if x != nil { return x.List } return make([]*PayOrderInfo, 0) } func (x *PayOrderList) GetNextId() int64 { if x != nil { return x.NextId } return 0 } type FindPayOrderListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NextId int64 `protobuf:"varint,1,opt,name=nextId,proto3" json:"nextId"` Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset"` Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` } func (x *FindPayOrderListRequest) Reset() { *x = FindPayOrderListRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindPayOrderListRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindPayOrderListRequest) ProtoMessage() {} func (x *FindPayOrderListRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FindPayOrderListRequest.ProtoReflect.Descriptor instead. func (*FindPayOrderListRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{34} } func (x *FindPayOrderListRequest) GetNextId() int64 { if x != nil { return x.NextId } return 0 } func (x *FindPayOrderListRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *FindPayOrderListRequest) GetStatus() string { if x != nil { return x.Status } return "" } type PayCallbackReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result []byte `protobuf:"bytes,1,opt,name=result,proto3" json:"result"` } func (x *PayCallbackReply) Reset() { *x = PayCallbackReply{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PayCallbackReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*PayCallbackReply) ProtoMessage() {} func (x *PayCallbackReply) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PayCallbackReply.ProtoReflect.Descriptor instead. func (*PayCallbackReply) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{35} } func (x *PayCallbackReply) GetResult() []byte { if x != nil { return x.Result } return make([]byte, 0) } var File_user_proto protoreflect.FileDescriptor var file_user_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x56, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x4c, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x67, 0x22, 0x90, 0x01, 0x0a, 0x28, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x22, 0x64, 0x0a, 0x1e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x5b, 0x0a, 0x21, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x49, 0x64, 0x73, 0x22, 0x4b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x65, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x29, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 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, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x22, 0xaa, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x35, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x23, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x22, 0x76, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x2e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x45, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x65, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x47, 0x65, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x47, 0x65, 0x74, 0x41, 0x77, 0x61, 0x72, 0x64, 0x22, 0x35, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0x5b, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6c, 0x69, 0x6b, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xe8, 0x04, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x1e, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x8e, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x22, 0x55, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 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, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 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, 0x22, 0x52, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2a, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xc3, 0x56, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x6e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x5d, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x5b, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x48, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x65, 0x64, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x75, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x06, 0x57, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x57, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x57, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x77, 0x78, 0x2f, 0x6a, 0x73, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x53, 0x65, 0x78, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x74, 0x61, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x76, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x72, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x6d, 0x73, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x59, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x73, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x64, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x6d, 0x65, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6d, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x65, 0x6d, 0x65, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x77, 0x69, 0x66, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x53, 0x65, 0x78, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x68, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6d, 0x65, 0x6d, 0x65, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x64, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x6d, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x56, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x5a, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x55, 0x6e, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x5c, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x44, 0x61, 0x79, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6b, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x73, 0x65, 0x6c, 0x66, 0x3a, 0x01, 0x2a, 0x12, 0x6d, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x77, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x66, 0x69, 0x6e, 0x64, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x6d, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x6e, 0x75, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x73, 0x0a, 0x0d, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x74, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x01, 0x2a, 0x12, 0x86, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x41, 0x6e, 0x64, 0x4c, 0x69, 0x6b, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x75, 0x6d, 0x2f, 0x6c, 0x69, 0x6b, 0x65, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x69, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x6e, 0x75, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x65, 0x0a, 0x10, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0x5f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x67, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x61, 0x79, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x7c, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x41, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2f, 0x67, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x5e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x65, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x66, 0x72, 0x65, 0x65, 0x2f, 0x6e, 0x75, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x6f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x01, 0x2a, 0x12, 0x63, 0x0a, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x67, 0x0a, 0x0d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x77, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x6c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x8a, 0x01, 0x0a, 0x13, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x22, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0xa1, 0x01, 0x0a, 0x1e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0xb2, 0x01, 0x0a, 0x21, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x49, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x32, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0x9d, 0x01, 0x0a, 0x1e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x74, 0x2f, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x70, 0x0a, 0x13, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x1c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x88, 0x01, 0x0a, 0x16, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x91, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x94, 0x01, 0x0a, 0x1a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8b, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x8c, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x73, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x84, 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x61, 0x64, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x1e, 0x53, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x42, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_user_proto_rawDescOnce sync.Once file_user_proto_rawDescData = file_user_proto_rawDesc ) func file_user_proto_rawDescGZIP() []byte { file_user_proto_rawDescOnce.Do(func() { file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData) }) return file_user_proto_rawDescData } var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_user_proto_goTypes = []interface{}{ (*AddUserCreditRequest)(nil), // 0: api.user.AddUserCreditRequest (*ReportUserBlackRequest)(nil), // 1: api.user.ReportUserBlackRequest (*SendMessageRequest)(nil), // 2: api.user.SendMessageRequest (*ManagerFindIsCheckQualityUserListRequest)(nil), // 3: api.user.ManagerFindIsCheckQualityUserListRequest (*ManagerUpdateUserCreditRequest)(nil), // 4: api.user.ManagerUpdateUserCreditRequest (*ManagerMarkHighQualityUserRequest)(nil), // 5: api.user.ManagerMarkHighQualityUserRequest (*GetRecommendUserDBRequest)(nil), // 6: api.user.GetRecommendUserDBRequest (*FindRecommendHighQualityUserRequest)(nil), // 7: api.user.FindRecommendHighQualityUserRequest (*FindRecommendHighQualityUserReply)(nil), // 8: api.user.FindRecommendHighQualityUserReply (*UpdateUserMatchedNumAndReturnUserMsgReply)(nil), // 9: api.user.UpdateUserMatchedNumAndReturnUserMsgReply (*GetUserDBMsgFromWebsocketReply)(nil), // 10: api.user.GetUserDBMsgFromWebsocketReply (*UpdateUserMatchedNumRequest)(nil), // 11: api.user.UpdateUserMatchedNumRequest (*SendNewMessageUnreadReminderRequest)(nil), // 12: api.user.SendNewMessageUnreadReminderRequest (*SendMsgReduceCreditReply)(nil), // 13: api.user.SendMsgReduceCreditReply (*UserFreeNum)(nil), // 14: api.user.UserFreeNum (*ReplyScripRequest)(nil), // 15: api.user.ReplyScripRequest (*PersonLookScripRequest)(nil), // 16: api.user.PersonLookScripRequest (*UserFindScripRequest)(nil), // 17: api.user.UserFindScripRequest (*DeleteScripRequest)(nil), // 18: api.user.DeleteScripRequest (*CreateScripRequest)(nil), // 19: api.user.CreateScripRequest (*FindMatchingAvatarAndNumReply)(nil), // 20: api.user.FindMatchingAvatarAndNumReply (*UserRechargeRequest)(nil), // 21: api.user.UserRechargeRequest (*RechargeList)(nil), // 22: api.user.RechargeList (*RechargeInfo)(nil), // 23: api.user.RechargeInfo (*InformationStatus)(nil), // 24: api.user.InformationStatus (*UserBalance)(nil), // 25: api.user.UserBalance (*UserFindChatListReply)(nil), // 26: api.user.UserFindChatListReply (*UserChatInfo)(nil), // 27: api.user.UserChatInfo (*UserInfo)(nil), // 28: api.user.UserInfo (*KeyRequest)(nil), // 29: api.user.KeyRequest (*CreatePayRequest)(nil), // 30: api.user.CreatePayRequest (*PayInfo)(nil), // 31: api.user.PayInfo (*PayOrderInfo)(nil), // 32: api.user.PayOrderInfo (*PayOrderList)(nil), // 33: api.user.PayOrderList (*FindPayOrderListRequest)(nil), // 34: api.user.FindPayOrderListRequest (*PayCallbackReply)(nil), // 35: api.user.PayCallbackReply (*common.Message)(nil), // 36: api.common.Message (*structpb.Value)(nil), // 37: google.protobuf.Value (*emptypb.Empty)(nil), // 38: google.protobuf.Empty (*common.SendPhoneCodeRequest)(nil), // 39: api.common.SendPhoneCodeRequest (*common.CheckPhoneCodeRequest)(nil), // 40: api.common.CheckPhoneCodeRequest (*common.UpdateInformationRequest)(nil), // 41: api.common.UpdateInformationRequest (*common.CreateChatRoomParam)(nil), // 42: api.common.CreateChatRoomParam (*common.PersonParam)(nil), // 43: api.common.PersonParam (*common.ListPageRequest)(nil), // 44: api.common.ListPageRequest (*common.WxConfReq)(nil), // 45: api.common.WxConfReq (*common.SexReq)(nil), // 46: api.common.SexReq (*common.ListPage2Request)(nil), // 47: api.common.ListPage2Request (*common.FindChatRecordListRequest)(nil), // 48: api.common.FindChatRecordListRequest (*common.FindChatRoomMsgRequest)(nil), // 49: api.common.FindChatRoomMsgRequest (*common.MemeRequest)(nil), // 50: api.common.MemeRequest (*common.FindChatTopicRequest)(nil), // 51: api.common.FindChatTopicRequest (*common.RandomNum)(nil), // 52: api.common.RandomNum (*common.RandomNumAndSex)(nil), // 53: api.common.RandomNumAndSex (*common.ReportChatRequest)(nil), // 54: api.common.ReportChatRequest (*common.UpdateLastScripIDRequest)(nil), // 55: api.common.UpdateLastScripIDRequest (*common.FindScripRequest)(nil), // 56: api.common.FindScripRequest (*common.RoomIDRequest)(nil), // 57: api.common.RoomIDRequest (*common.PartnerIDParam)(nil), // 58: api.common.PartnerIDParam (*common.ManagerFindPersonListRequest)(nil), // 59: api.common.ManagerFindPersonListRequest (*common.PersonIDParam)(nil), // 60: api.common.PersonIDParam (*common.PersonIDList)(nil), // 61: api.common.PersonIDList (*common.ManagerUpdatePersonVoiceRequest)(nil), // 62: api.common.ManagerUpdatePersonVoiceRequest (*common.ManagerUpdatePersonPicturesRequest)(nil), // 63: api.common.ManagerUpdatePersonPicturesRequest (*common.ManagerUpdatePersonSignatureRequest)(nil), // 64: api.common.ManagerUpdatePersonSignatureRequest (*common.ManagerUpdatePersonAvatarRequest)(nil), // 65: api.common.ManagerUpdatePersonAvatarRequest (*common.ManagerUpdatePersonNameRequest)(nil), // 66: api.common.ManagerUpdatePersonNameRequest (*common.ManagerUpdatePersonWeightRequest)(nil), // 67: api.common.ManagerUpdatePersonWeightRequest (*common.ManagerUpdatePersonIsBlackRequest)(nil), // 68: api.common.ManagerUpdatePersonIsBlackRequest (*common.UpdateLastScripIDDBRequest)(nil), // 69: api.common.UpdateLastScripIDDBRequest (*common.FindRecommendRequest)(nil), // 70: api.common.FindRecommendRequest (*common.IDParam)(nil), // 71: api.common.IDParam (*chat.RoomReply)(nil), // 72: api.chat.RoomReply (*common.HomeInfo)(nil), // 73: api.common.HomeInfo (*common.LookedAndLikedNum)(nil), // 74: api.common.LookedAndLikedNum (*statistics.LookAndLikeListReply)(nil), // 75: api.statistics.LookAndLikeListReply (*common.WxConfResponse)(nil), // 76: api.common.WxConfResponse (*common.TagListReply)(nil), // 77: api.common.TagListReply (*common.RecommendPersonListReply)(nil), // 78: api.common.RecommendPersonListReply (*common.ChatRecordListReply)(nil), // 79: api.common.ChatRecordListReply (*common.ChatRoomMsg)(nil), // 80: api.common.ChatRoomMsg (*common.IsLike)(nil), // 81: api.common.IsLike (*common.MemeList)(nil), // 82: api.common.MemeList (*common.ChatTopicList)(nil), // 83: api.common.ChatTopicList (*common.CommonTextList)(nil), // 84: api.common.CommonTextList (*common.MemeTitleList)(nil), // 85: api.common.MemeTitleList (*common.ChatCardInfo)(nil), // 86: api.common.ChatCardInfo (*common.FindOverSevenDayAvatarReply)(nil), // 87: api.common.FindOverSevenDayAvatarReply (*common.ScripID)(nil), // 88: api.common.ScripID (*common.ScripReply)(nil), // 89: api.common.ScripReply (*common.ScripInfo)(nil), // 90: api.common.ScripInfo (*common.ChatRecordInfo)(nil), // 91: api.common.ChatRecordInfo (*chat.UnreadNumReply)(nil), // 92: api.chat.UnreadNumReply (*chat.UserRoomInfo)(nil), // 93: api.chat.UserRoomInfo (*chat.CheckUserPartnerIsRelationshipReply)(nil), // 94: api.chat.CheckUserPartnerIsRelationshipReply (*common.AddFriendMessageInfo)(nil), // 95: api.common.AddFriendMessageInfo (*statistics.LookAndLikeMessageReply)(nil), // 96: api.statistics.LookAndLikeMessageReply (*statistics.LookMessageReply)(nil), // 97: api.statistics.LookMessageReply (*chat.WindowInfo)(nil), // 98: api.chat.WindowInfo (*chat.GetRandomMatchingReply)(nil), // 99: api.chat.GetRandomMatchingReply (*common.SendMessageReply)(nil), // 100: api.common.SendMessageReply (*common.ManagerFindPersonListReply)(nil), // 101: api.common.ManagerFindPersonListReply (*common.ManagerFindPersonListReply2)(nil), // 102: api.common.ManagerFindPersonListReply2 (*common.PersonMsg)(nil), // 103: api.common.PersonMsg (*common.PersonDBReply)(nil), // 104: api.common.PersonDBReply (*common.PersonDB)(nil), // 105: api.common.PersonDB } var file_user_proto_depIdxs = []int32{ 36, // 0: api.user.SendMessageRequest.message:type_name -> api.common.Message 36, // 1: api.user.ReplyScripRequest.message:type_name -> api.common.Message 23, // 2: api.user.RechargeList.list:type_name -> api.user.RechargeInfo 27, // 3: api.user.UserFindChatListReply.list:type_name -> api.user.UserChatInfo 37, // 4: api.user.PayInfo.payInfo:type_name -> google.protobuf.Value 32, // 5: api.user.PayOrderList.list:type_name -> api.user.PayOrderInfo 38, // 6: api.user.User.GetUserInfo:input_type -> google.protobuf.Empty 39, // 7: api.user.User.SendPhoneCode:input_type -> api.common.SendPhoneCodeRequest 40, // 8: api.user.User.CheckPhoneCode:input_type -> api.common.CheckPhoneCodeRequest 41, // 9: api.user.User.UpdateUserInformation:input_type -> api.common.UpdateInformationRequest 42, // 10: api.user.User.CreateUserPersonRoom:input_type -> api.common.CreateChatRoomParam 38, // 11: api.user.User.GetUserBalance:input_type -> google.protobuf.Empty 43, // 12: api.user.User.UserGetHomeInfo:input_type -> api.common.PersonParam 43, // 13: api.user.User.UserGetPersonLikedAndLooked:input_type -> api.common.PersonParam 44, // 14: api.user.User.FindLookList:input_type -> api.common.ListPageRequest 45, // 15: api.user.User.WxConf:input_type -> api.common.WxConfReq 46, // 16: api.user.User.FindTagListBySex:input_type -> api.common.SexReq 47, // 17: api.user.User.FindOnlineList:input_type -> api.common.ListPage2Request 44, // 18: api.user.User.FindWithinSevenDayRoomList:input_type -> api.common.ListPageRequest 44, // 19: api.user.User.FindOverSevenDayRoomList:input_type -> api.common.ListPageRequest 48, // 20: api.user.User.FindChatRecordList:input_type -> api.common.FindChatRecordListRequest 49, // 21: api.user.User.FindChatRoomMsg:input_type -> api.common.FindChatRoomMsgRequest 43, // 22: api.user.User.GetUserIsLike:input_type -> api.common.PersonParam 50, // 23: api.user.User.FindMemeByType:input_type -> api.common.MemeRequest 51, // 24: api.user.User.FindChatTopic:input_type -> api.common.FindChatTopicRequest 52, // 25: api.user.User.RandomMeme:input_type -> api.common.RandomNum 53, // 26: api.user.User.RandomSwiftMessage:input_type -> api.common.RandomNumAndSex 38, // 27: api.user.User.FindMemeTitle:input_type -> google.protobuf.Empty 43, // 28: api.user.User.UserGetChatCard:input_type -> api.common.PersonParam 38, // 29: api.user.User.FindChatTopicTitle:input_type -> google.protobuf.Empty 43, // 30: api.user.User.UserLike:input_type -> api.common.PersonParam 43, // 31: api.user.User.UserUnLike:input_type -> api.common.PersonParam 54, // 32: api.user.User.Report:input_type -> api.common.ReportChatRequest 38, // 33: api.user.User.FindOverSevenDayAvatar:input_type -> google.protobuf.Empty 55, // 34: api.user.User.UpdateLastScripID:input_type -> api.common.UpdateLastScripIDRequest 19, // 35: api.user.User.CreateScrip:input_type -> api.user.CreateScripRequest 18, // 36: api.user.User.DeleteScrip:input_type -> api.user.DeleteScripRequest 17, // 37: api.user.User.FindMyScrip:input_type -> api.user.UserFindScripRequest 56, // 38: api.user.User.FindOtherScrip:input_type -> api.common.FindScripRequest 17, // 39: api.user.User.FindRecommendScrip:input_type -> api.user.UserFindScripRequest 16, // 40: api.user.User.PersonLookScrip:input_type -> api.user.PersonLookScripRequest 38, // 41: api.user.User.PersonClickLookBack:input_type -> google.protobuf.Empty 15, // 42: api.user.User.PersonReplyScrip:input_type -> api.user.ReplyScripRequest 57, // 43: api.user.User.UserDeleteChat:input_type -> api.common.RoomIDRequest 38, // 44: api.user.User.GetUserAllUnreadNum:input_type -> google.protobuf.Empty 43, // 45: api.user.User.GetUserRoomByPerson:input_type -> api.common.PersonParam 44, // 46: api.user.User.FindLikeList:input_type -> api.common.ListPageRequest 44, // 47: api.user.User.FindLikedList:input_type -> api.common.ListPageRequest 57, // 48: api.user.User.UserSetBlackChat:input_type -> api.common.RoomIDRequest 58, // 49: api.user.User.CheckUserPartnerIsRelationship:input_type -> api.common.PartnerIDParam 29, // 50: api.user.User.GetPartnerCircleInfo:input_type -> api.user.KeyRequest 38, // 51: api.user.User.GetLookAndLikeStatisticsMessage:input_type -> google.protobuf.Empty 38, // 52: api.user.User.GetUserLookNum:input_type -> google.protobuf.Empty 38, // 53: api.user.User.UserFinishInformation:input_type -> google.protobuf.Empty 38, // 54: api.user.User.UserInformationStatus:input_type -> google.protobuf.Empty 38, // 55: api.user.User.UserGetInformationAward:input_type -> google.protobuf.Empty 43, // 56: api.user.User.UnlockLookRecord:input_type -> api.common.PersonParam 21, // 57: api.user.User.UserRecharge:input_type -> api.user.UserRechargeRequest 38, // 58: api.user.User.FindRechargeList:input_type -> google.protobuf.Empty 34, // 59: api.user.User.FindPayList:input_type -> api.user.FindPayOrderListRequest 38, // 60: api.user.User.FindRecommendPersonList:input_type -> google.protobuf.Empty 38, // 61: api.user.User.FindMatchingAvatarAndNum:input_type -> google.protobuf.Empty 38, // 62: api.user.User.GetWindowInfo:input_type -> google.protobuf.Empty 38, // 63: api.user.User.GetUserFreeNum:input_type -> google.protobuf.Empty 46, // 64: api.user.User.GetRandomMatching:input_type -> api.common.SexReq 57, // 65: api.user.User.UnlockVoice:input_type -> api.common.RoomIDRequest 57, // 66: api.user.User.UnlockPicture:input_type -> api.common.RoomIDRequest 38, // 67: api.user.User.UpdateUserIsRegister:input_type -> google.protobuf.Empty 42, // 68: api.user.User.CreateUserPartnerRoom:input_type -> api.common.CreateChatRoomParam 2, // 69: api.user.User.SendMessage:input_type -> api.user.SendMessageRequest 59, // 70: api.user.User.ManagerFindUserList:input_type -> api.common.ManagerFindPersonListRequest 59, // 71: api.user.User.ManagerFindInformationUserList:input_type -> api.common.ManagerFindPersonListRequest 3, // 72: api.user.User.ManagerFindIsCheckQualityUserList:input_type -> api.user.ManagerFindIsCheckQualityUserListRequest 59, // 73: api.user.User.ManagerFindHighQualityUserList:input_type -> api.common.ManagerFindPersonListRequest 5, // 74: api.user.User.ManagerMarkHighQualityUser:input_type -> api.user.ManagerMarkHighQualityUserRequest 60, // 75: api.user.User.ManagerMarkHighQualityUserOne:input_type -> api.common.PersonIDParam 61, // 76: api.user.User.ManagerSetUserBlack:input_type -> api.common.PersonIDList 60, // 77: api.user.User.ManagerDeleteHighQualityUser:input_type -> api.common.PersonIDParam 62, // 78: api.user.User.ManagerUpdateUserVoice:input_type -> api.common.ManagerUpdatePersonVoiceRequest 63, // 79: api.user.User.ManagerUpdateUserPictures:input_type -> api.common.ManagerUpdatePersonPicturesRequest 64, // 80: api.user.User.ManagerUpdateUserSignature:input_type -> api.common.ManagerUpdatePersonSignatureRequest 65, // 81: api.user.User.ManagerUpdateUserAvatar:input_type -> api.common.ManagerUpdatePersonAvatarRequest 66, // 82: api.user.User.ManagerUpdateUserName:input_type -> api.common.ManagerUpdatePersonNameRequest 67, // 83: api.user.User.ManagerUpdateUserWeight:input_type -> api.common.ManagerUpdatePersonWeightRequest 68, // 84: api.user.User.ManagerUpdateUserIsBlack:input_type -> api.common.ManagerUpdatePersonIsBlackRequest 4, // 85: api.user.User.ManagerUpdateUserCredit:input_type -> api.user.ManagerUpdateUserCreditRequest 60, // 86: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam 61, // 87: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList 69, // 88: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest 70, // 89: api.user.User.FindRecommendUserDBList:input_type -> api.common.FindRecommendRequest 60, // 90: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam 71, // 91: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam 7, // 92: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest 60, // 93: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam 43, // 94: api.user.User.SendMsgReduceCredit:input_type -> api.common.PersonParam 43, // 95: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam 43, // 96: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam 43, // 97: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam 43, // 98: api.user.User.MatchingCredit:input_type -> api.common.PersonParam 12, // 99: api.user.User.SendNewMessageUnreadReminder:input_type -> api.user.SendNewMessageUnreadReminderRequest 60, // 100: api.user.User.SendNewVisitorTemplateReminder:input_type -> api.common.PersonIDParam 11, // 101: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest 6, // 102: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest 1, // 103: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest 0, // 104: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest 60, // 105: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam 28, // 106: api.user.User.GetUserInfo:output_type -> api.user.UserInfo 38, // 107: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty 38, // 108: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty 38, // 109: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty 72, // 110: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply 25, // 111: api.user.User.GetUserBalance:output_type -> api.user.UserBalance 73, // 112: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo 74, // 113: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum 75, // 114: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply 76, // 115: api.user.User.WxConf:output_type -> api.common.WxConfResponse 77, // 116: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply 78, // 117: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply 26, // 118: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply 26, // 119: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply 79, // 120: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply 80, // 121: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg 81, // 122: api.user.User.GetUserIsLike:output_type -> api.common.IsLike 82, // 123: api.user.User.FindMemeByType:output_type -> api.common.MemeList 83, // 124: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList 84, // 125: api.user.User.RandomMeme:output_type -> api.common.CommonTextList 84, // 126: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList 85, // 127: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList 86, // 128: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo 85, // 129: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList 38, // 130: api.user.User.UserLike:output_type -> google.protobuf.Empty 38, // 131: api.user.User.UserUnLike:output_type -> google.protobuf.Empty 38, // 132: api.user.User.Report:output_type -> google.protobuf.Empty 87, // 133: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply 38, // 134: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty 88, // 135: api.user.User.CreateScrip:output_type -> api.common.ScripID 38, // 136: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty 89, // 137: api.user.User.FindMyScrip:output_type -> api.common.ScripReply 89, // 138: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply 89, // 139: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply 38, // 140: api.user.User.PersonLookScrip:output_type -> google.protobuf.Empty 90, // 141: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo 91, // 142: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo 38, // 143: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty 92, // 144: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply 93, // 145: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo 75, // 146: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply 75, // 147: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply 38, // 148: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty 94, // 149: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply 95, // 150: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo 96, // 151: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply 97, // 152: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply 38, // 153: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty 24, // 154: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus 38, // 155: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty 38, // 156: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty 31, // 157: api.user.User.UserRecharge:output_type -> api.user.PayInfo 22, // 158: api.user.User.FindRechargeList:output_type -> api.user.RechargeList 33, // 159: api.user.User.FindPayList:output_type -> api.user.PayOrderList 78, // 160: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply 20, // 161: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply 98, // 162: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo 14, // 163: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum 99, // 164: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply 38, // 165: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty 38, // 166: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty 38, // 167: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty 72, // 168: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply 100, // 169: api.user.User.SendMessage:output_type -> api.common.SendMessageReply 101, // 170: api.user.User.ManagerFindUserList:output_type -> api.common.ManagerFindPersonListReply 101, // 171: api.user.User.ManagerFindInformationUserList:output_type -> api.common.ManagerFindPersonListReply 102, // 172: api.user.User.ManagerFindIsCheckQualityUserList:output_type -> api.common.ManagerFindPersonListReply2 101, // 173: api.user.User.ManagerFindHighQualityUserList:output_type -> api.common.ManagerFindPersonListReply 38, // 174: api.user.User.ManagerMarkHighQualityUser:output_type -> google.protobuf.Empty 38, // 175: api.user.User.ManagerMarkHighQualityUserOne:output_type -> google.protobuf.Empty 38, // 176: api.user.User.ManagerSetUserBlack:output_type -> google.protobuf.Empty 38, // 177: api.user.User.ManagerDeleteHighQualityUser:output_type -> google.protobuf.Empty 38, // 178: api.user.User.ManagerUpdateUserVoice:output_type -> google.protobuf.Empty 38, // 179: api.user.User.ManagerUpdateUserPictures:output_type -> google.protobuf.Empty 38, // 180: api.user.User.ManagerUpdateUserSignature:output_type -> google.protobuf.Empty 38, // 181: api.user.User.ManagerUpdateUserAvatar:output_type -> google.protobuf.Empty 38, // 182: api.user.User.ManagerUpdateUserName:output_type -> google.protobuf.Empty 38, // 183: api.user.User.ManagerUpdateUserWeight:output_type -> google.protobuf.Empty 38, // 184: api.user.User.ManagerUpdateUserIsBlack:output_type -> google.protobuf.Empty 38, // 185: api.user.User.ManagerUpdateUserCredit:output_type -> google.protobuf.Empty 103, // 186: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg 104, // 187: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply 38, // 188: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty 104, // 189: api.user.User.FindRecommendUserDBList:output_type -> api.common.PersonDBReply 38, // 190: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty 103, // 191: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg 8, // 192: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply 10, // 193: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply 38, // 194: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty 38, // 195: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty 38, // 196: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty 38, // 197: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty 38, // 198: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty 38, // 199: api.user.User.SendNewMessageUnreadReminder:output_type -> google.protobuf.Empty 38, // 200: api.user.User.SendNewVisitorTemplateReminder:output_type -> google.protobuf.Empty 9, // 201: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply 105, // 202: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB 38, // 203: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty 38, // 204: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty 24, // 205: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus 106, // [106:206] is the sub-list for method output_type 6, // [6:106] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name } func init() { file_user_proto_init() } func file_user_proto_init() { if File_user_proto != nil { return } if !protoimpl.UnsafeEnabled { file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddUserCreditRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReportUserBlackRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManagerFindIsCheckQualityUserListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManagerUpdateUserCreditRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManagerMarkHighQualityUserRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRecommendUserDBRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindRecommendHighQualityUserRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindRecommendHighQualityUserReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateUserMatchedNumAndReturnUserMsgReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserDBMsgFromWebsocketReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateUserMatchedNumRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendNewMessageUnreadReminderRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgReduceCreditReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFreeNum); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplyScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PersonLookScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFindScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateScripRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindMatchingAvatarAndNumReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserRechargeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RechargeList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RechargeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InformationStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserBalance); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserFindChatListReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserChatInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreatePayRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayOrderInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayOrderList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindPayOrderListRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayCallbackReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_proto_rawDesc, NumEnums: 0, NumMessages: 36, NumExtensions: 0, NumServices: 1, }, GoTypes: file_user_proto_goTypes, DependencyIndexes: file_user_proto_depIdxs, MessageInfos: file_user_proto_msgTypes, }.Build() File_user_proto = out.File file_user_proto_rawDesc = nil file_user_proto_goTypes = nil file_user_proto_depIdxs = nil }