// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.30.0 // protoc v3.21.12 // source: conversations.proto package binary import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ConversationType int32 const ( ConversationType_UNKNOWN_CONVERSATION_TYPE ConversationType = 0 ConversationType_SMS ConversationType = 1 ConversationType_RCS ConversationType = 2 ) // Enum value maps for ConversationType. var ( ConversationType_name = map[int32]string{ 0: "UNKNOWN_CONVERSATION_TYPE", 1: "SMS", 2: "RCS", } ConversationType_value = map[string]int32{ "UNKNOWN_CONVERSATION_TYPE": 0, "SMS": 1, "RCS": 2, } ) func (x ConversationType) Enum() *ConversationType { p := new(ConversationType) *p = x return p } func (x ConversationType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConversationType) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[0].Descriptor() } func (ConversationType) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[0] } func (x ConversationType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConversationType.Descriptor instead. func (ConversationType) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{0} } type MessageStatusType int32 const ( MessageStatusType_STATUS_UNKNOWN MessageStatusType = 0 MessageStatusType_OUTGOING_COMPLETE MessageStatusType = 1 MessageStatusType_OUTGOING_DELIVERED MessageStatusType = 2 MessageStatusType_OUTGOING_DISPLAYED MessageStatusType = 11 MessageStatusType_OUTGOING_DRAFT MessageStatusType = 3 MessageStatusType_OUTGOING_SEND_AFTER_PROCESSING MessageStatusType = 10 MessageStatusType_OUTGOING_YET_TO_SEND MessageStatusType = 4 MessageStatusType_OUTGOING_SENDING MessageStatusType = 5 MessageStatusType_OUTGOING_RESENDING MessageStatusType = 6 MessageStatusType_OUTGOING_AWAITING_RETRY MessageStatusType = 7 MessageStatusType_OUTGOING_FAILED_GENERIC MessageStatusType = 8 MessageStatusType_OUTGOING_FAILED_EMERGENCY_NUMBER MessageStatusType = 9 MessageStatusType_OUTGOING_CANCELED MessageStatusType = 12 MessageStatusType_OUTGOING_FAILED_TOO_LARGE MessageStatusType = 13 MessageStatusType_OUTGOING_NOT_DELIVERED_YET MessageStatusType = 14 MessageStatusType_OUTGOING_REVOCATION_PENDING MessageStatusType = 15 MessageStatusType_OUTGOING_SCHEDULED MessageStatusType = 16 MessageStatusType_OUTGOING_FAILED_RECIPIENT_LOST_RCS MessageStatusType = 17 MessageStatusType_OUTGOING_FAILED_NO_RETRY_NO_FALLBACK MessageStatusType = 18 MessageStatusType_OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT MessageStatusType = 19 MessageStatusType_OUTGOING_VALIDATING MessageStatusType = 20 MessageStatusType_OUTGOING_FAILED_RECIPIENT_LOST_ENCRYPTION MessageStatusType = 21 MessageStatusType_OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT_NO_MORE_RETRY MessageStatusType = 22 MessageStatusType_INCOMING_COMPLETE MessageStatusType = 100 MessageStatusType_INCOMING_YET_TO_MANUAL_DOWNLOAD MessageStatusType = 101 MessageStatusType_INCOMING_RETRYING_MANUAL_DOWNLOAD MessageStatusType = 102 MessageStatusType_INCOMING_MANUAL_DOWNLOADING MessageStatusType = 103 MessageStatusType_INCOMING_RETRYING_AUTO_DOWNLOAD MessageStatusType = 104 MessageStatusType_INCOMING_AUTO_DOWNLOADING MessageStatusType = 105 MessageStatusType_INCOMING_DOWNLOAD_FAILED MessageStatusType = 106 MessageStatusType_INCOMING_EXPIRED_OR_NOT_AVAILABLE MessageStatusType = 107 MessageStatusType_INCOMING_DELIVERED MessageStatusType = 108 MessageStatusType_INCOMING_DISPLAYED MessageStatusType = 109 MessageStatusType_INCOMING_DOWNLOAD_CANCELED MessageStatusType = 110 MessageStatusType_INCOMING_DOWNLOAD_FAILED_TOO_LARGE MessageStatusType = 111 MessageStatusType_INCOMING_DOWNLOAD_FAILED_SIM_HAS_NO_DATA MessageStatusType = 112 MessageStatusType_INCOMING_FAILED_TO_DECRYPT MessageStatusType = 113 MessageStatusType_INCOMING_DECRYPTION_ABORTED MessageStatusType = 114 MessageStatusType_TOMBSTONE_PARTICIPANT_JOINED MessageStatusType = 200 MessageStatusType_TOMBSTONE_PARTICIPANT_LEFT MessageStatusType = 201 MessageStatusType_TOMBSTONE_SELF_LEFT MessageStatusType = 202 MessageStatusType_TOMBSTONE_RCS_GROUP_CREATED MessageStatusType = 203 MessageStatusType_TOMBSTONE_MMS_GROUP_CREATED MessageStatusType = 204 MessageStatusType_TOMBSTONE_SMS_BROADCAST_CREATED MessageStatusType = 205 MessageStatusType_TOMBSTONE_ONE_ON_ONE_SMS_CREATED MessageStatusType = 206 MessageStatusType_TOMBSTONE_ONE_ON_ONE_RCS_CREATED MessageStatusType = 207 MessageStatusType_TOMBSTONE_SWITCH_TO_GROUP_MMS MessageStatusType = 208 MessageStatusType_TOMBSTONE_SWITCH_TO_BROADCAST_SMS MessageStatusType = 209 MessageStatusType_TOMBSTONE_SHOW_LINK_PREVIEWS MessageStatusType = 210 MessageStatusType_TOMBSTONE_GROUP_RENAMED_LOCAL MessageStatusType = 211 MessageStatusType_TOMBSTONE_VERIFIED_SMS_APPLICABLE MessageStatusType = 212 MessageStatusType_TOMBSTONE_ENCRYPTED_ONE_ON_ONE_RCS_CREATED MessageStatusType = 213 MessageStatusType_TOMBSTONE_PROTOCOL_SWITCH_TO_TEXT MessageStatusType = 214 MessageStatusType_TOMBSTONE_PROTOCOL_SWITCH_TO_RCS MessageStatusType = 215 MessageStatusType_TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS MessageStatusType = 216 MessageStatusType_TOMBSTONE_GROUP_RENAMED_GLOBAL MessageStatusType = 217 MessageStatusType_TOMBSTONE_GROUP_NAME_CLEARED_GLOBAL MessageStatusType = 218 MessageStatusType_TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS_INFO MessageStatusType = 219 MessageStatusType_TOMBSTONE_SELF_REMOVED_FROM_GROUP MessageStatusType = 220 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_GROUP MessageStatusType = 221 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_SMS_NORM_PARTICIPANT_UPGRADED MessageStatusType = 222 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_RCS_NORM_PARTICIPANT_UPGRADED MessageStatusType = 223 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_RCS_NORM_PARTICIPANT_UPGRADED MessageStatusType = 224 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED MessageStatusType = 225 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED_INFO MessageStatusType = 226 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_LEFT MessageStatusType = 227 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_SELF_LEFT MessageStatusType = 228 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_CREATED MessageStatusType = 229 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_SELF_REMOVED_FROM_ENCRYPTED_GROUP MessageStatusType = 230 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_ENCRYPTED_GROUP MessageStatusType = 231 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_SUGGESTION_SHORTCUT_STAR_TOOLSTONE MessageStatusType = 232 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_RCS_TO_E2EE MessageStatusType = 233 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_E2EE_TO_RCS MessageStatusType = 234 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_TEXT_TO_E2EE MessageStatusType = 235 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_TEXT MessageStatusType = 236 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_RCS_TO_E2EE MessageStatusType = 237 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_RCS MessageStatusType = 238 MessageStatusType_MESSAGE_STATUS_TOMBSTONE_SATELLITE_EDUCATION MessageStatusType = 239 MessageStatusType_MESSAGE_DELETED MessageStatusType = 300 ) // Enum value maps for MessageStatusType. var ( MessageStatusType_name = map[int32]string{ 0: "STATUS_UNKNOWN", 1: "OUTGOING_COMPLETE", 2: "OUTGOING_DELIVERED", 11: "OUTGOING_DISPLAYED", 3: "OUTGOING_DRAFT", 10: "OUTGOING_SEND_AFTER_PROCESSING", 4: "OUTGOING_YET_TO_SEND", 5: "OUTGOING_SENDING", 6: "OUTGOING_RESENDING", 7: "OUTGOING_AWAITING_RETRY", 8: "OUTGOING_FAILED_GENERIC", 9: "OUTGOING_FAILED_EMERGENCY_NUMBER", 12: "OUTGOING_CANCELED", 13: "OUTGOING_FAILED_TOO_LARGE", 14: "OUTGOING_NOT_DELIVERED_YET", 15: "OUTGOING_REVOCATION_PENDING", 16: "OUTGOING_SCHEDULED", 17: "OUTGOING_FAILED_RECIPIENT_LOST_RCS", 18: "OUTGOING_FAILED_NO_RETRY_NO_FALLBACK", 19: "OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT", 20: "OUTGOING_VALIDATING", 21: "OUTGOING_FAILED_RECIPIENT_LOST_ENCRYPTION", 22: "OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT_NO_MORE_RETRY", 100: "INCOMING_COMPLETE", 101: "INCOMING_YET_TO_MANUAL_DOWNLOAD", 102: "INCOMING_RETRYING_MANUAL_DOWNLOAD", 103: "INCOMING_MANUAL_DOWNLOADING", 104: "INCOMING_RETRYING_AUTO_DOWNLOAD", 105: "INCOMING_AUTO_DOWNLOADING", 106: "INCOMING_DOWNLOAD_FAILED", 107: "INCOMING_EXPIRED_OR_NOT_AVAILABLE", 108: "INCOMING_DELIVERED", 109: "INCOMING_DISPLAYED", 110: "INCOMING_DOWNLOAD_CANCELED", 111: "INCOMING_DOWNLOAD_FAILED_TOO_LARGE", 112: "INCOMING_DOWNLOAD_FAILED_SIM_HAS_NO_DATA", 113: "INCOMING_FAILED_TO_DECRYPT", 114: "INCOMING_DECRYPTION_ABORTED", 200: "TOMBSTONE_PARTICIPANT_JOINED", 201: "TOMBSTONE_PARTICIPANT_LEFT", 202: "TOMBSTONE_SELF_LEFT", 203: "TOMBSTONE_RCS_GROUP_CREATED", 204: "TOMBSTONE_MMS_GROUP_CREATED", 205: "TOMBSTONE_SMS_BROADCAST_CREATED", 206: "TOMBSTONE_ONE_ON_ONE_SMS_CREATED", 207: "TOMBSTONE_ONE_ON_ONE_RCS_CREATED", 208: "TOMBSTONE_SWITCH_TO_GROUP_MMS", 209: "TOMBSTONE_SWITCH_TO_BROADCAST_SMS", 210: "TOMBSTONE_SHOW_LINK_PREVIEWS", 211: "TOMBSTONE_GROUP_RENAMED_LOCAL", 212: "TOMBSTONE_VERIFIED_SMS_APPLICABLE", 213: "TOMBSTONE_ENCRYPTED_ONE_ON_ONE_RCS_CREATED", 214: "TOMBSTONE_PROTOCOL_SWITCH_TO_TEXT", 215: "TOMBSTONE_PROTOCOL_SWITCH_TO_RCS", 216: "TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS", 217: "TOMBSTONE_GROUP_RENAMED_GLOBAL", 218: "TOMBSTONE_GROUP_NAME_CLEARED_GLOBAL", 219: "TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS_INFO", 220: "TOMBSTONE_SELF_REMOVED_FROM_GROUP", 221: "MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_GROUP", 222: "MESSAGE_STATUS_TOMBSTONE_SMS_NORM_PARTICIPANT_UPGRADED", 223: "MESSAGE_STATUS_TOMBSTONE_RCS_NORM_PARTICIPANT_UPGRADED", 224: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_RCS_NORM_PARTICIPANT_UPGRADED", 225: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED", 226: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED_INFO", 227: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_LEFT", 228: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_SELF_LEFT", 229: "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_CREATED", 230: "MESSAGE_STATUS_TOMBSTONE_SELF_REMOVED_FROM_ENCRYPTED_GROUP", 231: "MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_ENCRYPTED_GROUP", 232: "MESSAGE_STATUS_TOMBSTONE_SUGGESTION_SHORTCUT_STAR_TOOLSTONE", 233: "MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_RCS_TO_E2EE", 234: "MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_E2EE_TO_RCS", 235: "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_TEXT_TO_E2EE", 236: "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_TEXT", 237: "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_RCS_TO_E2EE", 238: "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_RCS", 239: "MESSAGE_STATUS_TOMBSTONE_SATELLITE_EDUCATION", 300: "MESSAGE_DELETED", } MessageStatusType_value = map[string]int32{ "STATUS_UNKNOWN": 0, "OUTGOING_COMPLETE": 1, "OUTGOING_DELIVERED": 2, "OUTGOING_DISPLAYED": 11, "OUTGOING_DRAFT": 3, "OUTGOING_SEND_AFTER_PROCESSING": 10, "OUTGOING_YET_TO_SEND": 4, "OUTGOING_SENDING": 5, "OUTGOING_RESENDING": 6, "OUTGOING_AWAITING_RETRY": 7, "OUTGOING_FAILED_GENERIC": 8, "OUTGOING_FAILED_EMERGENCY_NUMBER": 9, "OUTGOING_CANCELED": 12, "OUTGOING_FAILED_TOO_LARGE": 13, "OUTGOING_NOT_DELIVERED_YET": 14, "OUTGOING_REVOCATION_PENDING": 15, "OUTGOING_SCHEDULED": 16, "OUTGOING_FAILED_RECIPIENT_LOST_RCS": 17, "OUTGOING_FAILED_NO_RETRY_NO_FALLBACK": 18, "OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT": 19, "OUTGOING_VALIDATING": 20, "OUTGOING_FAILED_RECIPIENT_LOST_ENCRYPTION": 21, "OUTGOING_FAILED_RECIPIENT_DID_NOT_DECRYPT_NO_MORE_RETRY": 22, "INCOMING_COMPLETE": 100, "INCOMING_YET_TO_MANUAL_DOWNLOAD": 101, "INCOMING_RETRYING_MANUAL_DOWNLOAD": 102, "INCOMING_MANUAL_DOWNLOADING": 103, "INCOMING_RETRYING_AUTO_DOWNLOAD": 104, "INCOMING_AUTO_DOWNLOADING": 105, "INCOMING_DOWNLOAD_FAILED": 106, "INCOMING_EXPIRED_OR_NOT_AVAILABLE": 107, "INCOMING_DELIVERED": 108, "INCOMING_DISPLAYED": 109, "INCOMING_DOWNLOAD_CANCELED": 110, "INCOMING_DOWNLOAD_FAILED_TOO_LARGE": 111, "INCOMING_DOWNLOAD_FAILED_SIM_HAS_NO_DATA": 112, "INCOMING_FAILED_TO_DECRYPT": 113, "INCOMING_DECRYPTION_ABORTED": 114, "TOMBSTONE_PARTICIPANT_JOINED": 200, "TOMBSTONE_PARTICIPANT_LEFT": 201, "TOMBSTONE_SELF_LEFT": 202, "TOMBSTONE_RCS_GROUP_CREATED": 203, "TOMBSTONE_MMS_GROUP_CREATED": 204, "TOMBSTONE_SMS_BROADCAST_CREATED": 205, "TOMBSTONE_ONE_ON_ONE_SMS_CREATED": 206, "TOMBSTONE_ONE_ON_ONE_RCS_CREATED": 207, "TOMBSTONE_SWITCH_TO_GROUP_MMS": 208, "TOMBSTONE_SWITCH_TO_BROADCAST_SMS": 209, "TOMBSTONE_SHOW_LINK_PREVIEWS": 210, "TOMBSTONE_GROUP_RENAMED_LOCAL": 211, "TOMBSTONE_VERIFIED_SMS_APPLICABLE": 212, "TOMBSTONE_ENCRYPTED_ONE_ON_ONE_RCS_CREATED": 213, "TOMBSTONE_PROTOCOL_SWITCH_TO_TEXT": 214, "TOMBSTONE_PROTOCOL_SWITCH_TO_RCS": 215, "TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS": 216, "TOMBSTONE_GROUP_RENAMED_GLOBAL": 217, "TOMBSTONE_GROUP_NAME_CLEARED_GLOBAL": 218, "TOMBSTONE_PROTOCOL_SWITCH_TO_ENCRYPTED_RCS_INFO": 219, "TOMBSTONE_SELF_REMOVED_FROM_GROUP": 220, "MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_GROUP": 221, "MESSAGE_STATUS_TOMBSTONE_SMS_NORM_PARTICIPANT_UPGRADED": 222, "MESSAGE_STATUS_TOMBSTONE_RCS_NORM_PARTICIPANT_UPGRADED": 223, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_RCS_NORM_PARTICIPANT_UPGRADED": 224, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED": 225, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_JOINED_INFO": 226, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_PARTICIPANT_LEFT": 227, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_SELF_LEFT": 228, "MESSAGE_STATUS_TOMBSTONE_ENCRYPTED_GROUP_CREATED": 229, "MESSAGE_STATUS_TOMBSTONE_SELF_REMOVED_FROM_ENCRYPTED_GROUP": 230, "MESSAGE_STATUS_TOMBSTONE_PARTICIPANT_REMOVED_FROM_ENCRYPTED_GROUP": 231, "MESSAGE_STATUS_TOMBSTONE_SUGGESTION_SHORTCUT_STAR_TOOLSTONE": 232, "MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_RCS_TO_E2EE": 233, "MESSAGE_STATUS_TOMBSTONE_GROUP_PROTOCOL_SWITCH_E2EE_TO_RCS": 234, "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_TEXT_TO_E2EE": 235, "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_TEXT": 236, "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_RCS_TO_E2EE": 237, "MESSAGE_STATUS_TOMBSTONE_PROTOCOL_SWITCH_E2EE_TO_RCS": 238, "MESSAGE_STATUS_TOMBSTONE_SATELLITE_EDUCATION": 239, "MESSAGE_DELETED": 300, } ) func (x MessageStatusType) Enum() *MessageStatusType { p := new(MessageStatusType) *p = x return p } func (x MessageStatusType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MessageStatusType) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[1].Descriptor() } func (MessageStatusType) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[1] } func (x MessageStatusType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MessageStatusType.Descriptor instead. func (MessageStatusType) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{1} } type ConversationStatus int32 const ( ConversationStatus_UNKNOWN_STATUS ConversationStatus = 0 ConversationStatus_UNARCHIVE ConversationStatus = 1 ConversationStatus_ARCHIVE ConversationStatus = 2 ConversationStatus_DELETE ConversationStatus = 3 ) // Enum value maps for ConversationStatus. var ( ConversationStatus_name = map[int32]string{ 0: "UNKNOWN_STATUS", 1: "UNARCHIVE", 2: "ARCHIVE", 3: "DELETE", } ConversationStatus_value = map[string]int32{ "UNKNOWN_STATUS": 0, "UNARCHIVE": 1, "ARCHIVE": 2, "DELETE": 3, } ) func (x ConversationStatus) Enum() *ConversationStatus { p := new(ConversationStatus) *p = x return p } func (x ConversationStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConversationStatus) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[2].Descriptor() } func (ConversationStatus) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[2] } func (x ConversationStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConversationStatus.Descriptor instead. func (ConversationStatus) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{2} } type ConversationActionStatus int32 const ( ConversationActionStatus_UNKNOWN_ACTION_STATUS ConversationActionStatus = 0 ConversationActionStatus_UNBLOCK ConversationActionStatus = 2 ConversationActionStatus_BLOCK ConversationActionStatus = 7 ConversationActionStatus_BLOCK_AND_REPORT ConversationActionStatus = 8 ) // Enum value maps for ConversationActionStatus. var ( ConversationActionStatus_name = map[int32]string{ 0: "UNKNOWN_ACTION_STATUS", 2: "UNBLOCK", 7: "BLOCK", 8: "BLOCK_AND_REPORT", } ConversationActionStatus_value = map[string]int32{ "UNKNOWN_ACTION_STATUS": 0, "UNBLOCK": 2, "BLOCK": 7, "BLOCK_AND_REPORT": 8, } ) func (x ConversationActionStatus) Enum() *ConversationActionStatus { p := new(ConversationActionStatus) *p = x return p } func (x ConversationActionStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConversationActionStatus) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[3].Descriptor() } func (ConversationActionStatus) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[3] } func (x ConversationActionStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConversationActionStatus.Descriptor instead. func (ConversationActionStatus) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{3} } type ConversationMuteStatus int32 const ( ConversationMuteStatus_UNMUTE ConversationMuteStatus = 0 ConversationMuteStatus_MUTE ConversationMuteStatus = 1 ) // Enum value maps for ConversationMuteStatus. var ( ConversationMuteStatus_name = map[int32]string{ 0: "UNMUTE", 1: "MUTE", } ConversationMuteStatus_value = map[string]int32{ "UNMUTE": 0, "MUTE": 1, } ) func (x ConversationMuteStatus) Enum() *ConversationMuteStatus { p := new(ConversationMuteStatus) *p = x return p } func (x ConversationMuteStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConversationMuteStatus) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[4].Descriptor() } func (ConversationMuteStatus) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[4] } func (x ConversationMuteStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConversationMuteStatus.Descriptor instead. func (ConversationMuteStatus) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{4} } type ConvUpdateTypes int32 const ( ConvUpdateTypes_UNKNOWN_CONVTYPE ConvUpdateTypes = 0 ConvUpdateTypes_UNARCHIVED ConvUpdateTypes = 1 ConvUpdateTypes_ARCHIVED ConvUpdateTypes = 2 ConvUpdateTypes_DELETED ConvUpdateTypes = 3 ConvUpdateTypes_BLOCKED_AND_REPORTED ConvUpdateTypes = 5 ConvUpdateTypes_BLOCKED ConvUpdateTypes = 6 ) // Enum value maps for ConvUpdateTypes. var ( ConvUpdateTypes_name = map[int32]string{ 0: "UNKNOWN_CONVTYPE", 1: "UNARCHIVED", 2: "ARCHIVED", 3: "DELETED", 5: "BLOCKED_AND_REPORTED", 6: "BLOCKED", } ConvUpdateTypes_value = map[string]int32{ "UNKNOWN_CONVTYPE": 0, "UNARCHIVED": 1, "ARCHIVED": 2, "DELETED": 3, "BLOCKED_AND_REPORTED": 5, "BLOCKED": 6, } ) func (x ConvUpdateTypes) Enum() *ConvUpdateTypes { p := new(ConvUpdateTypes) *p = x return p } func (x ConvUpdateTypes) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ConvUpdateTypes) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[5].Descriptor() } func (ConvUpdateTypes) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[5] } func (x ConvUpdateTypes) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ConvUpdateTypes.Descriptor instead. func (ConvUpdateTypes) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{5} } type MediaFormats int32 const ( MediaFormats_UNSPECIFIED_TYPE MediaFormats = 0 MediaFormats_IMAGE_JPEG MediaFormats = 1 MediaFormats_IMAGE_JPG MediaFormats = 2 MediaFormats_IMAGE_PNG MediaFormats = 3 MediaFormats_IMAGE_GIF MediaFormats = 4 MediaFormats_IMAGE_WBMP MediaFormats = 5 MediaFormats_IMAGE_X_MS_BMP MediaFormats = 6 MediaFormats_IMAGE_UNSPECIFIED MediaFormats = 7 MediaFormats_VIDEO_MP4 MediaFormats = 8 MediaFormats_VIDEO_3G2 MediaFormats = 9 MediaFormats_VIDEO_3GPP MediaFormats = 10 MediaFormats_VIDEO_WEBM MediaFormats = 11 MediaFormats_VIDEO_MKV MediaFormats = 12 MediaFormats_VIDEO_UNSPECIFIED MediaFormats = 13 MediaFormats_AUDIO_AAC MediaFormats = 14 MediaFormats_AUDIO_AMR MediaFormats = 15 MediaFormats_AUDIO_MP3 MediaFormats = 16 MediaFormats_AUDIO_MPEG MediaFormats = 17 MediaFormats_AUDIO_MPG MediaFormats = 18 MediaFormats_AUDIO_MP4 MediaFormats = 19 MediaFormats_AUDIO_MP4_LATM MediaFormats = 20 MediaFormats_AUDIO_3GPP MediaFormats = 21 MediaFormats_AUDIO_OGG MediaFormats = 22 MediaFormats_AUDIO_UNSPECIFIED MediaFormats = 23 MediaFormats_TEXT_VCARD MediaFormats = 24 MediaFormats_APP_PDF MediaFormats = 28 MediaFormats_APP_TXT MediaFormats = 29 MediaFormats_APP_HTML MediaFormats = 30 MediaFormats_AUDIO_OGG2 MediaFormats = 31 MediaFormats_APP_SMIL MediaFormats = 32 ) // Enum value maps for MediaFormats. var ( MediaFormats_name = map[int32]string{ 0: "UNSPECIFIED_TYPE", 1: "IMAGE_JPEG", 2: "IMAGE_JPG", 3: "IMAGE_PNG", 4: "IMAGE_GIF", 5: "IMAGE_WBMP", 6: "IMAGE_X_MS_BMP", 7: "IMAGE_UNSPECIFIED", 8: "VIDEO_MP4", 9: "VIDEO_3G2", 10: "VIDEO_3GPP", 11: "VIDEO_WEBM", 12: "VIDEO_MKV", 13: "VIDEO_UNSPECIFIED", 14: "AUDIO_AAC", 15: "AUDIO_AMR", 16: "AUDIO_MP3", 17: "AUDIO_MPEG", 18: "AUDIO_MPG", 19: "AUDIO_MP4", 20: "AUDIO_MP4_LATM", 21: "AUDIO_3GPP", 22: "AUDIO_OGG", 23: "AUDIO_UNSPECIFIED", 24: "TEXT_VCARD", 28: "APP_PDF", 29: "APP_TXT", 30: "APP_HTML", 31: "AUDIO_OGG2", 32: "APP_SMIL", } MediaFormats_value = map[string]int32{ "UNSPECIFIED_TYPE": 0, "IMAGE_JPEG": 1, "IMAGE_JPG": 2, "IMAGE_PNG": 3, "IMAGE_GIF": 4, "IMAGE_WBMP": 5, "IMAGE_X_MS_BMP": 6, "IMAGE_UNSPECIFIED": 7, "VIDEO_MP4": 8, "VIDEO_3G2": 9, "VIDEO_3GPP": 10, "VIDEO_WEBM": 11, "VIDEO_MKV": 12, "VIDEO_UNSPECIFIED": 13, "AUDIO_AAC": 14, "AUDIO_AMR": 15, "AUDIO_MP3": 16, "AUDIO_MPEG": 17, "AUDIO_MPG": 18, "AUDIO_MP4": 19, "AUDIO_MP4_LATM": 20, "AUDIO_3GPP": 21, "AUDIO_OGG": 22, "AUDIO_UNSPECIFIED": 23, "TEXT_VCARD": 24, "APP_PDF": 28, "APP_TXT": 29, "APP_HTML": 30, "AUDIO_OGG2": 31, "APP_SMIL": 32, } ) func (x MediaFormats) Enum() *MediaFormats { p := new(MediaFormats) *p = x return p } func (x MediaFormats) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MediaFormats) Descriptor() protoreflect.EnumDescriptor { return file_conversations_proto_enumTypes[6].Descriptor() } func (MediaFormats) Type() protoreflect.EnumType { return &file_conversations_proto_enumTypes[6] } func (x MediaFormats) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MediaFormats.Descriptor instead. func (MediaFormats) EnumDescriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{6} } type GetParticipantThumbnailPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` } func (x *GetParticipantThumbnailPayload) Reset() { *x = GetParticipantThumbnailPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetParticipantThumbnailPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetParticipantThumbnailPayload) ProtoMessage() {} func (x *GetParticipantThumbnailPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 GetParticipantThumbnailPayload.ProtoReflect.Descriptor instead. func (*GetParticipantThumbnailPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{0} } func (x *GetParticipantThumbnailPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } type ResendMessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,2,opt,name=messageID,proto3" json:"messageID,omitempty"` } func (x *ResendMessagePayload) Reset() { *x = ResendMessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResendMessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResendMessagePayload) ProtoMessage() {} func (x *ResendMessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ResendMessagePayload.ProtoReflect.Descriptor instead. func (*ResendMessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{1} } func (x *ResendMessagePayload) GetMessageID() string { if x != nil { return x.MessageID } return "" } type ConversationTypePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` } func (x *ConversationTypePayload) Reset() { *x = ConversationTypePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConversationTypePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConversationTypePayload) ProtoMessage() {} func (x *ConversationTypePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ConversationTypePayload.ProtoReflect.Descriptor instead. func (*ConversationTypePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{2} } func (x *ConversationTypePayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } type UpdateConversationPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data *UpdateConversationData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Action ConversationActionStatus `protobuf:"varint,2,opt,name=action,proto3,enum=conversations.ConversationActionStatus" json:"action,omitempty"` ConversationID string `protobuf:"bytes,3,opt,name=conversationID,proto3" json:"conversationID,omitempty"` Action5 *ConversationAction5 `protobuf:"bytes,5,opt,name=action5,proto3" json:"action5,omitempty"` } func (x *UpdateConversationPayload) Reset() { *x = UpdateConversationPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateConversationPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateConversationPayload) ProtoMessage() {} func (x *UpdateConversationPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 UpdateConversationPayload.ProtoReflect.Descriptor instead. func (*UpdateConversationPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{3} } func (x *UpdateConversationPayload) GetData() *UpdateConversationData { if x != nil { return x.Data } return nil } func (x *UpdateConversationPayload) GetAction() ConversationActionStatus { if x != nil { return x.Action } return ConversationActionStatus_UNKNOWN_ACTION_STATUS } func (x *UpdateConversationPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *UpdateConversationPayload) GetAction5() *ConversationAction5 { if x != nil { return x.Action5 } return nil } type ConversationAction5 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2 bool `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` } func (x *ConversationAction5) Reset() { *x = ConversationAction5{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConversationAction5) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConversationAction5) ProtoMessage() {} func (x *ConversationAction5) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ConversationAction5.ProtoReflect.Descriptor instead. func (*ConversationAction5) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{4} } func (x *ConversationAction5) GetField2() bool { if x != nil { return x.Field2 } return false } type UpdateConversationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` // Types that are assignable to Data: // // *UpdateConversationData_Status // *UpdateConversationData_Mute Data isUpdateConversationData_Data `protobuf_oneof:"data"` } func (x *UpdateConversationData) Reset() { *x = UpdateConversationData{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateConversationData) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateConversationData) ProtoMessage() {} func (x *UpdateConversationData) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 UpdateConversationData.ProtoReflect.Descriptor instead. func (*UpdateConversationData) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{5} } func (x *UpdateConversationData) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (m *UpdateConversationData) GetData() isUpdateConversationData_Data { if m != nil { return m.Data } return nil } func (x *UpdateConversationData) GetStatus() ConversationStatus { if x, ok := x.GetData().(*UpdateConversationData_Status); ok { return x.Status } return ConversationStatus_UNKNOWN_STATUS } func (x *UpdateConversationData) GetMute() ConversationMuteStatus { if x, ok := x.GetData().(*UpdateConversationData_Mute); ok { return x.Mute } return ConversationMuteStatus_UNMUTE } type isUpdateConversationData_Data interface { isUpdateConversationData_Data() } type UpdateConversationData_Status struct { Status ConversationStatus `protobuf:"varint,12,opt,name=status,proto3,enum=conversations.ConversationStatus,oneof"` } type UpdateConversationData_Mute struct { Mute ConversationMuteStatus `protobuf:"varint,7,opt,name=mute,proto3,enum=conversations.ConversationMuteStatus,oneof"` } func (*UpdateConversationData_Status) isUpdateConversationData_Data() {} func (*UpdateConversationData_Mute) isUpdateConversationData_Data() {} type DeleteMessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,2,opt,name=messageID,proto3" json:"messageID,omitempty"` } func (x *DeleteMessagePayload) Reset() { *x = DeleteMessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteMessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteMessagePayload) ProtoMessage() {} func (x *DeleteMessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 DeleteMessagePayload.ProtoReflect.Descriptor instead. func (*DeleteMessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{6} } func (x *DeleteMessagePayload) GetMessageID() string { if x != nil { return x.MessageID } return "" } type SendMessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` MessagePayload *MessagePayload `protobuf:"bytes,3,opt,name=messagePayload,proto3" json:"messagePayload,omitempty"` TmpID string `protobuf:"bytes,5,opt,name=tmpID,proto3" json:"tmpID,omitempty"` IsReply bool `protobuf:"varint,6,opt,name=isReply,proto3" json:"isReply,omitempty"` // not sure Reply *ReplyPayload `protobuf:"bytes,8,opt,name=reply,proto3" json:"reply,omitempty"` } func (x *SendMessagePayload) Reset() { *x = SendMessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SendMessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*SendMessagePayload) ProtoMessage() {} func (x *SendMessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 SendMessagePayload.ProtoReflect.Descriptor instead. func (*SendMessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{7} } func (x *SendMessagePayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *SendMessagePayload) GetMessagePayload() *MessagePayload { if x != nil { return x.MessagePayload } return nil } func (x *SendMessagePayload) GetTmpID() string { if x != nil { return x.TmpID } return "" } func (x *SendMessagePayload) GetIsReply() bool { if x != nil { return x.IsReply } return false } func (x *SendMessagePayload) GetReply() *ReplyPayload { if x != nil { return x.Reply } return nil } type ReplyPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,1,opt,name=messageID,proto3" json:"messageID,omitempty"` } func (x *ReplyPayload) Reset() { *x = ReplyPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplyPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplyPayload) ProtoMessage() {} func (x *ReplyPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ReplyPayload.ProtoReflect.Descriptor instead. func (*ReplyPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{8} } func (x *ReplyPayload) GetMessageID() string { if x != nil { return x.MessageID } return "" } type MessagePayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TmpID string `protobuf:"bytes,1,opt,name=tmpID,proto3" json:"tmpID,omitempty"` MessagePayloadContent *MessagePayloadContent `protobuf:"bytes,6,opt,name=messagePayloadContent,proto3" json:"messagePayloadContent,omitempty"` ConversationID string `protobuf:"bytes,7,opt,name=conversationID,proto3" json:"conversationID,omitempty"` SelfParticipantID string `protobuf:"bytes,9,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` // might be participantID MessageInfo []*MessageInfo `protobuf:"bytes,10,rep,name=messageInfo,proto3" json:"messageInfo,omitempty"` TmpID2 string `protobuf:"bytes,12,opt,name=tmpID2,proto3" json:"tmpID2,omitempty"` } func (x *MessagePayload) Reset() { *x = MessagePayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessagePayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessagePayload) ProtoMessage() {} func (x *MessagePayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MessagePayload.ProtoReflect.Descriptor instead. func (*MessagePayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{9} } func (x *MessagePayload) GetTmpID() string { if x != nil { return x.TmpID } return "" } func (x *MessagePayload) GetMessagePayloadContent() *MessagePayloadContent { if x != nil { return x.MessagePayloadContent } return nil } func (x *MessagePayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *MessagePayload) GetSelfParticipantID() string { if x != nil { return x.SelfParticipantID } return "" } func (x *MessagePayload) GetMessageInfo() []*MessageInfo { if x != nil { return x.MessageInfo } return nil } func (x *MessagePayload) GetTmpID2() string { if x != nil { return x.TmpID2 } return "" } type MessagePayloadContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageContent *MessageContent `protobuf:"bytes,1,opt,name=messageContent,proto3" json:"messageContent,omitempty"` } func (x *MessagePayloadContent) Reset() { *x = MessagePayloadContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessagePayloadContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessagePayloadContent) ProtoMessage() {} func (x *MessagePayloadContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MessagePayloadContent.ProtoReflect.Descriptor instead. func (*MessagePayloadContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{10} } func (x *MessagePayloadContent) GetMessageContent() *MessageContent { if x != nil { return x.MessageContent } return nil } type OpenConversationPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` } func (x *OpenConversationPayload) Reset() { *x = OpenConversationPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OpenConversationPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*OpenConversationPayload) ProtoMessage() {} func (x *OpenConversationPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 OpenConversationPayload.ProtoReflect.Descriptor instead. func (*OpenConversationPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{11} } func (x *OpenConversationPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } type PrepareOpenConversationPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Field2 int64 `protobuf:"varint,2,opt,name=field2,proto3" json:"field2,omitempty"` // only seen value 1 } func (x *PrepareOpenConversationPayload) Reset() { *x = PrepareOpenConversationPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PrepareOpenConversationPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*PrepareOpenConversationPayload) ProtoMessage() {} func (x *PrepareOpenConversationPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 PrepareOpenConversationPayload.ProtoReflect.Descriptor instead. func (*PrepareOpenConversationPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{12} } func (x *PrepareOpenConversationPayload) GetField2() int64 { if x != nil { return x.Field2 } return 0 } type FetchConversationMessagesPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` Cursor *Cursor `protobuf:"bytes,5,opt,name=cursor,proto3" json:"cursor,omitempty"` } func (x *FetchConversationMessagesPayload) Reset() { *x = FetchConversationMessagesPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FetchConversationMessagesPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*FetchConversationMessagesPayload) ProtoMessage() {} func (x *FetchConversationMessagesPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 FetchConversationMessagesPayload.ProtoReflect.Descriptor instead. func (*FetchConversationMessagesPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{13} } func (x *FetchConversationMessagesPayload) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *FetchConversationMessagesPayload) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *FetchConversationMessagesPayload) GetCursor() *Cursor { if x != nil { return x.Cursor } return nil } type ListCoversationsPayload struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` // no idea if this is actually amount to list Field4 int64 `protobuf:"varint,4,opt,name=field4,proto3" json:"field4,omitempty"` // no idea what this is , but only value ive seen is 1 } func (x *ListCoversationsPayload) Reset() { *x = ListCoversationsPayload{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListCoversationsPayload) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListCoversationsPayload) ProtoMessage() {} func (x *ListCoversationsPayload) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ListCoversationsPayload.ProtoReflect.Descriptor instead. func (*ListCoversationsPayload) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{14} } func (x *ListCoversationsPayload) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *ListCoversationsPayload) GetField4() int64 { if x != nil { return x.Field4 } return 0 } type Cursor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SomeStr string `protobuf:"bytes,1,opt,name=someStr,proto3" json:"someStr,omitempty"` NextCursor int64 `protobuf:"varint,2,opt,name=nextCursor,proto3" json:"nextCursor,omitempty"` } func (x *Cursor) Reset() { *x = Cursor{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Cursor) String() string { return protoimpl.X.MessageStringOf(x) } func (*Cursor) ProtoMessage() {} func (x *Cursor) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Cursor.ProtoReflect.Descriptor instead. func (*Cursor) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{15} } func (x *Cursor) GetSomeStr() string { if x != nil { return x.SomeStr } return "" } func (x *Cursor) GetNextCursor() int64 { if x != nil { return x.NextCursor } return 0 } type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,1,opt,name=messageID,proto3" json:"messageID,omitempty"` MsgType *MsgType `protobuf:"bytes,3,opt,name=msgType,proto3" json:"msgType,omitempty"` MessageStatus *MessageStatus `protobuf:"bytes,4,opt,name=messageStatus,proto3" json:"messageStatus,omitempty"` Timestamp int64 `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // check this ConversationID string `protobuf:"bytes,7,opt,name=conversationID,proto3" json:"conversationID,omitempty"` ParticipantID string `protobuf:"bytes,9,opt,name=participantID,proto3" json:"participantID,omitempty"` MessageInfo []*MessageInfo `protobuf:"bytes,10,rep,name=messageInfo,proto3" json:"messageInfo,omitempty"` Type int64 `protobuf:"varint,11,opt,name=type,proto3" json:"type,omitempty"` TmpID string `protobuf:"bytes,12,opt,name=tmpID,proto3" json:"tmpID,omitempty"` SomeInt int64 `protobuf:"varint,16,opt,name=someInt,proto3" json:"someInt,omitempty"` Reactions []*ReactionResponse `protobuf:"bytes,19,rep,name=reactions,proto3" json:"reactions,omitempty"` ReplyMessage *ReplyMessage `protobuf:"bytes,21,opt,name=replyMessage,proto3" json:"replyMessage,omitempty"` } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{16} } func (x *Message) GetMessageID() string { if x != nil { return x.MessageID } return "" } func (x *Message) GetMsgType() *MsgType { if x != nil { return x.MsgType } return nil } func (x *Message) GetMessageStatus() *MessageStatus { if x != nil { return x.MessageStatus } return nil } func (x *Message) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *Message) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *Message) GetParticipantID() string { if x != nil { return x.ParticipantID } return "" } func (x *Message) GetMessageInfo() []*MessageInfo { if x != nil { return x.MessageInfo } return nil } func (x *Message) GetType() int64 { if x != nil { return x.Type } return 0 } func (x *Message) GetTmpID() string { if x != nil { return x.TmpID } return "" } func (x *Message) GetSomeInt() int64 { if x != nil { return x.SomeInt } return 0 } func (x *Message) GetReactions() []*ReactionResponse { if x != nil { return x.Reactions } return nil } func (x *Message) GetReplyMessage() *ReplyMessage { if x != nil { return x.ReplyMessage } return nil } type ReplyMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MessageID string `protobuf:"bytes,1,opt,name=messageID,proto3" json:"messageID,omitempty"` ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID,omitempty"` // might be participantID ReplyMessageData *ReplyMessageData `protobuf:"bytes,3,opt,name=replyMessageData,proto3" json:"replyMessageData,omitempty"` } func (x *ReplyMessage) Reset() { *x = ReplyMessage{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplyMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplyMessage) ProtoMessage() {} func (x *ReplyMessage) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ReplyMessage.ProtoReflect.Descriptor instead. func (*ReplyMessage) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{17} } func (x *ReplyMessage) GetMessageID() string { if x != nil { return x.MessageID } return "" } func (x *ReplyMessage) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *ReplyMessage) GetReplyMessageData() *ReplyMessageData { if x != nil { return x.ReplyMessageData } return nil } type ReplyMessageData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReplyMessageData) Reset() { *x = ReplyMessageData{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplyMessageData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplyMessageData) ProtoMessage() {} func (x *ReplyMessageData) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 ReplyMessageData.ProtoReflect.Descriptor instead. func (*ReplyMessageData) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{18} } type MessageInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ActionMessageID string `protobuf:"bytes,1,opt,name=actionMessageID,proto3" json:"actionMessageID,omitempty"` // Types that are assignable to Data: // // *MessageInfo_MessageContent // *MessageInfo_MediaContent Data isMessageInfo_Data `protobuf_oneof:"data"` } func (x *MessageInfo) Reset() { *x = MessageInfo{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageInfo) ProtoMessage() {} func (x *MessageInfo) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MessageInfo.ProtoReflect.Descriptor instead. func (*MessageInfo) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{19} } func (x *MessageInfo) GetActionMessageID() string { if x != nil { return x.ActionMessageID } return "" } func (m *MessageInfo) GetData() isMessageInfo_Data { if m != nil { return m.Data } return nil } func (x *MessageInfo) GetMessageContent() *MessageContent { if x, ok := x.GetData().(*MessageInfo_MessageContent); ok { return x.MessageContent } return nil } func (x *MessageInfo) GetMediaContent() *MediaContent { if x, ok := x.GetData().(*MessageInfo_MediaContent); ok { return x.MediaContent } return nil } type isMessageInfo_Data interface { isMessageInfo_Data() } type MessageInfo_MessageContent struct { MessageContent *MessageContent `protobuf:"bytes,2,opt,name=messageContent,proto3,oneof"` } type MessageInfo_MediaContent struct { MediaContent *MediaContent `protobuf:"bytes,3,opt,name=mediaContent,proto3,oneof"` } func (*MessageInfo_MessageContent) isMessageInfo_Data() {} func (*MessageInfo_MediaContent) isMessageInfo_Data() {} type MediaContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Format MediaFormats `protobuf:"varint,1,opt,name=format,proto3,enum=conversations.MediaFormats" json:"format,omitempty"` MediaID string `protobuf:"bytes,2,opt,name=mediaID,proto3" json:"mediaID,omitempty"` MediaName string `protobuf:"bytes,4,opt,name=mediaName,proto3" json:"mediaName,omitempty"` Size int64 `protobuf:"varint,5,opt,name=size,proto3" json:"size,omitempty"` Pixels *Pixels `protobuf:"bytes,6,opt,name=pixels,proto3" json:"pixels,omitempty"` MediaData []byte `protobuf:"bytes,7,opt,name=mediaData,proto3" json:"mediaData,omitempty"` MediaID2 string `protobuf:"bytes,9,opt,name=mediaID2,proto3" json:"mediaID2,omitempty"` DecryptionKey []byte `protobuf:"bytes,11,opt,name=decryptionKey,proto3" json:"decryptionKey,omitempty"` DecryptionKey2 []byte `protobuf:"bytes,12,opt,name=decryptionKey2,proto3" json:"decryptionKey2,omitempty"` // same value as decryptionkey? } func (x *MediaContent) Reset() { *x = MediaContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MediaContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MediaContent) ProtoMessage() {} func (x *MediaContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MediaContent.ProtoReflect.Descriptor instead. func (*MediaContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{20} } func (x *MediaContent) GetFormat() MediaFormats { if x != nil { return x.Format } return MediaFormats_UNSPECIFIED_TYPE } func (x *MediaContent) GetMediaID() string { if x != nil { return x.MediaID } return "" } func (x *MediaContent) GetMediaName() string { if x != nil { return x.MediaName } return "" } func (x *MediaContent) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *MediaContent) GetPixels() *Pixels { if x != nil { return x.Pixels } return nil } func (x *MediaContent) GetMediaData() []byte { if x != nil { return x.MediaData } return nil } func (x *MediaContent) GetMediaID2() string { if x != nil { return x.MediaID2 } return "" } func (x *MediaContent) GetDecryptionKey() []byte { if x != nil { return x.DecryptionKey } return nil } func (x *MediaContent) GetDecryptionKey2() []byte { if x != nil { return x.DecryptionKey2 } return nil } type Pixels struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Width int64 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"` Height int64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } func (x *Pixels) Reset() { *x = Pixels{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Pixels) String() string { return protoimpl.X.MessageStringOf(x) } func (*Pixels) ProtoMessage() {} func (x *Pixels) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Pixels.ProtoReflect.Descriptor instead. func (*Pixels) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{21} } func (x *Pixels) GetWidth() int64 { if x != nil { return x.Width } return 0 } func (x *Pixels) GetHeight() int64 { if x != nil { return x.Height } return 0 } type MessageContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` } func (x *MessageContent) Reset() { *x = MessageContent{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageContent) ProtoMessage() {} func (x *MessageContent) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MessageContent.ProtoReflect.Descriptor instead. func (*MessageContent) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{22} } func (x *MessageContent) GetContent() string { if x != nil { return x.Content } return "" } type MsgType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` } func (x *MsgType) Reset() { *x = MsgType{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MsgType) String() string { return protoimpl.X.MessageStringOf(x) } func (*MsgType) ProtoMessage() {} func (x *MsgType) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MsgType.ProtoReflect.Descriptor instead. func (*MsgType) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{23} } func (x *MsgType) GetType() int64 { if x != nil { return x.Type } return 0 } type MessageStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status MessageStatusType `protobuf:"varint,2,opt,name=status,proto3,enum=conversations.MessageStatusType" json:"status,omitempty"` SubCode int64 `protobuf:"varint,3,opt,name=subCode,proto3" json:"subCode,omitempty"` ErrMsg string `protobuf:"bytes,4,opt,name=errMsg,proto3" json:"errMsg,omitempty"` StatusText string `protobuf:"bytes,5,opt,name=statusText,proto3" json:"statusText,omitempty"` ThirdCode int64 `protobuf:"varint,6,opt,name=thirdCode,proto3" json:"thirdCode,omitempty"` } func (x *MessageStatus) Reset() { *x = MessageStatus{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageStatus) ProtoMessage() {} func (x *MessageStatus) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 MessageStatus.ProtoReflect.Descriptor instead. func (*MessageStatus) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{24} } func (x *MessageStatus) GetStatus() MessageStatusType { if x != nil { return x.Status } return MessageStatusType_STATUS_UNKNOWN } func (x *MessageStatus) GetSubCode() int64 { if x != nil { return x.SubCode } return 0 } func (x *MessageStatus) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *MessageStatus) GetStatusText() string { if x != nil { return x.StatusText } return "" } func (x *MessageStatus) GetThirdCode() int64 { if x != nil { return x.ThirdCode } return 0 } type Conversations struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Conversations []*Conversation `protobuf:"bytes,2,rep,name=conversations,proto3" json:"conversations,omitempty"` } func (x *Conversations) Reset() { *x = Conversations{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Conversations) String() string { return protoimpl.X.MessageStringOf(x) } func (*Conversations) ProtoMessage() {} func (x *Conversations) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Conversations.ProtoReflect.Descriptor instead. func (*Conversations) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{25} } func (x *Conversations) GetConversations() []*Conversation { if x != nil { return x.Conversations } return nil } type Conversation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` LatestMessage *LatestMessage `protobuf:"bytes,4,opt,name=latestMessage,proto3" json:"latestMessage,omitempty"` LastMessageTimestamp int64 `protobuf:"varint,5,opt,name=lastMessageTimestamp,proto3" json:"lastMessageTimestamp,omitempty"` IsGroupChat bool `protobuf:"varint,10,opt,name=isGroupChat,proto3" json:"isGroupChat,omitempty"` // not certain SelfParticipantID string `protobuf:"bytes,11,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` // bool bool1 = 13; Status ConvUpdateTypes `protobuf:"varint,12,opt,name=status,proto3,enum=conversations.ConvUpdateTypes" json:"status,omitempty"` AvatarHexColor string `protobuf:"bytes,15,opt,name=avatarHexColor,proto3" json:"avatarHexColor,omitempty"` LatestMessageID string `protobuf:"bytes,17,opt,name=latestMessageID,proto3" json:"latestMessageID,omitempty"` Participants []*Participant `protobuf:"bytes,20,rep,name=participants,proto3" json:"participants,omitempty"` OtherParticipants []string `protobuf:"bytes,21,rep,name=otherParticipants,proto3" json:"otherParticipants,omitempty"` // participant ids excluding me Type ConversationType `protobuf:"varint,22,opt,name=type,proto3,enum=conversations.ConversationType" json:"type,omitempty"` SubType bool `protobuf:"varint,24,opt,name=subType,proto3" json:"subType,omitempty"` ThirdType bool `protobuf:"varint,29,opt,name=thirdType,proto3" json:"thirdType,omitempty"` } func (x *Conversation) Reset() { *x = Conversation{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Conversation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Conversation) ProtoMessage() {} func (x *Conversation) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Conversation.ProtoReflect.Descriptor instead. func (*Conversation) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{26} } func (x *Conversation) GetConversationID() string { if x != nil { return x.ConversationID } return "" } func (x *Conversation) GetName() string { if x != nil { return x.Name } return "" } func (x *Conversation) GetLatestMessage() *LatestMessage { if x != nil { return x.LatestMessage } return nil } func (x *Conversation) GetLastMessageTimestamp() int64 { if x != nil { return x.LastMessageTimestamp } return 0 } func (x *Conversation) GetIsGroupChat() bool { if x != nil { return x.IsGroupChat } return false } func (x *Conversation) GetSelfParticipantID() string { if x != nil { return x.SelfParticipantID } return "" } func (x *Conversation) GetStatus() ConvUpdateTypes { if x != nil { return x.Status } return ConvUpdateTypes_UNKNOWN_CONVTYPE } func (x *Conversation) GetAvatarHexColor() string { if x != nil { return x.AvatarHexColor } return "" } func (x *Conversation) GetLatestMessageID() string { if x != nil { return x.LatestMessageID } return "" } func (x *Conversation) GetParticipants() []*Participant { if x != nil { return x.Participants } return nil } func (x *Conversation) GetOtherParticipants() []string { if x != nil { return x.OtherParticipants } return nil } func (x *Conversation) GetType() ConversationType { if x != nil { return x.Type } return ConversationType_UNKNOWN_CONVERSATION_TYPE } func (x *Conversation) GetSubType() bool { if x != nil { return x.SubType } return false } func (x *Conversation) GetThirdType() bool { if x != nil { return x.ThirdType } return false } type Participant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ID *SmallInfo `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` FirstName string `protobuf:"bytes,2,opt,name=firstName,proto3" json:"firstName,omitempty"` FullName string `protobuf:"bytes,3,opt,name=fullName,proto3" json:"fullName,omitempty"` AvatarHexColor string `protobuf:"bytes,5,opt,name=avatarHexColor,proto3" json:"avatarHexColor,omitempty"` IsMe bool `protobuf:"varint,6,opt,name=isMe,proto3" json:"isMe,omitempty"` Muted *Muted `protobuf:"bytes,7,opt,name=muted,proto3" json:"muted,omitempty"` SomeInt int64 `protobuf:"varint,8,opt,name=someInt,proto3" json:"someInt,omitempty"` AvatarID string `protobuf:"bytes,10,opt,name=avatarID,proto3" json:"avatarID,omitempty"` Bs int64 `protobuf:"varint,14,opt,name=bs,proto3" json:"bs,omitempty"` FormattedNumber string `protobuf:"bytes,15,opt,name=formattedNumber,proto3" json:"formattedNumber,omitempty"` SomeInt1 int64 `protobuf:"varint,19,opt,name=someInt1,proto3" json:"someInt1,omitempty"` SomeInt2 int64 `protobuf:"varint,20,opt,name=someInt2,proto3" json:"someInt2,omitempty"` } func (x *Participant) Reset() { *x = Participant{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Participant) String() string { return protoimpl.X.MessageStringOf(x) } func (*Participant) ProtoMessage() {} func (x *Participant) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Participant.ProtoReflect.Descriptor instead. func (*Participant) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{27} } func (x *Participant) GetID() *SmallInfo { if x != nil { return x.ID } return nil } func (x *Participant) GetFirstName() string { if x != nil { return x.FirstName } return "" } func (x *Participant) GetFullName() string { if x != nil { return x.FullName } return "" } func (x *Participant) GetAvatarHexColor() string { if x != nil { return x.AvatarHexColor } return "" } func (x *Participant) GetIsMe() bool { if x != nil { return x.IsMe } return false } func (x *Participant) GetMuted() *Muted { if x != nil { return x.Muted } return nil } func (x *Participant) GetSomeInt() int64 { if x != nil { return x.SomeInt } return 0 } func (x *Participant) GetAvatarID() string { if x != nil { return x.AvatarID } return "" } func (x *Participant) GetBs() int64 { if x != nil { return x.Bs } return 0 } func (x *Participant) GetFormattedNumber() string { if x != nil { return x.FormattedNumber } return "" } func (x *Participant) GetSomeInt1() int64 { if x != nil { return x.SomeInt1 } return 0 } func (x *Participant) GetSomeInt2() int64 { if x != nil { return x.SomeInt2 } return 0 } type SmallInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` Number string `protobuf:"bytes,2,opt,name=number,proto3" json:"number,omitempty"` ParticipantID string `protobuf:"bytes,3,opt,name=participantID,proto3" json:"participantID,omitempty"` } func (x *SmallInfo) Reset() { *x = SmallInfo{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SmallInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*SmallInfo) ProtoMessage() {} func (x *SmallInfo) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 SmallInfo.ProtoReflect.Descriptor instead. func (*SmallInfo) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{28} } func (x *SmallInfo) GetType() int64 { if x != nil { return x.Type } return 0 } func (x *SmallInfo) GetNumber() string { if x != nil { return x.Number } return "" } func (x *SmallInfo) GetParticipantID() string { if x != nil { return x.ParticipantID } return "" } type LatestMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DisplayContent string `protobuf:"bytes,1,opt,name=displayContent,proto3" json:"displayContent,omitempty"` FromMe int64 `protobuf:"varint,2,opt,name=fromMe,proto3" json:"fromMe,omitempty"` // isMe? DisplayName string `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName,omitempty"` LatestMessageStatus *LatestMessageStatus `protobuf:"bytes,5,opt,name=latestMessageStatus,proto3" json:"latestMessageStatus,omitempty"` } func (x *LatestMessage) Reset() { *x = LatestMessage{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LatestMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*LatestMessage) ProtoMessage() {} func (x *LatestMessage) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 LatestMessage.ProtoReflect.Descriptor instead. func (*LatestMessage) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{29} } func (x *LatestMessage) GetDisplayContent() string { if x != nil { return x.DisplayContent } return "" } func (x *LatestMessage) GetFromMe() int64 { if x != nil { return x.FromMe } return 0 } func (x *LatestMessage) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *LatestMessage) GetLatestMessageStatus() *LatestMessageStatus { if x != nil { return x.LatestMessageStatus } return nil } type LatestMessageStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status2 int64 `protobuf:"varint,1,opt,name=status2,proto3" json:"status2,omitempty"` Status MessageStatusType `protobuf:"varint,2,opt,name=status,proto3,enum=conversations.MessageStatusType" json:"status,omitempty"` } func (x *LatestMessageStatus) Reset() { *x = LatestMessageStatus{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LatestMessageStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*LatestMessageStatus) ProtoMessage() {} func (x *LatestMessageStatus) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 LatestMessageStatus.ProtoReflect.Descriptor instead. func (*LatestMessageStatus) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{30} } func (x *LatestMessageStatus) GetStatus2() int64 { if x != nil { return x.Status2 } return 0 } func (x *LatestMessageStatus) GetStatus() MessageStatusType { if x != nil { return x.Status } return MessageStatusType_STATUS_UNKNOWN } type Muted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsMuted int64 `protobuf:"varint,1,opt,name=isMuted,proto3" json:"isMuted,omitempty"` } func (x *Muted) Reset() { *x = Muted{} if protoimpl.UnsafeEnabled { mi := &file_conversations_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Muted) String() string { return protoimpl.X.MessageStringOf(x) } func (*Muted) ProtoMessage() {} func (x *Muted) ProtoReflect() protoreflect.Message { mi := &file_conversations_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 Muted.ProtoReflect.Descriptor instead. func (*Muted) Descriptor() ([]byte, []int) { return file_conversations_proto_rawDescGZIP(), []int{31} } func (x *Muted) GetIsMuted() int64 { if x != nil { return x.IsMuted } return 0 } var File_conversations_proto protoreflect.FileDescriptor var file_conversations_proto_rawDesc = []byte{ 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x0f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x48, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x34, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfd, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x22, 0x2d, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0xc2, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2c, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x5a, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x22, 0x5e, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x1e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0x8f, 0x01, 0x0a, 0x20, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x22, 0x42, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x87, 0x04, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc6, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x22, 0x36, 0x0a, 0x06, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf7, 0x04, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x81, 0x03, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x62, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x32, 0x22, 0x5d, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xc7, 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x69, 0x0a, 0x13, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x2a, 0x43, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x43, 0x53, 0x10, 0x02, 0x2a, 0xc2, 0x19, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x59, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x59, 0x45, 0x54, 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x52, 0x43, 0x53, 0x10, 0x11, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x4e, 0x4f, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x12, 0x12, 0x2d, 0x0a, 0x29, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x13, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x14, 0x12, 0x2d, 0x0a, 0x29, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x15, 0x12, 0x3b, 0x0a, 0x37, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x64, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x59, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x66, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x68, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x69, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x6a, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x6b, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x6c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x6d, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x6f, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x53, 0x49, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x70, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x71, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x72, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0xc8, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xc9, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xca, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcb, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x4d, 0x4d, 0x53, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcd, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xce, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x4d, 0x53, 0x10, 0xd0, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, 0x4d, 0x53, 0x10, 0xd1, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x53, 0x10, 0xd2, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0xd3, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xd4, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xd5, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xd6, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x43, 0x53, 0x10, 0xd7, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x43, 0x53, 0x10, 0xd8, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0xd9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0xda, 0x01, 0x12, 0x34, 0x0a, 0x2f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xdb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xdc, 0x01, 0x12, 0x3c, 0x0a, 0x37, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xdd, 0x01, 0x12, 0x3b, 0x0a, 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xde, 0x01, 0x12, 0x3b, 0x0a, 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xdf, 0x01, 0x12, 0x45, 0x0a, 0x40, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xe0, 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0xe1, 0x01, 0x12, 0x45, 0x0a, 0x40, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x01, 0x12, 0x3e, 0x0a, 0x39, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xe3, 0x01, 0x12, 0x37, 0x0a, 0x32, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xe4, 0x01, 0x12, 0x35, 0x0a, 0x30, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xe5, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xe6, 0x01, 0x12, 0x46, 0x0a, 0x41, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xe7, 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x55, 0x47, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x43, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x5f, 0x54, 0x4f, 0x4f, 0x4c, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x10, 0xe8, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xe9, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x43, 0x53, 0x10, 0xea, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xeb, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xec, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xed, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x43, 0x53, 0x10, 0xee, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x41, 0x54, 0x45, 0x4c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x44, 0x55, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xef, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0xac, 0x02, 0x2a, 0x50, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x63, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x08, 0x2a, 0x2e, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x4d, 0x55, 0x54, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x55, 0x54, 0x45, 0x10, 0x01, 0x2a, 0x79, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x06, 0x2a, 0xfb, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x49, 0x46, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x42, 0x4d, 0x50, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x58, 0x5f, 0x4d, 0x53, 0x5f, 0x42, 0x4d, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x32, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x50, 0x50, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x57, 0x45, 0x42, 0x4d, 0x10, 0x0b, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x4b, 0x56, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x41, 0x43, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x4d, 0x52, 0x10, 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x33, 0x10, 0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x45, 0x47, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x47, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x5f, 0x4c, 0x41, 0x54, 0x4d, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x33, 0x47, 0x50, 0x50, 0x10, 0x15, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, 0x47, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x56, 0x43, 0x41, 0x52, 0x44, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x5f, 0x50, 0x44, 0x46, 0x10, 0x1c, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x5f, 0x54, 0x58, 0x54, 0x10, 0x1d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, 0x47, 0x32, 0x10, 0x1f, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x53, 0x4d, 0x49, 0x4c, 0x10, 0x20, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_conversations_proto_rawDescOnce sync.Once file_conversations_proto_rawDescData = file_conversations_proto_rawDesc ) func file_conversations_proto_rawDescGZIP() []byte { file_conversations_proto_rawDescOnce.Do(func() { file_conversations_proto_rawDescData = protoimpl.X.CompressGZIP(file_conversations_proto_rawDescData) }) return file_conversations_proto_rawDescData } var file_conversations_proto_enumTypes = make([]protoimpl.EnumInfo, 7) var file_conversations_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_conversations_proto_goTypes = []interface{}{ (ConversationType)(0), // 0: conversations.ConversationType (MessageStatusType)(0), // 1: conversations.MessageStatusType (ConversationStatus)(0), // 2: conversations.ConversationStatus (ConversationActionStatus)(0), // 3: conversations.ConversationActionStatus (ConversationMuteStatus)(0), // 4: conversations.ConversationMuteStatus (ConvUpdateTypes)(0), // 5: conversations.ConvUpdateTypes (MediaFormats)(0), // 6: conversations.MediaFormats (*GetParticipantThumbnailPayload)(nil), // 7: conversations.GetParticipantThumbnailPayload (*ResendMessagePayload)(nil), // 8: conversations.ResendMessagePayload (*ConversationTypePayload)(nil), // 9: conversations.ConversationTypePayload (*UpdateConversationPayload)(nil), // 10: conversations.UpdateConversationPayload (*ConversationAction5)(nil), // 11: conversations.ConversationAction5 (*UpdateConversationData)(nil), // 12: conversations.UpdateConversationData (*DeleteMessagePayload)(nil), // 13: conversations.DeleteMessagePayload (*SendMessagePayload)(nil), // 14: conversations.SendMessagePayload (*ReplyPayload)(nil), // 15: conversations.ReplyPayload (*MessagePayload)(nil), // 16: conversations.MessagePayload (*MessagePayloadContent)(nil), // 17: conversations.MessagePayloadContent (*OpenConversationPayload)(nil), // 18: conversations.OpenConversationPayload (*PrepareOpenConversationPayload)(nil), // 19: conversations.PrepareOpenConversationPayload (*FetchConversationMessagesPayload)(nil), // 20: conversations.FetchConversationMessagesPayload (*ListCoversationsPayload)(nil), // 21: conversations.ListCoversationsPayload (*Cursor)(nil), // 22: conversations.Cursor (*Message)(nil), // 23: conversations.Message (*ReplyMessage)(nil), // 24: conversations.ReplyMessage (*ReplyMessageData)(nil), // 25: conversations.ReplyMessageData (*MessageInfo)(nil), // 26: conversations.MessageInfo (*MediaContent)(nil), // 27: conversations.MediaContent (*Pixels)(nil), // 28: conversations.Pixels (*MessageContent)(nil), // 29: conversations.MessageContent (*MsgType)(nil), // 30: conversations.MsgType (*MessageStatus)(nil), // 31: conversations.MessageStatus (*Conversations)(nil), // 32: conversations.Conversations (*Conversation)(nil), // 33: conversations.Conversation (*Participant)(nil), // 34: conversations.Participant (*SmallInfo)(nil), // 35: conversations.SmallInfo (*LatestMessage)(nil), // 36: conversations.LatestMessage (*LatestMessageStatus)(nil), // 37: conversations.LatestMessageStatus (*Muted)(nil), // 38: conversations.Muted (*ReactionResponse)(nil), // 39: reactions.ReactionResponse } var file_conversations_proto_depIdxs = []int32{ 12, // 0: conversations.UpdateConversationPayload.data:type_name -> conversations.UpdateConversationData 3, // 1: conversations.UpdateConversationPayload.action:type_name -> conversations.ConversationActionStatus 11, // 2: conversations.UpdateConversationPayload.action5:type_name -> conversations.ConversationAction5 2, // 3: conversations.UpdateConversationData.status:type_name -> conversations.ConversationStatus 4, // 4: conversations.UpdateConversationData.mute:type_name -> conversations.ConversationMuteStatus 16, // 5: conversations.SendMessagePayload.messagePayload:type_name -> conversations.MessagePayload 15, // 6: conversations.SendMessagePayload.reply:type_name -> conversations.ReplyPayload 17, // 7: conversations.MessagePayload.messagePayloadContent:type_name -> conversations.MessagePayloadContent 26, // 8: conversations.MessagePayload.messageInfo:type_name -> conversations.MessageInfo 29, // 9: conversations.MessagePayloadContent.messageContent:type_name -> conversations.MessageContent 22, // 10: conversations.FetchConversationMessagesPayload.cursor:type_name -> conversations.Cursor 30, // 11: conversations.Message.msgType:type_name -> conversations.MsgType 31, // 12: conversations.Message.messageStatus:type_name -> conversations.MessageStatus 26, // 13: conversations.Message.messageInfo:type_name -> conversations.MessageInfo 39, // 14: conversations.Message.reactions:type_name -> reactions.ReactionResponse 24, // 15: conversations.Message.replyMessage:type_name -> conversations.ReplyMessage 25, // 16: conversations.ReplyMessage.replyMessageData:type_name -> conversations.ReplyMessageData 29, // 17: conversations.MessageInfo.messageContent:type_name -> conversations.MessageContent 27, // 18: conversations.MessageInfo.mediaContent:type_name -> conversations.MediaContent 6, // 19: conversations.MediaContent.format:type_name -> conversations.MediaFormats 28, // 20: conversations.MediaContent.pixels:type_name -> conversations.Pixels 1, // 21: conversations.MessageStatus.status:type_name -> conversations.MessageStatusType 33, // 22: conversations.Conversations.conversations:type_name -> conversations.Conversation 36, // 23: conversations.Conversation.latestMessage:type_name -> conversations.LatestMessage 5, // 24: conversations.Conversation.status:type_name -> conversations.ConvUpdateTypes 34, // 25: conversations.Conversation.participants:type_name -> conversations.Participant 0, // 26: conversations.Conversation.type:type_name -> conversations.ConversationType 35, // 27: conversations.Participant.ID:type_name -> conversations.SmallInfo 38, // 28: conversations.Participant.muted:type_name -> conversations.Muted 37, // 29: conversations.LatestMessage.latestMessageStatus:type_name -> conversations.LatestMessageStatus 1, // 30: conversations.LatestMessageStatus.status:type_name -> conversations.MessageStatusType 31, // [31:31] is the sub-list for method output_type 31, // [31:31] is the sub-list for method input_type 31, // [31:31] is the sub-list for extension type_name 31, // [31:31] is the sub-list for extension extendee 0, // [0:31] is the sub-list for field type_name } func init() { file_conversations_proto_init() } func file_conversations_proto_init() { if File_conversations_proto != nil { return } file_reactions_proto_init() if !protoimpl.UnsafeEnabled { file_conversations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetParticipantThumbnailPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResendMessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConversationTypePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConversationPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConversationAction5); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConversationData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteMessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplyPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessagePayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessagePayloadContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OpenConversationPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareOpenConversationPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FetchConversationMessagesPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListCoversationsPayload); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cursor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplyMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplyMessageData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MediaContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pixels); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Conversations); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Conversation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Participant); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SmallInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LatestMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LatestMessageStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_conversations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Muted); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_conversations_proto_msgTypes[5].OneofWrappers = []interface{}{ (*UpdateConversationData_Status)(nil), (*UpdateConversationData_Mute)(nil), } file_conversations_proto_msgTypes[19].OneofWrappers = []interface{}{ (*MessageInfo_MessageContent)(nil), (*MessageInfo_MediaContent)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_conversations_proto_rawDesc, NumEnums: 7, NumMessages: 32, NumExtensions: 0, NumServices: 0, }, GoTypes: file_conversations_proto_goTypes, DependencyIndexes: file_conversations_proto_depIdxs, EnumInfos: file_conversations_proto_enumTypes, MessageInfos: file_conversations_proto_msgTypes, }.Build() File_conversations_proto = out.File file_conversations_proto_rawDesc = nil file_conversations_proto_goTypes = nil file_conversations_proto_depIdxs = nil }