From 67adad3e08fe17d5f7e87468ea47aa76e1662255 Mon Sep 17 00:00:00 2001
From: Wim <wim@42.be>
Date: Mon, 25 Apr 2022 23:50:10 +0200
Subject: Update dependencies (#1813)

---
 vendor/go.mau.fi/whatsmeow/binary/node.go          |    6 +
 vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go  | 4999 +++++++++++---------
 vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw |  Bin 59658 -> 61194 bytes
 vendor/go.mau.fi/whatsmeow/binary/proto/def.proto  |  200 +-
 vendor/go.mau.fi/whatsmeow/client.go               |   12 +
 vendor/go.mau.fi/whatsmeow/internals.go            |   55 +
 vendor/go.mau.fi/whatsmeow/message.go              |   10 +-
 vendor/go.mau.fi/whatsmeow/send.go                 |   10 +-
 vendor/go.mau.fi/whatsmeow/store/clientpayload.go  |    2 +-
 vendor/go.mau.fi/whatsmeow/types/message.go        |    2 +
 10 files changed, 2953 insertions(+), 2343 deletions(-)
 create mode 100644 vendor/go.mau.fi/whatsmeow/internals.go

(limited to 'vendor/go.mau.fi/whatsmeow')

diff --git a/vendor/go.mau.fi/whatsmeow/binary/node.go b/vendor/go.mau.fi/whatsmeow/binary/node.go
index e09550f0..f2273205 100644
--- a/vendor/go.mau.fi/whatsmeow/binary/node.go
+++ b/vendor/go.mau.fi/whatsmeow/binary/node.go
@@ -7,6 +7,10 @@
 // Package binary implements encoding and decoding documents in WhatsApp's binary XML format.
 package binary
 
+import (
+	"fmt"
+)
+
 // Attrs is a type alias for the attributes of an XML element (Node).
 type Attrs = map[string]interface{}
 
@@ -78,6 +82,8 @@ func Unmarshal(data []byte) (*Node, error) {
 	n, err := r.readNode()
 	if err != nil {
 		return nil, err
+	} else if r.index != len(r.data) {
+		return n, fmt.Errorf("%d leftover bytes after decoding", len(r.data)-r.index)
 	}
 	return n, nil
 }
diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go
index d476f7d0..b32ecc60 100644
--- a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go
+++ b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.go
@@ -1,6 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.27.1-devel
+// 	protoc-gen-go v1.28.0
 // 	protoc        v3.12.4
 // source: binary/proto/def.proto
 
@@ -97,6 +97,7 @@ const (
 	CompanionProps_OHANA          CompanionProps_CompanionPropsPlatformType = 10
 	CompanionProps_ALOHA          CompanionProps_CompanionPropsPlatformType = 11
 	CompanionProps_CATALINA       CompanionProps_CompanionPropsPlatformType = 12
+	CompanionProps_TCL_TV         CompanionProps_CompanionPropsPlatformType = 13
 )
 
 // Enum value maps for CompanionProps_CompanionPropsPlatformType.
@@ -115,6 +116,7 @@ var (
 		10: "OHANA",
 		11: "ALOHA",
 		12: "CATALINA",
+		13: "TCL_TV",
 	}
 	CompanionProps_CompanionPropsPlatformType_value = map[string]int32{
 		"UNKNOWN":        0,
@@ -130,6 +132,7 @@ var (
 		"OHANA":          10,
 		"ALOHA":          11,
 		"CATALINA":       12,
+		"TCL_TV":         13,
 	}
 )
 
@@ -244,7 +247,7 @@ func (x *ProtocolMessage_ProtocolMessageType) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use ProtocolMessage_ProtocolMessageType.Descriptor instead.
 func (ProtocolMessage_ProtocolMessageType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{12, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{7, 0}
 }
 
 type PaymentInviteMessage_PaymentInviteMessageServiceType int32
@@ -1492,7 +1495,7 @@ func (x *PaymentBackground_PaymentBackgroundType) UnmarshalJSON(b []byte) error
 
 // Deprecated: Use PaymentBackground_PaymentBackgroundType.Descriptor instead.
 func (PaymentBackground_PaymentBackgroundType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{96, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{91, 0}
 }
 
 type VideoMessage_VideoMessageAttribution int32
@@ -1551,7 +1554,7 @@ func (x *VideoMessage_VideoMessageAttribution) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use VideoMessage_VideoMessageAttribution.Descriptor instead.
 func (VideoMessage_VideoMessageAttribution) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{101, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{96, 0}
 }
 
 type HistorySync_HistorySyncHistorySyncType int32
@@ -1793,7 +1796,7 @@ func (x *MediaRetryNotification_MediaRetryNotificationResultType) UnmarshalJSON(
 
 // Deprecated: Use MediaRetryNotification_MediaRetryNotificationResultType.Descriptor instead.
 func (MediaRetryNotification_MediaRetryNotificationResultType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{119, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{120, 0}
 }
 
 type SyncdMutation_SyncdMutationSyncdOperation int32
@@ -1849,7 +1852,7 @@ func (x *SyncdMutation_SyncdMutationSyncdOperation) UnmarshalJSON(b []byte) erro
 
 // Deprecated: Use SyncdMutation_SyncdMutationSyncdOperation.Descriptor instead.
 func (SyncdMutation_SyncdMutationSyncdOperation) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{127, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{128, 0}
 }
 
 type BizIdentityInfo_BizIdentityInfoVerifiedLevelValue int32
@@ -1908,7 +1911,7 @@ func (x *BizIdentityInfo_BizIdentityInfoVerifiedLevelValue) UnmarshalJSON(b []by
 
 // Deprecated: Use BizIdentityInfo_BizIdentityInfoVerifiedLevelValue.Descriptor instead.
 func (BizIdentityInfo_BizIdentityInfoVerifiedLevelValue) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{164, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{169, 0}
 }
 
 type BizIdentityInfo_BizIdentityInfoHostStorageType int32
@@ -1964,7 +1967,7 @@ func (x *BizIdentityInfo_BizIdentityInfoHostStorageType) UnmarshalJSON(b []byte)
 
 // Deprecated: Use BizIdentityInfo_BizIdentityInfoHostStorageType.Descriptor instead.
 func (BizIdentityInfo_BizIdentityInfoHostStorageType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{164, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{169, 1}
 }
 
 type BizIdentityInfo_BizIdentityInfoActualActorsType int32
@@ -2020,7 +2023,7 @@ func (x *BizIdentityInfo_BizIdentityInfoActualActorsType) UnmarshalJSON(b []byte
 
 // Deprecated: Use BizIdentityInfo_BizIdentityInfoActualActorsType.Descriptor instead.
 func (BizIdentityInfo_BizIdentityInfoActualActorsType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{164, 2}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{169, 2}
 }
 
 type BizAccountLinkInfo_BizAccountLinkInfoHostStorageType int32
@@ -2076,7 +2079,7 @@ func (x *BizAccountLinkInfo_BizAccountLinkInfoHostStorageType) UnmarshalJSON(b [
 
 // Deprecated: Use BizAccountLinkInfo_BizAccountLinkInfoHostStorageType.Descriptor instead.
 func (BizAccountLinkInfo_BizAccountLinkInfoHostStorageType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{166, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{171, 0}
 }
 
 type BizAccountLinkInfo_BizAccountLinkInfoAccountType int32
@@ -2129,7 +2132,7 @@ func (x *BizAccountLinkInfo_BizAccountLinkInfoAccountType) UnmarshalJSON(b []byt
 
 // Deprecated: Use BizAccountLinkInfo_BizAccountLinkInfoAccountType.Descriptor instead.
 func (BizAccountLinkInfo_BizAccountLinkInfoAccountType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{166, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{171, 1}
 }
 
 type ClientPayload_ClientPayloadConnectType int32
@@ -2224,7 +2227,7 @@ func (x *ClientPayload_ClientPayloadConnectType) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use ClientPayload_ClientPayloadConnectType.Descriptor instead.
 func (ClientPayload_ClientPayloadConnectType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{173, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{178, 0}
 }
 
 type ClientPayload_ClientPayloadConnectReason int32
@@ -2292,7 +2295,7 @@ func (x *ClientPayload_ClientPayloadConnectReason) UnmarshalJSON(b []byte) error
 
 // Deprecated: Use ClientPayload_ClientPayloadConnectReason.Descriptor instead.
 func (ClientPayload_ClientPayloadConnectReason) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{173, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{178, 1}
 }
 
 type ClientPayload_ClientPayloadProduct int32
@@ -2348,7 +2351,7 @@ func (x *ClientPayload_ClientPayloadProduct) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use ClientPayload_ClientPayloadProduct.Descriptor instead.
 func (ClientPayload_ClientPayloadProduct) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{173, 2}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{178, 2}
 }
 
 type ClientPayload_ClientPayloadIOSAppExtension int32
@@ -2407,7 +2410,7 @@ func (x *ClientPayload_ClientPayloadIOSAppExtension) UnmarshalJSON(b []byte) err
 
 // Deprecated: Use ClientPayload_ClientPayloadIOSAppExtension.Descriptor instead.
 func (ClientPayload_ClientPayloadIOSAppExtension) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{173, 3}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{178, 3}
 }
 
 type WebInfo_WebInfoWebSubPlatform int32
@@ -2472,7 +2475,7 @@ func (x *WebInfo_WebInfoWebSubPlatform) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use WebInfo_WebInfoWebSubPlatform.Descriptor instead.
 func (WebInfo_WebInfoWebSubPlatform) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{174, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{179, 0}
 }
 
 type UserAgent_UserAgentPlatform int32
@@ -2609,7 +2612,7 @@ func (x *UserAgent_UserAgentPlatform) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use UserAgent_UserAgentPlatform.Descriptor instead.
 func (UserAgent_UserAgentPlatform) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{176, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{181, 0}
 }
 
 type UserAgent_UserAgentReleaseChannel int32
@@ -2671,7 +2674,7 @@ func (x *UserAgent_UserAgentReleaseChannel) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use UserAgent_UserAgentReleaseChannel.Descriptor instead.
 func (UserAgent_UserAgentReleaseChannel) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{176, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{181, 1}
 }
 
 type DNSSource_DNSSourceDNSResolutionMethod int32
@@ -2736,7 +2739,7 @@ func (x *DNSSource_DNSSourceDNSResolutionMethod) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use DNSSource_DNSSourceDNSResolutionMethod.Descriptor instead.
 func (DNSSource_DNSSourceDNSResolutionMethod) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{177, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{182, 0}
 }
 
 type WebMessageInfo_WebMessageInfoStatus int32
@@ -2804,7 +2807,7 @@ func (x *WebMessageInfo_WebMessageInfoStatus) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use WebMessageInfo_WebMessageInfoStatus.Descriptor instead.
 func (WebMessageInfo_WebMessageInfoStatus) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{180, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{185, 0}
 }
 
 type WebMessageInfo_WebMessageInfoStubType int32
@@ -2947,6 +2950,12 @@ const (
 	WebMessageInfo_COMMUNITY_LINK_PARENT_GROUP                              WebMessageInfo_WebMessageInfoStubType = 134
 	WebMessageInfo_COMMUNITY_LINK_SIBLING_GROUP                             WebMessageInfo_WebMessageInfoStubType = 135
 	WebMessageInfo_COMMUNITY_LINK_SUB_GROUP                                 WebMessageInfo_WebMessageInfoStubType = 136
+	WebMessageInfo_COMMUNITY_UNLINK_PARENT_GROUP                            WebMessageInfo_WebMessageInfoStubType = 137
+	WebMessageInfo_COMMUNITY_UNLINK_SIBLING_GROUP                           WebMessageInfo_WebMessageInfoStubType = 138
+	WebMessageInfo_COMMUNITY_UNLINK_SUB_GROUP                               WebMessageInfo_WebMessageInfoStubType = 139
+	WebMessageInfo_GROUP_PARTICIPANT_ACCEPT                                 WebMessageInfo_WebMessageInfoStubType = 140
+	WebMessageInfo_GROUP_PARTICIPANT_LINKED_GROUP_JOIN                      WebMessageInfo_WebMessageInfoStubType = 141
+	WebMessageInfo_COMMUNITY_CREATE                                         WebMessageInfo_WebMessageInfoStubType = 142
 )
 
 // Enum value maps for WebMessageInfo_WebMessageInfoStubType.
@@ -3089,6 +3098,12 @@ var (
 		134: "COMMUNITY_LINK_PARENT_GROUP",
 		135: "COMMUNITY_LINK_SIBLING_GROUP",
 		136: "COMMUNITY_LINK_SUB_GROUP",
+		137: "COMMUNITY_UNLINK_PARENT_GROUP",
+		138: "COMMUNITY_UNLINK_SIBLING_GROUP",
+		139: "COMMUNITY_UNLINK_SUB_GROUP",
+		140: "GROUP_PARTICIPANT_ACCEPT",
+		141: "GROUP_PARTICIPANT_LINKED_GROUP_JOIN",
+		142: "COMMUNITY_CREATE",
 	}
 	WebMessageInfo_WebMessageInfoStubType_value = map[string]int32{
 		"UNKNOWN":                                                  0,
@@ -3228,6 +3243,12 @@ var (
 		"COMMUNITY_LINK_PARENT_GROUP":                              134,
 		"COMMUNITY_LINK_SIBLING_GROUP":                             135,
 		"COMMUNITY_LINK_SUB_GROUP":                                 136,
+		"COMMUNITY_UNLINK_PARENT_GROUP":                            137,
+		"COMMUNITY_UNLINK_SIBLING_GROUP":                           138,
+		"COMMUNITY_UNLINK_SUB_GROUP":                               139,
+		"GROUP_PARTICIPANT_ACCEPT":                                 140,
+		"GROUP_PARTICIPANT_LINKED_GROUP_JOIN":                      141,
+		"COMMUNITY_CREATE":                                         142,
 	}
 )
 
@@ -3265,7 +3286,7 @@ func (x *WebMessageInfo_WebMessageInfoStubType) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use WebMessageInfo_WebMessageInfoStubType.Descriptor instead.
 func (WebMessageInfo_WebMessageInfoStubType) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{180, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{185, 1}
 }
 
 type WebMessageInfo_WebMessageInfoBizPrivacyStatus int32
@@ -3327,7 +3348,7 @@ func (x *WebMessageInfo_WebMessageInfoBizPrivacyStatus) UnmarshalJSON(b []byte)
 
 // Deprecated: Use WebMessageInfo_WebMessageInfoBizPrivacyStatus.Descriptor instead.
 func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{180, 2}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{185, 2}
 }
 
 type WebFeatures_WebFeaturesFlag int32
@@ -3389,7 +3410,7 @@ func (x *WebFeatures_WebFeaturesFlag) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use WebFeatures_WebFeaturesFlag.Descriptor instead.
 func (WebFeatures_WebFeaturesFlag) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{181, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{186, 0}
 }
 
 type PaymentInfo_PaymentInfoCurrency int32
@@ -3445,7 +3466,7 @@ func (x *PaymentInfo_PaymentInfoCurrency) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use PaymentInfo_PaymentInfoCurrency.Descriptor instead.
 func (PaymentInfo_PaymentInfoCurrency) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{188, 0}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{193, 0}
 }
 
 type PaymentInfo_PaymentInfoStatus int32
@@ -3531,7 +3552,7 @@ func (x *PaymentInfo_PaymentInfoStatus) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use PaymentInfo_PaymentInfoStatus.Descriptor instead.
 func (PaymentInfo_PaymentInfoStatus) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{188, 1}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{193, 1}
 }
 
 type PaymentInfo_PaymentInfoTxnStatus int32
@@ -3566,6 +3587,9 @@ const (
 	PaymentInfo_COLLECT_CANCELED              PaymentInfo_PaymentInfoTxnStatus = 26
 	PaymentInfo_COLLECT_CANCELLING            PaymentInfo_PaymentInfoTxnStatus = 27
 	PaymentInfo_IN_REVIEW                     PaymentInfo_PaymentInfoTxnStatus = 28
+	PaymentInfo_REVERSAL_SUCCESS              PaymentInfo_PaymentInfoTxnStatus = 29
+	PaymentInfo_REVERSAL_PENDING              PaymentInfo_PaymentInfoTxnStatus = 30
+	PaymentInfo_REFUND_PENDING                PaymentInfo_PaymentInfoTxnStatus = 31
 )
 
 // Enum value maps for PaymentInfo_PaymentInfoTxnStatus.
@@ -3600,6 +3624,9 @@ var (
 		26: "COLLECT_CANCELED",
 		27: "COLLECT_CANCELLING",
 		28: "IN_REVIEW",
+		29: "REVERSAL_SUCCESS",
+		30: "REVERSAL_PENDING",
+		31: "REFUND_PENDING",
 	}
 	PaymentInfo_PaymentInfoTxnStatus_value = map[string]int32{
 		"UNKNOWN":                       0,
@@ -3631,6 +3658,9 @@ var (
 		"COLLECT_CANCELED":              26,
 		"COLLECT_CANCELLING":            27,
 		"IN_REVIEW":                     28,
+		"REVERSAL_SUCCESS":              29,
+		"REVERSAL_PENDING":              30,
+		"REFUND_PENDING":                31,
 	}
 )
 
@@ -3668,7 +3698,7 @@ func (x *PaymentInfo_PaymentInfoTxnStatus) UnmarshalJSON(b []byte) error {
 
 // Deprecated: Use PaymentInfo_PaymentInfoTxnStatus.Descriptor instead.
 func (PaymentInfo_PaymentInfoTxnStatus) EnumDescriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{188, 2}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{193, 2}
 }
 
 type ADVSignedKeyIndexList struct {
@@ -4136,30 +4166,25 @@ func (x *AppVersion) GetQuinary() uint32 {
 	return 0
 }
 
-type StickerMessage struct {
+type ProtocolMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Url               *string      `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
-	FileSha256        []byte       `protobuf:"bytes,2,opt,name=fileSha256" json:"fileSha256,omitempty"`
-	FileEncSha256     []byte       `protobuf:"bytes,3,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
-	MediaKey          []byte       `protobuf:"bytes,4,opt,name=mediaKey" json:"mediaKey,omitempty"`
-	Mimetype          *string      `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"`
-	Height            *uint32      `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
-	Width             *uint32      `protobuf:"varint,7,opt,name=width" json:"width,omitempty"`
-	DirectPath        *string      `protobuf:"bytes,8,opt,name=directPath" json:"directPath,omitempty"`
-	FileLength        *uint64      `protobuf:"varint,9,opt,name=fileLength" json:"fileLength,omitempty"`
-	MediaKeyTimestamp *int64       `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
-	FirstFrameLength  *uint32      `protobuf:"varint,11,opt,name=firstFrameLength" json:"firstFrameLength,omitempty"`
-	FirstFrameSidecar []byte       `protobuf:"bytes,12,opt,name=firstFrameSidecar" json:"firstFrameSidecar,omitempty"`
-	IsAnimated        *bool        `protobuf:"varint,13,opt,name=isAnimated" json:"isAnimated,omitempty"`
-	PngThumbnail      []byte       `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"`
-	ContextInfo       *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	Key                                    *MessageKey                             `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Type                                   *ProtocolMessage_ProtocolMessageType    `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_ProtocolMessageType" json:"type,omitempty"`
+	EphemeralExpiration                    *uint32                                 `protobuf:"varint,4,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"`
+	EphemeralSettingTimestamp              *int64                                  `protobuf:"varint,5,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
+	HistorySyncNotification                *HistorySyncNotification                `protobuf:"bytes,6,opt,name=historySyncNotification" json:"historySyncNotification,omitempty"`
+	AppStateSyncKeyShare                   *AppStateSyncKeyShare                   `protobuf:"bytes,7,opt,name=appStateSyncKeyShare" json:"appStateSyncKeyShare,omitempty"`
+	AppStateSyncKeyRequest                 *AppStateSyncKeyRequest                 `protobuf:"bytes,8,opt,name=appStateSyncKeyRequest" json:"appStateSyncKeyRequest,omitempty"`
+	InitialSecurityNotificationSettingSync *InitialSecurityNotificationSettingSync `protobuf:"bytes,9,opt,name=initialSecurityNotificationSettingSync" json:"initialSecurityNotificationSettingSync,omitempty"`
+	AppStateFatalExceptionNotification     *AppStateFatalExceptionNotification     `protobuf:"bytes,10,opt,name=appStateFatalExceptionNotification" json:"appStateFatalExceptionNotification,omitempty"`
+	DisappearingMode                       *DisappearingMode                       `protobuf:"bytes,11,opt,name=disappearingMode" json:"disappearingMode,omitempty"`
 }
 
-func (x *StickerMessage) Reset() {
-	*x = StickerMessage{}
+func (x *ProtocolMessage) Reset() {
+	*x = ProtocolMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4167,13 +4192,13 @@ func (x *StickerMessage) Reset() {
 	}
 }
 
-func (x *StickerMessage) String() string {
+func (x *ProtocolMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*StickerMessage) ProtoMessage() {}
+func (*ProtocolMessage) ProtoMessage() {}
 
-func (x *StickerMessage) ProtoReflect() protoreflect.Message {
+func (x *ProtocolMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4185,127 +4210,96 @@ func (x *StickerMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead.
-func (*StickerMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use ProtocolMessage.ProtoReflect.Descriptor instead.
+func (*ProtocolMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{7}
 }
 
-func (x *StickerMessage) GetUrl() string {
-	if x != nil && x.Url != nil {
-		return *x.Url
-	}
-	return ""
-}
-
-func (x *StickerMessage) GetFileSha256() []byte {
-	if x != nil {
-		return x.FileSha256
-	}
-	return nil
-}
-
-func (x *StickerMessage) GetFileEncSha256() []byte {
-	if x != nil {
-		return x.FileEncSha256
-	}
-	return nil
-}
-
-func (x *StickerMessage) GetMediaKey() []byte {
+func (x *ProtocolMessage) GetKey() *MessageKey {
 	if x != nil {
-		return x.MediaKey
+		return x.Key
 	}
 	return nil
 }
 
-func (x *StickerMessage) GetMimetype() string {
-	if x != nil && x.Mimetype != nil {
-		return *x.Mimetype
-	}
-	return ""
-}
-
-func (x *StickerMessage) GetHeight() uint32 {
-	if x != nil && x.Height != nil {
-		return *x.Height
+func (x *ProtocolMessage) GetType() ProtocolMessage_ProtocolMessageType {
+	if x != nil && x.Type != nil {
+		return *x.Type
 	}
-	return 0
+	return ProtocolMessage_REVOKE
 }
 
-func (x *StickerMessage) GetWidth() uint32 {
-	if x != nil && x.Width != nil {
-		return *x.Width
+func (x *ProtocolMessage) GetEphemeralExpiration() uint32 {
+	if x != nil && x.EphemeralExpiration != nil {
+		return *x.EphemeralExpiration
 	}
 	return 0
 }
 
-func (x *StickerMessage) GetDirectPath() string {
-	if x != nil && x.DirectPath != nil {
-		return *x.DirectPath
-	}
-	return ""
-}
-
-func (x *StickerMessage) GetFileLength() uint64 {
-	if x != nil && x.FileLength != nil {
-		return *x.FileLength
+func (x *ProtocolMessage) GetEphemeralSettingTimestamp() int64 {
+	if x != nil && x.EphemeralSettingTimestamp != nil {
+		return *x.EphemeralSettingTimestamp
 	}
 	return 0
 }
 
-func (x *StickerMessage) GetMediaKeyTimestamp() int64 {
-	if x != nil && x.MediaKeyTimestamp != nil {
-		return *x.MediaKeyTimestamp
+func (x *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification {
+	if x != nil {
+		return x.HistorySyncNotification
 	}
-	return 0
+	return nil
 }
 
-func (x *StickerMessage) GetFirstFrameLength() uint32 {
-	if x != nil && x.FirstFrameLength != nil {
-		return *x.FirstFrameLength
+func (x *ProtocolMessage) GetAppStateSyncKeyShare() *AppStateSyncKeyShare {
+	if x != nil {
+		return x.AppStateSyncKeyShare
 	}
-	return 0
+	return nil
 }
 
-func (x *StickerMessage) GetFirstFrameSidecar() []byte {
+func (x *ProtocolMessage) GetAppStateSyncKeyRequest() *AppStateSyncKeyRequest {
 	if x != nil {
-		return x.FirstFrameSidecar
+		return x.AppStateSyncKeyRequest
 	}
 	return nil
 }
 
-func (x *StickerMessage) GetIsAnimated() bool {
-	if x != nil && x.IsAnimated != nil {
-		return *x.IsAnimated
+func (x *ProtocolMessage) GetInitialSecurityNotificationSettingSync() *InitialSecurityNotificationSettingSync {
+	if x != nil {
+		return x.InitialSecurityNotificationSettingSync
 	}
-	return false
+	return nil
 }
 
-func (x *StickerMessage) GetPngThumbnail() []byte {
+func (x *ProtocolMessage) GetAppStateFatalExceptionNotification() *AppStateFatalExceptionNotification {
 	if x != nil {
-		return x.PngThumbnail
+		return x.AppStateFatalExceptionNotification
 	}
 	return nil
 }
 
-func (x *StickerMessage) GetContextInfo() *ContextInfo {
+func (x *ProtocolMessage) GetDisappearingMode() *DisappearingMode {
 	if x != nil {
-		return x.ContextInfo
+		return x.DisappearingMode
 	}
 	return nil
 }
 
-type SenderKeyDistributionMessage struct {
+type ProductMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	GroupId                             *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"`
-	AxolotlSenderKeyDistributionMessage []byte  `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"`
+	Product          *ProductSnapshot `protobuf:"bytes,1,opt,name=product" json:"product,omitempty"`
+	BusinessOwnerJid *string          `protobuf:"bytes,2,opt,name=businessOwnerJid" json:"businessOwnerJid,omitempty"`
+	Catalog          *CatalogSnapshot `protobuf:"bytes,4,opt,name=catalog" json:"catalog,omitempty"`
+	Body             *string          `protobuf:"bytes,5,opt,name=body" json:"body,omitempty"`
+	Footer           *string          `protobuf:"bytes,6,opt,name=footer" json:"footer,omitempty"`
+	ContextInfo      *ContextInfo     `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
 }
 
-func (x *SenderKeyDistributionMessage) Reset() {
-	*x = SenderKeyDistributionMessage{}
+func (x *ProductMessage) Reset() {
+	*x = ProductMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4313,13 +4307,13 @@ func (x *SenderKeyDistributionMessage) Reset() {
 	}
 }
 
-func (x *SenderKeyDistributionMessage) String() string {
+func (x *ProductMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SenderKeyDistributionMessage) ProtoMessage() {}
+func (*ProductMessage) ProtoMessage() {}
 
-func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message {
+func (x *ProductMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4331,37 +4325,73 @@ func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SenderKeyDistributionMessage.ProtoReflect.Descriptor instead.
-func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead.
+func (*ProductMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{8}
 }
 
-func (x *SenderKeyDistributionMessage) GetGroupId() string {
-	if x != nil && x.GroupId != nil {
-		return *x.GroupId
+func (x *ProductMessage) GetProduct() *ProductSnapshot {
+	if x != nil {
+		return x.Product
+	}
+	return nil
+}
+
+func (x *ProductMessage) GetBusinessOwnerJid() string {
+	if x != nil && x.BusinessOwnerJid != nil {
+		return *x.BusinessOwnerJid
 	}
 	return ""
 }
 
-func (x *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte {
+func (x *ProductMessage) GetCatalog() *CatalogSnapshot {
 	if x != nil {
-		return x.AxolotlSenderKeyDistributionMessage
+		return x.Catalog
 	}
 	return nil
 }
 
-type SendPaymentMessage struct {
+func (x *ProductMessage) GetBody() string {
+	if x != nil && x.Body != nil {
+		return *x.Body
+	}
+	return ""
+}
+
+func (x *ProductMessage) GetFooter() string {
+	if x != nil && x.Footer != nil {
+		return *x.Footer
+	}
+	return ""
+}
+
+func (x *ProductMessage) GetContextInfo() *ContextInfo {
+	if x != nil {
+		return x.ContextInfo
+	}
+	return nil
+}
+
+type ProductSnapshot struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	NoteMessage       *Message           `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"`
-	RequestMessageKey *MessageKey        `protobuf:"bytes,3,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"`
-	Background        *PaymentBackground `protobuf:"bytes,4,opt,name=background" json:"background,omitempty"`
+	ProductImage        *ImageMessage `protobuf:"bytes,1,opt,name=productImage" json:"productImage,omitempty"`
+	ProductId           *string       `protobuf:"bytes,2,opt,name=productId" json:"productId,omitempty"`
+	Title               *string       `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
+	Description         *string       `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+	CurrencyCode        *string       `protobuf:"bytes,5,opt,name=currencyCode" json:"currencyCode,omitempty"`
+	PriceAmount1000     *int64        `protobuf:"varint,6,opt,name=priceAmount1000" json:"priceAmount1000,omitempty"`
+	RetailerId          *string       `protobuf:"bytes,7,opt,name=retailerId" json:"retailerId,omitempty"`
+	Url                 *string       `protobuf:"bytes,8,opt,name=url" json:"url,omitempty"`
+	ProductImageCount   *uint32       `protobuf:"varint,9,opt,name=productImageCount" json:"productImageCount,omitempty"`
+	FirstImageId        *string       `protobuf:"bytes,11,opt,name=firstImageId" json:"firstImageId,omitempty"`
+	SalePriceAmount1000 *int64        `protobuf:"varint,12,opt,name=salePriceAmount1000" json:"salePriceAmount1000,omitempty"`
 }
 
-func (x *SendPaymentMessage) Reset() {
-	*x = SendPaymentMessage{}
+func (x *ProductSnapshot) Reset() {
+	*x = ProductSnapshot{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4369,13 +4399,13 @@ func (x *SendPaymentMessage) Reset() {
 	}
 }
 
-func (x *SendPaymentMessage) String() string {
+func (x *ProductSnapshot) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*SendPaymentMessage) ProtoMessage() {}
+func (*ProductSnapshot) ProtoMessage() {}
 
-func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message {
+func (x *ProductSnapshot) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4387,48 +4417,100 @@ func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead.
-func (*SendPaymentMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use ProductSnapshot.ProtoReflect.Descriptor instead.
+func (*ProductSnapshot) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{9}
 }
 
-func (x *SendPaymentMessage) GetNoteMessage() *Message {
+func (x *ProductSnapshot) GetProductImage() *ImageMessage {
 	if x != nil {
-		return x.NoteMessage
+		return x.ProductImage
 	}
 	return nil
 }
 
-func (x *SendPaymentMessage) GetRequestMessageKey() *MessageKey {
-	if x != nil {
-		return x.RequestMessageKey
+func (x *ProductSnapshot) GetProductId() string {
+	if x != nil && x.ProductId != nil {
+		return *x.ProductId
 	}
-	return nil
+	return ""
 }
 
-func (x *SendPaymentMessage) GetBackground() *PaymentBackground {
-	if x != nil {
-		return x.Background
+func (x *ProductSnapshot) GetTitle() string {
+	if x != nil && x.Title != nil {
+		return *x.Title
 	}
-	return nil
+	return ""
 }
 
-type RequestPaymentMessage struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
+func (x *ProductSnapshot) GetDescription() string {
+	if x != nil && x.Description != nil {
+		return *x.Description
+	}
+	return ""
+}
 
-	NoteMessage         *Message           `protobuf:"bytes,4,opt,name=noteMessage" json:"noteMessage,omitempty"`
-	CurrencyCodeIso4217 *string            `protobuf:"bytes,1,opt,name=currencyCodeIso4217" json:"currencyCodeIso4217,omitempty"`
-	Amount1000          *uint64            `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"`
-	RequestFrom         *string            `protobuf:"bytes,3,opt,name=requestFrom" json:"requestFrom,omitempty"`
-	ExpiryTimestamp     *int64             `protobuf:"varint,5,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"`
-	Amount              *Money             `protobuf:"bytes,6,opt,name=amount" json:"amount,omitempty"`
-	Background          *PaymentBackground `protobuf:"bytes,7,opt,name=background" json:"background,omitempty"`
+func (x *ProductSnapshot) GetCurrencyCode() string {
+	if x != nil && x.CurrencyCode != nil {
+		return *x.CurrencyCode
+	}
+	return ""
 }
 
-func (x *RequestPaymentMessage) Reset() {
-	*x = RequestPaymentMessage{}
+func (x *ProductSnapshot) GetPriceAmount1000() int64 {
+	if x != nil && x.PriceAmount1000 != nil {
+		return *x.PriceAmount1000
+	}
+	return 0
+}
+
+func (x *ProductSnapshot) GetRetailerId() string {
+	if x != nil && x.RetailerId != nil {
+		return *x.RetailerId
+	}
+	return ""
+}
+
+func (x *ProductSnapshot) GetUrl() string {
+	if x != nil && x.Url != nil {
+		return *x.Url
+	}
+	return ""
+}
+
+func (x *ProductSnapshot) GetProductImageCount() uint32 {
+	if x != nil && x.ProductImageCount != nil {
+		return *x.ProductImageCount
+	}
+	return 0
+}
+
+func (x *ProductSnapshot) GetFirstImageId() string {
+	if x != nil && x.FirstImageId != nil {
+		return *x.FirstImageId
+	}
+	return ""
+}
+
+func (x *ProductSnapshot) GetSalePriceAmount1000() int64 {
+	if x != nil && x.SalePriceAmount1000 != nil {
+		return *x.SalePriceAmount1000
+	}
+	return 0
+}
+
+type CatalogSnapshot struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	CatalogImage *ImageMessage `protobuf:"bytes,1,opt,name=catalogImage" json:"catalogImage,omitempty"`
+	Title        *string       `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+	Description  *string       `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+}
+
+func (x *CatalogSnapshot) Reset() {
+	*x = CatalogSnapshot{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[10]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4436,13 +4518,13 @@ func (x *RequestPaymentMessage) Reset() {
 	}
 }
 
-func (x *RequestPaymentMessage) String() string {
+func (x *CatalogSnapshot) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RequestPaymentMessage) ProtoMessage() {}
+func (*CatalogSnapshot) ProtoMessage() {}
 
-func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message {
+func (x *CatalogSnapshot) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[10]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4454,73 +4536,43 @@ func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead.
-func (*RequestPaymentMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use CatalogSnapshot.ProtoReflect.Descriptor instead.
+func (*CatalogSnapshot) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{10}
 }
 
-func (x *RequestPaymentMessage) GetNoteMessage() *Message {
+func (x *CatalogSnapshot) GetCatalogImage() *ImageMessage {
 	if x != nil {
-		return x.NoteMessage
+		return x.CatalogImage
 	}
 	return nil
 }
 
-func (x *RequestPaymentMessage) GetCurrencyCodeIso4217() string {
-	if x != nil && x.CurrencyCodeIso4217 != nil {
-		return *x.CurrencyCodeIso4217
+func (x *CatalogSnapshot) GetTitle() string {
+	if x != nil && x.Title != nil {
+		return *x.Title
 	}
 	return ""
 }
 
-func (x *RequestPaymentMessage) GetAmount1000() uint64 {
-	if x != nil && x.Amount1000 != nil {
-		return *x.Amount1000
-	}
-	return 0
-}
-
-func (x *RequestPaymentMessage) GetRequestFrom() string {
-	if x != nil && x.RequestFrom != nil {
-		return *x.RequestFrom
+func (x *CatalogSnapshot) GetDescription() string {
+	if x != nil && x.Description != nil {
+		return *x.Description
 	}
 	return ""
 }
 
-func (x *RequestPaymentMessage) GetExpiryTimestamp() int64 {
-	if x != nil && x.ExpiryTimestamp != nil {
-		return *x.ExpiryTimestamp
-	}
-	return 0
-}
-
-func (x *RequestPaymentMessage) GetAmount() *Money {
-	if x != nil {
-		return x.Amount
-	}
-	return nil
-}
-
-func (x *RequestPaymentMessage) GetBackground() *PaymentBackground {
-	if x != nil {
-		return x.Background
-	}
-	return nil
-}
-
-type ReactionMessage struct {
+type PollVoteMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Key               *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
-	Text              *string     `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
-	GroupingKey       *string     `protobuf:"bytes,3,opt,name=groupingKey" json:"groupingKey,omitempty"`
-	SenderTimestampMs *int64      `protobuf:"varint,4,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"`
+	SelectedOptions   [][]byte `protobuf:"bytes,1,rep,name=selectedOptions" json:"selectedOptions,omitempty"`
+	SenderTimestampMs *int64   `protobuf:"varint,2,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"`
 }
 
-func (x *ReactionMessage) Reset() {
-	*x = ReactionMessage{}
+func (x *PollVoteMessage) Reset() {
+	*x = PollVoteMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[11]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4528,13 +4580,13 @@ func (x *ReactionMessage) Reset() {
 	}
 }
 
-func (x *ReactionMessage) String() string {
+func (x *PollVoteMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*ReactionMessage) ProtoMessage() {}
+func (*PollVoteMessage) ProtoMessage() {}
 
-func (x *ReactionMessage) ProtoReflect() protoreflect.Message {
+func (x *PollVoteMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[11]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4546,58 +4598,36 @@ func (x *ReactionMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use ReactionMessage.ProtoReflect.Descriptor instead.
-func (*ReactionMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use PollVoteMessage.ProtoReflect.Descriptor instead.
+func (*PollVoteMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{11}
 }
 
-func (x *ReactionMessage) GetKey() *MessageKey {
+func (x *PollVoteMessage) GetSelectedOptions() [][]byte {
 	if x != nil {
-		return x.Key
+		return x.SelectedOptions
 	}
 	return nil
 }
 
-func (x *ReactionMessage) GetText() string {
-	if x != nil && x.Text != nil {
-		return *x.Text
-	}
-	return ""
-}
-
-func (x *ReactionMessage) GetGroupingKey() string {
-	if x != nil && x.GroupingKey != nil {
-		return *x.GroupingKey
-	}
-	return ""
-}
-
-func (x *ReactionMessage) GetSenderTimestampMs() int64 {
+func (x *PollVoteMessage) GetSenderTimestampMs() int64 {
 	if x != nil && x.SenderTimestampMs != nil {
 		return *x.SenderTimestampMs
 	}
 	return 0
 }
 
-type ProtocolMessage struct {
+type PollUpdateMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Key                                    *MessageKey                             `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
-	Type                                   *ProtocolMessage_ProtocolMessageType    `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_ProtocolMessageType" json:"type,omitempty"`
-	EphemeralExpiration                    *uint32                                 `protobuf:"varint,4,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"`
-	EphemeralSettingTimestamp              *int64                                  `protobuf:"varint,5,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
-	HistorySyncNotification                *HistorySyncNotification                `protobuf:"bytes,6,opt,name=historySyncNotification" json:"historySyncNotification,omitempty"`
-	AppStateSyncKeyShare                   *AppStateSyncKeyShare                   `protobuf:"bytes,7,opt,name=appStateSyncKeyShare" json:"appStateSyncKeyShare,omitempty"`
-	AppStateSyncKeyRequest                 *AppStateSyncKeyRequest                 `protobuf:"bytes,8,opt,name=appStateSyncKeyRequest" json:"appStateSyncKeyRequest,omitempty"`
-	InitialSecurityNotificationSettingSync *InitialSecurityNotificationSettingSync `protobuf:"bytes,9,opt,name=initialSecurityNotificationSettingSync" json:"initialSecurityNotificationSettingSync,omitempty"`
-	AppStateFatalExceptionNotification     *AppStateFatalExceptionNotification     `protobuf:"bytes,10,opt,name=appStateFatalExceptionNotification" json:"appStateFatalExceptionNotification,omitempty"`
-	DisappearingMode                       *DisappearingMode                       `protobuf:"bytes,11,opt,name=disappearingMode" json:"disappearingMode,omitempty"`
+	PollCreationMessageKey *MessageKey   `protobuf:"bytes,1,opt,name=pollCreationMessageKey" json:"pollCreationMessageKey,omitempty"`
+	Vote                   *PollEncValue `protobuf:"bytes,2,opt,name=vote" json:"vote,omitempty"`
 }
 
-func (x *ProtocolMessage) Reset() {
-	*x = ProtocolMessage{}
+func (x *PollUpdateMessage) Reset() {
+	*x = PollUpdateMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[12]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4605,13 +4635,13 @@ func (x *ProtocolMessage) Reset() {
 	}
 }
 
-func (x *ProtocolMessage) String() string {
+func (x *PollUpdateMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*ProtocolMessage) ProtoMessage() {}
+func (*PollUpdateMessage) ProtoMessage() {}
 
-func (x *ProtocolMessage) ProtoReflect() protoreflect.Message {
+func (x *PollUpdateMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[12]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4623,111 +4653,109 @@ func (x *ProtocolMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use ProtocolMessage.ProtoReflect.Descriptor instead.
-func (*ProtocolMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use PollUpdateMessage.ProtoReflect.Descriptor instead.
+func (*PollUpdateMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{12}
 }
 
-func (x *ProtocolMessage) GetKey() *MessageKey {
+func (x *PollUpdateMessage) GetPollCreationMessageKey() *MessageKey {
 	if x != nil {
-		return x.Key
+		return x.PollCreationMessageKey
 	}
 	return nil
 }
 
-func (x *ProtocolMessage) GetType() ProtocolMessage_ProtocolMessageType {
-	if x != nil && x.Type != nil {
-		return *x.Type
+func (x *PollUpdateMessage) GetVote() *PollEncValue {
+	if x != nil {
+		return x.Vote
 	}
-	return ProtocolMessage_REVOKE
+	return nil
 }
 
-func (x *ProtocolMessage) GetEphemeralExpiration() uint32 {
-	if x != nil && x.EphemeralExpiration != nil {
-		return *x.EphemeralExpiration
-	}
-	return 0
+type PollEncValue struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	EncPayload []byte `protobuf:"bytes,1,opt,name=encPayload" json:"encPayload,omitempty"`
+	EncIv      []byte `protobuf:"bytes,2,opt,name=encIv" json:"encIv,omitempty"`
 }
 
-func (x *ProtocolMessage) GetEphemeralSettingTimestamp() int64 {
-	if x != nil && x.EphemeralSettingTimestamp != nil {
-		return *x.EphemeralSettingTimestamp
+func (x *PollEncValue) Reset() {
+	*x = PollEncValue{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[13]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return 0
 }
 
-func (x *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification {
-	if x != nil {
-		return x.HistorySyncNotification
-	}
-	return nil
+func (x *PollEncValue) String() string {
+	return protoimpl.X.MessageStringOf(x)
 }
 
-func (x *ProtocolMessage) GetAppStateSyncKeyShare() *AppStateSyncKeyShare {
-	if x != nil {
-		return x.AppStateSyncKeyShare
+func (*PollEncValue) ProtoMessage() {}
+
+func (x *PollEncValue) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_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 nil
+	return mi.MessageOf(x)
 }
 
-func (x *ProtocolMessage) GetAppStateSyncKeyRequest() *AppStateSyncKeyRequest {
-	if x != nil {
-		return x.AppStateSyncKeyRequest
-	}
-	return nil
+// Deprecated: Use PollEncValue.ProtoReflect.Descriptor instead.
+func (*PollEncValue) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{13}
 }
 
-func (x *ProtocolMessage) GetInitialSecurityNotificationSettingSync() *InitialSecurityNotificationSettingSync {
+func (x *PollEncValue) GetEncPayload() []byte {
 	if x != nil {
-		return x.InitialSecurityNotificationSettingSync
+		return x.EncPayload
 	}
 	return nil
 }
 
-func (x *ProtocolMessage) GetAppStateFatalExceptionNotification() *AppStateFatalExceptionNotification {
+func (x *PollEncValue) GetEncIv() []byte {
 	if x != nil {
-		return x.AppStateFatalExceptionNotification
+		return x.EncIv
 	}
 	return nil
 }
 
-func (x *ProtocolMessage) GetDisappearingMode() *DisappearingMode {
-	if x != nil {
-		return x.DisappearingMode
-	}
-	return nil
-}
-
-type ProductMessage struct {
+type PollCreationMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Product          *ProductSnapshot `protobuf:"bytes,1,opt,name=product" json:"product,omitempty"`
-	BusinessOwnerJid *string          `protobuf:"bytes,2,opt,name=businessOwnerJid" json:"businessOwnerJid,omitempty"`
-	Catalog          *CatalogSnapshot `protobuf:"bytes,4,opt,name=catalog" json:"catalog,omitempty"`
-	Body             *string          `protobuf:"bytes,5,opt,name=body" json:"body,omitempty"`
-	Footer           *string          `protobuf:"bytes,6,opt,name=footer" json:"footer,omitempty"`
-	ContextInfo      *ContextInfo     `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	EncKey                 []byte       `protobuf:"bytes,1,opt,name=encKey" json:"encKey,omitempty"`
+	Name                   *string      `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+	Options                []*Option    `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
+	SelectableOptionsCount *uint32      `protobuf:"varint,4,opt,name=selectableOptionsCount" json:"selectableOptionsCount,omitempty"`
+	ContextInfo            *ContextInfo `protobuf:"bytes,5,opt,name=contextInfo" json:"contextInfo,omitempty"`
 }
 
-func (x *ProductMessage) Reset() {
-	*x = ProductMessage{}
+func (x *PollCreationMessage) Reset() {
+	*x = PollCreationMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[13]
+		mi := &file_binary_proto_def_proto_msgTypes[14]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *ProductMessage) String() string {
+func (x *PollCreationMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*ProductMessage) ProtoMessage() {}
+func (*PollCreationMessage) ProtoMessage() {}
 
-func (x *ProductMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[13]
+func (x *PollCreationMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[14]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -4738,192 +4766,56 @@ func (x *ProductMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead.
-func (*ProductMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{13}
+// Deprecated: Use PollCreationMessage.ProtoReflect.Descriptor instead.
+func (*PollCreationMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{14}
 }
 
-func (x *ProductMessage) GetProduct() *ProductSnapshot {
+func (x *PollCreationMessage) GetEncKey() []byte {
 	if x != nil {
-		return x.Product
+		return x.EncKey
 	}
 	return nil
 }
 
-func (x *ProductMessage) GetBusinessOwnerJid() string {
-	if x != nil && x.BusinessOwnerJid != nil {
-		return *x.BusinessOwnerJid
+func (x *PollCreationMessage) GetName() string {
+	if x != nil && x.Name != nil {
+		return *x.Name
 	}
 	return ""
 }
 
-func (x *ProductMessage) GetCatalog() *CatalogSnapshot {
+func (x *PollCreationMessage) GetOptions() []*Option {
 	if x != nil {
-		return x.Catalog
+		return x.Options
 	}
 	return nil
 }
 
-func (x *ProductMessage) GetBody() string {
-	if x != nil && x.Body != nil {
-		return *x.Body
-	}
-	return ""
-}
-
-func (x *ProductMessage) GetFooter() string {
-	if x != nil && x.Footer != nil {
-		return *x.Footer
+func (x *PollCreationMessage) GetSelectableOptionsCount() uint32 {
+	if x != nil && x.SelectableOptionsCount != nil {
+		return *x.SelectableOptionsCount
 	}
-	return ""
+	return 0
 }
 
-func (x *ProductMessage) GetContextInfo() *ContextInfo {
+func (x *PollCreationMessage) GetContextInfo() *ContextInfo {
 	if x != nil {
 		return x.ContextInfo
 	}
 	return nil
 }
 
-type ProductSnapshot struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	ProductImage        *ImageMessage `protobuf:"bytes,1,opt,name=productImage" json:"productImage,omitempty"`
-	ProductId           *string       `protobuf:"bytes,2,opt,name=productId" json:"productId,omitempty"`
-	Title               *string       `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
-	Description         *string       `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
-	CurrencyCode        *string       `protobuf:"bytes,5,opt,name=currencyCode" json:"currencyCode,omitempty"`
-	PriceAmount1000     *int64        `protobuf:"varint,6,opt,name=priceAmount1000" json:"priceAmount1000,omitempty"`
-	RetailerId          *string       `protobuf:"bytes,7,opt,name=retailerId" json:"retailerId,omitempty"`
-	Url                 *string       `protobuf:"bytes,8,opt,name=url" json:"url,omitempty"`
-	ProductImageCount   *uint32       `protobuf:"varint,9,opt,name=productImageCount" json:"productImageCount,omitempty"`
-	FirstImageId        *string       `protobuf:"bytes,11,opt,name=firstImageId" json:"firstImageId,omitempty"`
-	SalePriceAmount1000 *int64        `protobuf:"varint,12,opt,name=salePriceAmount1000" json:"salePriceAmount1000,omitempty"`
-}
-
-func (x *ProductSnapshot) Reset() {
-	*x = ProductSnapshot{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *ProductSnapshot) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ProductSnapshot) ProtoMessage() {}
-
-func (x *ProductSnapshot) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_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 ProductSnapshot.ProtoReflect.Descriptor instead.
-func (*ProductSnapshot) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *ProductSnapshot) GetProductImage() *ImageMessage {
-	if x != nil {
-		return x.ProductImage
-	}
-	return nil
-}
-
-func (x *ProductSnapshot) GetProductId() string {
-	if x != nil && x.ProductId != nil {
-		return *x.ProductId
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetTitle() string {
-	if x != nil && x.Title != nil {
-		return *x.Title
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetDescription() string {
-	if x != nil && x.Description != nil {
-		return *x.Description
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetCurrencyCode() string {
-	if x != nil && x.CurrencyCode != nil {
-		return *x.CurrencyCode
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetPriceAmount1000() int64 {
-	if x != nil && x.PriceAmount1000 != nil {
-		return *x.PriceAmount1000
-	}
-	return 0
-}
-
-func (x *ProductSnapshot) GetRetailerId() string {
-	if x != nil && x.RetailerId != nil {
-		return *x.RetailerId
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetUrl() string {
-	if x != nil && x.Url != nil {
-		return *x.Url
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetProductImageCount() uint32 {
-	if x != nil && x.ProductImageCount != nil {
-		return *x.ProductImageCount
-	}
-	return 0
-}
-
-func (x *ProductSnapshot) GetFirstImageId() string {
-	if x != nil && x.FirstImageId != nil {
-		return *x.FirstImageId
-	}
-	return ""
-}
-
-func (x *ProductSnapshot) GetSalePriceAmount1000() int64 {
-	if x != nil && x.SalePriceAmount1000 != nil {
-		return *x.SalePriceAmount1000
-	}
-	return 0
-}
-
-type CatalogSnapshot struct {
+type Option struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	CatalogImage *ImageMessage `protobuf:"bytes,1,opt,name=catalogImage" json:"catalogImage,omitempty"`
-	Title        *string       `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
-	Description  *string       `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+	OptionName *string `protobuf:"bytes,1,opt,name=optionName" json:"optionName,omitempty"`
 }
 
-func (x *CatalogSnapshot) Reset() {
-	*x = CatalogSnapshot{}
+func (x *Option) Reset() {
+	*x = Option{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[15]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4931,13 +4823,13 @@ func (x *CatalogSnapshot) Reset() {
 	}
 }
 
-func (x *CatalogSnapshot) String() string {
+func (x *Option) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*CatalogSnapshot) ProtoMessage() {}
+func (*Option) ProtoMessage() {}
 
-func (x *CatalogSnapshot) ProtoReflect() protoreflect.Message {
+func (x *Option) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[15]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -4949,28 +4841,14 @@ func (x *CatalogSnapshot) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use CatalogSnapshot.ProtoReflect.Descriptor instead.
-func (*CatalogSnapshot) Descriptor() ([]byte, []int) {
+// Deprecated: Use Option.ProtoReflect.Descriptor instead.
+func (*Option) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{15}
 }
 
-func (x *CatalogSnapshot) GetCatalogImage() *ImageMessage {
-	if x != nil {
-		return x.CatalogImage
-	}
-	return nil
-}
-
-func (x *CatalogSnapshot) GetTitle() string {
-	if x != nil && x.Title != nil {
-		return *x.Title
-	}
-	return ""
-}
-
-func (x *CatalogSnapshot) GetDescription() string {
-	if x != nil && x.Description != nil {
-		return *x.Description
+func (x *Option) GetOptionName() string {
+	if x != nil && x.OptionName != nil {
+		return *x.OptionName
 	}
 	return ""
 }
@@ -7924,26 +7802,29 @@ type ExtendedTextMessage struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Text                *string                                                     `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
-	MatchedText         *string                                                     `protobuf:"bytes,2,opt,name=matchedText" json:"matchedText,omitempty"`
-	CanonicalUrl        *string                                                     `protobuf:"bytes,4,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"`
-	Description         *string                                                     `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
-	Title               *string                                                     `protobuf:"bytes,6,opt,name=title" json:"title,omitempty"`
-	TextArgb            *uint32                                                     `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"`
-	BackgroundArgb      *uint32                                                     `protobuf:"fixed32,8,opt,name=backgroundArgb" json:"backgroundArgb,omitempty"`
-	Font                *ExtendedTextMessage_ExtendedTextMessageFontType            `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_ExtendedTextMessageFontType" json:"font,omitempty"`
-	PreviewType         *ExtendedTextMessage_ExtendedTextMessagePreviewType         `protobuf:"varint,10,opt,name=previewType,enum=proto.ExtendedTextMessage_ExtendedTextMessagePreviewType" json:"previewType,omitempty"`
-	JpegThumbnail       []byte                                                      `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
-	ContextInfo         *ContextInfo                                                `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
-	DoNotPlayInline     *bool                                                       `protobuf:"varint,18,opt,name=doNotPlayInline" json:"doNotPlayInline,omitempty"`
-	ThumbnailDirectPath *string                                                     `protobuf:"bytes,19,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
-	ThumbnailSha256     []byte                                                      `protobuf:"bytes,20,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
-	ThumbnailEncSha256  []byte                                                      `protobuf:"bytes,21,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
-	MediaKey            []byte                                                      `protobuf:"bytes,22,opt,name=mediaKey" json:"mediaKey,omitempty"`
-	MediaKeyTimestamp   *int64                                                      `protobuf:"varint,23,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
-	ThumbnailHeight     *uint32                                                     `protobuf:"varint,24,opt,name=thumbnailHeight" json:"thumbnailHeight,omitempty"`
-	ThumbnailWidth      *uint32                                                     `protobuf:"varint,25,opt,name=thumbnailWidth" json:"thumbnailWidth,omitempty"`
-	InviteLinkGroupType *ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType `protobuf:"varint,26,opt,name=inviteLinkGroupType,enum=proto.ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType" json:"inviteLinkGroupType,omitempty"`
+	Text                             *string                                                     `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+	MatchedText                      *string                                                     `protobuf:"bytes,2,opt,name=matchedText" json:"matchedText,omitempty"`
+	CanonicalUrl                     *string                                                     `protobuf:"bytes,4,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"`
+	Description                      *string                                                     `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
+	Title                            *string                                                     `protobuf:"bytes,6,opt,name=title" json:"title,omitempty"`
+	TextArgb                         *uint32                                                     `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"`
+	BackgroundArgb                   *uint32                                                     `protobuf:"fixed32,8,opt,name=backgroundArgb" json:"backgroundArgb,omitempty"`
+	Font                             *ExtendedTextMessage_ExtendedTextMessageFontType            `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_ExtendedTextMessageFontType" json:"font,omitempty"`
+	PreviewType                      *ExtendedTextMessage_ExtendedTextMessagePreviewType         `protobuf:"varint,10,opt,name=previewType,enum=proto.ExtendedTextMessage_ExtendedTextMessagePreviewType" json:"previewType,omitempty"`
+	JpegThumbnail                    []byte                                                      `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+	ContextInfo                      *ContextInfo                                                `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	DoNotPlayInline                  *bool                                                       `protobuf:"varint,18,opt,name=doNotPlayInline" json:"doNotPlayInline,omitempty"`
+	ThumbnailDirectPath              *string                                                     `protobuf:"bytes,19,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
+	ThumbnailSha256                  []byte                                                      `protobuf:"bytes,20,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
+	ThumbnailEncSha256               []byte                                                      `protobuf:"bytes,21,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
+	MediaKey                         []byte                                                      `protobuf:"bytes,22,opt,name=mediaKey" json:"mediaKey,omitempty"`
+	MediaKeyTimestamp                *int64                                                      `protobuf:"varint,23,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+	ThumbnailHeight                  *uint32                                                     `protobuf:"varint,24,opt,name=thumbnailHeight" json:"thumbnailHeight,omitempty"`
+	ThumbnailWidth                   *uint32                                                     `protobuf:"varint,25,opt,name=thumbnailWidth" json:"thumbnailWidth,omitempty"`
+	InviteLinkGroupType              *ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType `protobuf:"varint,26,opt,name=inviteLinkGroupType,enum=proto.ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType" json:"inviteLinkGroupType,omitempty"`
+	InviteLinkParentGroupSubjectV2   *string                                                     `protobuf:"bytes,27,opt,name=inviteLinkParentGroupSubjectV2" json:"inviteLinkParentGroupSubjectV2,omitempty"`
+	InviteLinkParentGroupThumbnailV2 []byte                                                      `protobuf:"bytes,28,opt,name=inviteLinkParentGroupThumbnailV2" json:"inviteLinkParentGroupThumbnailV2,omitempty"`
+	InviteLinkGroupTypeV2            *ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType `protobuf:"varint,29,opt,name=inviteLinkGroupTypeV2,enum=proto.ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType" json:"inviteLinkGroupTypeV2,omitempty"`
 }
 
 func (x *ExtendedTextMessage) Reset() {
@@ -8118,6 +7999,27 @@ func (x *ExtendedTextMessage) GetInviteLinkGroupType() ExtendedTextMessage_Exten
 	return ExtendedTextMessage_DEFAULT
 }
 
+func (x *ExtendedTextMessage) GetInviteLinkParentGroupSubjectV2() string {
+	if x != nil && x.InviteLinkParentGroupSubjectV2 != nil {
+		return *x.InviteLinkParentGroupSubjectV2
+	}
+	return ""
+}
+
+func (x *ExtendedTextMessage) GetInviteLinkParentGroupThumbnailV2() []byte {
+	if x != nil {
+		return x.InviteLinkParentGroupThumbnailV2
+	}
+	return nil
+}
+
+func (x *ExtendedTextMessage) GetInviteLinkGroupTypeV2() ExtendedTextMessage_ExtendedTextMessageInviteLinkGroupType {
+	if x != nil && x.InviteLinkGroupTypeV2 != nil {
+		return *x.InviteLinkGroupTypeV2
+	}
+	return ExtendedTextMessage_DEFAULT
+}
+
 type DocumentMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -10229,6 +10131,7 @@ type ContextInfo struct {
 	ActionLink                       *ActionLink          `protobuf:"bytes,33,opt,name=actionLink" json:"actionLink,omitempty"`
 	GroupSubject                     *string              `protobuf:"bytes,34,opt,name=groupSubject" json:"groupSubject,omitempty"`
 	ParentGroupJid                   *string              `protobuf:"bytes,35,opt,name=parentGroupJid" json:"parentGroupJid,omitempty"`
+	MessageSecret                    []byte               `protobuf:"bytes,36,opt,name=messageSecret" json:"messageSecret,omitempty"`
 }
 
 func (x *ContextInfo) Reset() {
@@ -10424,6 +10327,13 @@ func (x *ContextInfo) GetParentGroupJid() string {
 	return ""
 }
 
+func (x *ContextInfo) GetMessageSecret() []byte {
+	if x != nil {
+		return x.MessageSecret
+	}
+	return nil
+}
+
 type ExternalAdReplyInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -10952,18 +10862,19 @@ func (x *CallButton) GetPhoneNumber() *HighlyStructuredMessage {
 	return nil
 }
 
-type PollUpdateMessage struct {
+type Point struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	PollCreationMessageKey *MessageKey `protobuf:"bytes,1,opt,name=pollCreationMessageKey" json:"pollCreationMessageKey,omitempty"`
-	EncPayload             []byte      `protobuf:"bytes,2,opt,name=encPayload" json:"encPayload,omitempty"`
-	EncIv                  []byte      `protobuf:"bytes,3,opt,name=encIv" json:"encIv,omitempty"`
+	XDeprecated *int32   `protobuf:"varint,1,opt,name=xDeprecated" json:"xDeprecated,omitempty"`
+	YDeprecated *int32   `protobuf:"varint,2,opt,name=yDeprecated" json:"yDeprecated,omitempty"`
+	X           *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"`
+	Y           *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"`
 }
 
-func (x *PollUpdateMessage) Reset() {
-	*x = PollUpdateMessage{}
+func (x *Point) Reset() {
+	*x = Point{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[90]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -10971,13 +10882,13 @@ func (x *PollUpdateMessage) Reset() {
 	}
 }
 
-func (x *PollUpdateMessage) String() string {
+func (x *Point) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*PollUpdateMessage) ProtoMessage() {}
+func (*Point) ProtoMessage() {}
 
-func (x *PollUpdateMessage) ProtoReflect() protoreflect.Message {
+func (x *Point) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[90]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -10989,44 +10900,58 @@ func (x *PollUpdateMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use PollUpdateMessage.ProtoReflect.Descriptor instead.
-func (*PollUpdateMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use Point.ProtoReflect.Descriptor instead.
+func (*Point) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{90}
 }
 
-func (x *PollUpdateMessage) GetPollCreationMessageKey() *MessageKey {
-	if x != nil {
-		return x.PollCreationMessageKey
+func (x *Point) GetXDeprecated() int32 {
+	if x != nil && x.XDeprecated != nil {
+		return *x.XDeprecated
 	}
-	return nil
+	return 0
 }
 
-func (x *PollUpdateMessage) GetEncPayload() []byte {
-	if x != nil {
-		return x.EncPayload
+func (x *Point) GetYDeprecated() int32 {
+	if x != nil && x.YDeprecated != nil {
+		return *x.YDeprecated
 	}
-	return nil
+	return 0
 }
 
-func (x *PollUpdateMessage) GetEncIv() []byte {
-	if x != nil {
-		return x.EncIv
+func (x *Point) GetX() float64 {
+	if x != nil && x.X != nil {
+		return *x.X
 	}
-	return nil
+	return 0
+}
+
+func (x *Point) GetY() float64 {
+	if x != nil && x.Y != nil {
+		return *x.Y
+	}
+	return 0
 }
 
-type PollUpdateMessageContent struct {
+type PaymentBackground struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	// Types that are assignable to Update:
-	//	*PollUpdateMessageContent_VoteMessage
-	Update isPollUpdateMessageContent_Update `protobuf_oneof:"update"`
+	Id              *string                                  `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+	FileLength      *uint64                                  `protobuf:"varint,2,opt,name=fileLength" json:"fileLength,omitempty"`
+	Width           *uint32                                  `protobuf:"varint,3,opt,name=width" json:"width,omitempty"`
+	Height          *uint32                                  `protobuf:"varint,4,opt,name=height" json:"height,omitempty"`
+	Mimetype        *string                                  `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"`
+	PlaceholderArgb *uint32                                  `protobuf:"fixed32,6,opt,name=placeholderArgb" json:"placeholderArgb,omitempty"`
+	TextArgb        *uint32                                  `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"`
+	SubtextArgb     *uint32                                  `protobuf:"fixed32,8,opt,name=subtextArgb" json:"subtextArgb,omitempty"`
+	MediaData       *PBMediaData                             `protobuf:"bytes,9,opt,name=mediaData" json:"mediaData,omitempty"`
+	Type            *PaymentBackground_PaymentBackgroundType `protobuf:"varint,10,opt,name=type,enum=proto.PaymentBackground_PaymentBackgroundType" json:"type,omitempty"`
 }
 
-func (x *PollUpdateMessageContent) Reset() {
-	*x = PollUpdateMessageContent{}
+func (x *PaymentBackground) Reset() {
+	*x = PaymentBackground{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[91]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -11034,13 +10959,13 @@ func (x *PollUpdateMessageContent) Reset() {
 	}
 }
 
-func (x *PollUpdateMessageContent) String() string {
+func (x *PaymentBackground) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*PollUpdateMessageContent) ProtoMessage() {}
+func (*PaymentBackground) ProtoMessage() {}
 
-func (x *PollUpdateMessageContent) ProtoReflect() protoreflect.Message {
+func (x *PaymentBackground) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[91]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -11052,118 +10977,111 @@ func (x *PollUpdateMessageContent) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use PollUpdateMessageContent.ProtoReflect.Descriptor instead.
-func (*PollUpdateMessageContent) Descriptor() ([]byte, []int) {
+// Deprecated: Use PaymentBackground.ProtoReflect.Descriptor instead.
+func (*PaymentBackground) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{91}
 }
 
-func (m *PollUpdateMessageContent) GetUpdate() isPollUpdateMessageContent_Update {
-	if m != nil {
-		return m.Update
+func (x *PaymentBackground) GetId() string {
+	if x != nil && x.Id != nil {
+		return *x.Id
 	}
-	return nil
+	return ""
 }
 
-func (x *PollUpdateMessageContent) GetVoteMessage() *PollVoteMessage {
-	if x, ok := x.GetUpdate().(*PollUpdateMessageContent_VoteMessage); ok {
-		return x.VoteMessage
+func (x *PaymentBackground) GetFileLength() uint64 {
+	if x != nil && x.FileLength != nil {
+		return *x.FileLength
 	}
-	return nil
-}
-
-type isPollUpdateMessageContent_Update interface {
-	isPollUpdateMessageContent_Update()
+	return 0
 }
 
-type PollUpdateMessageContent_VoteMessage struct {
-	VoteMessage *PollVoteMessage `protobuf:"bytes,1,opt,name=voteMessage,oneof"`
+func (x *PaymentBackground) GetWidth() uint32 {
+	if x != nil && x.Width != nil {
+		return *x.Width
+	}
+	return 0
 }
 
-func (*PollUpdateMessageContent_VoteMessage) isPollUpdateMessageContent_Update() {}
-
-type PollVoteMessage struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	SelectedOptions   [][]byte `protobuf:"bytes,1,rep,name=selectedOptions" json:"selectedOptions,omitempty"`
-	SenderTimestampMs *int64   `protobuf:"varint,2,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"`
+func (x *PaymentBackground) GetHeight() uint32 {
+	if x != nil && x.Height != nil {
+		return *x.Height
+	}
+	return 0
 }
 
-func (x *PollVoteMessage) Reset() {
-	*x = PollVoteMessage{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[92]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
+func (x *PaymentBackground) GetMimetype() string {
+	if x != nil && x.Mimetype != nil {
+		return *x.Mimetype
 	}
+	return ""
 }
 
-func (x *PollVoteMessage) String() string {
-	return protoimpl.X.MessageStringOf(x)
+func (x *PaymentBackground) GetPlaceholderArgb() uint32 {
+	if x != nil && x.PlaceholderArgb != nil {
+		return *x.PlaceholderArgb
+	}
+	return 0
 }
 
-func (*PollVoteMessage) ProtoMessage() {}
-
-func (x *PollVoteMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[92]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
+func (x *PaymentBackground) GetTextArgb() uint32 {
+	if x != nil && x.TextArgb != nil {
+		return *x.TextArgb
 	}
-	return mi.MessageOf(x)
+	return 0
 }
 
-// Deprecated: Use PollVoteMessage.ProtoReflect.Descriptor instead.
-func (*PollVoteMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{92}
+func (x *PaymentBackground) GetSubtextArgb() uint32 {
+	if x != nil && x.SubtextArgb != nil {
+		return *x.SubtextArgb
+	}
+	return 0
 }
 
-func (x *PollVoteMessage) GetSelectedOptions() [][]byte {
+func (x *PaymentBackground) GetMediaData() *PBMediaData {
 	if x != nil {
-		return x.SelectedOptions
+		return x.MediaData
 	}
 	return nil
 }
 
-func (x *PollVoteMessage) GetSenderTimestampMs() int64 {
-	if x != nil && x.SenderTimestampMs != nil {
-		return *x.SenderTimestampMs
+func (x *PaymentBackground) GetType() PaymentBackground_PaymentBackgroundType {
+	if x != nil && x.Type != nil {
+		return *x.Type
 	}
-	return 0
+	return PaymentBackground_UNKNOWN
 }
 
-type PollCreationMessage struct {
+// Renamed from PaymentBackground$MediaData
+type PBMediaData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	EncKey                 []byte    `protobuf:"bytes,1,opt,name=encKey" json:"encKey,omitempty"`
-	Name                   *string   `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
-	Options                []*Option `protobuf:"bytes,3,rep,name=options" json:"options,omitempty"`
-	SelectableOptionsCount *uint32   `protobuf:"varint,4,opt,name=selectableOptionsCount" json:"selectableOptionsCount,omitempty"`
+	MediaKey          []byte  `protobuf:"bytes,1,opt,name=mediaKey" json:"mediaKey,omitempty"`
+	MediaKeyTimestamp *int64  `protobuf:"varint,2,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+	FileSha256        []byte  `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
+	FileEncSha256     []byte  `protobuf:"bytes,4,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+	DirectPath        *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"`
 }
 
-func (x *PollCreationMessage) Reset() {
-	*x = PollCreationMessage{}
+func (x *PBMediaData) Reset() {
+	*x = PBMediaData{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[93]
+		mi := &file_binary_proto_def_proto_msgTypes[92]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *PollCreationMessage) String() string {
+func (x *PBMediaData) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*PollCreationMessage) ProtoMessage() {}
+func (*PBMediaData) ProtoMessage() {}
 
-func (x *PollCreationMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[93]
+func (x *PBMediaData) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[92]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -11174,64 +11092,73 @@ func (x *PollCreationMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use PollCreationMessage.ProtoReflect.Descriptor instead.
-func (*PollCreationMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{93}
+// Deprecated: Use PBMediaData.ProtoReflect.Descriptor instead.
+func (*PBMediaData) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{92}
 }
 
-func (x *PollCreationMessage) GetEncKey() []byte {
+func (x *PBMediaData) GetMediaKey() []byte {
 	if x != nil {
-		return x.EncKey
+		return x.MediaKey
 	}
 	return nil
 }
 
-func (x *PollCreationMessage) GetName() string {
-	if x != nil && x.Name != nil {
-		return *x.Name
+func (x *PBMediaData) GetMediaKeyTimestamp() int64 {
+	if x != nil && x.MediaKeyTimestamp != nil {
+		return *x.MediaKeyTimestamp
 	}
-	return ""
+	return 0
 }
 
-func (x *PollCreationMessage) GetOptions() []*Option {
+func (x *PBMediaData) GetFileSha256() []byte {
 	if x != nil {
-		return x.Options
+		return x.FileSha256
 	}
 	return nil
 }
 
-func (x *PollCreationMessage) GetSelectableOptionsCount() uint32 {
-	if x != nil && x.SelectableOptionsCount != nil {
-		return *x.SelectableOptionsCount
+func (x *PBMediaData) GetFileEncSha256() []byte {
+	if x != nil {
+		return x.FileEncSha256
 	}
-	return 0
+	return nil
 }
 
-type Option struct {
+func (x *PBMediaData) GetDirectPath() string {
+	if x != nil && x.DirectPath != nil {
+		return *x.DirectPath
+	}
+	return ""
+}
+
+type Money struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	OptionName *string `protobuf:"bytes,1,opt,name=optionName" json:"optionName,omitempty"`
+	Value        *int64  `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
+	Offset       *uint32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
+	CurrencyCode *string `protobuf:"bytes,3,opt,name=currencyCode" json:"currencyCode,omitempty"`
 }
 
-func (x *Option) Reset() {
-	*x = Option{}
+func (x *Money) Reset() {
+	*x = Money{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[94]
+		mi := &file_binary_proto_def_proto_msgTypes[93]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *Option) String() string {
+func (x *Money) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*Option) ProtoMessage() {}
+func (*Money) ProtoMessage() {}
 
-func (x *Option) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[94]
+func (x *Money) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[93]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -11242,46 +11169,98 @@ func (x *Option) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use Option.ProtoReflect.Descriptor instead.
-func (*Option) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{94}
+// Deprecated: Use Money.ProtoReflect.Descriptor instead.
+func (*Money) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{93}
 }
 
-func (x *Option) GetOptionName() string {
-	if x != nil && x.OptionName != nil {
-		return *x.OptionName
+func (x *Money) GetValue() int64 {
+	if x != nil && x.Value != nil {
+		return *x.Value
+	}
+	return 0
+}
+
+func (x *Money) GetOffset() uint32 {
+	if x != nil && x.Offset != nil {
+		return *x.Offset
+	}
+	return 0
+}
+
+func (x *Money) GetCurrencyCode() string {
+	if x != nil && x.CurrencyCode != nil {
+		return *x.CurrencyCode
 	}
 	return ""
 }
 
-type Point struct {
+type Message struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	XDeprecated *int32   `protobuf:"varint,1,opt,name=xDeprecated" json:"xDeprecated,omitempty"`
-	YDeprecated *int32   `protobuf:"varint,2,opt,name=yDeprecated" json:"yDeprecated,omitempty"`
-	X           *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"`
-	Y           *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"`
-}
-
-func (x *Point) Reset() {
-	*x = Point{}
+	Conversation                               *string                       `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"`
+	SenderKeyDistributionMessage               *SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=senderKeyDistributionMessage" json:"senderKeyDistributionMessage,omitempty"`
+	ImageMessage                               *ImageMessage                 `protobuf:"bytes,3,opt,name=imageMessage" json:"imageMessage,omitempty"`
+	ContactMessage                             *ContactMessage               `protobuf:"bytes,4,opt,name=contactMessage" json:"contactMessage,omitempty"`
+	LocationMessage                            *LocationMessage              `protobuf:"bytes,5,opt,name=locationMessage" json:"locationMessage,omitempty"`
+	ExtendedTextMessage                        *ExtendedTextMessage          `protobuf:"bytes,6,opt,name=extendedTextMessage" json:"extendedTextMessage,omitempty"`
+	DocumentMessage                            *DocumentMessage              `protobuf:"bytes,7,opt,name=documentMessage" json:"documentMessage,omitempty"`
+	AudioMessage                               *AudioMessage                 `protobuf:"bytes,8,opt,name=audioMessage" json:"audioMessage,omitempty"`
+	VideoMessage                               *VideoMessage                 `protobuf:"bytes,9,opt,name=videoMessage" json:"videoMessage,omitempty"`
+	Call                                       *Call                         `protobuf:"bytes,10,opt,name=call" json:"call,omitempty"`
+	Chat                                       *Chat                         `protobuf:"bytes,11,opt,name=chat" json:"chat,omitempty"`
+	ProtocolMessage                            *ProtocolMessage              `protobuf:"bytes,12,opt,name=protocolMessage" json:"protocolMessage,omitempty"`
+	ContactsArrayMessage                       *ContactsArrayMessage         `protobuf:"bytes,13,opt,name=contactsArrayMessage" json:"contactsArrayMessage,omitempty"`
+	HighlyStructuredMessage                    *HighlyStructuredMessage      `protobuf:"bytes,14,opt,name=highlyStructuredMessage" json:"highlyStructuredMessage,omitempty"`
+	FastRatchetKeySenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,15,opt,name=fastRatchetKeySenderKeyDistributionMessage" json:"fastRatchetKeySenderKeyDistributionMessage,omitempty"`
+	SendPaymentMessage                         *SendPaymentMessage           `protobuf:"bytes,16,opt,name=sendPaymentMessage" json:"sendPaymentMessage,omitempty"`
+	LiveLocationMessage                        *LiveLocationMessage          `protobuf:"bytes,18,opt,name=liveLocationMessage" json:"liveLocationMessage,omitempty"`
+	RequestPaymentMessage                      *RequestPaymentMessage        `protobuf:"bytes,22,opt,name=requestPaymentMessage" json:"requestPaymentMessage,omitempty"`
+	DeclinePaymentRequestMessage               *DeclinePaymentRequestMessage `protobuf:"bytes,23,opt,name=declinePaymentRequestMessage" json:"declinePaymentRequestMessage,omitempty"`
+	CancelPaymentRequestMessage                *CancelPaymentRequestMessage  `protobuf:"bytes,24,opt,name=cancelPaymentRequestMessage" json:"cancelPaymentRequestMessage,omitempty"`
+	TemplateMessage                            *TemplateMessage              `protobuf:"bytes,25,opt,name=templateMessage" json:"templateMessage,omitempty"`
+	StickerMessage                             *StickerMessage               `protobuf:"bytes,26,opt,name=stickerMessage" json:"stickerMessage,omitempty"`
+	GroupInviteMessage                         *GroupInviteMessage           `protobuf:"bytes,28,opt,name=groupInviteMessage" json:"groupInviteMessage,omitempty"`
+	TemplateButtonReplyMessage                 *TemplateButtonReplyMessage   `protobuf:"bytes,29,opt,name=templateButtonReplyMessage" json:"templateButtonReplyMessage,omitempty"`
+	ProductMessage                             *ProductMessage               `protobuf:"bytes,30,opt,name=productMessage" json:"productMessage,omitempty"`
+	DeviceSentMessage                          *DeviceSentMessage            `protobuf:"bytes,31,opt,name=deviceSentMessage" json:"deviceSentMessage,omitempty"`
+	MessageContextInfo                         *MessageContextInfo           `protobuf:"bytes,35,opt,name=messageContextInfo" json:"messageContextInfo,omitempty"`
+	ListMessage                                *ListMessage                  `protobuf:"bytes,36,opt,name=listMessage" json:"listMessage,omitempty"`
+	ViewOnceMessage                            *FutureProofMessage           `protobuf:"bytes,37,opt,name=viewOnceMessage" json:"viewOnceMessage,omitempty"`
+	OrderMessage                               *OrderMessage                 `protobuf:"bytes,38,opt,name=orderMessage" json:"orderMessage,omitempty"`
+	ListResponseMessage                        *ListResponseMessage          `protobuf:"bytes,39,opt,name=listResponseMessage" json:"listResponseMessage,omitempty"`
+	EphemeralMessage                           *FutureProofMessage           `protobuf:"bytes,40,opt,name=ephemeralMessage" json:"ephemeralMessage,omitempty"`
+	InvoiceMessage                             *InvoiceMessage               `protobuf:"bytes,41,opt,name=invoiceMessage" json:"invoiceMessage,omitempty"`
+	ButtonsMessage                             *ButtonsMessage               `protobuf:"bytes,42,opt,name=buttonsMessage" json:"buttonsMessage,omitempty"`
+	ButtonsResponseMessage                     *ButtonsResponseMessage       `protobuf:"bytes,43,opt,name=buttonsResponseMessage" json:"buttonsResponseMessage,omitempty"`
+	PaymentInviteMessage                       *PaymentInviteMessage         `protobuf:"bytes,44,opt,name=paymentInviteMessage" json:"paymentInviteMessage,omitempty"`
+	InteractiveMessage                         *InteractiveMessage           `protobuf:"bytes,45,opt,name=interactiveMessage" json:"interactiveMessage,omitempty"`
+	ReactionMessage                            *ReactionMessage              `protobuf:"bytes,46,opt,name=reactionMessage" json:"reactionMessage,omitempty"`
+	StickerSyncRmrMessage                      *StickerSyncRMRMessage        `protobuf:"bytes,47,opt,name=stickerSyncRmrMessage" json:"stickerSyncRmrMessage,omitempty"`
+	InteractiveResponseMessage                 *InteractiveResponseMessage   `protobuf:"bytes,48,opt,name=interactiveResponseMessage" json:"interactiveResponseMessage,omitempty"`
+	PollCreationMessage                        *PollCreationMessage          `protobuf:"bytes,49,opt,name=pollCreationMessage" json:"pollCreationMessage,omitempty"`
+	PollUpdateMessage                          *PollUpdateMessage            `protobuf:"bytes,50,opt,name=pollUpdateMessage" json:"pollUpdateMessage,omitempty"`
+}
+
+func (x *Message) Reset() {
+	*x = Message{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[95]
+		mi := &file_binary_proto_def_proto_msgTypes[94]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *Point) String() string {
+func (x *Message) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*Point) ProtoMessage() {}
+func (*Message) ProtoMessage() {}
 
-func (x *Point) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[95]
+func (x *Message) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[94]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -11292,265 +11271,331 @@ func (x *Point) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use Point.ProtoReflect.Descriptor instead.
-func (*Point) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{95}
+// Deprecated: Use Message.ProtoReflect.Descriptor instead.
+func (*Message) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{94}
 }
 
-func (x *Point) GetXDeprecated() int32 {
-	if x != nil && x.XDeprecated != nil {
-		return *x.XDeprecated
+func (x *Message) GetConversation() string {
+	if x != nil && x.Conversation != nil {
+		return *x.Conversation
 	}
-	return 0
+	return ""
 }
 
-func (x *Point) GetYDeprecated() int32 {
-	if x != nil && x.YDeprecated != nil {
-		return *x.YDeprecated
+func (x *Message) GetSenderKeyDistributionMessage() *SenderKeyDistributionMessage {
+	if x != nil {
+		return x.SenderKeyDistributionMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *Point) GetX() float64 {
-	if x != nil && x.X != nil {
-		return *x.X
+func (x *Message) GetImageMessage() *ImageMessage {
+	if x != nil {
+		return x.ImageMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *Point) GetY() float64 {
-	if x != nil && x.Y != nil {
-		return *x.Y
+func (x *Message) GetContactMessage() *ContactMessage {
+	if x != nil {
+		return x.ContactMessage
 	}
-	return 0
+	return nil
 }
 
-type PaymentBackground struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
+func (x *Message) GetLocationMessage() *LocationMessage {
+	if x != nil {
+		return x.LocationMessage
+	}
+	return nil
+}
 
-	Id              *string                                  `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
-	FileLength      *uint64                                  `protobuf:"varint,2,opt,name=fileLength" json:"fileLength,omitempty"`
-	Width           *uint32                                  `protobuf:"varint,3,opt,name=width" json:"width,omitempty"`
-	Height          *uint32                                  `protobuf:"varint,4,opt,name=height" json:"height,omitempty"`
-	Mimetype        *string                                  `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"`
-	PlaceholderArgb *uint32                                  `protobuf:"fixed32,6,opt,name=placeholderArgb" json:"placeholderArgb,omitempty"`
-	TextArgb        *uint32                                  `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"`
-	SubtextArgb     *uint32                                  `protobuf:"fixed32,8,opt,name=subtextArgb" json:"subtextArgb,omitempty"`
-	MediaData       *PBMediaData                             `protobuf:"bytes,9,opt,name=mediaData" json:"mediaData,omitempty"`
-	Type            *PaymentBackground_PaymentBackgroundType `protobuf:"varint,10,opt,name=type,enum=proto.PaymentBackground_PaymentBackgroundType" json:"type,omitempty"`
+func (x *Message) GetExtendedTextMessage() *ExtendedTextMessage {
+	if x != nil {
+		return x.ExtendedTextMessage
+	}
+	return nil
 }
 
-func (x *PaymentBackground) Reset() {
-	*x = PaymentBackground{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[96]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
+func (x *Message) GetDocumentMessage() *DocumentMessage {
+	if x != nil {
+		return x.DocumentMessage
 	}
+	return nil
 }
 
-func (x *PaymentBackground) String() string {
-	return protoimpl.X.MessageStringOf(x)
+func (x *Message) GetAudioMessage() *AudioMessage {
+	if x != nil {
+		return x.AudioMessage
+	}
+	return nil
 }
 
-func (*PaymentBackground) ProtoMessage() {}
+func (x *Message) GetVideoMessage() *VideoMessage {
+	if x != nil {
+		return x.VideoMessage
+	}
+	return nil
+}
 
-func (x *PaymentBackground) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[96]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
+func (x *Message) GetCall() *Call {
+	if x != nil {
+		return x.Call
 	}
-	return mi.MessageOf(x)
+	return nil
 }
 
-// Deprecated: Use PaymentBackground.ProtoReflect.Descriptor instead.
-func (*PaymentBackground) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{96}
+func (x *Message) GetChat() *Chat {
+	if x != nil {
+		return x.Chat
+	}
+	return nil
 }
 
-func (x *PaymentBackground) GetId() string {
-	if x != nil && x.Id != nil {
-		return *x.Id
+func (x *Message) GetProtocolMessage() *ProtocolMessage {
+	if x != nil {
+		return x.ProtocolMessage
 	}
-	return ""
+	return nil
 }
 
-func (x *PaymentBackground) GetFileLength() uint64 {
-	if x != nil && x.FileLength != nil {
-		return *x.FileLength
+func (x *Message) GetContactsArrayMessage() *ContactsArrayMessage {
+	if x != nil {
+		return x.ContactsArrayMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetWidth() uint32 {
-	if x != nil && x.Width != nil {
-		return *x.Width
+func (x *Message) GetHighlyStructuredMessage() *HighlyStructuredMessage {
+	if x != nil {
+		return x.HighlyStructuredMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetHeight() uint32 {
-	if x != nil && x.Height != nil {
-		return *x.Height
+func (x *Message) GetFastRatchetKeySenderKeyDistributionMessage() *SenderKeyDistributionMessage {
+	if x != nil {
+		return x.FastRatchetKeySenderKeyDistributionMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetMimetype() string {
-	if x != nil && x.Mimetype != nil {
-		return *x.Mimetype
+func (x *Message) GetSendPaymentMessage() *SendPaymentMessage {
+	if x != nil {
+		return x.SendPaymentMessage
 	}
-	return ""
+	return nil
 }
 
-func (x *PaymentBackground) GetPlaceholderArgb() uint32 {
-	if x != nil && x.PlaceholderArgb != nil {
-		return *x.PlaceholderArgb
+func (x *Message) GetLiveLocationMessage() *LiveLocationMessage {
+	if x != nil {
+		return x.LiveLocationMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetTextArgb() uint32 {
-	if x != nil && x.TextArgb != nil {
-		return *x.TextArgb
+func (x *Message) GetRequestPaymentMessage() *RequestPaymentMessage {
+	if x != nil {
+		return x.RequestPaymentMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetSubtextArgb() uint32 {
-	if x != nil && x.SubtextArgb != nil {
-		return *x.SubtextArgb
+func (x *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage {
+	if x != nil {
+		return x.DeclinePaymentRequestMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PaymentBackground) GetMediaData() *PBMediaData {
+func (x *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage {
 	if x != nil {
-		return x.MediaData
+		return x.CancelPaymentRequestMessage
 	}
 	return nil
 }
 
-func (x *PaymentBackground) GetType() PaymentBackground_PaymentBackgroundType {
-	if x != nil && x.Type != nil {
-		return *x.Type
+func (x *Message) GetTemplateMessage() *TemplateMessage {
+	if x != nil {
+		return x.TemplateMessage
 	}
-	return PaymentBackground_UNKNOWN
+	return nil
 }
 
-// Renamed from PaymentBackground$MediaData
-type PBMediaData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
+func (x *Message) GetStickerMessage() *StickerMessage {
+	if x != nil {
+		return x.StickerMessage
+	}
+	return nil
+}
 
-	MediaKey          []byte  `protobuf:"bytes,1,opt,name=mediaKey" json:"mediaKey,omitempty"`
-	MediaKeyTimestamp *int64  `protobuf:"varint,2,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
-	FileSha256        []byte  `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
-	FileEncSha256     []byte  `protobuf:"bytes,4,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
-	DirectPath        *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"`
+func (x *Message) GetGroupInviteMessage() *GroupInviteMessage {
+	if x != nil {
+		return x.GroupInviteMessage
+	}
+	return nil
 }
 
-func (x *PBMediaData) Reset() {
-	*x = PBMediaData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[97]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
+func (x *Message) GetTemplateButtonReplyMessage() *TemplateButtonReplyMessage {
+	if x != nil {
+		return x.TemplateButtonReplyMessage
 	}
+	return nil
 }
 
-func (x *PBMediaData) String() string {
-	return protoimpl.X.MessageStringOf(x)
+func (x *Message) GetProductMessage() *ProductMessage {
+	if x != nil {
+		return x.ProductMessage
+	}
+	return nil
 }
 
-func (*PBMediaData) ProtoMessage() {}
+func (x *Message) GetDeviceSentMessage() *DeviceSentMessage {
+	if x != nil {
+		return x.DeviceSentMessage
+	}
+	return nil
+}
 
-func (x *PBMediaData) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[97]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
+func (x *Message) GetMessageContextInfo() *MessageContextInfo {
+	if x != nil {
+		return x.MessageContextInfo
 	}
-	return mi.MessageOf(x)
+	return nil
 }
 
-// Deprecated: Use PBMediaData.ProtoReflect.Descriptor instead.
-func (*PBMediaData) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{97}
+func (x *Message) GetListMessage() *ListMessage {
+	if x != nil {
+		return x.ListMessage
+	}
+	return nil
 }
 
-func (x *PBMediaData) GetMediaKey() []byte {
+func (x *Message) GetViewOnceMessage() *FutureProofMessage {
 	if x != nil {
-		return x.MediaKey
+		return x.ViewOnceMessage
 	}
 	return nil
 }
 
-func (x *PBMediaData) GetMediaKeyTimestamp() int64 {
-	if x != nil && x.MediaKeyTimestamp != nil {
-		return *x.MediaKeyTimestamp
+func (x *Message) GetOrderMessage() *OrderMessage {
+	if x != nil {
+		return x.OrderMessage
+	}
+	return nil
+}
+
+func (x *Message) GetListResponseMessage() *ListResponseMessage {
+	if x != nil {
+		return x.ListResponseMessage
+	}
+	return nil
+}
+
+func (x *Message) GetEphemeralMessage() *FutureProofMessage {
+	if x != nil {
+		return x.EphemeralMessage
+	}
+	return nil
+}
+
+func (x *Message) GetInvoiceMessage() *InvoiceMessage {
+	if x != nil {
+		return x.InvoiceMessage
+	}
+	return nil
+}
+
+func (x *Message) GetButtonsMessage() *ButtonsMessage {
+	if x != nil {
+		return x.ButtonsMessage
+	}
+	return nil
+}
+
+func (x *Message) GetButtonsResponseMessage() *ButtonsResponseMessage {
+	if x != nil {
+		return x.ButtonsResponseMessage
+	}
+	return nil
+}
+
+func (x *Message) GetPaymentInviteMessage() *PaymentInviteMessage {
+	if x != nil {
+		return x.PaymentInviteMessage
+	}
+	return nil
+}
+
+func (x *Message) GetInteractiveMessage() *InteractiveMessage {
+	if x != nil {
+		return x.InteractiveMessage
+	}
+	return nil
+}
+
+func (x *Message) GetReactionMessage() *ReactionMessage {
+	if x != nil {
+		return x.ReactionMessage
+	}
+	return nil
+}
+
+func (x *Message) GetStickerSyncRmrMessage() *StickerSyncRMRMessage {
+	if x != nil {
+		return x.StickerSyncRmrMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *PBMediaData) GetFileSha256() []byte {
+func (x *Message) GetInteractiveResponseMessage() *InteractiveResponseMessage {
 	if x != nil {
-		return x.FileSha256
+		return x.InteractiveResponseMessage
 	}
 	return nil
 }
 
-func (x *PBMediaData) GetFileEncSha256() []byte {
+func (x *Message) GetPollCreationMessage() *PollCreationMessage {
 	if x != nil {
-		return x.FileEncSha256
+		return x.PollCreationMessage
 	}
 	return nil
 }
 
-func (x *PBMediaData) GetDirectPath() string {
-	if x != nil && x.DirectPath != nil {
-		return *x.DirectPath
+func (x *Message) GetPollUpdateMessage() *PollUpdateMessage {
+	if x != nil {
+		return x.PollUpdateMessage
 	}
-	return ""
+	return nil
 }
 
-type Money struct {
+type MessageContextInfo struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Value        *int64  `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
-	Offset       *uint32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
-	CurrencyCode *string `protobuf:"bytes,3,opt,name=currencyCode" json:"currencyCode,omitempty"`
+	DeviceListMetadata        *DeviceListMetadata `protobuf:"bytes,1,opt,name=deviceListMetadata" json:"deviceListMetadata,omitempty"`
+	DeviceListMetadataVersion *int32              `protobuf:"varint,2,opt,name=deviceListMetadataVersion" json:"deviceListMetadataVersion,omitempty"`
 }
 
-func (x *Money) Reset() {
-	*x = Money{}
+func (x *MessageContextInfo) Reset() {
+	*x = MessageContextInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[98]
+		mi := &file_binary_proto_def_proto_msgTypes[95]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *Money) String() string {
+func (x *MessageContextInfo) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*Money) ProtoMessage() {}
+func (*MessageContextInfo) ProtoMessage() {}
 
-func (x *Money) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[98]
+func (x *MessageContextInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[95]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -11561,98 +11606,72 @@ func (x *Money) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use Money.ProtoReflect.Descriptor instead.
-func (*Money) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{98}
+// Deprecated: Use MessageContextInfo.ProtoReflect.Descriptor instead.
+func (*MessageContextInfo) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{95}
 }
 
-func (x *Money) GetValue() int64 {
-	if x != nil && x.Value != nil {
-		return *x.Value
+func (x *MessageContextInfo) GetDeviceListMetadata() *DeviceListMetadata {
+	if x != nil {
+		return x.DeviceListMetadata
 	}
-	return 0
+	return nil
 }
 
-func (x *Money) GetOffset() uint32 {
-	if x != nil && x.Offset != nil {
-		return *x.Offset
+func (x *MessageContextInfo) GetDeviceListMetadataVersion() int32 {
+	if x != nil && x.DeviceListMetadataVersion != nil {
+		return *x.DeviceListMetadataVersion
 	}
 	return 0
 }
 
-func (x *Money) GetCurrencyCode() string {
-	if x != nil && x.CurrencyCode != nil {
-		return *x.CurrencyCode
-	}
-	return ""
-}
-
-type Message struct {
+type VideoMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Conversation                               *string                       `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"`
-	SenderKeyDistributionMessage               *SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=senderKeyDistributionMessage" json:"senderKeyDistributionMessage,omitempty"`
-	ImageMessage                               *ImageMessage                 `protobuf:"bytes,3,opt,name=imageMessage" json:"imageMessage,omitempty"`
-	ContactMessage                             *ContactMessage               `protobuf:"bytes,4,opt,name=contactMessage" json:"contactMessage,omitempty"`
-	LocationMessage                            *LocationMessage              `protobuf:"bytes,5,opt,name=locationMessage" json:"locationMessage,omitempty"`
-	ExtendedTextMessage                        *ExtendedTextMessage          `protobuf:"bytes,6,opt,name=extendedTextMessage" json:"extendedTextMessage,omitempty"`
-	DocumentMessage                            *DocumentMessage              `protobuf:"bytes,7,opt,name=documentMessage" json:"documentMessage,omitempty"`
-	AudioMessage                               *AudioMessage                 `protobuf:"bytes,8,opt,name=audioMessage" json:"audioMessage,omitempty"`
-	VideoMessage                               *VideoMessage                 `protobuf:"bytes,9,opt,name=videoMessage" json:"videoMessage,omitempty"`
-	Call                                       *Call                         `protobuf:"bytes,10,opt,name=call" json:"call,omitempty"`
-	Chat                                       *Chat                         `protobuf:"bytes,11,opt,name=chat" json:"chat,omitempty"`
-	ProtocolMessage                            *ProtocolMessage              `protobuf:"bytes,12,opt,name=protocolMessage" json:"protocolMessage,omitempty"`
-	ContactsArrayMessage                       *ContactsArrayMessage         `protobuf:"bytes,13,opt,name=contactsArrayMessage" json:"contactsArrayMessage,omitempty"`
-	HighlyStructuredMessage                    *HighlyStructuredMessage      `protobuf:"bytes,14,opt,name=highlyStructuredMessage" json:"highlyStructuredMessage,omitempty"`
-	FastRatchetKeySenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,15,opt,name=fastRatchetKeySenderKeyDistributionMessage" json:"fastRatchetKeySenderKeyDistributionMessage,omitempty"`
-	SendPaymentMessage                         *SendPaymentMessage           `protobuf:"bytes,16,opt,name=sendPaymentMessage" json:"sendPaymentMessage,omitempty"`
-	LiveLocationMessage                        *LiveLocationMessage          `protobuf:"bytes,18,opt,name=liveLocationMessage" json:"liveLocationMessage,omitempty"`
-	RequestPaymentMessage                      *RequestPaymentMessage        `protobuf:"bytes,22,opt,name=requestPaymentMessage" json:"requestPaymentMessage,omitempty"`
-	DeclinePaymentRequestMessage               *DeclinePaymentRequestMessage `protobuf:"bytes,23,opt,name=declinePaymentRequestMessage" json:"declinePaymentRequestMessage,omitempty"`
-	CancelPaymentRequestMessage                *CancelPaymentRequestMessage  `protobuf:"bytes,24,opt,name=cancelPaymentRequestMessage" json:"cancelPaymentRequestMessage,omitempty"`
-	TemplateMessage                            *TemplateMessage              `protobuf:"bytes,25,opt,name=templateMessage" json:"templateMessage,omitempty"`
-	StickerMessage                             *StickerMessage               `protobuf:"bytes,26,opt,name=stickerMessage" json:"stickerMessage,omitempty"`
-	GroupInviteMessage                         *GroupInviteMessage           `protobuf:"bytes,28,opt,name=groupInviteMessage" json:"groupInviteMessage,omitempty"`
-	TemplateButtonReplyMessage                 *TemplateButtonReplyMessage   `protobuf:"bytes,29,opt,name=templateButtonReplyMessage" json:"templateButtonReplyMessage,omitempty"`
-	ProductMessage                             *ProductMessage               `protobuf:"bytes,30,opt,name=productMessage" json:"productMessage,omitempty"`
-	DeviceSentMessage                          *DeviceSentMessage            `protobuf:"bytes,31,opt,name=deviceSentMessage" json:"deviceSentMessage,omitempty"`
-	MessageContextInfo                         *MessageContextInfo           `protobuf:"bytes,35,opt,name=messageContextInfo" json:"messageContextInfo,omitempty"`
-	ListMessage                                *ListMessage                  `protobuf:"bytes,36,opt,name=listMessage" json:"listMessage,omitempty"`
-	ViewOnceMessage                            *FutureProofMessage           `protobuf:"bytes,37,opt,name=viewOnceMessage" json:"viewOnceMessage,omitempty"`
-	OrderMessage                               *OrderMessage                 `protobuf:"bytes,38,opt,name=orderMessage" json:"orderMessage,omitempty"`
-	ListResponseMessage                        *ListResponseMessage          `protobuf:"bytes,39,opt,name=listResponseMessage" json:"listResponseMessage,omitempty"`
-	EphemeralMessage                           *FutureProofMessage           `protobuf:"bytes,40,opt,name=ephemeralMessage" json:"ephemeralMessage,omitempty"`
-	InvoiceMessage                             *InvoiceMessage               `protobuf:"bytes,41,opt,name=invoiceMessage" json:"invoiceMessage,omitempty"`
-	ButtonsMessage                             *ButtonsMessage               `protobuf:"bytes,42,opt,name=buttonsMessage" json:"buttonsMessage,omitempty"`
-	ButtonsResponseMessage                     *ButtonsResponseMessage       `protobuf:"bytes,43,opt,name=buttonsResponseMessage" json:"buttonsResponseMessage,omitempty"`
-	PaymentInviteMessage                       *PaymentInviteMessage         `protobuf:"bytes,44,opt,name=paymentInviteMessage" json:"paymentInviteMessage,omitempty"`
-	InteractiveMessage                         *InteractiveMessage           `protobuf:"bytes,45,opt,name=interactiveMessage" json:"interactiveMessage,omitempty"`
-	ReactionMessage                            *ReactionMessage              `protobuf:"bytes,46,opt,name=reactionMessage" json:"reactionMessage,omitempty"`
-	StickerSyncRmrMessage                      *StickerSyncRMRMessage        `protobuf:"bytes,47,opt,name=stickerSyncRmrMessage" json:"stickerSyncRmrMessage,omitempty"`
-	InteractiveResponseMessage                 *InteractiveResponseMessage   `protobuf:"bytes,48,opt,name=interactiveResponseMessage" json:"interactiveResponseMessage,omitempty"`
-	PollCreationMessage                        *PollCreationMessage          `protobuf:"bytes,49,opt,name=pollCreationMessage" json:"pollCreationMessage,omitempty"`
-	PollUpdateMessage                          *PollUpdateMessage            `protobuf:"bytes,50,opt,name=pollUpdateMessage" json:"pollUpdateMessage,omitempty"`
+	Url                    *string                               `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	Mimetype               *string                               `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
+	FileSha256             []byte                                `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
+	FileLength             *uint64                               `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"`
+	Seconds                *uint32                               `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"`
+	MediaKey               []byte                                `protobuf:"bytes,6,opt,name=mediaKey" json:"mediaKey,omitempty"`
+	Caption                *string                               `protobuf:"bytes,7,opt,name=caption" json:"caption,omitempty"`
+	GifPlayback            *bool                                 `protobuf:"varint,8,opt,name=gifPlayback" json:"gifPlayback,omitempty"`
+	Height                 *uint32                               `protobuf:"varint,9,opt,name=height" json:"height,omitempty"`
+	Width                  *uint32                               `protobuf:"varint,10,opt,name=width" json:"width,omitempty"`
+	FileEncSha256          []byte                                `protobuf:"bytes,11,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+	InteractiveAnnotations []*InteractiveAnnotation              `protobuf:"bytes,12,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"`
+	DirectPath             *string                               `protobuf:"bytes,13,opt,name=directPath" json:"directPath,omitempty"`
+	MediaKeyTimestamp      *int64                                `protobuf:"varint,14,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+	JpegThumbnail          []byte                                `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+	ContextInfo            *ContextInfo                          `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	StreamingSidecar       []byte                                `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"`
+	GifAttribution         *VideoMessage_VideoMessageAttribution `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_VideoMessageAttribution" json:"gifAttribution,omitempty"`
+	ViewOnce               *bool                                 `protobuf:"varint,20,opt,name=viewOnce" json:"viewOnce,omitempty"`
+	ThumbnailDirectPath    *string                               `protobuf:"bytes,21,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
+	ThumbnailSha256        []byte                                `protobuf:"bytes,22,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
+	ThumbnailEncSha256     []byte                                `protobuf:"bytes,23,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
+	StaticUrl              *string                               `protobuf:"bytes,24,opt,name=staticUrl" json:"staticUrl,omitempty"`
 }
 
-func (x *Message) Reset() {
-	*x = Message{}
+func (x *VideoMessage) Reset() {
+	*x = VideoMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[99]
+		mi := &file_binary_proto_def_proto_msgTypes[96]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *Message) String() string {
+func (x *VideoMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*Message) ProtoMessage() {}
+func (*VideoMessage) ProtoMessage() {}
 
-func (x *Message) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[99]
+func (x *VideoMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[96]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -11663,407 +11682,456 @@ func (x *Message) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use Message.ProtoReflect.Descriptor instead.
-func (*Message) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{99}
+// Deprecated: Use VideoMessage.ProtoReflect.Descriptor instead.
+func (*VideoMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{96}
 }
 
-func (x *Message) GetConversation() string {
-	if x != nil && x.Conversation != nil {
-		return *x.Conversation
+func (x *VideoMessage) GetUrl() string {
+	if x != nil && x.Url != nil {
+		return *x.Url
 	}
 	return ""
 }
 
-func (x *Message) GetSenderKeyDistributionMessage() *SenderKeyDistributionMessage {
-	if x != nil {
-		return x.SenderKeyDistributionMessage
-	}
-	return nil
-}
-
-func (x *Message) GetImageMessage() *ImageMessage {
-	if x != nil {
-		return x.ImageMessage
+func (x *VideoMessage) GetMimetype() string {
+	if x != nil && x.Mimetype != nil {
+		return *x.Mimetype
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetContactMessage() *ContactMessage {
+func (x *VideoMessage) GetFileSha256() []byte {
 	if x != nil {
-		return x.ContactMessage
+		return x.FileSha256
 	}
 	return nil
 }
 
-func (x *Message) GetLocationMessage() *LocationMessage {
-	if x != nil {
-		return x.LocationMessage
+func (x *VideoMessage) GetFileLength() uint64 {
+	if x != nil && x.FileLength != nil {
+		return *x.FileLength
 	}
-	return nil
+	return 0
 }
 
-func (x *Message) GetExtendedTextMessage() *ExtendedTextMessage {
-	if x != nil {
-		return x.ExtendedTextMessage
+func (x *VideoMessage) GetSeconds() uint32 {
+	if x != nil && x.Seconds != nil {
+		return *x.Seconds
 	}
-	return nil
+	return 0
 }
 
-func (x *Message) GetDocumentMessage() *DocumentMessage {
+func (x *VideoMessage) GetMediaKey() []byte {
 	if x != nil {
-		return x.DocumentMessage
+		return x.MediaKey
 	}
 	return nil
 }
 
-func (x *Message) GetAudioMessage() *AudioMessage {
-	if x != nil {
-		return x.AudioMessage
+func (x *VideoMessage) GetCaption() string {
+	if x != nil && x.Caption != nil {
+		return *x.Caption
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetVideoMessage() *VideoMessage {
-	if x != nil {
-		return x.VideoMessage
+func (x *VideoMessage) GetGifPlayback() bool {
+	if x != nil && x.GifPlayback != nil {
+		return *x.GifPlayback
 	}
-	return nil
+	return false
 }
 
-func (x *Message) GetCall() *Call {
-	if x != nil {
-		return x.Call
+func (x *VideoMessage) GetHeight() uint32 {
+	if x != nil && x.Height != nil {
+		return *x.Height
 	}
-	return nil
+	return 0
 }
 
-func (x *Message) GetChat() *Chat {
-	if x != nil {
-		return x.Chat
+func (x *VideoMessage) GetWidth() uint32 {
+	if x != nil && x.Width != nil {
+		return *x.Width
 	}
-	return nil
+	return 0
 }
 
-func (x *Message) GetProtocolMessage() *ProtocolMessage {
+func (x *VideoMessage) GetFileEncSha256() []byte {
 	if x != nil {
-		return x.ProtocolMessage
+		return x.FileEncSha256
 	}
 	return nil
 }
 
-func (x *Message) GetContactsArrayMessage() *ContactsArrayMessage {
+func (x *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation {
 	if x != nil {
-		return x.ContactsArrayMessage
+		return x.InteractiveAnnotations
 	}
 	return nil
 }
 
-func (x *Message) GetHighlyStructuredMessage() *HighlyStructuredMessage {
-	if x != nil {
-		return x.HighlyStructuredMessage
+func (x *VideoMessage) GetDirectPath() string {
+	if x != nil && x.DirectPath != nil {
+		return *x.DirectPath
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetFastRatchetKeySenderKeyDistributionMessage() *SenderKeyDistributionMessage {
-	if x != nil {
-		return x.FastRatchetKeySenderKeyDistributionMessage
+func (x *VideoMessage) GetMediaKeyTimestamp() int64 {
+	if x != nil && x.MediaKeyTimestamp != nil {
+		return *x.MediaKeyTimestamp
 	}
-	return nil
+	return 0
 }
 
-func (x *Message) GetSendPaymentMessage() *SendPaymentMessage {
+func (x *VideoMessage) GetJpegThumbnail() []byte {
 	if x != nil {
-		return x.SendPaymentMessage
+		return x.JpegThumbnail
 	}
 	return nil
 }
 
-func (x *Message) GetLiveLocationMessage() *LiveLocationMessage {
+func (x *VideoMessage) GetContextInfo() *ContextInfo {
 	if x != nil {
-		return x.LiveLocationMessage
+		return x.ContextInfo
 	}
 	return nil
 }
 
-func (x *Message) GetRequestPaymentMessage() *RequestPaymentMessage {
+func (x *VideoMessage) GetStreamingSidecar() []byte {
 	if x != nil {
-		return x.RequestPaymentMessage
+		return x.StreamingSidecar
 	}
 	return nil
 }
 
-func (x *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage {
-	if x != nil {
-		return x.DeclinePaymentRequestMessage
+func (x *VideoMessage) GetGifAttribution() VideoMessage_VideoMessageAttribution {
+	if x != nil && x.GifAttribution != nil {
+		return *x.GifAttribution
 	}
-	return nil
+	return VideoMessage_NONE
 }
 
-func (x *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage {
-	if x != nil {
-		return x.CancelPaymentRequestMessage
+func (x *VideoMessage) GetViewOnce() bool {
+	if x != nil && x.ViewOnce != nil {
+		return *x.ViewOnce
 	}
-	return nil
+	return false
 }
 
-func (x *Message) GetTemplateMessage() *TemplateMessage {
-	if x != nil {
-		return x.TemplateMessage
+func (x *VideoMessage) GetThumbnailDirectPath() string {
+	if x != nil && x.ThumbnailDirectPath != nil {
+		return *x.ThumbnailDirectPath
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetStickerMessage() *StickerMessage {
+func (x *VideoMessage) GetThumbnailSha256() []byte {
 	if x != nil {
-		return x.StickerMessage
+		return x.ThumbnailSha256
 	}
 	return nil
 }
 
-func (x *Message) GetGroupInviteMessage() *GroupInviteMessage {
+func (x *VideoMessage) GetThumbnailEncSha256() []byte {
 	if x != nil {
-		return x.GroupInviteMessage
+		return x.ThumbnailEncSha256
 	}
 	return nil
 }
 
-func (x *Message) GetTemplateButtonReplyMessage() *TemplateButtonReplyMessage {
-	if x != nil {
-		return x.TemplateButtonReplyMessage
+func (x *VideoMessage) GetStaticUrl() string {
+	if x != nil && x.StaticUrl != nil {
+		return *x.StaticUrl
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetProductMessage() *ProductMessage {
-	if x != nil {
-		return x.ProductMessage
-	}
-	return nil
+type TemplateMessage struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	ContextInfo      *ContextInfo             `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	HydratedTemplate *HydratedFourRowTemplate `protobuf:"bytes,4,opt,name=hydratedTemplate" json:"hydratedTemplate,omitempty"`
+	// Types that are assignable to Format:
+	//	*TemplateMessage_FourRowTemplate
+	//	*TemplateMessage_HydratedFourRowTemplate
+	Format isTemplateMessage_Format `protobuf_oneof:"format"`
 }
 
-func (x *Message) GetDeviceSentMessage() *DeviceSentMessage {
-	if x != nil {
-		return x.DeviceSentMessage
+func (x *TemplateMessage) Reset() {
+	*x = TemplateMessage{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[97]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return nil
 }
 
-func (x *Message) GetMessageContextInfo() *MessageContextInfo {
-	if x != nil {
-		return x.MessageContextInfo
+func (x *TemplateMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TemplateMessage) ProtoMessage() {}
+
+func (x *TemplateMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[97]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return nil
+	return mi.MessageOf(x)
 }
 
-func (x *Message) GetListMessage() *ListMessage {
+// Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead.
+func (*TemplateMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{97}
+}
+
+func (x *TemplateMessage) GetContextInfo() *ContextInfo {
 	if x != nil {
-		return x.ListMessage
+		return x.ContextInfo
 	}
 	return nil
 }
 
-func (x *Message) GetViewOnceMessage() *FutureProofMessage {
+func (x *TemplateMessage) GetHydratedTemplate() *HydratedFourRowTemplate {
 	if x != nil {
-		return x.ViewOnceMessage
+		return x.HydratedTemplate
 	}
 	return nil
 }
 
-func (x *Message) GetOrderMessage() *OrderMessage {
-	if x != nil {
-		return x.OrderMessage
+func (m *TemplateMessage) GetFormat() isTemplateMessage_Format {
+	if m != nil {
+		return m.Format
 	}
 	return nil
 }
 
-func (x *Message) GetListResponseMessage() *ListResponseMessage {
-	if x != nil {
-		return x.ListResponseMessage
+func (x *TemplateMessage) GetFourRowTemplate() *FourRowTemplate {
+	if x, ok := x.GetFormat().(*TemplateMessage_FourRowTemplate); ok {
+		return x.FourRowTemplate
 	}
 	return nil
 }
 
-func (x *Message) GetEphemeralMessage() *FutureProofMessage {
-	if x != nil {
-		return x.EphemeralMessage
+func (x *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate {
+	if x, ok := x.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok {
+		return x.HydratedFourRowTemplate
 	}
 	return nil
 }
 
-func (x *Message) GetInvoiceMessage() *InvoiceMessage {
-	if x != nil {
-		return x.InvoiceMessage
+type isTemplateMessage_Format interface {
+	isTemplateMessage_Format()
+}
+
+type TemplateMessage_FourRowTemplate struct {
+	FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"`
+}
+
+type TemplateMessage_HydratedFourRowTemplate struct {
+	HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"`
+}
+
+func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {}
+
+func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {}
+
+type HydratedFourRowTemplate struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	HydratedContentText *string                   `protobuf:"bytes,6,opt,name=hydratedContentText" json:"hydratedContentText,omitempty"`
+	HydratedFooterText  *string                   `protobuf:"bytes,7,opt,name=hydratedFooterText" json:"hydratedFooterText,omitempty"`
+	HydratedButtons     []*HydratedTemplateButton `protobuf:"bytes,8,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"`
+	TemplateId          *string                   `protobuf:"bytes,9,opt,name=templateId" json:"templateId,omitempty"`
+	// Types that are assignable to Title:
+	//	*HydratedFourRowTemplate_DocumentMessage
+	//	*HydratedFourRowTemplate_HydratedTitleText
+	//	*HydratedFourRowTemplate_ImageMessage
+	//	*HydratedFourRowTemplate_VideoMessage
+	//	*HydratedFourRowTemplate_LocationMessage
+	Title isHydratedFourRowTemplate_Title `protobuf_oneof:"title"`
+}
+
+func (x *HydratedFourRowTemplate) Reset() {
+	*x = HydratedFourRowTemplate{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[98]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return nil
 }
 
-func (x *Message) GetButtonsMessage() *ButtonsMessage {
-	if x != nil {
-		return x.ButtonsMessage
+func (x *HydratedFourRowTemplate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedFourRowTemplate) ProtoMessage() {}
+
+func (x *HydratedFourRowTemplate) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[98]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return nil
+	return mi.MessageOf(x)
 }
 
-func (x *Message) GetButtonsResponseMessage() *ButtonsResponseMessage {
-	if x != nil {
-		return x.ButtonsResponseMessage
+// Deprecated: Use HydratedFourRowTemplate.ProtoReflect.Descriptor instead.
+func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{98}
+}
+
+func (x *HydratedFourRowTemplate) GetHydratedContentText() string {
+	if x != nil && x.HydratedContentText != nil {
+		return *x.HydratedContentText
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetPaymentInviteMessage() *PaymentInviteMessage {
-	if x != nil {
-		return x.PaymentInviteMessage
+func (x *HydratedFourRowTemplate) GetHydratedFooterText() string {
+	if x != nil && x.HydratedFooterText != nil {
+		return *x.HydratedFooterText
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetInteractiveMessage() *InteractiveMessage {
+func (x *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton {
 	if x != nil {
-		return x.InteractiveMessage
+		return x.HydratedButtons
 	}
 	return nil
 }
 
-func (x *Message) GetReactionMessage() *ReactionMessage {
-	if x != nil {
-		return x.ReactionMessage
+func (x *HydratedFourRowTemplate) GetTemplateId() string {
+	if x != nil && x.TemplateId != nil {
+		return *x.TemplateId
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetStickerSyncRmrMessage() *StickerSyncRMRMessage {
-	if x != nil {
-		return x.StickerSyncRmrMessage
+func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title {
+	if m != nil {
+		return m.Title
 	}
 	return nil
 }
 
-func (x *Message) GetInteractiveResponseMessage() *InteractiveResponseMessage {
-	if x != nil {
-		return x.InteractiveResponseMessage
+func (x *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage {
+	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok {
+		return x.DocumentMessage
 	}
 	return nil
 }
 
-func (x *Message) GetPollCreationMessage() *PollCreationMessage {
-	if x != nil {
-		return x.PollCreationMessage
+func (x *HydratedFourRowTemplate) GetHydratedTitleText() string {
+	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok {
+		return x.HydratedTitleText
 	}
-	return nil
+	return ""
 }
 
-func (x *Message) GetPollUpdateMessage() *PollUpdateMessage {
-	if x != nil {
-		return x.PollUpdateMessage
+func (x *HydratedFourRowTemplate) GetImageMessage() *ImageMessage {
+	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok {
+		return x.ImageMessage
 	}
 	return nil
 }
 
-type MessageContextInfo struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	DeviceListMetadata        *DeviceListMetadata `protobuf:"bytes,1,opt,name=deviceListMetadata" json:"deviceListMetadata,omitempty"`
-	DeviceListMetadataVersion *int32              `protobuf:"varint,2,opt,name=deviceListMetadataVersion" json:"deviceListMetadataVersion,omitempty"`
+func (x *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage {
+	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok {
+		return x.VideoMessage
+	}
+	return nil
 }
 
-func (x *MessageContextInfo) Reset() {
-	*x = MessageContextInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[100]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
+func (x *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage {
+	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok {
+		return x.LocationMessage
 	}
+	return nil
 }
 
-func (x *MessageContextInfo) String() string {
-	return protoimpl.X.MessageStringOf(x)
+type isHydratedFourRowTemplate_Title interface {
+	isHydratedFourRowTemplate_Title()
 }
 
-func (*MessageContextInfo) ProtoMessage() {}
+type HydratedFourRowTemplate_DocumentMessage struct {
+	DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
+}
 
-func (x *MessageContextInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[100]
-	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)
+type HydratedFourRowTemplate_HydratedTitleText struct {
+	HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"`
 }
 
-// Deprecated: Use MessageContextInfo.ProtoReflect.Descriptor instead.
-func (*MessageContextInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{100}
+type HydratedFourRowTemplate_ImageMessage struct {
+	ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
 }
 
-func (x *MessageContextInfo) GetDeviceListMetadata() *DeviceListMetadata {
-	if x != nil {
-		return x.DeviceListMetadata
-	}
-	return nil
+type HydratedFourRowTemplate_VideoMessage struct {
+	VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
 }
 
-func (x *MessageContextInfo) GetDeviceListMetadataVersion() int32 {
-	if x != nil && x.DeviceListMetadataVersion != nil {
-		return *x.DeviceListMetadataVersion
-	}
-	return 0
+type HydratedFourRowTemplate_LocationMessage struct {
+	LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
 }
 
-type VideoMessage struct {
+func (*HydratedFourRowTemplate_DocumentMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_HydratedTitleText) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_ImageMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_VideoMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_LocationMessage) isHydratedFourRowTemplate_Title() {}
+
+type FourRowTemplate struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Url                    *string                               `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
-	Mimetype               *string                               `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
-	FileSha256             []byte                                `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
-	FileLength             *uint64                               `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"`
-	Seconds                *uint32                               `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"`
-	MediaKey               []byte                                `protobuf:"bytes,6,opt,name=mediaKey" json:"mediaKey,omitempty"`
-	Caption                *string                               `protobuf:"bytes,7,opt,name=caption" json:"caption,omitempty"`
-	GifPlayback            *bool                                 `protobuf:"varint,8,opt,name=gifPlayback" json:"gifPlayback,omitempty"`
-	Height                 *uint32                               `protobuf:"varint,9,opt,name=height" json:"height,omitempty"`
-	Width                  *uint32                               `protobuf:"varint,10,opt,name=width" json:"width,omitempty"`
-	FileEncSha256          []byte                                `protobuf:"bytes,11,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
-	InteractiveAnnotations []*InteractiveAnnotation              `protobuf:"bytes,12,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"`
-	DirectPath             *string                               `protobuf:"bytes,13,opt,name=directPath" json:"directPath,omitempty"`
-	MediaKeyTimestamp      *int64                                `protobuf:"varint,14,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
-	JpegThumbnail          []byte                                `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
-	ContextInfo            *ContextInfo                          `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
-	StreamingSidecar       []byte                                `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"`
-	GifAttribution         *VideoMessage_VideoMessageAttribution `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_VideoMessageAttribution" json:"gifAttribution,omitempty"`
-	ViewOnce               *bool                                 `protobuf:"varint,20,opt,name=viewOnce" json:"viewOnce,omitempty"`
-	ThumbnailDirectPath    *string                               `protobuf:"bytes,21,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
-	ThumbnailSha256        []byte                                `protobuf:"bytes,22,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
-	ThumbnailEncSha256     []byte                                `protobuf:"bytes,23,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
-	StaticUrl              *string                               `protobuf:"bytes,24,opt,name=staticUrl" json:"staticUrl,omitempty"`
+	Content *HighlyStructuredMessage `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"`
+	Footer  *HighlyStructuredMessage `protobuf:"bytes,7,opt,name=footer" json:"footer,omitempty"`
+	Buttons []*TemplateButton        `protobuf:"bytes,8,rep,name=buttons" json:"buttons,omitempty"`
+	// Types that are assignable to Title:
+	//	*FourRowTemplate_DocumentMessage
+	//	*FourRowTemplate_HighlyStructuredMessage
+	//	*FourRowTemplate_ImageMessage
+	//	*FourRowTemplate_VideoMessage
+	//	*FourRowTemplate_LocationMessage
+	Title isFourRowTemplate_Title `protobuf_oneof:"title"`
 }
 
-func (x *VideoMessage) Reset() {
-	*x = VideoMessage{}
+func (x *FourRowTemplate) Reset() {
+	*x = FourRowTemplate{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[101]
+		mi := &file_binary_proto_def_proto_msgTypes[99]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *VideoMessage) String() string {
+func (x *FourRowTemplate) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*VideoMessage) ProtoMessage() {}
+func (*FourRowTemplate) ProtoMessage() {}
 
-func (x *VideoMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[101]
+func (x *FourRowTemplate) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[99]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -12074,202 +12142,206 @@ func (x *VideoMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use VideoMessage.ProtoReflect.Descriptor instead.
-func (*VideoMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{101}
+// Deprecated: Use FourRowTemplate.ProtoReflect.Descriptor instead.
+func (*FourRowTemplate) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{99}
 }
 
-func (x *VideoMessage) GetUrl() string {
-	if x != nil && x.Url != nil {
-		return *x.Url
+func (x *FourRowTemplate) GetContent() *HighlyStructuredMessage {
+	if x != nil {
+		return x.Content
 	}
-	return ""
+	return nil
 }
 
-func (x *VideoMessage) GetMimetype() string {
-	if x != nil && x.Mimetype != nil {
-		return *x.Mimetype
+func (x *FourRowTemplate) GetFooter() *HighlyStructuredMessage {
+	if x != nil {
+		return x.Footer
 	}
-	return ""
+	return nil
 }
 
-func (x *VideoMessage) GetFileSha256() []byte {
+func (x *FourRowTemplate) GetButtons() []*TemplateButton {
 	if x != nil {
-		return x.FileSha256
+		return x.Buttons
 	}
 	return nil
 }
 
-func (x *VideoMessage) GetFileLength() uint64 {
-	if x != nil && x.FileLength != nil {
-		return *x.FileLength
+func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title {
+	if m != nil {
+		return m.Title
 	}
-	return 0
+	return nil
 }
 
-func (x *VideoMessage) GetSeconds() uint32 {
-	if x != nil && x.Seconds != nil {
-		return *x.Seconds
+func (x *FourRowTemplate) GetDocumentMessage() *DocumentMessage {
+	if x, ok := x.GetTitle().(*FourRowTemplate_DocumentMessage); ok {
+		return x.DocumentMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *VideoMessage) GetMediaKey() []byte {
-	if x != nil {
-		return x.MediaKey
+func (x *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage {
+	if x, ok := x.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok {
+		return x.HighlyStructuredMessage
 	}
 	return nil
 }
 
-func (x *VideoMessage) GetCaption() string {
-	if x != nil && x.Caption != nil {
-		return *x.Caption
+func (x *FourRowTemplate) GetImageMessage() *ImageMessage {
+	if x, ok := x.GetTitle().(*FourRowTemplate_ImageMessage); ok {
+		return x.ImageMessage
 	}
-	return ""
+	return nil
 }
 
-func (x *VideoMessage) GetGifPlayback() bool {
-	if x != nil && x.GifPlayback != nil {
-		return *x.GifPlayback
+func (x *FourRowTemplate) GetVideoMessage() *VideoMessage {
+	if x, ok := x.GetTitle().(*FourRowTemplate_VideoMessage); ok {
+		return x.VideoMessage
 	}
-	return false
+	return nil
 }
 
-func (x *VideoMessage) GetHeight() uint32 {
-	if x != nil && x.Height != nil {
-		return *x.Height
+func (x *FourRowTemplate) GetLocationMessage() *LocationMessage {
+	if x, ok := x.GetTitle().(*FourRowTemplate_LocationMessage); ok {
+		return x.LocationMessage
 	}
-	return 0
+	return nil
 }
 
-func (x *VideoMessage) GetWidth() uint32 {
-	if x != nil && x.Width != nil {
-		return *x.Width
-	}
-	return 0
+type isFourRowTemplate_Title interface {
+	isFourRowTemplate_Title()
 }
 
-func (x *VideoMessage) GetFileEncSha256() []byte {
-	if x != nil {
-		return x.FileEncSha256
-	}
-	return nil
+type FourRowTemplate_DocumentMessage struct {
+	DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
 }
 
-func (x *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation {
-	if x != nil {
-		return x.InteractiveAnnotations
-	}
-	return nil
+type FourRowTemplate_HighlyStructuredMessage struct {
+	HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"`
 }
 
-func (x *VideoMessage) GetDirectPath() string {
-	if x != nil && x.DirectPath != nil {
-		return *x.DirectPath
-	}
-	return ""
+type FourRowTemplate_ImageMessage struct {
+	ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
 }
 
-func (x *VideoMessage) GetMediaKeyTimestamp() int64 {
-	if x != nil && x.MediaKeyTimestamp != nil {
-		return *x.MediaKeyTimestamp
-	}
-	return 0
+type FourRowTemplate_VideoMessage struct {
+	VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
 }
 
-func (x *VideoMessage) GetJpegThumbnail() []byte {
-	if x != nil {
-		return x.JpegThumbnail
-	}
-	return nil
+type FourRowTemplate_LocationMessage struct {
+	LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
 }
 
-func (x *VideoMessage) GetContextInfo() *ContextInfo {
-	if x != nil {
-		return x.ContextInfo
+func (*FourRowTemplate_DocumentMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_HighlyStructuredMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_ImageMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_VideoMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_LocationMessage) isFourRowTemplate_Title() {}
+
+type TemplateButtonReplyMessage struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	SelectedId          *string      `protobuf:"bytes,1,opt,name=selectedId" json:"selectedId,omitempty"`
+	SelectedDisplayText *string      `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"`
+	ContextInfo         *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
+	SelectedIndex       *uint32      `protobuf:"varint,4,opt,name=selectedIndex" json:"selectedIndex,omitempty"`
+}
+
+func (x *TemplateButtonReplyMessage) Reset() {
+	*x = TemplateButtonReplyMessage{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[100]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return nil
 }
 
-func (x *VideoMessage) GetStreamingSidecar() []byte {
-	if x != nil {
-		return x.StreamingSidecar
-	}
-	return nil
+func (x *TemplateButtonReplyMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
 }
 
-func (x *VideoMessage) GetGifAttribution() VideoMessage_VideoMessageAttribution {
-	if x != nil && x.GifAttribution != nil {
-		return *x.GifAttribution
+func (*TemplateButtonReplyMessage) ProtoMessage() {}
+
+func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[100]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return VideoMessage_NONE
+	return mi.MessageOf(x)
 }
 
-func (x *VideoMessage) GetViewOnce() bool {
-	if x != nil && x.ViewOnce != nil {
-		return *x.ViewOnce
-	}
-	return false
+// Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead.
+func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{100}
 }
 
-func (x *VideoMessage) GetThumbnailDirectPath() string {
-	if x != nil && x.ThumbnailDirectPath != nil {
-		return *x.ThumbnailDirectPath
+func (x *TemplateButtonReplyMessage) GetSelectedId() string {
+	if x != nil && x.SelectedId != nil {
+		return *x.SelectedId
 	}
 	return ""
 }
 
-func (x *VideoMessage) GetThumbnailSha256() []byte {
-	if x != nil {
-		return x.ThumbnailSha256
+func (x *TemplateButtonReplyMessage) GetSelectedDisplayText() string {
+	if x != nil && x.SelectedDisplayText != nil {
+		return *x.SelectedDisplayText
 	}
-	return nil
+	return ""
 }
 
-func (x *VideoMessage) GetThumbnailEncSha256() []byte {
+func (x *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo {
 	if x != nil {
-		return x.ThumbnailEncSha256
+		return x.ContextInfo
 	}
 	return nil
 }
 
-func (x *VideoMessage) GetStaticUrl() string {
-	if x != nil && x.StaticUrl != nil {
-		return *x.StaticUrl
+func (x *TemplateButtonReplyMessage) GetSelectedIndex() uint32 {
+	if x != nil && x.SelectedIndex != nil {
+		return *x.SelectedIndex
 	}
-	return ""
+	return 0
 }
 
-type TemplateMessage struct {
+type StickerSyncRMRMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	ContextInfo      *ContextInfo             `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
-	HydratedTemplate *HydratedFourRowTemplate `protobuf:"bytes,4,opt,name=hydratedTemplate" json:"hydratedTemplate,omitempty"`
-	// Types that are assignable to Format:
-	//	*TemplateMessage_FourRowTemplate
-	//	*TemplateMessage_HydratedFourRowTemplate
-	Format isTemplateMessage_Format `protobuf_oneof:"format"`
+	Filehash         []string `protobuf:"bytes,1,rep,name=filehash" json:"filehash,omitempty"`
+	RmrSource        *string  `protobuf:"bytes,2,opt,name=rmrSource" json:"rmrSource,omitempty"`
+	RequestTimestamp *int64   `protobuf:"varint,3,opt,name=requestTimestamp" json:"requestTimestamp,omitempty"`
 }
 
-func (x *TemplateMessage) Reset() {
-	*x = TemplateMessage{}
+func (x *StickerSyncRMRMessage) Reset() {
+	*x = StickerSyncRMRMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[102]
+		mi := &file_binary_proto_def_proto_msgTypes[101]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *TemplateMessage) String() string {
+func (x *StickerSyncRMRMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*TemplateMessage) ProtoMessage() {}
+func (*StickerSyncRMRMessage) ProtoMessage() {}
 
-func (x *TemplateMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[102]
+func (x *StickerSyncRMRMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[101]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -12280,97 +12352,71 @@ func (x *TemplateMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead.
-func (*TemplateMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{102}
-}
-
-func (x *TemplateMessage) GetContextInfo() *ContextInfo {
-	if x != nil {
-		return x.ContextInfo
-	}
-	return nil
+// Deprecated: Use StickerSyncRMRMessage.ProtoReflect.Descriptor instead.
+func (*StickerSyncRMRMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{101}
 }
 
-func (x *TemplateMessage) GetHydratedTemplate() *HydratedFourRowTemplate {
+func (x *StickerSyncRMRMessage) GetFilehash() []string {
 	if x != nil {
-		return x.HydratedTemplate
-	}
-	return nil
-}
-
-func (m *TemplateMessage) GetFormat() isTemplateMessage_Format {
-	if m != nil {
-		return m.Format
+		return x.Filehash
 	}
 	return nil
 }
 
-func (x *TemplateMessage) GetFourRowTemplate() *FourRowTemplate {
-	if x, ok := x.GetFormat().(*TemplateMessage_FourRowTemplate); ok {
-		return x.FourRowTemplate
+func (x *StickerSyncRMRMessage) GetRmrSource() string {
+	if x != nil && x.RmrSource != nil {
+		return *x.RmrSource
 	}
-	return nil
+	return ""
 }
 
-func (x *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate {
-	if x, ok := x.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok {
-		return x.HydratedFourRowTemplate
+func (x *StickerSyncRMRMessage) GetRequestTimestamp() int64 {
+	if x != nil && x.RequestTimestamp != nil {
+		return *x.RequestTimestamp
 	}
-	return nil
-}
-
-type isTemplateMessage_Format interface {
-	isTemplateMessage_Format()
-}
-
-type TemplateMessage_FourRowTemplate struct {
-	FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"`
-}
-
-type TemplateMessage_HydratedFourRowTemplate struct {
-	HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"`
+	return 0
 }
 
-func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {}
-
-func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {}
-
-type HydratedFourRowTemplate struct {
+type StickerMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	HydratedContentText *string                   `protobuf:"bytes,6,opt,name=hydratedContentText" json:"hydratedContentText,omitempty"`
-	HydratedFooterText  *string                   `protobuf:"bytes,7,opt,name=hydratedFooterText" json:"hydratedFooterText,omitempty"`
-	HydratedButtons     []*HydratedTemplateButton `protobuf:"bytes,8,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"`
-	TemplateId          *string                   `protobuf:"bytes,9,opt,name=templateId" json:"templateId,omitempty"`
-	// Types that are assignable to Title:
-	//	*HydratedFourRowTemplate_DocumentMessage
-	//	*HydratedFourRowTemplate_HydratedTitleText
-	//	*HydratedFourRowTemplate_ImageMessage
-	//	*HydratedFourRowTemplate_VideoMessage
-	//	*HydratedFourRowTemplate_LocationMessage
-	Title isHydratedFourRowTemplate_Title `protobuf_oneof:"title"`
+	Url               *string      `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+	FileSha256        []byte       `protobuf:"bytes,2,opt,name=fileSha256" json:"fileSha256,omitempty"`
+	FileEncSha256     []byte       `protobuf:"bytes,3,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+	MediaKey          []byte       `protobuf:"bytes,4,opt,name=mediaKey" json:"mediaKey,omitempty"`
+	Mimetype          *string      `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"`
+	Height            *uint32      `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
+	Width             *uint32      `protobuf:"varint,7,opt,name=width" json:"width,omitempty"`
+	DirectPath        *string      `protobuf:"bytes,8,opt,name=directPath" json:"directPath,omitempty"`
+	FileLength        *uint64      `protobuf:"varint,9,opt,name=fileLength" json:"fileLength,omitempty"`
+	MediaKeyTimestamp *int64       `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+	FirstFrameLength  *uint32      `protobuf:"varint,11,opt,name=firstFrameLength" json:"firstFrameLength,omitempty"`
+	FirstFrameSidecar []byte       `protobuf:"bytes,12,opt,name=firstFrameSidecar" json:"firstFrameSidecar,omitempty"`
+	IsAnimated        *bool        `protobuf:"varint,13,opt,name=isAnimated" json:"isAnimated,omitempty"`
+	PngThumbnail      []byte       `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"`
+	ContextInfo       *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
 }
 
-func (x *HydratedFourRowTemplate) Reset() {
-	*x = HydratedFourRowTemplate{}
+func (x *StickerMessage) Reset() {
+	*x = StickerMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[103]
+		mi := &file_binary_proto_def_proto_msgTypes[102]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *HydratedFourRowTemplate) String() string {
+func (x *StickerMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*HydratedFourRowTemplate) ProtoMessage() {}
+func (*StickerMessage) ProtoMessage() {}
 
-func (x *HydratedFourRowTemplate) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[103]
+func (x *StickerMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[102]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -12381,149 +12427,142 @@ func (x *HydratedFourRowTemplate) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use HydratedFourRowTemplate.ProtoReflect.Descriptor instead.
-func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{103}
-}
-
-func (x *HydratedFourRowTemplate) GetHydratedContentText() string {
-	if x != nil && x.HydratedContentText != nil {
-		return *x.HydratedContentText
-	}
-	return ""
+// Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead.
+func (*StickerMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{102}
 }
 
-func (x *HydratedFourRowTemplate) GetHydratedFooterText() string {
-	if x != nil && x.HydratedFooterText != nil {
-		return *x.HydratedFooterText
+func (x *StickerMessage) GetUrl() string {
+	if x != nil && x.Url != nil {
+		return *x.Url
 	}
 	return ""
 }
 
-func (x *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton {
+func (x *StickerMessage) GetFileSha256() []byte {
 	if x != nil {
-		return x.HydratedButtons
+		return x.FileSha256
 	}
 	return nil
 }
 
-func (x *HydratedFourRowTemplate) GetTemplateId() string {
-	if x != nil && x.TemplateId != nil {
-		return *x.TemplateId
+func (x *StickerMessage) GetFileEncSha256() []byte {
+	if x != nil {
+		return x.FileEncSha256
 	}
-	return ""
+	return nil
 }
 
-func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title {
-	if m != nil {
-		return m.Title
+func (x *StickerMessage) GetMediaKey() []byte {
+	if x != nil {
+		return x.MediaKey
 	}
 	return nil
 }
 
-func (x *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage {
-	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok {
-		return x.DocumentMessage
+func (x *StickerMessage) GetMimetype() string {
+	if x != nil && x.Mimetype != nil {
+		return *x.Mimetype
 	}
-	return nil
+	return ""
 }
 
-func (x *HydratedFourRowTemplate) GetHydratedTitleText() string {
-	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok {
-		return x.HydratedTitleText
+func (x *StickerMessage) GetHeight() uint32 {
+	if x != nil && x.Height != nil {
+		return *x.Height
 	}
-	return ""
+	return 0
 }
 
-func (x *HydratedFourRowTemplate) GetImageMessage() *ImageMessage {
-	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok {
-		return x.ImageMessage
+func (x *StickerMessage) GetWidth() uint32 {
+	if x != nil && x.Width != nil {
+		return *x.Width
 	}
-	return nil
+	return 0
 }
 
-func (x *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage {
-	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok {
-		return x.VideoMessage
+func (x *StickerMessage) GetDirectPath() string {
+	if x != nil && x.DirectPath != nil {
+		return *x.DirectPath
 	}
-	return nil
+	return ""
 }
 
-func (x *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage {
-	if x, ok := x.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok {
-		return x.LocationMessage
+func (x *StickerMessage) GetFileLength() uint64 {
+	if x != nil && x.FileLength != nil {
+		return *x.FileLength
 	}
-	return nil
+	return 0
 }
 
-type isHydratedFourRowTemplate_Title interface {
-	isHydratedFourRowTemplate_Title()
+func (x *StickerMessage) GetMediaKeyTimestamp() int64 {
+	if x != nil && x.MediaKeyTimestamp != nil {
+		return *x.MediaKeyTimestamp
+	}
+	return 0
 }
 
-type HydratedFourRowTemplate_DocumentMessage struct {
-	DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
+func (x *StickerMessage) GetFirstFrameLength() uint32 {
+	if x != nil && x.FirstFrameLength != nil {
+		return *x.FirstFrameLength
+	}
+	return 0
 }
 
-type HydratedFourRowTemplate_HydratedTitleText struct {
-	HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"`
+func (x *StickerMessage) GetFirstFrameSidecar() []byte {
+	if x != nil {
+		return x.FirstFrameSidecar
+	}
+	return nil
 }
 
-type HydratedFourRowTemplate_ImageMessage struct {
-	ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
+func (x *StickerMessage) GetIsAnimated() bool {
+	if x != nil && x.IsAnimated != nil {
+		return *x.IsAnimated
+	}
+	return false
 }
 
-type HydratedFourRowTemplate_VideoMessage struct {
-	VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
+func (x *StickerMessage) GetPngThumbnail() []byte {
+	if x != nil {
+		return x.PngThumbnail
+	}
+	return nil
 }
 
-type HydratedFourRowTemplate_LocationMessage struct {
-	LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
+func (x *StickerMessage) GetContextInfo() *ContextInfo {
+	if x != nil {
+		return x.ContextInfo
+	}
+	return nil
 }
 
-func (*HydratedFourRowTemplate_DocumentMessage) isHydratedFourRowTemplate_Title() {}
-
-func (*HydratedFourRowTemplate_HydratedTitleText) isHydratedFourRowTemplate_Title() {}
-
-func (*HydratedFourRowTemplate_ImageMessage) isHydratedFourRowTemplate_Title() {}
-
-func (*HydratedFourRowTemplate_VideoMessage) isHydratedFourRowTemplate_Title() {}
-
-func (*HydratedFourRowTemplate_LocationMessage) isHydratedFourRowTemplate_Title() {}
-
-type FourRowTemplate struct {
+type SenderKeyDistributionMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Content *HighlyStructuredMessage `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"`
-	Footer  *HighlyStructuredMessage `protobuf:"bytes,7,opt,name=footer" json:"footer,omitempty"`
-	Buttons []*TemplateButton        `protobuf:"bytes,8,rep,name=buttons" json:"buttons,omitempty"`
-	// Types that are assignable to Title:
-	//	*FourRowTemplate_DocumentMessage
-	//	*FourRowTemplate_HighlyStructuredMessage
-	//	*FourRowTemplate_ImageMessage
-	//	*FourRowTemplate_VideoMessage
-	//	*FourRowTemplate_LocationMessage
-	Title isFourRowTemplate_Title `protobuf_oneof:"title"`
+	GroupId                             *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"`
+	AxolotlSenderKeyDistributionMessage []byte  `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"`
 }
 
-func (x *FourRowTemplate) Reset() {
-	*x = FourRowTemplate{}
+func (x *SenderKeyDistributionMessage) Reset() {
+	*x = SenderKeyDistributionMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[104]
+		mi := &file_binary_proto_def_proto_msgTypes[103]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
 }
 
-func (x *FourRowTemplate) String() string {
+func (x *SenderKeyDistributionMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*FourRowTemplate) ProtoMessage() {}
+func (*SenderKeyDistributionMessage) ProtoMessage() {}
 
-func (x *FourRowTemplate) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[104]
+func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[103]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -12534,121 +12573,104 @@ func (x *FourRowTemplate) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use FourRowTemplate.ProtoReflect.Descriptor instead.
-func (*FourRowTemplate) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{104}
+// Deprecated: Use SenderKeyDistributionMessage.ProtoReflect.Descriptor instead.
+func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{103}
 }
 
-func (x *FourRowTemplate) GetContent() *HighlyStructuredMessage {
-	if x != nil {
-		return x.Content
+func (x *SenderKeyDistributionMessage) GetGroupId() string {
+	if x != nil && x.GroupId != nil {
+		return *x.GroupId
 	}
-	return nil
+	return ""
 }
 
-func (x *FourRowTemplate) GetFooter() *HighlyStructuredMessage {
+func (x *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte {
 	if x != nil {
-		return x.Footer
+		return x.AxolotlSenderKeyDistributionMessage
 	}
 	return nil
 }
 
-func (x *FourRowTemplate) GetButtons() []*TemplateButton {
-	if x != nil {
-		return x.Buttons
-	}
-	return nil
+type SendPaymentMessage struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	NoteMessage       *Message           `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"`
+	RequestMessageKey *MessageKey        `protobuf:"bytes,3,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"`
+	Background        *PaymentBackground `protobuf:"bytes,4,opt,name=background" json:"background,omitempty"`
 }
 
-func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title {
-	if m != nil {
-		return m.Title
+func (x *SendPaymentMessage) Reset() {
+	*x = SendPaymentMessage{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[104]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return nil
 }
 
-func (x *FourRowTemplate) GetDocumentMessage() *DocumentMessage {
-	if x, ok := x.GetTitle().(*FourRowTemplate_DocumentMessage); ok {
-		return x.DocumentMessage
-	}
-	return nil
+func (x *SendPaymentMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
 }
 
-func (x *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage {
-	if x, ok := x.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok {
-		return x.HighlyStructuredMessage
+func (*SendPaymentMessage) ProtoMessage() {}
+
+func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[104]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return nil
+	return mi.MessageOf(x)
 }
 
-func (x *FourRowTemplate) GetImageMessage() *ImageMessage {
-	if x, ok := x.GetTitle().(*FourRowTemplate_ImageMessage); ok {
-		return x.ImageMessage
-	}
-	return nil
+// Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead.
+func (*SendPaymentMessage) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{104}
 }
 
-func (x *FourRowTemplate) GetVideoMessage() *VideoMessage {
-	if x, ok := x.GetTitle().(*FourRowTemplate_VideoMessage); ok {
-		return x.VideoMessage
+func (x *SendPaymentMessage) GetNoteMessage() *Message {
+	if x != nil {
+		return x.NoteMessage
 	}
 	return nil
 }
 
-func (x *FourRowTemplate) GetLocationMessage() *LocationMessage {
-	if x, ok := x.GetTitle().(*FourRowTemplate_LocationMessage); ok {
-		return x.LocationMessage
+func (x *SendPaymentMessage) GetRequestMessageKey() *MessageKey {
+	if x != nil {
+		return x.RequestMessageKey
 	}
 	return nil
 }
 
-type isFourRowTemplate_Title interface {
-	isFourRowTemplate_Title()
-}
-
-type FourRowTemplate_DocumentMessage struct {
-	DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
-}
-
-type FourRowTemplate_HighlyStructuredMessage struct {
-	HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"`
-}
-
-type FourRowTemplate_ImageMessage struct {
-	ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
-}
-
-type FourRowTemplate_VideoMessage struct {
-	VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
-}
-
-type FourRowTemplate_LocationMessage struct {
-	LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
+func (x *SendPaymentMessage) GetBackground() *PaymentBackground {
+	if x != nil {
+		return x.Background
+	}
+	return nil
 }
 
-func (*FourRowTemplate_DocumentMessage) isFourRowTemplate_Title() {}
-
-func (*FourRowTemplate_HighlyStructuredMessage) isFourRowTemplate_Title() {}
-
-func (*FourRowTemplate_ImageMessage) isFourRowTemplate_Title() {}
-
-func (*FourRowTemplate_VideoMessage) isFourRowTemplate_Title() {}
-
-func (*FourRowTemplate_LocationMessage) isFourRowTemplate_Title() {}
-
-type TemplateButtonReplyMessage struct {
+type RequestPaymentMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	SelectedId          *string      `protobuf:"bytes,1,opt,name=selectedId" json:"selectedId,omitempty"`
-	SelectedDisplayText *string      `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"`
-	ContextInfo         *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
-	SelectedIndex       *uint32      `protobuf:"varint,4,opt,name=selectedIndex" json:"selectedIndex,omitempty"`
+	NoteMessage         *Message           `protobuf:"bytes,4,opt,name=noteMessage" json:"noteMessage,omitempty"`
+	CurrencyCodeIso4217 *string            `protobuf:"bytes,1,opt,name=currencyCodeIso4217" json:"currencyCodeIso4217,omitempty"`
+	Amount1000          *uint64            `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"`
+	RequestFrom         *string            `protobuf:"bytes,3,opt,name=requestFrom" json:"requestFrom,omitempty"`
+	ExpiryTimestamp     *int64             `protobuf:"varint,5,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"`
+	Amount              *Money             `protobuf:"bytes,6,opt,name=amount" json:"amount,omitempty"`
+	Background          *PaymentBackground `protobuf:"bytes,7,opt,name=background" json:"background,omitempty"`
 }
 
-func (x *TemplateButtonReplyMessage) Reset() {
-	*x = TemplateButtonReplyMessage{}
+func (x *RequestPaymentMessage) Reset() {
+	*x = RequestPaymentMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[105]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -12656,13 +12678,13 @@ func (x *TemplateButtonReplyMessage) Reset() {
 	}
 }
 
-func (x *TemplateButtonReplyMessage) String() string {
+func (x *RequestPaymentMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*TemplateButtonReplyMessage) ProtoMessage() {}
+func (*RequestPaymentMessage) ProtoMessage() {}
 
-func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message {
+func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[105]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -12674,51 +12696,73 @@ func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead.
-func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead.
+func (*RequestPaymentMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{105}
 }
 
-func (x *TemplateButtonReplyMessage) GetSelectedId() string {
-	if x != nil && x.SelectedId != nil {
-		return *x.SelectedId
+func (x *RequestPaymentMessage) GetNoteMessage() *Message {
+	if x != nil {
+		return x.NoteMessage
+	}
+	return nil
+}
+
+func (x *RequestPaymentMessage) GetCurrencyCodeIso4217() string {
+	if x != nil && x.CurrencyCodeIso4217 != nil {
+		return *x.CurrencyCodeIso4217
+	}
+	return ""
+}
+
+func (x *RequestPaymentMessage) GetAmount1000() uint64 {
+	if x != nil && x.Amount1000 != nil {
+		return *x.Amount1000
+	}
+	return 0
+}
+
+func (x *RequestPaymentMessage) GetRequestFrom() string {
+	if x != nil && x.RequestFrom != nil {
+		return *x.RequestFrom
 	}
 	return ""
 }
 
-func (x *TemplateButtonReplyMessage) GetSelectedDisplayText() string {
-	if x != nil && x.SelectedDisplayText != nil {
-		return *x.SelectedDisplayText
+func (x *RequestPaymentMessage) GetExpiryTimestamp() int64 {
+	if x != nil && x.ExpiryTimestamp != nil {
+		return *x.ExpiryTimestamp
 	}
-	return ""
+	return 0
 }
 
-func (x *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo {
+func (x *RequestPaymentMessage) GetAmount() *Money {
 	if x != nil {
-		return x.ContextInfo
+		return x.Amount
 	}
 	return nil
 }
 
-func (x *TemplateButtonReplyMessage) GetSelectedIndex() uint32 {
-	if x != nil && x.SelectedIndex != nil {
-		return *x.SelectedIndex
+func (x *RequestPaymentMessage) GetBackground() *PaymentBackground {
+	if x != nil {
+		return x.Background
 	}
-	return 0
+	return nil
 }
 
-type StickerSyncRMRMessage struct {
+type ReactionMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Filehash         []string `protobuf:"bytes,1,rep,name=filehash" json:"filehash,omitempty"`
-	RmrSource        *string  `protobuf:"bytes,2,opt,name=rmrSource" json:"rmrSource,omitempty"`
-	RequestTimestamp *int64   `protobuf:"varint,3,opt,name=requestTimestamp" json:"requestTimestamp,omitempty"`
+	Key               *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+	Text              *string     `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
+	GroupingKey       *string     `protobuf:"bytes,3,opt,name=groupingKey" json:"groupingKey,omitempty"`
+	SenderTimestampMs *int64      `protobuf:"varint,4,opt,name=senderTimestampMs" json:"senderTimestampMs,omitempty"`
 }
 
-func (x *StickerSyncRMRMessage) Reset() {
-	*x = StickerSyncRMRMessage{}
+func (x *ReactionMessage) Reset() {
+	*x = ReactionMessage{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_binary_proto_def_proto_msgTypes[106]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -12726,13 +12770,13 @@ func (x *StickerSyncRMRMessage) Reset() {
 	}
 }
 
-func (x *StickerSyncRMRMessage) String() string {
+func (x *ReactionMessage) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*StickerSyncRMRMessage) ProtoMessage() {}
+func (*ReactionMessage) ProtoMessage() {}
 
-func (x *StickerSyncRMRMessage) ProtoReflect() protoreflect.Message {
+func (x *ReactionMessage) ProtoReflect() protoreflect.Message {
 	mi := &file_binary_proto_def_proto_msgTypes[106]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -12744,28 +12788,35 @@ func (x *StickerSyncRMRMessage) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use StickerSyncRMRMessage.ProtoReflect.Descriptor instead.
-func (*StickerSyncRMRMessage) Descriptor() ([]byte, []int) {
+// Deprecated: Use ReactionMessage.ProtoReflect.Descriptor instead.
+func (*ReactionMessage) Descriptor() ([]byte, []int) {
 	return file_binary_proto_def_proto_rawDescGZIP(), []int{106}
 }
 
-func (x *StickerSyncRMRMessage) GetFilehash() []string {
+func (x *ReactionMessage) GetKey() *MessageKey {
 	if x != nil {
-		return x.Filehash
+		return x.Key
 	}
 	return nil
 }
 
-func (x *StickerSyncRMRMessage) GetRmrSource() string {
-	if x != nil && x.RmrSource != nil {
-		return *x.RmrSource
+func (x *ReactionMessage) GetText() string {
+	if x != nil && x.Text != nil {
+		return *x.Text
 	}
 	return ""
 }
 
-func (x *StickerSyncRMRMessage) GetRequestTimestamp() int64 {
-	if x != nil && x.RequestTimestamp != nil {
-		return *x.RequestTimestamp
+func (x *ReactionMessage) GetGroupingKey() string {
+	if x != nil && x.GroupingKey != nil {
+		return *x.GroupingKey
+	}
+	return ""
+}
+
+func (x *ReactionMessage) GetSenderTimestampMs() int64 {
+	if x != nil && x.SenderTimestampMs != nil {
+		return *x.SenderTimestampMs
 	}
 	return 0
 }
@@ -13661,20 +13712,24 @@ type MsgOpaqueData struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Body               *string  `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
-	Caption            *string  `protobuf:"bytes,3,opt,name=caption" json:"caption,omitempty"`
-	Lng                *float64 `protobuf:"fixed64,5,opt,name=lng" json:"lng,omitempty"`
-	IsLive             *bool    `protobuf:"varint,6,opt,name=isLive" json:"isLive,omitempty"`
-	Lat                *float64 `protobuf:"fixed64,7,opt,name=lat" json:"lat,omitempty"`
-	PaymentAmount1000  *int32   `protobuf:"varint,8,opt,name=paymentAmount1000" json:"paymentAmount1000,omitempty"`
-	PaymentNoteMsgBody *string  `protobuf:"bytes,9,opt,name=paymentNoteMsgBody" json:"paymentNoteMsgBody,omitempty"`
-	CanonicalUrl       *string  `protobuf:"bytes,10,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"`
-	MatchedText        *string  `protobuf:"bytes,11,opt,name=matchedText" json:"matchedText,omitempty"`
-	Title              *string  `protobuf:"bytes,12,opt,name=title" json:"title,omitempty"`
-	Description        *string  `protobuf:"bytes,13,opt,name=description" json:"description,omitempty"`
-	FutureproofBuffer  []byte   `protobuf:"bytes,14,opt,name=futureproofBuffer" json:"futureproofBuffer,omitempty"`
-	ClientUrl          *string  `protobuf:"bytes,15,opt,name=clientUrl" json:"clientUrl,omitempty"`
-	Loc                *string  `protobuf:"bytes,16,opt,name=loc" json:"loc,omitempty"`
+	Body                       *string       `protobuf:"bytes,1,opt,name=body" json:"body,omitempty"`
+	Caption                    *string       `protobuf:"bytes,3,opt,name=caption" json:"caption,omitempty"`
+	Lng                        *float64      `protobuf:"fixed64,5,opt,name=lng" json:"lng,omitempty"`
+	IsLive                     *bool         `protobuf:"varint,6,opt,name=isLive" json:"isLive,omitempty"`
+	Lat                        *float64      `protobuf:"fixed64,7,opt,name=lat" json:"lat,omitempty"`
+	PaymentAmount1000          *int32        `protobuf:"varint,8,opt,name=paymentAmount1000" json:"paymentAmount1000,omitempty"`
+	PaymentNoteMsgBody         *string       `protobuf:"bytes,9,opt,name=paymentNoteMsgBody" json:"paymentNoteMsgBody,omitempty"`
+	CanonicalUrl               *string       `protobuf:"bytes,10,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"`
+	MatchedText                *string       `protobuf:"bytes,11,opt,name=matchedText" json:"matchedText,omitempty"`
+	Title                      *string       `protobuf:"bytes,12,opt,name=title" json:"title,omitempty"`
+	Description                *string       `protobuf:"bytes,13,opt,name=description" json:"description,omitempty"`
+	FutureproofBuffer          []byte        `protobuf:"bytes,14,opt,name=futureproofBuffer" json:"futureproofBuffer,omitempty"`
+	ClientUrl                  *string       `protobuf:"bytes,15,opt,name=clientUrl" json:"clientUrl,omitempty"`
+	Loc                        *string       `protobuf:"bytes,16,opt,name=loc" json:"loc,omitempty"`
+	PollName                   *string       `protobuf:"bytes,17,opt,name=pollName" json:"pollName,omitempty"`
+	PollOptions                []*PollOption `protobuf:"bytes,18,rep,name=pollOptions" json:"pollOptions,omitempty"`
+	PollEncKey                 []byte        `protobuf:"bytes,19,opt,name=pollEncKey" json:"pollEncKey,omitempty"`
+	PollSelectableOptionsCount *uint32       `protobuf:"varint,20,opt,name=pollSelectableOptionsCount" json:"pollSelectableOptionsCount,omitempty"`
 }
 
 func (x *MsgOpaqueData) Reset() {
@@ -13807,6 +13862,81 @@ func (x *MsgOpaqueData) GetLoc() string {
 	return ""
 }
 
+func (x *MsgOpaqueData) GetPollName() string {
+	if x != nil && x.PollName != nil {
+		return *x.PollName
+	}
+	return ""
+}
+
+func (x *MsgOpaqueData) GetPollOptions() []*PollOption {
+	if x != nil {
+		return x.PollOptions
+	}
+	return nil
+}
+
+func (x *MsgOpaqueData) GetPollEncKey() []byte {
+	if x != nil {
+		return x.PollEncKey
+	}
+	return nil
+}
+
+func (x *MsgOpaqueData) GetPollSelectableOptionsCount() uint32 {
+	if x != nil && x.PollSelectableOptionsCount != nil {
+		return *x.PollSelectableOptionsCount
+	}
+	return 0
+}
+
+type PollOption struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+}
+
+func (x *PollOption) Reset() {
+	*x = PollOption{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[118]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *PollOption) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PollOption) ProtoMessage() {}
+
+func (x *PollOption) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[118]
+	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 PollOption.ProtoReflect.Descriptor instead.
+func (*PollOption) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{118}
+}
+
+func (x *PollOption) GetName() string {
+	if x != nil && x.Name != nil {
+		return *x.Name
+	}
+	return ""
+}
+
 type ServerErrorReceipt struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -13818,7 +13948,7 @@ type ServerErrorReceipt struct {
 func (x *ServerErrorReceipt) Reset() {
 	*x = ServerErrorReceipt{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[118]
+		mi := &file_binary_proto_def_proto_msgTypes[119]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -13831,7 +13961,7 @@ func (x *ServerErrorReceipt) String() string {
 func (*ServerErrorReceipt) ProtoMessage() {}
 
 func (x *ServerErrorReceipt) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[118]
+	mi := &file_binary_proto_def_proto_msgTypes[119]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -13844,7 +13974,7 @@ func (x *ServerErrorReceipt) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ServerErrorReceipt.ProtoReflect.Descriptor instead.
 func (*ServerErrorReceipt) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{118}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{119}
 }
 
 func (x *ServerErrorReceipt) GetStanzaId() string {
@@ -13867,7 +13997,7 @@ type MediaRetryNotification struct {
 func (x *MediaRetryNotification) Reset() {
 	*x = MediaRetryNotification{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[119]
+		mi := &file_binary_proto_def_proto_msgTypes[120]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -13880,7 +14010,7 @@ func (x *MediaRetryNotification) String() string {
 func (*MediaRetryNotification) ProtoMessage() {}
 
 func (x *MediaRetryNotification) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[119]
+	mi := &file_binary_proto_def_proto_msgTypes[120]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -13893,7 +14023,7 @@ func (x *MediaRetryNotification) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MediaRetryNotification.ProtoReflect.Descriptor instead.
 func (*MediaRetryNotification) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{119}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{120}
 }
 
 func (x *MediaRetryNotification) GetStanzaId() string {
@@ -13931,7 +14061,7 @@ type MessageKey struct {
 func (x *MessageKey) Reset() {
 	*x = MessageKey{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[120]
+		mi := &file_binary_proto_def_proto_msgTypes[121]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -13944,7 +14074,7 @@ func (x *MessageKey) String() string {
 func (*MessageKey) ProtoMessage() {}
 
 func (x *MessageKey) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[120]
+	mi := &file_binary_proto_def_proto_msgTypes[121]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -13957,7 +14087,7 @@ func (x *MessageKey) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MessageKey.ProtoReflect.Descriptor instead.
 func (*MessageKey) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{120}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{121}
 }
 
 func (x *MessageKey) GetRemoteJid() string {
@@ -13999,7 +14129,7 @@ type SyncdVersion struct {
 func (x *SyncdVersion) Reset() {
 	*x = SyncdVersion{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[121]
+		mi := &file_binary_proto_def_proto_msgTypes[122]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14012,7 +14142,7 @@ func (x *SyncdVersion) String() string {
 func (*SyncdVersion) ProtoMessage() {}
 
 func (x *SyncdVersion) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[121]
+	mi := &file_binary_proto_def_proto_msgTypes[122]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14025,7 +14155,7 @@ func (x *SyncdVersion) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdVersion.ProtoReflect.Descriptor instead.
 func (*SyncdVersion) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{121}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{122}
 }
 
 func (x *SyncdVersion) GetVersion() uint64 {
@@ -14046,7 +14176,7 @@ type SyncdValue struct {
 func (x *SyncdValue) Reset() {
 	*x = SyncdValue{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[122]
+		mi := &file_binary_proto_def_proto_msgTypes[123]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14059,7 +14189,7 @@ func (x *SyncdValue) String() string {
 func (*SyncdValue) ProtoMessage() {}
 
 func (x *SyncdValue) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[122]
+	mi := &file_binary_proto_def_proto_msgTypes[123]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14072,7 +14202,7 @@ func (x *SyncdValue) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdValue.ProtoReflect.Descriptor instead.
 func (*SyncdValue) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{122}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{123}
 }
 
 func (x *SyncdValue) GetBlob() []byte {
@@ -14096,7 +14226,7 @@ type SyncdSnapshot struct {
 func (x *SyncdSnapshot) Reset() {
 	*x = SyncdSnapshot{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[123]
+		mi := &file_binary_proto_def_proto_msgTypes[124]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14109,7 +14239,7 @@ func (x *SyncdSnapshot) String() string {
 func (*SyncdSnapshot) ProtoMessage() {}
 
 func (x *SyncdSnapshot) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[123]
+	mi := &file_binary_proto_def_proto_msgTypes[124]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14122,7 +14252,7 @@ func (x *SyncdSnapshot) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdSnapshot.ProtoReflect.Descriptor instead.
 func (*SyncdSnapshot) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{123}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{124}
 }
 
 func (x *SyncdSnapshot) GetVersion() *SyncdVersion {
@@ -14166,7 +14296,7 @@ type SyncdRecord struct {
 func (x *SyncdRecord) Reset() {
 	*x = SyncdRecord{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[124]
+		mi := &file_binary_proto_def_proto_msgTypes[125]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14179,7 +14309,7 @@ func (x *SyncdRecord) String() string {
 func (*SyncdRecord) ProtoMessage() {}
 
 func (x *SyncdRecord) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[124]
+	mi := &file_binary_proto_def_proto_msgTypes[125]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14192,7 +14322,7 @@ func (x *SyncdRecord) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdRecord.ProtoReflect.Descriptor instead.
 func (*SyncdRecord) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{124}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{125}
 }
 
 func (x *SyncdRecord) GetIndex() *SyncdIndex {
@@ -14234,7 +14364,7 @@ type SyncdPatch struct {
 func (x *SyncdPatch) Reset() {
 	*x = SyncdPatch{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[125]
+		mi := &file_binary_proto_def_proto_msgTypes[126]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14247,7 +14377,7 @@ func (x *SyncdPatch) String() string {
 func (*SyncdPatch) ProtoMessage() {}
 
 func (x *SyncdPatch) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[125]
+	mi := &file_binary_proto_def_proto_msgTypes[126]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14260,7 +14390,7 @@ func (x *SyncdPatch) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdPatch.ProtoReflect.Descriptor instead.
 func (*SyncdPatch) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{125}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{126}
 }
 
 func (x *SyncdPatch) GetVersion() *SyncdVersion {
@@ -14330,7 +14460,7 @@ type SyncdMutations struct {
 func (x *SyncdMutations) Reset() {
 	*x = SyncdMutations{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[126]
+		mi := &file_binary_proto_def_proto_msgTypes[127]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14343,7 +14473,7 @@ func (x *SyncdMutations) String() string {
 func (*SyncdMutations) ProtoMessage() {}
 
 func (x *SyncdMutations) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[126]
+	mi := &file_binary_proto_def_proto_msgTypes[127]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14356,7 +14486,7 @@ func (x *SyncdMutations) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdMutations.ProtoReflect.Descriptor instead.
 func (*SyncdMutations) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{126}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{127}
 }
 
 func (x *SyncdMutations) GetMutations() []*SyncdMutation {
@@ -14378,7 +14508,7 @@ type SyncdMutation struct {
 func (x *SyncdMutation) Reset() {
 	*x = SyncdMutation{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[127]
+		mi := &file_binary_proto_def_proto_msgTypes[128]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14391,7 +14521,7 @@ func (x *SyncdMutation) String() string {
 func (*SyncdMutation) ProtoMessage() {}
 
 func (x *SyncdMutation) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[127]
+	mi := &file_binary_proto_def_proto_msgTypes[128]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14404,7 +14534,7 @@ func (x *SyncdMutation) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdMutation.ProtoReflect.Descriptor instead.
 func (*SyncdMutation) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{127}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{128}
 }
 
 func (x *SyncdMutation) GetOperation() SyncdMutation_SyncdMutationSyncdOperation {
@@ -14432,7 +14562,7 @@ type SyncdIndex struct {
 func (x *SyncdIndex) Reset() {
 	*x = SyncdIndex{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[128]
+		mi := &file_binary_proto_def_proto_msgTypes[129]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14445,7 +14575,7 @@ func (x *SyncdIndex) String() string {
 func (*SyncdIndex) ProtoMessage() {}
 
 func (x *SyncdIndex) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[128]
+	mi := &file_binary_proto_def_proto_msgTypes[129]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14458,7 +14588,7 @@ func (x *SyncdIndex) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncdIndex.ProtoReflect.Descriptor instead.
 func (*SyncdIndex) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{128}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{129}
 }
 
 func (x *SyncdIndex) GetBlob() []byte {
@@ -14479,7 +14609,7 @@ type KeyId struct {
 func (x *KeyId) Reset() {
 	*x = KeyId{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[129]
+		mi := &file_binary_proto_def_proto_msgTypes[130]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14492,7 +14622,7 @@ func (x *KeyId) String() string {
 func (*KeyId) ProtoMessage() {}
 
 func (x *KeyId) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[129]
+	mi := &file_binary_proto_def_proto_msgTypes[130]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14505,7 +14635,7 @@ func (x *KeyId) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use KeyId.ProtoReflect.Descriptor instead.
 func (*KeyId) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{129}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{130}
 }
 
 func (x *KeyId) GetId() []byte {
@@ -14531,7 +14661,7 @@ type ExternalBlobReference struct {
 func (x *ExternalBlobReference) Reset() {
 	*x = ExternalBlobReference{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[130]
+		mi := &file_binary_proto_def_proto_msgTypes[131]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14544,7 +14674,7 @@ func (x *ExternalBlobReference) String() string {
 func (*ExternalBlobReference) ProtoMessage() {}
 
 func (x *ExternalBlobReference) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[130]
+	mi := &file_binary_proto_def_proto_msgTypes[131]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14557,7 +14687,7 @@ func (x *ExternalBlobReference) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ExternalBlobReference.ProtoReflect.Descriptor instead.
 func (*ExternalBlobReference) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{130}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{131}
 }
 
 func (x *ExternalBlobReference) GetMediaKey() []byte {
@@ -14614,7 +14744,7 @@ type ExitCode struct {
 func (x *ExitCode) Reset() {
 	*x = ExitCode{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[131]
+		mi := &file_binary_proto_def_proto_msgTypes[132]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14627,7 +14757,7 @@ func (x *ExitCode) String() string {
 func (*ExitCode) ProtoMessage() {}
 
 func (x *ExitCode) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[131]
+	mi := &file_binary_proto_def_proto_msgTypes[132]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14640,7 +14770,7 @@ func (x *ExitCode) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ExitCode.ProtoReflect.Descriptor instead.
 func (*ExitCode) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{131}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{132}
 }
 
 func (x *ExitCode) GetCode() uint64 {
@@ -14686,12 +14816,16 @@ type SyncActionValue struct {
 	PrimaryFeature              *PrimaryFeature              `protobuf:"bytes,24,opt,name=primaryFeature" json:"primaryFeature,omitempty"`
 	FavoriteStickerAction       *FavoriteStickerAction       `protobuf:"bytes,25,opt,name=favoriteStickerAction" json:"favoriteStickerAction,omitempty"`
 	AndroidUnsupportedActions   *AndroidUnsupportedActions   `protobuf:"bytes,26,opt,name=androidUnsupportedActions" json:"androidUnsupportedActions,omitempty"`
+	AgentAction                 *AgentAction                 `protobuf:"bytes,27,opt,name=agentAction" json:"agentAction,omitempty"`
+	SubscriptionAction          *SubscriptionAction          `protobuf:"bytes,28,opt,name=subscriptionAction" json:"subscriptionAction,omitempty"`
+	UserStatusMuteAction        *UserStatusMuteAction        `protobuf:"bytes,29,opt,name=userStatusMuteAction" json:"userStatusMuteAction,omitempty"`
+	TimeFormatAction            *TimeFormatAction            `protobuf:"bytes,30,opt,name=timeFormatAction" json:"timeFormatAction,omitempty"`
 }
 
 func (x *SyncActionValue) Reset() {
 	*x = SyncActionValue{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[132]
+		mi := &file_binary_proto_def_proto_msgTypes[133]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14704,7 +14838,7 @@ func (x *SyncActionValue) String() string {
 func (*SyncActionValue) ProtoMessage() {}
 
 func (x *SyncActionValue) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[132]
+	mi := &file_binary_proto_def_proto_msgTypes[133]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14717,7 +14851,7 @@ func (x *SyncActionValue) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncActionValue.ProtoReflect.Descriptor instead.
 func (*SyncActionValue) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{132}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{133}
 }
 
 func (x *SyncActionValue) GetTimestamp() int64 {
@@ -14839,53 +14973,128 @@ func (x *SyncActionValue) GetKeyExpiration() *KeyExpiration {
 	return nil
 }
 
-func (x *SyncActionValue) GetMarkChatAsReadAction() *MarkChatAsReadAction {
+func (x *SyncActionValue) GetMarkChatAsReadAction() *MarkChatAsReadAction {
+	if x != nil {
+		return x.MarkChatAsReadAction
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetClearChatAction() *ClearChatAction {
+	if x != nil {
+		return x.ClearChatAction
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetDeleteChatAction() *DeleteChatAction {
+	if x != nil {
+		return x.DeleteChatAction
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetUnarchiveChatsSetting() *UnarchiveChatsSetting {
+	if x != nil {
+		return x.UnarchiveChatsSetting
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetPrimaryFeature() *PrimaryFeature {
+	if x != nil {
+		return x.PrimaryFeature
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetFavoriteStickerAction() *FavoriteStickerAction {
+	if x != nil {
+		return x.FavoriteStickerAction
+	}
+	return nil
+}
+
+func (x *SyncActionValue) GetAndroidUnsupportedActions() *AndroidUnsupportedActions {
 	if x != nil {
-		return x.MarkChatAsReadAction
+		return x.AndroidUnsupportedActions
 	}
 	return nil
 }
 
-func (x *SyncActionValue) GetClearChatAction() *ClearChatAction {
+func (x *SyncActionValue) GetAgentAction() *AgentAction {
 	if x != nil {
-		return x.ClearChatAction
+		return x.AgentAction
 	}
 	return nil
 }
 
-func (x *SyncActionValue) GetDeleteChatAction() *DeleteChatAction {
+func (x *SyncActionValue) GetSubscriptionAction() *SubscriptionAction {
 	if x != nil {
-		return x.DeleteChatAction
+		return x.SubscriptionAction
 	}
 	return nil
 }
 
-func (x *SyncActionValue) GetUnarchiveChatsSetting() *UnarchiveChatsSetting {
+func (x *SyncActionValue) GetUserStatusMuteAction() *UserStatusMuteAction {
 	if x != nil {
-		return x.UnarchiveChatsSetting
+		return x.UserStatusMuteAction
 	}
 	return nil
 }
 
-func (x *SyncActionValue) GetPrimaryFeature() *PrimaryFeature {
+func (x *SyncActionValue) GetTimeFormatAction() *TimeFormatAction {
 	if x != nil {
-		return x.PrimaryFeature
+		return x.TimeFormatAction
 	}
 	return nil
 }
 
-func (x *SyncActionValue) GetFavoriteStickerAction() *FavoriteStickerAction {
-	if x != nil {
-		return x.FavoriteStickerAction
+type UserStatusMuteAction struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Muted *bool `protobuf:"varint,1,opt,name=muted" json:"muted,omitempty"`
+}
+
+func (x *UserStatusMuteAction) Reset() {
+	*x = UserStatusMuteAction{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[134]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
 	}
-	return nil
 }
 
-func (x *SyncActionValue) GetAndroidUnsupportedActions() *AndroidUnsupportedActions {
-	if x != nil {
-		return x.AndroidUnsupportedActions
+func (x *UserStatusMuteAction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserStatusMuteAction) ProtoMessage() {}
+
+func (x *UserStatusMuteAction) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[134]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return nil
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UserStatusMuteAction.ProtoReflect.Descriptor instead.
+func (*UserStatusMuteAction) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{134}
+}
+
+func (x *UserStatusMuteAction) GetMuted() bool {
+	if x != nil && x.Muted != nil {
+		return *x.Muted
+	}
+	return false
 }
 
 type UnarchiveChatsSetting struct {
@@ -14899,7 +15108,7 @@ type UnarchiveChatsSetting struct {
 func (x *UnarchiveChatsSetting) Reset() {
 	*x = UnarchiveChatsSetting{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[133]
+		mi := &file_binary_proto_def_proto_msgTypes[135]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14912,7 +15121,7 @@ func (x *UnarchiveChatsSetting) String() string {
 func (*UnarchiveChatsSetting) ProtoMessage() {}
 
 func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[133]
+	mi := &file_binary_proto_def_proto_msgTypes[135]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14925,7 +15134,7 @@ func (x *UnarchiveChatsSetting) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UnarchiveChatsSetting.ProtoReflect.Descriptor instead.
 func (*UnarchiveChatsSetting) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{133}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{135}
 }
 
 func (x *UnarchiveChatsSetting) GetUnarchiveChats() bool {
@@ -14935,6 +15144,53 @@ func (x *UnarchiveChatsSetting) GetUnarchiveChats() bool {
 	return false
 }
 
+type TimeFormatAction struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	IsTwentyFourHourFormatEnabled *bool `protobuf:"varint,1,opt,name=isTwentyFourHourFormatEnabled" json:"isTwentyFourHourFormatEnabled,omitempty"`
+}
+
+func (x *TimeFormatAction) Reset() {
+	*x = TimeFormatAction{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[136]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *TimeFormatAction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TimeFormatAction) ProtoMessage() {}
+
+func (x *TimeFormatAction) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[136]
+	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 TimeFormatAction.ProtoReflect.Descriptor instead.
+func (*TimeFormatAction) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{136}
+}
+
+func (x *TimeFormatAction) GetIsTwentyFourHourFormatEnabled() bool {
+	if x != nil && x.IsTwentyFourHourFormatEnabled != nil {
+		return *x.IsTwentyFourHourFormatEnabled
+	}
+	return false
+}
+
 type SyncActionMessage struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -14947,7 +15203,7 @@ type SyncActionMessage struct {
 func (x *SyncActionMessage) Reset() {
 	*x = SyncActionMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[134]
+		mi := &file_binary_proto_def_proto_msgTypes[137]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -14960,7 +15216,7 @@ func (x *SyncActionMessage) String() string {
 func (*SyncActionMessage) ProtoMessage() {}
 
 func (x *SyncActionMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[134]
+	mi := &file_binary_proto_def_proto_msgTypes[137]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -14973,7 +15229,7 @@ func (x *SyncActionMessage) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncActionMessage.ProtoReflect.Descriptor instead.
 func (*SyncActionMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{134}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{137}
 }
 
 func (x *SyncActionMessage) GetKey() *MessageKey {
@@ -15003,7 +15259,7 @@ type SyncActionMessageRange struct {
 func (x *SyncActionMessageRange) Reset() {
 	*x = SyncActionMessageRange{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[135]
+		mi := &file_binary_proto_def_proto_msgTypes[138]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15016,7 +15272,7 @@ func (x *SyncActionMessageRange) String() string {
 func (*SyncActionMessageRange) ProtoMessage() {}
 
 func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[135]
+	mi := &file_binary_proto_def_proto_msgTypes[138]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15029,7 +15285,7 @@ func (x *SyncActionMessageRange) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncActionMessageRange.ProtoReflect.Descriptor instead.
 func (*SyncActionMessageRange) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{135}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{138}
 }
 
 func (x *SyncActionMessageRange) GetLastMessageTimestamp() int64 {
@@ -15053,6 +15309,69 @@ func (x *SyncActionMessageRange) GetMessages() []*SyncActionMessage {
 	return nil
 }
 
+type SubscriptionAction struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	IsDeactivated  *bool  `protobuf:"varint,1,opt,name=isDeactivated" json:"isDeactivated,omitempty"`
+	IsAutoRenewing *bool  `protobuf:"varint,2,opt,name=isAutoRenewing" json:"isAutoRenewing,omitempty"`
+	ExpirationDate *int64 `protobuf:"varint,3,opt,name=expirationDate" json:"expirationDate,omitempty"`
+}
+
+func (x *SubscriptionAction) Reset() {
+	*x = SubscriptionAction{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[139]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SubscriptionAction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SubscriptionAction) ProtoMessage() {}
+
+func (x *SubscriptionAction) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[139]
+	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 SubscriptionAction.ProtoReflect.Descriptor instead.
+func (*SubscriptionAction) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{139}
+}
+
+func (x *SubscriptionAction) GetIsDeactivated() bool {
+	if x != nil && x.IsDeactivated != nil {
+		return *x.IsDeactivated
+	}
+	return false
+}
+
+func (x *SubscriptionAction) GetIsAutoRenewing() bool {
+	if x != nil && x.IsAutoRenewing != nil {
+		return *x.IsAutoRenewing
+	}
+	return false
+}
+
+func (x *SubscriptionAction) GetExpirationDate() int64 {
+	if x != nil && x.ExpirationDate != nil {
+		return *x.ExpirationDate
+	}
+	return 0
+}
+
 type StarAction struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -15064,7 +15383,7 @@ type StarAction struct {
 func (x *StarAction) Reset() {
 	*x = StarAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[136]
+		mi := &file_binary_proto_def_proto_msgTypes[140]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15077,7 +15396,7 @@ func (x *StarAction) String() string {
 func (*StarAction) ProtoMessage() {}
 
 func (x *StarAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[136]
+	mi := &file_binary_proto_def_proto_msgTypes[140]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15090,7 +15409,7 @@ func (x *StarAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StarAction.ProtoReflect.Descriptor instead.
 func (*StarAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{136}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{140}
 }
 
 func (x *StarAction) GetStarred() bool {
@@ -15111,7 +15430,7 @@ type SecurityNotificationSetting struct {
 func (x *SecurityNotificationSetting) Reset() {
 	*x = SecurityNotificationSetting{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[137]
+		mi := &file_binary_proto_def_proto_msgTypes[141]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15124,7 +15443,7 @@ func (x *SecurityNotificationSetting) String() string {
 func (*SecurityNotificationSetting) ProtoMessage() {}
 
 func (x *SecurityNotificationSetting) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[137]
+	mi := &file_binary_proto_def_proto_msgTypes[141]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15137,7 +15456,7 @@ func (x *SecurityNotificationSetting) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SecurityNotificationSetting.ProtoReflect.Descriptor instead.
 func (*SecurityNotificationSetting) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{137}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{141}
 }
 
 func (x *SecurityNotificationSetting) GetShowNotification() bool {
@@ -15158,7 +15477,7 @@ type RecentStickerWeightsAction struct {
 func (x *RecentStickerWeightsAction) Reset() {
 	*x = RecentStickerWeightsAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[138]
+		mi := &file_binary_proto_def_proto_msgTypes[142]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15171,7 +15490,7 @@ func (x *RecentStickerWeightsAction) String() string {
 func (*RecentStickerWeightsAction) ProtoMessage() {}
 
 func (x *RecentStickerWeightsAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[138]
+	mi := &file_binary_proto_def_proto_msgTypes[142]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15184,7 +15503,7 @@ func (x *RecentStickerWeightsAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RecentStickerWeightsAction.ProtoReflect.Descriptor instead.
 func (*RecentStickerWeightsAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{138}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{142}
 }
 
 func (x *RecentStickerWeightsAction) GetWeights() []*RecentStickerWeight {
@@ -15211,7 +15530,7 @@ type RecentStickerMetadata struct {
 func (x *RecentStickerMetadata) Reset() {
 	*x = RecentStickerMetadata{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[139]
+		mi := &file_binary_proto_def_proto_msgTypes[143]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15224,7 +15543,7 @@ func (x *RecentStickerMetadata) String() string {
 func (*RecentStickerMetadata) ProtoMessage() {}
 
 func (x *RecentStickerMetadata) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[139]
+	mi := &file_binary_proto_def_proto_msgTypes[143]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15237,7 +15556,7 @@ func (x *RecentStickerMetadata) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RecentStickerMetadata.ProtoReflect.Descriptor instead.
 func (*RecentStickerMetadata) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{139}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{143}
 }
 
 func (x *RecentStickerMetadata) GetDirectPath() string {
@@ -15300,7 +15619,7 @@ type RecentEmojiWeightsAction struct {
 func (x *RecentEmojiWeightsAction) Reset() {
 	*x = RecentEmojiWeightsAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[140]
+		mi := &file_binary_proto_def_proto_msgTypes[144]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15313,7 +15632,7 @@ func (x *RecentEmojiWeightsAction) String() string {
 func (*RecentEmojiWeightsAction) ProtoMessage() {}
 
 func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[140]
+	mi := &file_binary_proto_def_proto_msgTypes[144]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15326,7 +15645,7 @@ func (x *RecentEmojiWeightsAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RecentEmojiWeightsAction.ProtoReflect.Descriptor instead.
 func (*RecentEmojiWeightsAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{140}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{144}
 }
 
 func (x *RecentEmojiWeightsAction) GetWeights() []*RecentEmojiWeight {
@@ -15351,7 +15670,7 @@ type QuickReplyAction struct {
 func (x *QuickReplyAction) Reset() {
 	*x = QuickReplyAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[141]
+		mi := &file_binary_proto_def_proto_msgTypes[145]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15364,7 +15683,7 @@ func (x *QuickReplyAction) String() string {
 func (*QuickReplyAction) ProtoMessage() {}
 
 func (x *QuickReplyAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[141]
+	mi := &file_binary_proto_def_proto_msgTypes[145]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15377,7 +15696,7 @@ func (x *QuickReplyAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use QuickReplyAction.ProtoReflect.Descriptor instead.
 func (*QuickReplyAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{141}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{145}
 }
 
 func (x *QuickReplyAction) GetShortcut() string {
@@ -15426,7 +15745,7 @@ type PushNameSetting struct {
 func (x *PushNameSetting) Reset() {
 	*x = PushNameSetting{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[142]
+		mi := &file_binary_proto_def_proto_msgTypes[146]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15439,7 +15758,7 @@ func (x *PushNameSetting) String() string {
 func (*PushNameSetting) ProtoMessage() {}
 
 func (x *PushNameSetting) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[142]
+	mi := &file_binary_proto_def_proto_msgTypes[146]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15452,7 +15771,7 @@ func (x *PushNameSetting) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PushNameSetting.ProtoReflect.Descriptor instead.
 func (*PushNameSetting) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{142}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{146}
 }
 
 func (x *PushNameSetting) GetName() string {
@@ -15473,7 +15792,7 @@ type PrimaryFeature struct {
 func (x *PrimaryFeature) Reset() {
 	*x = PrimaryFeature{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[143]
+		mi := &file_binary_proto_def_proto_msgTypes[147]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15486,7 +15805,7 @@ func (x *PrimaryFeature) String() string {
 func (*PrimaryFeature) ProtoMessage() {}
 
 func (x *PrimaryFeature) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[143]
+	mi := &file_binary_proto_def_proto_msgTypes[147]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15499,7 +15818,7 @@ func (x *PrimaryFeature) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PrimaryFeature.ProtoReflect.Descriptor instead.
 func (*PrimaryFeature) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{143}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{147}
 }
 
 func (x *PrimaryFeature) GetFlags() []string {
@@ -15520,7 +15839,7 @@ type PinAction struct {
 func (x *PinAction) Reset() {
 	*x = PinAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[144]
+		mi := &file_binary_proto_def_proto_msgTypes[148]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15533,7 +15852,7 @@ func (x *PinAction) String() string {
 func (*PinAction) ProtoMessage() {}
 
 func (x *PinAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[144]
+	mi := &file_binary_proto_def_proto_msgTypes[148]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15546,7 +15865,7 @@ func (x *PinAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PinAction.ProtoReflect.Descriptor instead.
 func (*PinAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{144}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{148}
 }
 
 func (x *PinAction) GetPinned() bool {
@@ -15568,7 +15887,7 @@ type MuteAction struct {
 func (x *MuteAction) Reset() {
 	*x = MuteAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[145]
+		mi := &file_binary_proto_def_proto_msgTypes[149]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15581,7 +15900,7 @@ func (x *MuteAction) String() string {
 func (*MuteAction) ProtoMessage() {}
 
 func (x *MuteAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[145]
+	mi := &file_binary_proto_def_proto_msgTypes[149]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15594,7 +15913,7 @@ func (x *MuteAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MuteAction.ProtoReflect.Descriptor instead.
 func (*MuteAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{145}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{149}
 }
 
 func (x *MuteAction) GetMuted() bool {
@@ -15623,7 +15942,7 @@ type MarkChatAsReadAction struct {
 func (x *MarkChatAsReadAction) Reset() {
 	*x = MarkChatAsReadAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[146]
+		mi := &file_binary_proto_def_proto_msgTypes[150]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15636,7 +15955,7 @@ func (x *MarkChatAsReadAction) String() string {
 func (*MarkChatAsReadAction) ProtoMessage() {}
 
 func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[146]
+	mi := &file_binary_proto_def_proto_msgTypes[150]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15649,7 +15968,7 @@ func (x *MarkChatAsReadAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MarkChatAsReadAction.ProtoReflect.Descriptor instead.
 func (*MarkChatAsReadAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{146}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{150}
 }
 
 func (x *MarkChatAsReadAction) GetRead() bool {
@@ -15677,7 +15996,7 @@ type LocaleSetting struct {
 func (x *LocaleSetting) Reset() {
 	*x = LocaleSetting{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[147]
+		mi := &file_binary_proto_def_proto_msgTypes[151]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15690,7 +16009,7 @@ func (x *LocaleSetting) String() string {
 func (*LocaleSetting) ProtoMessage() {}
 
 func (x *LocaleSetting) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[147]
+	mi := &file_binary_proto_def_proto_msgTypes[151]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15703,7 +16022,7 @@ func (x *LocaleSetting) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LocaleSetting.ProtoReflect.Descriptor instead.
 func (*LocaleSetting) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{147}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{151}
 }
 
 func (x *LocaleSetting) GetLocale() string {
@@ -15727,7 +16046,7 @@ type LabelEditAction struct {
 func (x *LabelEditAction) Reset() {
 	*x = LabelEditAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[148]
+		mi := &file_binary_proto_def_proto_msgTypes[152]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15740,7 +16059,7 @@ func (x *LabelEditAction) String() string {
 func (*LabelEditAction) ProtoMessage() {}
 
 func (x *LabelEditAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[148]
+	mi := &file_binary_proto_def_proto_msgTypes[152]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15753,7 +16072,7 @@ func (x *LabelEditAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LabelEditAction.ProtoReflect.Descriptor instead.
 func (*LabelEditAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{148}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{152}
 }
 
 func (x *LabelEditAction) GetName() string {
@@ -15795,7 +16114,7 @@ type LabelAssociationAction struct {
 func (x *LabelAssociationAction) Reset() {
 	*x = LabelAssociationAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[149]
+		mi := &file_binary_proto_def_proto_msgTypes[153]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15808,7 +16127,7 @@ func (x *LabelAssociationAction) String() string {
 func (*LabelAssociationAction) ProtoMessage() {}
 
 func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[149]
+	mi := &file_binary_proto_def_proto_msgTypes[153]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15821,7 +16140,7 @@ func (x *LabelAssociationAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LabelAssociationAction.ProtoReflect.Descriptor instead.
 func (*LabelAssociationAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{149}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{153}
 }
 
 func (x *LabelAssociationAction) GetLabeled() bool {
@@ -15842,7 +16161,7 @@ type KeyExpiration struct {
 func (x *KeyExpiration) Reset() {
 	*x = KeyExpiration{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[150]
+		mi := &file_binary_proto_def_proto_msgTypes[154]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15855,7 +16174,7 @@ func (x *KeyExpiration) String() string {
 func (*KeyExpiration) ProtoMessage() {}
 
 func (x *KeyExpiration) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[150]
+	mi := &file_binary_proto_def_proto_msgTypes[154]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15868,7 +16187,7 @@ func (x *KeyExpiration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use KeyExpiration.ProtoReflect.Descriptor instead.
 func (*KeyExpiration) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{150}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{154}
 }
 
 func (x *KeyExpiration) GetExpiredKeyEpoch() int32 {
@@ -15896,7 +16215,7 @@ type FavoriteStickerAction struct {
 func (x *FavoriteStickerAction) Reset() {
 	*x = FavoriteStickerAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[151]
+		mi := &file_binary_proto_def_proto_msgTypes[155]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -15909,7 +16228,7 @@ func (x *FavoriteStickerAction) String() string {
 func (*FavoriteStickerAction) ProtoMessage() {}
 
 func (x *FavoriteStickerAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[151]
+	mi := &file_binary_proto_def_proto_msgTypes[155]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -15922,7 +16241,7 @@ func (x *FavoriteStickerAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FavoriteStickerAction.ProtoReflect.Descriptor instead.
 func (*FavoriteStickerAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{151}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{155}
 }
 
 func (x *FavoriteStickerAction) GetDirectPath() string {
@@ -15993,7 +16312,7 @@ type DeleteMessageForMeAction struct {
 func (x *DeleteMessageForMeAction) Reset() {
 	*x = DeleteMessageForMeAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[152]
+		mi := &file_binary_proto_def_proto_msgTypes[156]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16006,7 +16325,7 @@ func (x *DeleteMessageForMeAction) String() string {
 func (*DeleteMessageForMeAction) ProtoMessage() {}
 
 func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[152]
+	mi := &file_binary_proto_def_proto_msgTypes[156]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16019,7 +16338,7 @@ func (x *DeleteMessageForMeAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteMessageForMeAction.ProtoReflect.Descriptor instead.
 func (*DeleteMessageForMeAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{152}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{156}
 }
 
 func (x *DeleteMessageForMeAction) GetDeleteMedia() bool {
@@ -16047,7 +16366,7 @@ type DeleteChatAction struct {
 func (x *DeleteChatAction) Reset() {
 	*x = DeleteChatAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[153]
+		mi := &file_binary_proto_def_proto_msgTypes[157]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16060,7 +16379,7 @@ func (x *DeleteChatAction) String() string {
 func (*DeleteChatAction) ProtoMessage() {}
 
 func (x *DeleteChatAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[153]
+	mi := &file_binary_proto_def_proto_msgTypes[157]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16073,7 +16392,7 @@ func (x *DeleteChatAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteChatAction.ProtoReflect.Descriptor instead.
 func (*DeleteChatAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{153}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{157}
 }
 
 func (x *DeleteChatAction) GetMessageRange() *SyncActionMessageRange {
@@ -16095,7 +16414,7 @@ type ContactAction struct {
 func (x *ContactAction) Reset() {
 	*x = ContactAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[154]
+		mi := &file_binary_proto_def_proto_msgTypes[158]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16108,7 +16427,7 @@ func (x *ContactAction) String() string {
 func (*ContactAction) ProtoMessage() {}
 
 func (x *ContactAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[154]
+	mi := &file_binary_proto_def_proto_msgTypes[158]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16121,7 +16440,7 @@ func (x *ContactAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ContactAction.ProtoReflect.Descriptor instead.
 func (*ContactAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{154}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{158}
 }
 
 func (x *ContactAction) GetFullName() string {
@@ -16149,7 +16468,7 @@ type ClearChatAction struct {
 func (x *ClearChatAction) Reset() {
 	*x = ClearChatAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[155]
+		mi := &file_binary_proto_def_proto_msgTypes[159]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16162,7 +16481,7 @@ func (x *ClearChatAction) String() string {
 func (*ClearChatAction) ProtoMessage() {}
 
 func (x *ClearChatAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[155]
+	mi := &file_binary_proto_def_proto_msgTypes[159]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16175,7 +16494,7 @@ func (x *ClearChatAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearChatAction.ProtoReflect.Descriptor instead.
 func (*ClearChatAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{155}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{159}
 }
 
 func (x *ClearChatAction) GetMessageRange() *SyncActionMessageRange {
@@ -16197,7 +16516,7 @@ type ArchiveChatAction struct {
 func (x *ArchiveChatAction) Reset() {
 	*x = ArchiveChatAction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[156]
+		mi := &file_binary_proto_def_proto_msgTypes[160]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16210,7 +16529,7 @@ func (x *ArchiveChatAction) String() string {
 func (*ArchiveChatAction) ProtoMessage() {}
 
 func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[156]
+	mi := &file_binary_proto_def_proto_msgTypes[160]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16223,7 +16542,7 @@ func (x *ArchiveChatAction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ArchiveChatAction.ProtoReflect.Descriptor instead.
 func (*ArchiveChatAction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{156}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{160}
 }
 
 func (x *ArchiveChatAction) GetArchived() bool {
@@ -16251,7 +16570,7 @@ type AndroidUnsupportedActions struct {
 func (x *AndroidUnsupportedActions) Reset() {
 	*x = AndroidUnsupportedActions{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[157]
+		mi := &file_binary_proto_def_proto_msgTypes[161]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16264,7 +16583,7 @@ func (x *AndroidUnsupportedActions) String() string {
 func (*AndroidUnsupportedActions) ProtoMessage() {}
 
 func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[157]
+	mi := &file_binary_proto_def_proto_msgTypes[161]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16277,7 +16596,7 @@ func (x *AndroidUnsupportedActions) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AndroidUnsupportedActions.ProtoReflect.Descriptor instead.
 func (*AndroidUnsupportedActions) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{157}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{161}
 }
 
 func (x *AndroidUnsupportedActions) GetAllowed() bool {
@@ -16287,6 +16606,69 @@ func (x *AndroidUnsupportedActions) GetAllowed() bool {
 	return false
 }
 
+type AgentAction struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Name      *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	DeviceID  *int32  `protobuf:"varint,2,opt,name=deviceID" json:"deviceID,omitempty"`
+	IsDeleted *bool   `protobuf:"varint,3,opt,name=isDeleted" json:"isDeleted,omitempty"`
+}
+
+func (x *AgentAction) Reset() {
+	*x = AgentAction{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_binary_proto_def_proto_msgTypes[162]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AgentAction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AgentAction) ProtoMessage() {}
+
+func (x *AgentAction) ProtoReflect() protoreflect.Message {
+	mi := &file_binary_proto_def_proto_msgTypes[162]
+	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 AgentAction.ProtoReflect.Descriptor instead.
+func (*AgentAction) Descriptor() ([]byte, []int) {
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{162}
+}
+
+func (x *AgentAction) GetName() string {
+	if x != nil && x.Name != nil {
+		return *x.Name
+	}
+	return ""
+}
+
+func (x *AgentAction) GetDeviceID() int32 {
+	if x != nil && x.DeviceID != nil {
+		return *x.DeviceID
+	}
+	return 0
+}
+
+func (x *AgentAction) GetIsDeleted() bool {
+	if x != nil && x.IsDeleted != nil {
+		return *x.IsDeleted
+	}
+	return false
+}
+
 type SyncActionData struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -16301,7 +16683,7 @@ type SyncActionData struct {
 func (x *SyncActionData) Reset() {
 	*x = SyncActionData{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[158]
+		mi := &file_binary_proto_def_proto_msgTypes[163]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16314,7 +16696,7 @@ func (x *SyncActionData) String() string {
 func (*SyncActionData) ProtoMessage() {}
 
 func (x *SyncActionData) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[158]
+	mi := &file_binary_proto_def_proto_msgTypes[163]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16327,7 +16709,7 @@ func (x *SyncActionData) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SyncActionData.ProtoReflect.Descriptor instead.
 func (*SyncActionData) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{158}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{163}
 }
 
 func (x *SyncActionData) GetIndex() []byte {
@@ -16370,7 +16752,7 @@ type RecentStickerWeight struct {
 func (x *RecentStickerWeight) Reset() {
 	*x = RecentStickerWeight{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[159]
+		mi := &file_binary_proto_def_proto_msgTypes[164]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16383,7 +16765,7 @@ func (x *RecentStickerWeight) String() string {
 func (*RecentStickerWeight) ProtoMessage() {}
 
 func (x *RecentStickerWeight) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[159]
+	mi := &file_binary_proto_def_proto_msgTypes[164]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16396,7 +16778,7 @@ func (x *RecentStickerWeight) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RecentStickerWeight.ProtoReflect.Descriptor instead.
 func (*RecentStickerWeight) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{159}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{164}
 }
 
 func (x *RecentStickerWeight) GetFilehash() string {
@@ -16425,7 +16807,7 @@ type RecentEmojiWeight struct {
 func (x *RecentEmojiWeight) Reset() {
 	*x = RecentEmojiWeight{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[160]
+		mi := &file_binary_proto_def_proto_msgTypes[165]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16438,7 +16820,7 @@ func (x *RecentEmojiWeight) String() string {
 func (*RecentEmojiWeight) ProtoMessage() {}
 
 func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[160]
+	mi := &file_binary_proto_def_proto_msgTypes[165]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16451,7 +16833,7 @@ func (x *RecentEmojiWeight) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RecentEmojiWeight.ProtoReflect.Descriptor instead.
 func (*RecentEmojiWeight) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{160}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{165}
 }
 
 func (x *RecentEmojiWeight) GetEmoji() string {
@@ -16481,7 +16863,7 @@ type VerifiedNameCertificate struct {
 func (x *VerifiedNameCertificate) Reset() {
 	*x = VerifiedNameCertificate{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[161]
+		mi := &file_binary_proto_def_proto_msgTypes[166]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16494,7 +16876,7 @@ func (x *VerifiedNameCertificate) String() string {
 func (*VerifiedNameCertificate) ProtoMessage() {}
 
 func (x *VerifiedNameCertificate) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[161]
+	mi := &file_binary_proto_def_proto_msgTypes[166]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16507,7 +16889,7 @@ func (x *VerifiedNameCertificate) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VerifiedNameCertificate.ProtoReflect.Descriptor instead.
 func (*VerifiedNameCertificate) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{161}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{166}
 }
 
 func (x *VerifiedNameCertificate) GetDetails() []byte {
@@ -16547,7 +16929,7 @@ type VerifiedNameDetails struct {
 func (x *VerifiedNameDetails) Reset() {
 	*x = VerifiedNameDetails{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[162]
+		mi := &file_binary_proto_def_proto_msgTypes[167]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16560,7 +16942,7 @@ func (x *VerifiedNameDetails) String() string {
 func (*VerifiedNameDetails) ProtoMessage() {}
 
 func (x *VerifiedNameDetails) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[162]
+	mi := &file_binary_proto_def_proto_msgTypes[167]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16573,7 +16955,7 @@ func (x *VerifiedNameDetails) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use VerifiedNameDetails.ProtoReflect.Descriptor instead.
 func (*VerifiedNameDetails) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{162}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{167}
 }
 
 func (x *VerifiedNameDetails) GetSerial() uint64 {
@@ -16624,7 +17006,7 @@ type LocalizedName struct {
 func (x *LocalizedName) Reset() {
 	*x = LocalizedName{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[163]
+		mi := &file_binary_proto_def_proto_msgTypes[168]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16637,7 +17019,7 @@ func (x *LocalizedName) String() string {
 func (*LocalizedName) ProtoMessage() {}
 
 func (x *LocalizedName) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[163]
+	mi := &file_binary_proto_def_proto_msgTypes[168]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16650,7 +17032,7 @@ func (x *LocalizedName) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LocalizedName.ProtoReflect.Descriptor instead.
 func (*LocalizedName) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{163}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{168}
 }
 
 func (x *LocalizedName) GetLg() string {
@@ -16692,7 +17074,7 @@ type BizIdentityInfo struct {
 func (x *BizIdentityInfo) Reset() {
 	*x = BizIdentityInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[164]
+		mi := &file_binary_proto_def_proto_msgTypes[169]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16705,7 +17087,7 @@ func (x *BizIdentityInfo) String() string {
 func (*BizIdentityInfo) ProtoMessage() {}
 
 func (x *BizIdentityInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[164]
+	mi := &file_binary_proto_def_proto_msgTypes[169]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16718,7 +17100,7 @@ func (x *BizIdentityInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BizIdentityInfo.ProtoReflect.Descriptor instead.
 func (*BizIdentityInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{164}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{169}
 }
 
 func (x *BizIdentityInfo) GetVlevel() BizIdentityInfo_BizIdentityInfoVerifiedLevelValue {
@@ -16789,7 +17171,7 @@ type BizAccountPayload struct {
 func (x *BizAccountPayload) Reset() {
 	*x = BizAccountPayload{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[165]
+		mi := &file_binary_proto_def_proto_msgTypes[170]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16802,7 +17184,7 @@ func (x *BizAccountPayload) String() string {
 func (*BizAccountPayload) ProtoMessage() {}
 
 func (x *BizAccountPayload) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[165]
+	mi := &file_binary_proto_def_proto_msgTypes[170]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16815,7 +17197,7 @@ func (x *BizAccountPayload) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BizAccountPayload.ProtoReflect.Descriptor instead.
 func (*BizAccountPayload) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{165}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{170}
 }
 
 func (x *BizAccountPayload) GetVnameCert() *VerifiedNameCertificate {
@@ -16847,7 +17229,7 @@ type BizAccountLinkInfo struct {
 func (x *BizAccountLinkInfo) Reset() {
 	*x = BizAccountLinkInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[166]
+		mi := &file_binary_proto_def_proto_msgTypes[171]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16860,7 +17242,7 @@ func (x *BizAccountLinkInfo) String() string {
 func (*BizAccountLinkInfo) ProtoMessage() {}
 
 func (x *BizAccountLinkInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[166]
+	mi := &file_binary_proto_def_proto_msgTypes[171]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16873,7 +17255,7 @@ func (x *BizAccountLinkInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BizAccountLinkInfo.ProtoReflect.Descriptor instead.
 func (*BizAccountLinkInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{166}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{171}
 }
 
 func (x *BizAccountLinkInfo) GetWhatsappBizAcctFbid() uint64 {
@@ -16923,7 +17305,7 @@ type NoiseCertificate struct {
 func (x *NoiseCertificate) Reset() {
 	*x = NoiseCertificate{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[167]
+		mi := &file_binary_proto_def_proto_msgTypes[172]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16936,7 +17318,7 @@ func (x *NoiseCertificate) String() string {
 func (*NoiseCertificate) ProtoMessage() {}
 
 func (x *NoiseCertificate) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[167]
+	mi := &file_binary_proto_def_proto_msgTypes[172]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -16949,7 +17331,7 @@ func (x *NoiseCertificate) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use NoiseCertificate.ProtoReflect.Descriptor instead.
 func (*NoiseCertificate) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{167}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{172}
 }
 
 func (x *NoiseCertificate) GetDetails() []byte {
@@ -16982,7 +17364,7 @@ type NoiseCertificateDetails struct {
 func (x *NoiseCertificateDetails) Reset() {
 	*x = NoiseCertificateDetails{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[168]
+		mi := &file_binary_proto_def_proto_msgTypes[173]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -16995,7 +17377,7 @@ func (x *NoiseCertificateDetails) String() string {
 func (*NoiseCertificateDetails) ProtoMessage() {}
 
 func (x *NoiseCertificateDetails) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[168]
+	mi := &file_binary_proto_def_proto_msgTypes[173]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17008,7 +17390,7 @@ func (x *NoiseCertificateDetails) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use NoiseCertificateDetails.ProtoReflect.Descriptor instead.
 func (*NoiseCertificateDetails) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{168}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{173}
 }
 
 func (x *NoiseCertificateDetails) GetSerial() uint32 {
@@ -17059,7 +17441,7 @@ type HandshakeMessage struct {
 func (x *HandshakeMessage) Reset() {
 	*x = HandshakeMessage{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[169]
+		mi := &file_binary_proto_def_proto_msgTypes[174]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17072,7 +17454,7 @@ func (x *HandshakeMessage) String() string {
 func (*HandshakeMessage) ProtoMessage() {}
 
 func (x *HandshakeMessage) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[169]
+	mi := &file_binary_proto_def_proto_msgTypes[174]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17085,7 +17467,7 @@ func (x *HandshakeMessage) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use HandshakeMessage.ProtoReflect.Descriptor instead.
 func (*HandshakeMessage) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{169}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{174}
 }
 
 func (x *HandshakeMessage) GetClientHello() *ClientHello {
@@ -17122,7 +17504,7 @@ type ServerHello struct {
 func (x *ServerHello) Reset() {
 	*x = ServerHello{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[170]
+		mi := &file_binary_proto_def_proto_msgTypes[175]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17135,7 +17517,7 @@ func (x *ServerHello) String() string {
 func (*ServerHello) ProtoMessage() {}
 
 func (x *ServerHello) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[170]
+	mi := &file_binary_proto_def_proto_msgTypes[175]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17148,7 +17530,7 @@ func (x *ServerHello) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ServerHello.ProtoReflect.Descriptor instead.
 func (*ServerHello) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{170}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{175}
 }
 
 func (x *ServerHello) GetEphemeral() []byte {
@@ -17185,7 +17567,7 @@ type ClientHello struct {
 func (x *ClientHello) Reset() {
 	*x = ClientHello{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[171]
+		mi := &file_binary_proto_def_proto_msgTypes[176]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17198,7 +17580,7 @@ func (x *ClientHello) String() string {
 func (*ClientHello) ProtoMessage() {}
 
 func (x *ClientHello) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[171]
+	mi := &file_binary_proto_def_proto_msgTypes[176]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17211,7 +17593,7 @@ func (x *ClientHello) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClientHello.ProtoReflect.Descriptor instead.
 func (*ClientHello) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{171}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{176}
 }
 
 func (x *ClientHello) GetEphemeral() []byte {
@@ -17247,7 +17629,7 @@ type ClientFinish struct {
 func (x *ClientFinish) Reset() {
 	*x = ClientFinish{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[172]
+		mi := &file_binary_proto_def_proto_msgTypes[177]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17260,7 +17642,7 @@ func (x *ClientFinish) String() string {
 func (*ClientFinish) ProtoMessage() {}
 
 func (x *ClientFinish) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[172]
+	mi := &file_binary_proto_def_proto_msgTypes[177]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17273,7 +17655,7 @@ func (x *ClientFinish) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClientFinish.ProtoReflect.Descriptor instead.
 func (*ClientFinish) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{172}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{177}
 }
 
 func (x *ClientFinish) GetStatic() []byte {
@@ -17323,7 +17705,7 @@ type ClientPayload struct {
 func (x *ClientPayload) Reset() {
 	*x = ClientPayload{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[173]
+		mi := &file_binary_proto_def_proto_msgTypes[178]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17336,7 +17718,7 @@ func (x *ClientPayload) String() string {
 func (*ClientPayload) ProtoMessage() {}
 
 func (x *ClientPayload) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[173]
+	mi := &file_binary_proto_def_proto_msgTypes[178]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17349,7 +17731,7 @@ func (x *ClientPayload) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClientPayload.ProtoReflect.Descriptor instead.
 func (*ClientPayload) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{173}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{178}
 }
 
 func (x *ClientPayload) GetUsername() uint64 {
@@ -17527,7 +17909,7 @@ type WebInfo struct {
 func (x *WebInfo) Reset() {
 	*x = WebInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[174]
+		mi := &file_binary_proto_def_proto_msgTypes[179]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17540,7 +17922,7 @@ func (x *WebInfo) String() string {
 func (*WebInfo) ProtoMessage() {}
 
 func (x *WebInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[174]
+	mi := &file_binary_proto_def_proto_msgTypes[179]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17553,7 +17935,7 @@ func (x *WebInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WebInfo.ProtoReflect.Descriptor instead.
 func (*WebInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{174}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{179}
 }
 
 func (x *WebInfo) GetRefToken() string {
@@ -17605,7 +17987,7 @@ type WebdPayload struct {
 func (x *WebdPayload) Reset() {
 	*x = WebdPayload{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[175]
+		mi := &file_binary_proto_def_proto_msgTypes[180]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17618,7 +18000,7 @@ func (x *WebdPayload) String() string {
 func (*WebdPayload) ProtoMessage() {}
 
 func (x *WebdPayload) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[175]
+	mi := &file_binary_proto_def_proto_msgTypes[180]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17631,7 +18013,7 @@ func (x *WebdPayload) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WebdPayload.ProtoReflect.Descriptor instead.
 func (*WebdPayload) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{175}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{180}
 }
 
 func (x *WebdPayload) GetUsesParticipantInKey() bool {
@@ -17734,7 +18116,7 @@ type UserAgent struct {
 func (x *UserAgent) Reset() {
 	*x = UserAgent{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[176]
+		mi := &file_binary_proto_def_proto_msgTypes[181]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17747,7 +18129,7 @@ func (x *UserAgent) String() string {
 func (*UserAgent) ProtoMessage() {}
 
 func (x *UserAgent) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[176]
+	mi := &file_binary_proto_def_proto_msgTypes[181]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17760,7 +18142,7 @@ func (x *UserAgent) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UserAgent.ProtoReflect.Descriptor instead.
 func (*UserAgent) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{176}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{181}
 }
 
 func (x *UserAgent) GetPlatform() UserAgent_UserAgentPlatform {
@@ -17866,7 +18248,7 @@ type DNSSource struct {
 func (x *DNSSource) Reset() {
 	*x = DNSSource{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[177]
+		mi := &file_binary_proto_def_proto_msgTypes[182]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17879,7 +18261,7 @@ func (x *DNSSource) String() string {
 func (*DNSSource) ProtoMessage() {}
 
 func (x *DNSSource) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[177]
+	mi := &file_binary_proto_def_proto_msgTypes[182]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17892,7 +18274,7 @@ func (x *DNSSource) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DNSSource.ProtoReflect.Descriptor instead.
 func (*DNSSource) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{177}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{182}
 }
 
 func (x *DNSSource) GetDnsMethod() DNSSource_DNSSourceDNSResolutionMethod {
@@ -17927,7 +18309,7 @@ type CompanionRegData struct {
 func (x *CompanionRegData) Reset() {
 	*x = CompanionRegData{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[178]
+		mi := &file_binary_proto_def_proto_msgTypes[183]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -17940,7 +18322,7 @@ func (x *CompanionRegData) String() string {
 func (*CompanionRegData) ProtoMessage() {}
 
 func (x *CompanionRegData) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[178]
+	mi := &file_binary_proto_def_proto_msgTypes[183]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -17953,7 +18335,7 @@ func (x *CompanionRegData) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CompanionRegData.ProtoReflect.Descriptor instead.
 func (*CompanionRegData) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{178}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{183}
 }
 
 func (x *CompanionRegData) GetERegid() []byte {
@@ -18026,7 +18408,7 @@ type WebNotificationsInfo struct {
 func (x *WebNotificationsInfo) Reset() {
 	*x = WebNotificationsInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[179]
+		mi := &file_binary_proto_def_proto_msgTypes[184]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18039,7 +18421,7 @@ func (x *WebNotificationsInfo) String() string {
 func (*WebNotificationsInfo) ProtoMessage() {}
 
 func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[179]
+	mi := &file_binary_proto_def_proto_msgTypes[184]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -18052,7 +18434,7 @@ func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WebNotificationsInfo.ProtoReflect.Descriptor instead.
 func (*WebNotificationsInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{179}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{184}
 }
 
 func (x *WebNotificationsInfo) GetTimestamp() uint64 {
@@ -18125,12 +18507,15 @@ type WebMessageInfo struct {
 	StatusPsa               *StatusPSA                                     `protobuf:"bytes,44,opt,name=statusPsa" json:"statusPsa,omitempty"`
 	PollUpdates             []*PollUpdate                                  `protobuf:"bytes,45,rep,name=pollUpdates" json:"pollUpdates,omitempty"`
 	PollAdditionalMetadata  *PollAdditionalMetadata                        `protobuf:"bytes,46,opt,name=pollAdditionalMetadata" json:"pollAdditionalMetadata,omitempty"`
+	AgentId                 *string                                        `protobuf:"bytes,47,opt,name=agentId" json:"agentId,omitempty"`
+	StatusAlreadyViewed     *bool                                          `protobuf:"varint,48,opt,name=statusAlreadyViewed" json:"statusAlreadyViewed,omitempty"`
+	MessageSecret           []byte                                         `protobuf:"bytes,49,opt,name=messageSecret" json:"messageSecret,omitempty"`
 }
 
 func (x *WebMessageInfo) Reset() {
 	*x = WebMessageInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[180]
+		mi := &file_binary_proto_def_proto_msgTypes[185]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18143,7 +18528,7 @@ func (x *WebMessageInfo) String() string {
 func (*WebMessageInfo) ProtoMessage() {}
 
 func (x *WebMessageInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[180]
+	mi := &file_binary_proto_def_proto_msgTypes[185]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -18156,7 +18541,7 @@ func (x *WebMessageInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WebMessageInfo.ProtoReflect.Descriptor instead.
 func (*WebMessageInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{180}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{185}
 }
 
 func (x *WebMessageInfo) GetKey() *MessageKey {
@@ -18418,6 +18803,27 @@ func (x *WebMessageInfo) GetPollAdditionalMetadata() *PollAdditionalMetadata {
 	return nil
 }
 
+func (x *WebMessageInfo) GetAgentId() string {
+	if x != nil && x.AgentId != nil {
+		return *x.AgentId
+	}
+	return ""
+}
+
+func (x *WebMessageInfo) GetStatusAlreadyViewed() bool {
+	if x != nil && x.StatusAlreadyViewed != nil {
+		return *x.StatusAlreadyViewed
+	}
+	return false
+}
+
+func (x *WebMessageInfo) GetMessageSecret() []byte {
+	if x != nil {
+		return x.MessageSecret
+	}
+	return nil
+}
+
 type WebFeatures struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -18473,7 +18879,7 @@ type WebFeatures struct {
 func (x *WebFeatures) Reset() {
 	*x = WebFeatures{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[181]
+		mi := &file_binary_proto_def_proto_msgTypes[186]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18486,7 +18892,7 @@ func (x *WebFeatures) String() string {
 func (*WebFeatures) ProtoMessage() {}
 
 func (x *WebFeatures) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[181]
+	mi := &file_binary_proto_def_proto_msgTypes[186]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -18499,7 +18905,7 @@ func (x *WebFeatures) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WebFeatures.ProtoReflect.Descriptor instead.
 func (*WebFeatures) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{181}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{186}
 }
 
 func (x *WebFeatures) GetLabelsDisplay() WebFeatures_WebFeaturesFlag {
@@ -18833,7 +19239,7 @@ type UserReceipt struct {
 func (x *UserReceipt) Reset() {
 	*x = UserReceipt{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[182]
+		mi := &file_binary_proto_def_proto_msgTypes[187]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18846,7 +19252,7 @@ func (x *UserReceipt) String() string {
 func (*UserReceipt) ProtoMessage() {}
 
 func (x *UserReceipt) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[182]
+	mi := &file_binary_proto_def_proto_msgTypes[187]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -18859,7 +19265,7 @@ func (x *UserReceipt) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UserReceipt.ProtoReflect.Descriptor instead.
 func (*UserReceipt) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{182}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{187}
 }
 
 func (x *UserReceipt) GetUserJid() string {
@@ -18909,14 +19315,14 @@ type StatusPSA struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	CampaignId                  *string `protobuf:"bytes,44,req,name=campaignId" json:"campaignId,omitempty"`
+	CampaignId                  *uint64 `protobuf:"varint,44,req,name=campaignId" json:"campaignId,omitempty"`
 	CampaignExpirationTimestamp *uint64 `protobuf:"varint,45,opt,name=campaignExpirationTimestamp" json:"campaignExpirationTimestamp,omitempty"`
 }
 
 func (x *StatusPSA) Reset() {
 	*x = StatusPSA{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[183]
+		mi := &file_binary_proto_def_proto_msgTypes[188]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18929,7 +19335,7 @@ func (x *StatusPSA) String() string {
 func (*StatusPSA) ProtoMessage() {}
 
 func (x *StatusPSA) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[183]
+	mi := &file_binary_proto_def_proto_msgTypes[188]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -18942,14 +19348,14 @@ func (x *StatusPSA) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StatusPSA.ProtoReflect.Descriptor instead.
 func (*StatusPSA) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{183}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{188}
 }
 
-func (x *StatusPSA) GetCampaignId() string {
+func (x *StatusPSA) GetCampaignId() uint64 {
 	if x != nil && x.CampaignId != nil {
 		return *x.CampaignId
 	}
-	return ""
+	return 0
 }
 
 func (x *StatusPSA) GetCampaignExpirationTimestamp() uint64 {
@@ -18974,7 +19380,7 @@ type Reaction struct {
 func (x *Reaction) Reset() {
 	*x = Reaction{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[184]
+		mi := &file_binary_proto_def_proto_msgTypes[189]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -18987,7 +19393,7 @@ func (x *Reaction) String() string {
 func (*Reaction) ProtoMessage() {}
 
 func (x *Reaction) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[184]
+	mi := &file_binary_proto_def_proto_msgTypes[189]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19000,7 +19406,7 @@ func (x *Reaction) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Reaction.ProtoReflect.Descriptor instead.
 func (*Reaction) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{184}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{189}
 }
 
 func (x *Reaction) GetKey() *MessageKey {
@@ -19043,14 +19449,14 @@ type PollUpdate struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	PollUpdateMessageKey *MessageKey               `protobuf:"bytes,1,opt,name=pollUpdateMessageKey" json:"pollUpdateMessageKey,omitempty"`
-	PollUpdateMessage    *PollUpdateMessageContent `protobuf:"bytes,2,opt,name=pollUpdateMessage" json:"pollUpdateMessage,omitempty"`
+	PollUpdateMessageKey *MessageKey      `protobuf:"bytes,1,opt,name=pollUpdateMessageKey" json:"pollUpdateMessageKey,omitempty"`
+	Vote                 *PollVoteMessage `protobuf:"bytes,2,opt,name=vote" json:"vote,omitempty"`
 }
 
 func (x *PollUpdate) Reset() {
 	*x = PollUpdate{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[185]
+		mi := &file_binary_proto_def_proto_msgTypes[190]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19063,7 +19469,7 @@ func (x *PollUpdate) String() string {
 func (*PollUpdate) ProtoMessage() {}
 
 func (x *PollUpdate) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[185]
+	mi := &file_binary_proto_def_proto_msgTypes[190]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19076,7 +19482,7 @@ func (x *PollUpdate) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PollUpdate.ProtoReflect.Descriptor instead.
 func (*PollUpdate) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{185}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{190}
 }
 
 func (x *PollUpdate) GetPollUpdateMessageKey() *MessageKey {
@@ -19086,9 +19492,9 @@ func (x *PollUpdate) GetPollUpdateMessageKey() *MessageKey {
 	return nil
 }
 
-func (x *PollUpdate) GetPollUpdateMessage() *PollUpdateMessageContent {
+func (x *PollUpdate) GetVote() *PollVoteMessage {
 	if x != nil {
-		return x.PollUpdateMessage
+		return x.Vote
 	}
 	return nil
 }
@@ -19104,7 +19510,7 @@ type PollAdditionalMetadata struct {
 func (x *PollAdditionalMetadata) Reset() {
 	*x = PollAdditionalMetadata{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[186]
+		mi := &file_binary_proto_def_proto_msgTypes[191]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19117,7 +19523,7 @@ func (x *PollAdditionalMetadata) String() string {
 func (*PollAdditionalMetadata) ProtoMessage() {}
 
 func (x *PollAdditionalMetadata) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[186]
+	mi := &file_binary_proto_def_proto_msgTypes[191]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19130,7 +19536,7 @@ func (x *PollAdditionalMetadata) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PollAdditionalMetadata.ProtoReflect.Descriptor instead.
 func (*PollAdditionalMetadata) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{186}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{191}
 }
 
 func (x *PollAdditionalMetadata) GetPollInvalidated() bool {
@@ -19153,7 +19559,7 @@ type PhotoChange struct {
 func (x *PhotoChange) Reset() {
 	*x = PhotoChange{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[187]
+		mi := &file_binary_proto_def_proto_msgTypes[192]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19166,7 +19572,7 @@ func (x *PhotoChange) String() string {
 func (*PhotoChange) ProtoMessage() {}
 
 func (x *PhotoChange) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[187]
+	mi := &file_binary_proto_def_proto_msgTypes[192]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19179,7 +19585,7 @@ func (x *PhotoChange) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PhotoChange.ProtoReflect.Descriptor instead.
 func (*PhotoChange) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{187}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{192}
 }
 
 func (x *PhotoChange) GetOldPhoto() []byte {
@@ -19226,7 +19632,7 @@ type PaymentInfo struct {
 func (x *PaymentInfo) Reset() {
 	*x = PaymentInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[188]
+		mi := &file_binary_proto_def_proto_msgTypes[193]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19239,7 +19645,7 @@ func (x *PaymentInfo) String() string {
 func (*PaymentInfo) ProtoMessage() {}
 
 func (x *PaymentInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[188]
+	mi := &file_binary_proto_def_proto_msgTypes[193]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19252,7 +19658,7 @@ func (x *PaymentInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PaymentInfo.ProtoReflect.Descriptor instead.
 func (*PaymentInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{188}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{193}
 }
 
 func (x *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_PaymentInfoCurrency {
@@ -19360,7 +19766,7 @@ type NotificationMessageInfo struct {
 func (x *NotificationMessageInfo) Reset() {
 	*x = NotificationMessageInfo{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[189]
+		mi := &file_binary_proto_def_proto_msgTypes[194]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19373,7 +19779,7 @@ func (x *NotificationMessageInfo) String() string {
 func (*NotificationMessageInfo) ProtoMessage() {}
 
 func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[189]
+	mi := &file_binary_proto_def_proto_msgTypes[194]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19386,7 +19792,7 @@ func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use NotificationMessageInfo.ProtoReflect.Descriptor instead.
 func (*NotificationMessageInfo) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{189}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{194}
 }
 
 func (x *NotificationMessageInfo) GetKey() *MessageKey {
@@ -19428,7 +19834,7 @@ type MediaData struct {
 func (x *MediaData) Reset() {
 	*x = MediaData{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_binary_proto_def_proto_msgTypes[190]
+		mi := &file_binary_proto_def_proto_msgTypes[195]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -19441,7 +19847,7 @@ func (x *MediaData) String() string {
 func (*MediaData) ProtoMessage() {}
 
 func (x *MediaData) ProtoReflect() protoreflect.Message {
-	mi := &file_binary_proto_def_proto_msgTypes[190]
+	mi := &file_binary_proto_def_proto_msgTypes[195]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -19454,7 +19860,7 @@ func (x *MediaData) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MediaData.ProtoReflect.Descriptor instead.
 func (*MediaData) Descriptor() ([]byte, []int) {
-	return file_binary_proto_def_proto_rawDescGZIP(), []int{190}
+	return file_binary_proto_def_proto_rawDescGZIP(), []int{195}
 }
 
 func (x *MediaData) GetLocalPath() string {
@@ -19482,7 +19888,7 @@ func file_binary_proto_def_proto_rawDescGZIP() []byte {
 }
 
 var file_binary_proto_def_proto_enumTypes = make([]protoimpl.EnumInfo, 50)
-var file_binary_proto_def_proto_msgTypes = make([]protoimpl.MessageInfo, 191)
+var file_binary_proto_def_proto_msgTypes = make([]protoimpl.MessageInfo, 196)
 var file_binary_proto_def_proto_goTypes = []interface{}{
 	(MediaVisibility)(0),                                                // 0: proto.MediaVisibility
 	(CompanionProps_CompanionPropsPlatformType)(0),                      // 1: proto.CompanionProps.CompanionPropsPlatformType
@@ -19541,15 +19947,15 @@ var file_binary_proto_def_proto_goTypes = []interface{}{
 	(*ADVDeviceIdentity)(nil),                                           // 54: proto.ADVDeviceIdentity
 	(*CompanionProps)(nil),                                              // 55: proto.CompanionProps
 	(*AppVersion)(nil),                                                  // 56: proto.AppVersion
-	(*StickerMessage)(nil),                                              // 57: proto.StickerMessage
-	(*SenderKeyDistributionMessage)(nil),                                // 58: proto.SenderKeyDistributionMessage
-	(*SendPaymentMessage)(nil),                                          // 59: proto.SendPaymentMessage
-	(*RequestPaymentMessage)(nil),                                       // 60: proto.RequestPaymentMessage
-	(*ReactionMessage)(nil),                                             // 61: proto.ReactionMessage
-	(*ProtocolMessage)(nil),                                             // 62: proto.ProtocolMessage
-	(*ProductMessage)(nil),                                              // 63: proto.ProductMessage
-	(*ProductSnapshot)(nil),                                             // 64: proto.ProductSnapshot
-	(*CatalogSnapshot)(nil),                                             // 65: proto.CatalogSnapshot
+	(*ProtocolMessage)(nil),                                             // 57: proto.ProtocolMessage
+	(*ProductMessage)(nil),                                              // 58: proto.ProductMessage
+	(*ProductSnapshot)(nil),                                             // 59: proto.ProductSnapshot
+	(*CatalogSnapshot)(nil),                                             // 60: proto.CatalogSnapshot
+	(*PollVoteMessage)(nil),                                             // 61: proto.PollVoteMessage
+	(*PollUpdateMessage)(nil),                                           // 62: proto.PollUpdateMessage
+	(*PollEncValue)(nil),                                                // 63: proto.PollEncValue
+	(*PollCreationMessage)(nil),                                         // 64: proto.PollCreationMessage
+	(*Option)(nil),                                                      // 65: proto.Option
 	(*PaymentInviteMessage)(nil),                                        // 66: proto.PaymentInviteMessage
 	(*OrderMessage)(nil),                                                // 67: proto.OrderMessage
 	(*LocationMessage)(nil),                                             // 68: proto.LocationMessage
@@ -19624,23 +20030,23 @@ var file_binary_proto_def_proto_goTypes = []interface{}{
 	(*URLButton)(nil),                                                   // 137: proto.URLButton
 	(*QuickReplyButton)(nil),                                            // 138: proto.QuickReplyButton
 	(*CallButton)(nil),                                                  // 139: proto.CallButton
-	(*PollUpdateMessage)(nil),                                           // 140: proto.PollUpdateMessage
-	(*PollUpdateMessageContent)(nil),                                    // 141: proto.PollUpdateMessageContent
-	(*PollVoteMessage)(nil),                                             // 142: proto.PollVoteMessage
-	(*PollCreationMessage)(nil),                                         // 143: proto.PollCreationMessage
-	(*Option)(nil),                                                      // 144: proto.Option
-	(*Point)(nil),                                                       // 145: proto.Point
-	(*PaymentBackground)(nil),                                           // 146: proto.PaymentBackground
-	(*PBMediaData)(nil),                                                 // 147: proto.PBMediaData
-	(*Money)(nil),                                                       // 148: proto.Money
-	(*Message)(nil),                                                     // 149: proto.Message
-	(*MessageContextInfo)(nil),                                          // 150: proto.MessageContextInfo
-	(*VideoMessage)(nil),                                                // 151: proto.VideoMessage
-	(*TemplateMessage)(nil),                                             // 152: proto.TemplateMessage
-	(*HydratedFourRowTemplate)(nil),                                     // 153: proto.HydratedFourRowTemplate
-	(*FourRowTemplate)(nil),                                             // 154: proto.FourRowTemplate
-	(*TemplateButtonReplyMessage)(nil),                                  // 155: proto.TemplateButtonReplyMessage
-	(*StickerSyncRMRMessage)(nil),                                       // 156: proto.StickerSyncRMRMessage
+	(*Point)(nil),                                                       // 140: proto.Point
+	(*PaymentBackground)(nil),                                           // 141: proto.PaymentBackground
+	(*PBMediaData)(nil),                                                 // 142: proto.PBMediaData
+	(*Money)(nil),                                                       // 143: proto.Money
+	(*Message)(nil),                                                     // 144: proto.Message
+	(*MessageContextInfo)(nil),                                          // 145: proto.MessageContextInfo
+	(*VideoMessage)(nil),                                                // 146: proto.VideoMessage
+	(*TemplateMessage)(nil),                                             // 147: proto.TemplateMessage
+	(*HydratedFourRowTemplate)(nil),                                     // 148: proto.HydratedFourRowTemplate
+	(*FourRowTemplate)(nil),                                             // 149: proto.FourRowTemplate
+	(*TemplateButtonReplyMessage)(nil),                                  // 150: proto.TemplateButtonReplyMessage
+	(*StickerSyncRMRMessage)(nil),                                       // 151: proto.StickerSyncRMRMessage
+	(*StickerMessage)(nil),                                              // 152: proto.StickerMessage
+	(*SenderKeyDistributionMessage)(nil),                                // 153: proto.SenderKeyDistributionMessage
+	(*SendPaymentMessage)(nil),                                          // 154: proto.SendPaymentMessage
+	(*RequestPaymentMessage)(nil),                                       // 155: proto.RequestPaymentMessage
+	(*ReactionMessage)(nil),                                             // 156: proto.ReactionMessage
 	(*EphemeralSetting)(nil),                                            // 157: proto.EphemeralSetting
 	(*WallpaperSettings)(nil),                                           // 158: proto.WallpaperSettings
 	(*Pushname)(nil),                                                    // 159: proto.Pushname
@@ -19652,441 +20058,453 @@ var file_binary_proto_def_proto_goTypes = []interface{}{
 	(*AutoDownloadSettings)(nil),                                        // 165: proto.AutoDownloadSettings
 	(*MsgRowOpaqueData)(nil),                                            // 166: proto.MsgRowOpaqueData
 	(*MsgOpaqueData)(nil),                                               // 167: proto.MsgOpaqueData
-	(*ServerErrorReceipt)(nil),                                          // 168: proto.ServerErrorReceipt
-	(*MediaRetryNotification)(nil),                                      // 169: proto.MediaRetryNotification
-	(*MessageKey)(nil),                                                  // 170: proto.MessageKey
-	(*SyncdVersion)(nil),                                                // 171: proto.SyncdVersion
-	(*SyncdValue)(nil),                                                  // 172: proto.SyncdValue
-	(*SyncdSnapshot)(nil),                                               // 173: proto.SyncdSnapshot
-	(*SyncdRecord)(nil),                                                 // 174: proto.SyncdRecord
-	(*SyncdPatch)(nil),                                                  // 175: proto.SyncdPatch
-	(*SyncdMutations)(nil),                                              // 176: proto.SyncdMutations
-	(*SyncdMutation)(nil),                                               // 177: proto.SyncdMutation
-	(*SyncdIndex)(nil),                                                  // 178: proto.SyncdIndex
-	(*KeyId)(nil),                                                       // 179: proto.KeyId
-	(*ExternalBlobReference)(nil),                                       // 180: proto.ExternalBlobReference
-	(*ExitCode)(nil),                                                    // 181: proto.ExitCode
-	(*SyncActionValue)(nil),                                             // 182: proto.SyncActionValue
-	(*UnarchiveChatsSetting)(nil),                                       // 183: proto.UnarchiveChatsSetting
-	(*SyncActionMessage)(nil),                                           // 184: proto.SyncActionMessage
-	(*SyncActionMessageRange)(nil),                                      // 185: proto.SyncActionMessageRange
-	(*StarAction)(nil),                                                  // 186: proto.StarAction
-	(*SecurityNotificationSetting)(nil),                                 // 187: proto.SecurityNotificationSetting
-	(*RecentStickerWeightsAction)(nil),                                  // 188: proto.RecentStickerWeightsAction
-	(*RecentStickerMetadata)(nil),                                       // 189: proto.RecentStickerMetadata
-	(*RecentEmojiWeightsAction)(nil),                                    // 190: proto.RecentEmojiWeightsAction
-	(*QuickReplyAction)(nil),                                            // 191: proto.QuickReplyAction
-	(*PushNameSetting)(nil),                                             // 192: proto.PushNameSetting
-	(*PrimaryFeature)(nil),                                              // 193: proto.PrimaryFeature
-	(*PinAction)(nil),                                                   // 194: proto.PinAction
-	(*MuteAction)(nil),                                                  // 195: proto.MuteAction
-	(*MarkChatAsReadAction)(nil),                                        // 196: proto.MarkChatAsReadAction
-	(*LocaleSetting)(nil),                                               // 197: proto.LocaleSetting
-	(*LabelEditAction)(nil),                                             // 198: proto.LabelEditAction
-	(*LabelAssociationAction)(nil),                                      // 199: proto.LabelAssociationAction
-	(*KeyExpiration)(nil),                                               // 200: proto.KeyExpiration
-	(*FavoriteStickerAction)(nil),                                       // 201: proto.FavoriteStickerAction
-	(*DeleteMessageForMeAction)(nil),                                    // 202: proto.DeleteMessageForMeAction
-	(*DeleteChatAction)(nil),                                            // 203: proto.DeleteChatAction
-	(*ContactAction)(nil),                                               // 204: proto.ContactAction
-	(*ClearChatAction)(nil),                                             // 205: proto.ClearChatAction
-	(*ArchiveChatAction)(nil),                                           // 206: proto.ArchiveChatAction
-	(*AndroidUnsupportedActions)(nil),                                   // 207: proto.AndroidUnsupportedActions
-	(*SyncActionData)(nil),                                              // 208: proto.SyncActionData
-	(*RecentStickerWeight)(nil),                                         // 209: proto.RecentStickerWeight
-	(*RecentEmojiWeight)(nil),                                           // 210: proto.RecentEmojiWeight
-	(*VerifiedNameCertificate)(nil),                                     // 211: proto.VerifiedNameCertificate
-	(*VerifiedNameDetails)(nil),                                         // 212: proto.VerifiedNameDetails
-	(*LocalizedName)(nil),                                               // 213: proto.LocalizedName
-	(*BizIdentityInfo)(nil),                                             // 214: proto.BizIdentityInfo
-	(*BizAccountPayload)(nil),                                           // 215: proto.BizAccountPayload
-	(*BizAccountLinkInfo)(nil),                                          // 216: proto.BizAccountLinkInfo
-	(*NoiseCertificate)(nil),                                            // 217: proto.NoiseCertificate
-	(*NoiseCertificateDetails)(nil),                                     // 218: proto.NoiseCertificateDetails
-	(*HandshakeMessage)(nil),                                            // 219: proto.HandshakeMessage
-	(*ServerHello)(nil),                                                 // 220: proto.ServerHello
-	(*ClientHello)(nil),                                                 // 221: proto.ClientHello
-	(*ClientFinish)(nil),                                                // 222: proto.ClientFinish
-	(*ClientPayload)(nil),                                               // 223: proto.ClientPayload
-	(*WebInfo)(nil),                                                     // 224: proto.WebInfo
-	(*WebdPayload)(nil),                                                 // 225: proto.WebdPayload
-	(*UserAgent)(nil),                                                   // 226: proto.UserAgent
-	(*DNSSource)(nil),                                                   // 227: proto.DNSSource
-	(*CompanionRegData)(nil),                                            // 228: proto.CompanionRegData
-	(*WebNotificationsInfo)(nil),                                        // 229: proto.WebNotificationsInfo
-	(*WebMessageInfo)(nil),                                              // 230: proto.WebMessageInfo
-	(*WebFeatures)(nil),                                                 // 231: proto.WebFeatures
-	(*UserReceipt)(nil),                                                 // 232: proto.UserReceipt
-	(*StatusPSA)(nil),                                                   // 233: proto.StatusPSA
-	(*Reaction)(nil),                                                    // 234: proto.Reaction
-	(*PollUpdate)(nil),                                                  // 235: proto.PollUpdate
-	(*PollAdditionalMetadata)(nil),                                      // 236: proto.PollAdditionalMetadata
-	(*PhotoChange)(nil),                                                 // 237: proto.PhotoChange
-	(*PaymentInfo)(nil),                                                 // 238: proto.PaymentInfo
-	(*NotificationMessageInfo)(nil),                                     // 239: proto.NotificationMessageInfo
-	(*MediaData)(nil),                                                   // 240: proto.MediaData
+	(*PollOption)(nil),                                                  // 168: proto.PollOption
+	(*ServerErrorReceipt)(nil),                                          // 169: proto.ServerErrorReceipt
+	(*MediaRetryNotification)(nil),                                      // 170: proto.MediaRetryNotification
+	(*MessageKey)(nil),                                                  // 171: proto.MessageKey
+	(*SyncdVersion)(nil),                                                // 172: proto.SyncdVersion
+	(*SyncdValue)(nil),                                                  // 173: proto.SyncdValue
+	(*SyncdSnapshot)(nil),                                               // 174: proto.SyncdSnapshot
+	(*SyncdRecord)(nil),                                                 // 175: proto.SyncdRecord
+	(*SyncdPatch)(nil),                                                  // 176: proto.SyncdPatch
+	(*SyncdMutations)(nil),                                              // 177: proto.SyncdMutations
+	(*SyncdMutation)(nil),                                               // 178: proto.SyncdMutation
+	(*SyncdIndex)(nil),                                                  // 179: proto.SyncdIndex
+	(*KeyId)(nil),                                                       // 180: proto.KeyId
+	(*ExternalBlobReference)(nil),                                       // 181: proto.ExternalBlobReference
+	(*ExitCode)(nil),                                                    // 182: proto.ExitCode
+	(*SyncActionValue)(nil),                                             // 183: proto.SyncActionValue
+	(*UserStatusMuteAction)(nil),                                        // 184: proto.UserStatusMuteAction
+	(*UnarchiveChatsSetting)(nil),                                       // 185: proto.UnarchiveChatsSetting
+	(*TimeFormatAction)(nil),                                            // 186: proto.TimeFormatAction
+	(*SyncActionMessage)(nil),                                           // 187: proto.SyncActionMessage
+	(*SyncActionMessageRange)(nil),                                      // 188: proto.SyncActionMessageRange
+	(*SubscriptionAction)(nil),                                          // 189: proto.SubscriptionAction
+	(*StarAction)(nil),                                                  // 190: proto.StarAction
+	(*SecurityNotificationSetting)(nil),                                 // 191: proto.SecurityNotificationSetting
+	(*RecentStickerWeightsAction)(nil),                                  // 192: proto.RecentStickerWeightsAction
+	(*RecentStickerMetadata)(nil),                                       // 193: proto.RecentStickerMetadata
+	(*RecentEmojiWeightsAction)(nil),                                    // 194: proto.RecentEmojiWeightsAction
+	(*QuickReplyAction)(nil),                                            // 195: proto.QuickReplyAction
+	(*PushNameSetting)(nil),                                             // 196: proto.PushNameSetting
+	(*PrimaryFeature)(nil),                                              // 197: proto.PrimaryFeature
+	(*PinAction)(nil),                                                   // 198: proto.PinAction
+	(*MuteAction)(nil),                                                  // 199: proto.MuteAction
+	(*MarkChatAsReadAction)(nil),                                        // 200: proto.MarkChatAsReadAction
+	(*LocaleSetting)(nil),                                               // 201: proto.LocaleSetting
+	(*LabelEditAction)(nil),                                             // 202: proto.LabelEditAction
+	(*LabelAssociationAction)(nil),                                      // 203: proto.LabelAssociationAction
+	(*KeyExpiration)(nil),                                               // 204: proto.KeyExpiration
+	(*FavoriteStickerAction)(nil),                                       // 205: proto.FavoriteStickerAction
+	(*DeleteMessageForMeAction)(nil),                                    // 206: proto.DeleteMessageForMeAction
+	(*DeleteChatAction)(nil),                                            // 207: proto.DeleteChatAction
+	(*ContactAction)(nil),                                               // 208: proto.ContactAction
+	(*ClearChatAction)(nil),                                             // 209: proto.ClearChatAction
+	(*ArchiveChatAction)(nil),                                           // 210: proto.ArchiveChatAction
+	(*AndroidUnsupportedActions)(nil),                                   // 211: proto.AndroidUnsupportedActions
+	(*AgentAction)(nil),                                                 // 212: proto.AgentAction
+	(*SyncActionData)(nil),                                              // 213: proto.SyncActionData
+	(*RecentStickerWeight)(nil),                                         // 214: proto.RecentStickerWeight
+	(*RecentEmojiWeight)(nil),                                           // 215: proto.RecentEmojiWeight
+	(*VerifiedNameCertificate)(nil),                                     // 216: proto.VerifiedNameCertificate
+	(*VerifiedNameDetails)(nil),                                         // 217: proto.VerifiedNameDetails
+	(*LocalizedName)(nil),                                               // 218: proto.LocalizedName
+	(*BizIdentityInfo)(nil),                                             // 219: proto.BizIdentityInfo
+	(*BizAccountPayload)(nil),                                           // 220: proto.BizAccountPayload
+	(*BizAccountLinkInfo)(nil),                                          // 221: proto.BizAccountLinkInfo
+	(*NoiseCertificate)(nil),                                            // 222: proto.NoiseCertificate
+	(*NoiseCertificateDetails)(nil),                                     // 223: proto.NoiseCertificateDetails
+	(*HandshakeMessage)(nil),                                            // 224: proto.HandshakeMessage
+	(*ServerHello)(nil),                                                 // 225: proto.ServerHello
+	(*ClientHello)(nil),                                                 // 226: proto.ClientHello
+	(*ClientFinish)(nil),                                                // 227: proto.ClientFinish
+	(*ClientPayload)(nil),                                               // 228: proto.ClientPayload
+	(*WebInfo)(nil),                                                     // 229: proto.WebInfo
+	(*WebdPayload)(nil),                                                 // 230: proto.WebdPayload
+	(*UserAgent)(nil),                                                   // 231: proto.UserAgent
+	(*DNSSource)(nil),                                                   // 232: proto.DNSSource
+	(*CompanionRegData)(nil),                                            // 233: proto.CompanionRegData
+	(*WebNotificationsInfo)(nil),                                        // 234: proto.WebNotificationsInfo
+	(*WebMessageInfo)(nil),                                              // 235: proto.WebMessageInfo
+	(*WebFeatures)(nil),                                                 // 236: proto.WebFeatures
+	(*UserReceipt)(nil),                                                 // 237: proto.UserReceipt
+	(*StatusPSA)(nil),                                                   // 238: proto.StatusPSA
+	(*Reaction)(nil),                                                    // 239: proto.Reaction
+	(*PollUpdate)(nil),                                                  // 240: proto.PollUpdate
+	(*PollAdditionalMetadata)(nil),                                      // 241: proto.PollAdditionalMetadata
+	(*PhotoChange)(nil),                                                 // 242: proto.PhotoChange
+	(*PaymentInfo)(nil),                                                 // 243: proto.PaymentInfo
+	(*NotificationMessageInfo)(nil),                                     // 244: proto.NotificationMessageInfo
+	(*MediaData)(nil),                                                   // 245: proto.MediaData
 }
 var file_binary_proto_def_proto_depIdxs = []int32{
 	56,  // 0: proto.CompanionProps.version:type_name -> proto.AppVersion
 	1,   // 1: proto.CompanionProps.platformType:type_name -> proto.CompanionProps.CompanionPropsPlatformType
-	132, // 2: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo
-	149, // 3: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message
-	170, // 4: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey
-	146, // 5: proto.SendPaymentMessage.background:type_name -> proto.PaymentBackground
-	149, // 6: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message
-	148, // 7: proto.RequestPaymentMessage.amount:type_name -> proto.Money
-	146, // 8: proto.RequestPaymentMessage.background:type_name -> proto.PaymentBackground
-	170, // 9: proto.ReactionMessage.key:type_name -> proto.MessageKey
-	170, // 10: proto.ProtocolMessage.key:type_name -> proto.MessageKey
-	2,   // 11: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.ProtocolMessageType
-	93,  // 12: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification
-	118, // 13: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare
-	119, // 14: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest
-	91,  // 15: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync
-	123, // 16: proto.ProtocolMessage.appStateFatalExceptionNotification:type_name -> proto.AppStateFatalExceptionNotification
-	130, // 17: proto.ProtocolMessage.disappearingMode:type_name -> proto.DisappearingMode
-	64,  // 18: proto.ProductMessage.product:type_name -> proto.ProductSnapshot
-	65,  // 19: proto.ProductMessage.catalog:type_name -> proto.CatalogSnapshot
-	132, // 20: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo
-	92,  // 21: proto.ProductSnapshot.productImage:type_name -> proto.ImageMessage
-	92,  // 22: proto.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage
-	3,   // 23: proto.PaymentInviteMessage.serviceType:type_name -> proto.PaymentInviteMessage.PaymentInviteMessageServiceType
-	4,   // 24: proto.OrderMessage.status:type_name -> proto.OrderMessage.OrderMessageOrderStatus
-	5,   // 25: proto.OrderMessage.surface:type_name -> proto.OrderMessage.OrderMessageOrderSurface
-	132, // 26: proto.OrderMessage.contextInfo:type_name -> proto.ContextInfo
-	132, // 27: proto.LocationMessage.contextInfo:type_name -> proto.ContextInfo
-	132, // 28: proto.LiveLocationMessage.contextInfo:type_name -> proto.ContextInfo
-	6,   // 29: proto.ListResponseMessage.listType:type_name -> proto.ListResponseMessage.ListResponseMessageListType
-	71,  // 30: proto.ListResponseMessage.singleSelectReply:type_name -> proto.SingleSelectReply
-	132, // 31: proto.ListResponseMessage.contextInfo:type_name -> proto.ContextInfo
-	7,   // 32: proto.ListMessage.listType:type_name -> proto.ListMessage.ListMessageListType
-	73,  // 33: proto.ListMessage.sections:type_name -> proto.Section
-	77,  // 34: proto.ListMessage.productListInfo:type_name -> proto.ProductListInfo
-	132, // 35: proto.ListMessage.contextInfo:type_name -> proto.ContextInfo
-	74,  // 36: proto.Section.rows:type_name -> proto.Row
-	75,  // 37: proto.ProductSection.products:type_name -> proto.Product
-	76,  // 38: proto.ProductListInfo.productSections:type_name -> proto.ProductSection
-	78,  // 39: proto.ProductListInfo.headerImage:type_name -> proto.ProductListHeaderImage
-	8,   // 40: proto.InvoiceMessage.attachmentType:type_name -> proto.InvoiceMessage.InvoiceMessageAttachmentType
-	82,  // 41: proto.InteractiveResponseMessage.body:type_name -> proto.InteractiveResponseMessageBody
-	132, // 42: proto.InteractiveResponseMessage.contextInfo:type_name -> proto.ContextInfo
-	81,  // 43: proto.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> proto.NativeFlowResponseMessage
-	87,  // 44: proto.InteractiveMessage.header:type_name -> proto.Header
-	90,  // 45: proto.InteractiveMessage.body:type_name -> proto.InteractiveMessageBody
-	88,  // 46: proto.InteractiveMessage.footer:type_name -> proto.Footer
-	132, // 47: proto.InteractiveMessage.contextInfo:type_name -> proto.ContextInfo
-	84,  // 48: proto.InteractiveMessage.shopStorefrontMessage:type_name -> proto.ShopMessage
-	89,  // 49: proto.InteractiveMessage.collectionMessage:type_name -> proto.CollectionMessage
-	85,  // 50: proto.InteractiveMessage.nativeFlowMessage:type_name -> proto.NativeFlowMessage
-	9,   // 51: proto.ShopMessage.surface:type_name -> proto.ShopMessage.ShopMessageSurface
-	86,  // 52: proto.NativeFlowMessage.buttons:type_name -> proto.NativeFlowButton
-	103, // 53: proto.Header.documentMessage:type_name -> proto.DocumentMessage
-	92,  // 54: proto.Header.imageMessage:type_name -> proto.ImageMessage
-	151, // 55: proto.Header.videoMessage:type_name -> proto.VideoMessage
-	125, // 56: proto.ImageMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
-	132, // 57: proto.ImageMessage.contextInfo:type_name -> proto.ContextInfo
-	10,  // 58: proto.HistorySyncNotification.syncType:type_name -> proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType
-	95,  // 59: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HSMLocalizableParameter
-	152, // 60: proto.HighlyStructuredMessage.hydratedHsm:type_name -> proto.TemplateMessage
-	99,  // 61: proto.HSMLocalizableParameter.currency:type_name -> proto.HSMCurrency
-	96,  // 62: proto.HSMLocalizableParameter.dateTime:type_name -> proto.HSMDateTime
-	98,  // 63: proto.HSMDateTime.component:type_name -> proto.HSMDateTimeComponent
-	97,  // 64: proto.HSMDateTime.unixEpoch:type_name -> proto.HSMDateTimeUnixEpoch
-	11,  // 65: proto.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType
-	12,  // 66: proto.HSMDateTimeComponent.calendar:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType
-	132, // 67: proto.GroupInviteMessage.contextInfo:type_name -> proto.ContextInfo
-	13,  // 68: proto.GroupInviteMessage.groupType:type_name -> proto.GroupInviteMessage.GroupInviteMessageGroupType
-	149, // 69: proto.FutureProofMessage.message:type_name -> proto.Message
-	14,  // 70: proto.ExtendedTextMessage.font:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageFontType
-	15,  // 71: proto.ExtendedTextMessage.previewType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessagePreviewType
-	132, // 72: proto.ExtendedTextMessage.contextInfo:type_name -> proto.ContextInfo
-	16,  // 73: proto.ExtendedTextMessage.inviteLinkGroupType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageInviteLinkGroupType
-	132, // 74: proto.DocumentMessage.contextInfo:type_name -> proto.ContextInfo
-	149, // 75: proto.DeviceSentMessage.message:type_name -> proto.Message
-	170, // 76: proto.DeclinePaymentRequestMessage.key:type_name -> proto.MessageKey
-	107, // 77: proto.ContactsArrayMessage.contacts:type_name -> proto.ContactMessage
-	132, // 78: proto.ContactsArrayMessage.contextInfo:type_name -> proto.ContextInfo
-	132, // 79: proto.ContactMessage.contextInfo:type_name -> proto.ContextInfo
-	170, // 80: proto.CancelPaymentRequestMessage.key:type_name -> proto.MessageKey
-	132, // 81: proto.ButtonsResponseMessage.contextInfo:type_name -> proto.ContextInfo
-	17,  // 82: proto.ButtonsResponseMessage.type:type_name -> proto.ButtonsResponseMessage.ButtonsResponseMessageType
-	132, // 83: proto.ButtonsMessage.contextInfo:type_name -> proto.ContextInfo
-	113, // 84: proto.ButtonsMessage.buttons:type_name -> proto.Button
-	18,  // 85: proto.ButtonsMessage.headerType:type_name -> proto.ButtonsMessage.ButtonsMessageHeaderType
-	103, // 86: proto.ButtonsMessage.documentMessage:type_name -> proto.DocumentMessage
-	92,  // 87: proto.ButtonsMessage.imageMessage:type_name -> proto.ImageMessage
-	151, // 88: proto.ButtonsMessage.videoMessage:type_name -> proto.VideoMessage
-	68,  // 89: proto.ButtonsMessage.locationMessage:type_name -> proto.LocationMessage
-	115, // 90: proto.Button.buttonText:type_name -> proto.ButtonText
-	19,  // 91: proto.Button.type:type_name -> proto.Button.ButtonType
-	114, // 92: proto.Button.nativeFlowInfo:type_name -> proto.NativeFlowInfo
-	132, // 93: proto.AudioMessage.contextInfo:type_name -> proto.ContextInfo
-	120, // 94: proto.AppStateSyncKey.keyId:type_name -> proto.AppStateSyncKeyId
-	122, // 95: proto.AppStateSyncKey.keyData:type_name -> proto.AppStateSyncKeyData
-	117, // 96: proto.AppStateSyncKeyShare.keys:type_name -> proto.AppStateSyncKey
-	120, // 97: proto.AppStateSyncKeyRequest.keyIds:type_name -> proto.AppStateSyncKeyId
-	121, // 98: proto.AppStateSyncKeyData.fingerprint:type_name -> proto.AppStateSyncKeyFingerprint
-	145, // 99: proto.InteractiveAnnotation.polygonVertices:type_name -> proto.Point
-	124, // 100: proto.InteractiveAnnotation.location:type_name -> proto.Location
-	128, // 101: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedQuickReplyButton
-	127, // 102: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedURLButton
-	129, // 103: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedCallButton
-	20,  // 104: proto.DisappearingMode.initiator:type_name -> proto.DisappearingMode.DisappearingModeInitiator
-	149, // 105: proto.ContextInfo.quotedMessage:type_name -> proto.Message
-	134, // 106: proto.ContextInfo.quotedAd:type_name -> proto.AdReplyInfo
-	170, // 107: proto.ContextInfo.placeholderKey:type_name -> proto.MessageKey
-	133, // 108: proto.ContextInfo.externalAdReply:type_name -> proto.ExternalAdReplyInfo
-	130, // 109: proto.ContextInfo.disappearingMode:type_name -> proto.DisappearingMode
-	135, // 110: proto.ContextInfo.actionLink:type_name -> proto.ActionLink
-	21,  // 111: proto.ExternalAdReplyInfo.mediaType:type_name -> proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType
-	22,  // 112: proto.AdReplyInfo.mediaType:type_name -> proto.AdReplyInfo.AdReplyInfoMediaType
-	138, // 113: proto.TemplateButton.quickReplyButton:type_name -> proto.QuickReplyButton
-	137, // 114: proto.TemplateButton.urlButton:type_name -> proto.URLButton
-	139, // 115: proto.TemplateButton.callButton:type_name -> proto.CallButton
-	94,  // 116: proto.URLButton.displayText:type_name -> proto.HighlyStructuredMessage
-	94,  // 117: proto.URLButton.url:type_name -> proto.HighlyStructuredMessage
-	94,  // 118: proto.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage
-	94,  // 119: proto.CallButton.displayText:type_name -> proto.HighlyStructuredMessage
-	94,  // 120: proto.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage
-	170, // 121: proto.PollUpdateMessage.pollCreationMessageKey:type_name -> proto.MessageKey
-	142, // 122: proto.PollUpdateMessageContent.voteMessage:type_name -> proto.PollVoteMessage
-	144, // 123: proto.PollCreationMessage.options:type_name -> proto.Option
-	147, // 124: proto.PaymentBackground.mediaData:type_name -> proto.PBMediaData
-	23,  // 125: proto.PaymentBackground.type:type_name -> proto.PaymentBackground.PaymentBackgroundType
-	58,  // 126: proto.Message.senderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
-	92,  // 127: proto.Message.imageMessage:type_name -> proto.ImageMessage
-	107, // 128: proto.Message.contactMessage:type_name -> proto.ContactMessage
-	68,  // 129: proto.Message.locationMessage:type_name -> proto.LocationMessage
-	102, // 130: proto.Message.extendedTextMessage:type_name -> proto.ExtendedTextMessage
-	103, // 131: proto.Message.documentMessage:type_name -> proto.DocumentMessage
-	116, // 132: proto.Message.audioMessage:type_name -> proto.AudioMessage
-	151, // 133: proto.Message.videoMessage:type_name -> proto.VideoMessage
-	110, // 134: proto.Message.call:type_name -> proto.Call
-	108, // 135: proto.Message.chat:type_name -> proto.Chat
-	62,  // 136: proto.Message.protocolMessage:type_name -> proto.ProtocolMessage
-	106, // 137: proto.Message.contactsArrayMessage:type_name -> proto.ContactsArrayMessage
-	94,  // 138: proto.Message.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
-	58,  // 139: proto.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
-	59,  // 140: proto.Message.sendPaymentMessage:type_name -> proto.SendPaymentMessage
-	69,  // 141: proto.Message.liveLocationMessage:type_name -> proto.LiveLocationMessage
-	60,  // 142: proto.Message.requestPaymentMessage:type_name -> proto.RequestPaymentMessage
-	105, // 143: proto.Message.declinePaymentRequestMessage:type_name -> proto.DeclinePaymentRequestMessage
-	109, // 144: proto.Message.cancelPaymentRequestMessage:type_name -> proto.CancelPaymentRequestMessage
-	152, // 145: proto.Message.templateMessage:type_name -> proto.TemplateMessage
-	57,  // 146: proto.Message.stickerMessage:type_name -> proto.StickerMessage
-	100, // 147: proto.Message.groupInviteMessage:type_name -> proto.GroupInviteMessage
-	155, // 148: proto.Message.templateButtonReplyMessage:type_name -> proto.TemplateButtonReplyMessage
-	63,  // 149: proto.Message.productMessage:type_name -> proto.ProductMessage
-	104, // 150: proto.Message.deviceSentMessage:type_name -> proto.DeviceSentMessage
-	150, // 151: proto.Message.messageContextInfo:type_name -> proto.MessageContextInfo
-	72,  // 152: proto.Message.listMessage:type_name -> proto.ListMessage
-	101, // 153: proto.Message.viewOnceMessage:type_name -> proto.FutureProofMessage
-	67,  // 154: proto.Message.orderMessage:type_name -> proto.OrderMessage
-	70,  // 155: proto.Message.listResponseMessage:type_name -> proto.ListResponseMessage
-	101, // 156: proto.Message.ephemeralMessage:type_name -> proto.FutureProofMessage
-	79,  // 157: proto.Message.invoiceMessage:type_name -> proto.InvoiceMessage
-	112, // 158: proto.Message.buttonsMessage:type_name -> proto.ButtonsMessage
-	111, // 159: proto.Message.buttonsResponseMessage:type_name -> proto.ButtonsResponseMessage
-	66,  // 160: proto.Message.paymentInviteMessage:type_name -> proto.PaymentInviteMessage
-	83,  // 161: proto.Message.interactiveMessage:type_name -> proto.InteractiveMessage
-	61,  // 162: proto.Message.reactionMessage:type_name -> proto.ReactionMessage
-	156, // 163: proto.Message.stickerSyncRmrMessage:type_name -> proto.StickerSyncRMRMessage
-	80,  // 164: proto.Message.interactiveResponseMessage:type_name -> proto.InteractiveResponseMessage
-	143, // 165: proto.Message.pollCreationMessage:type_name -> proto.PollCreationMessage
-	140, // 166: proto.Message.pollUpdateMessage:type_name -> proto.PollUpdateMessage
-	131, // 167: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata
-	125, // 168: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
-	132, // 169: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo
-	24,  // 170: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.VideoMessageAttribution
-	132, // 171: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo
-	153, // 172: proto.TemplateMessage.hydratedTemplate:type_name -> proto.HydratedFourRowTemplate
-	154, // 173: proto.TemplateMessage.fourRowTemplate:type_name -> proto.FourRowTemplate
-	153, // 174: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.HydratedFourRowTemplate
-	126, // 175: proto.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton
-	103, // 176: proto.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
-	92,  // 177: proto.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage
-	151, // 178: proto.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage
-	68,  // 179: proto.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage
-	94,  // 180: proto.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage
-	94,  // 181: proto.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage
-	136, // 182: proto.FourRowTemplate.buttons:type_name -> proto.TemplateButton
-	103, // 183: proto.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
-	94,  // 184: proto.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
-	92,  // 185: proto.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage
-	151, // 186: proto.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage
-	68,  // 187: proto.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage
-	132, // 188: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo
-	25,  // 189: proto.HistorySync.syncType:type_name -> proto.HistorySync.HistorySyncHistorySyncType
-	164, // 190: proto.HistorySync.conversations:type_name -> proto.Conversation
-	230, // 191: proto.HistorySync.statusV3Messages:type_name -> proto.WebMessageInfo
-	159, // 192: proto.HistorySync.pushnames:type_name -> proto.Pushname
-	163, // 193: proto.HistorySync.globalSettings:type_name -> proto.GlobalSettings
-	230, // 194: proto.HistorySyncMsg.message:type_name -> proto.WebMessageInfo
-	26,  // 195: proto.GroupParticipant.rank:type_name -> proto.GroupParticipant.GroupParticipantRank
-	158, // 196: proto.GlobalSettings.lightThemeWallpaper:type_name -> proto.WallpaperSettings
-	0,   // 197: proto.GlobalSettings.mediaVisibility:type_name -> proto.MediaVisibility
-	158, // 198: proto.GlobalSettings.darkThemeWallpaper:type_name -> proto.WallpaperSettings
-	165, // 199: proto.GlobalSettings.autoDownloadWiFi:type_name -> proto.AutoDownloadSettings
-	165, // 200: proto.GlobalSettings.autoDownloadCellular:type_name -> proto.AutoDownloadSettings
-	165, // 201: proto.GlobalSettings.autoDownloadRoaming:type_name -> proto.AutoDownloadSettings
-	161, // 202: proto.Conversation.messages:type_name -> proto.HistorySyncMsg
-	27,  // 203: proto.Conversation.endOfHistoryTransferType:type_name -> proto.Conversation.ConversationEndOfHistoryTransferType
-	130, // 204: proto.Conversation.disappearingMode:type_name -> proto.DisappearingMode
-	162, // 205: proto.Conversation.participant:type_name -> proto.GroupParticipant
-	158, // 206: proto.Conversation.wallpaper:type_name -> proto.WallpaperSettings
-	0,   // 207: proto.Conversation.mediaVisibility:type_name -> proto.MediaVisibility
-	167, // 208: proto.MsgRowOpaqueData.currentMsg:type_name -> proto.MsgOpaqueData
-	167, // 209: proto.MsgRowOpaqueData.quotedMsg:type_name -> proto.MsgOpaqueData
-	28,  // 210: proto.MediaRetryNotification.result:type_name -> proto.MediaRetryNotification.MediaRetryNotificationResultType
-	171, // 211: proto.SyncdSnapshot.version:type_name -> proto.SyncdVersion
-	174, // 212: proto.SyncdSnapshot.records:type_name -> proto.SyncdRecord
-	179, // 213: proto.SyncdSnapshot.keyId:type_name -> proto.KeyId
-	178, // 214: proto.SyncdRecord.index:type_name -> proto.SyncdIndex
-	172, // 215: proto.SyncdRecord.value:type_name -> proto.SyncdValue
-	179, // 216: proto.SyncdRecord.keyId:type_name -> proto.KeyId
-	171, // 217: proto.SyncdPatch.version:type_name -> proto.SyncdVersion
-	177, // 218: proto.SyncdPatch.mutations:type_name -> proto.SyncdMutation
-	180, // 219: proto.SyncdPatch.externalMutations:type_name -> proto.ExternalBlobReference
-	179, // 220: proto.SyncdPatch.keyId:type_name -> proto.KeyId
-	181, // 221: proto.SyncdPatch.exitCode:type_name -> proto.ExitCode
-	177, // 222: proto.SyncdMutations.mutations:type_name -> proto.SyncdMutation
-	29,  // 223: proto.SyncdMutation.operation:type_name -> proto.SyncdMutation.SyncdMutationSyncdOperation
-	174, // 224: proto.SyncdMutation.record:type_name -> proto.SyncdRecord
-	186, // 225: proto.SyncActionValue.starAction:type_name -> proto.StarAction
-	204, // 226: proto.SyncActionValue.contactAction:type_name -> proto.ContactAction
-	195, // 227: proto.SyncActionValue.muteAction:type_name -> proto.MuteAction
-	194, // 228: proto.SyncActionValue.pinAction:type_name -> proto.PinAction
-	187, // 229: proto.SyncActionValue.securityNotificationSetting:type_name -> proto.SecurityNotificationSetting
-	192, // 230: proto.SyncActionValue.pushNameSetting:type_name -> proto.PushNameSetting
-	191, // 231: proto.SyncActionValue.quickReplyAction:type_name -> proto.QuickReplyAction
-	188, // 232: proto.SyncActionValue.recentStickerWeightsAction:type_name -> proto.RecentStickerWeightsAction
-	189, // 233: proto.SyncActionValue.recentStickerMetadata:type_name -> proto.RecentStickerMetadata
-	190, // 234: proto.SyncActionValue.recentEmojiWeightsAction:type_name -> proto.RecentEmojiWeightsAction
-	198, // 235: proto.SyncActionValue.labelEditAction:type_name -> proto.LabelEditAction
-	199, // 236: proto.SyncActionValue.labelAssociationAction:type_name -> proto.LabelAssociationAction
-	197, // 237: proto.SyncActionValue.localeSetting:type_name -> proto.LocaleSetting
-	206, // 238: proto.SyncActionValue.archiveChatAction:type_name -> proto.ArchiveChatAction
-	202, // 239: proto.SyncActionValue.deleteMessageForMeAction:type_name -> proto.DeleteMessageForMeAction
-	200, // 240: proto.SyncActionValue.keyExpiration:type_name -> proto.KeyExpiration
-	196, // 241: proto.SyncActionValue.markChatAsReadAction:type_name -> proto.MarkChatAsReadAction
-	205, // 242: proto.SyncActionValue.clearChatAction:type_name -> proto.ClearChatAction
-	203, // 243: proto.SyncActionValue.deleteChatAction:type_name -> proto.DeleteChatAction
-	183, // 244: proto.SyncActionValue.unarchiveChatsSetting:type_name -> proto.UnarchiveChatsSetting
-	193, // 245: proto.SyncActionValue.primaryFeature:type_name -> proto.PrimaryFeature
-	201, // 246: proto.SyncActionValue.favoriteStickerAction:type_name -> proto.FavoriteStickerAction
-	207, // 247: proto.SyncActionValue.androidUnsupportedActions:type_name -> proto.AndroidUnsupportedActions
-	170, // 248: proto.SyncActionMessage.key:type_name -> proto.MessageKey
-	184, // 249: proto.SyncActionMessageRange.messages:type_name -> proto.SyncActionMessage
-	209, // 250: proto.RecentStickerWeightsAction.weights:type_name -> proto.RecentStickerWeight
-	210, // 251: proto.RecentEmojiWeightsAction.weights:type_name -> proto.RecentEmojiWeight
-	185, // 252: proto.MarkChatAsReadAction.messageRange:type_name -> proto.SyncActionMessageRange
-	185, // 253: proto.DeleteChatAction.messageRange:type_name -> proto.SyncActionMessageRange
-	185, // 254: proto.ClearChatAction.messageRange:type_name -> proto.SyncActionMessageRange
-	185, // 255: proto.ArchiveChatAction.messageRange:type_name -> proto.SyncActionMessageRange
-	182, // 256: proto.SyncActionData.value:type_name -> proto.SyncActionValue
-	213, // 257: proto.VerifiedNameDetails.localizedNames:type_name -> proto.LocalizedName
-	30,  // 258: proto.BizIdentityInfo.vlevel:type_name -> proto.BizIdentityInfo.BizIdentityInfoVerifiedLevelValue
-	211, // 259: proto.BizIdentityInfo.vnameCert:type_name -> proto.VerifiedNameCertificate
-	31,  // 260: proto.BizIdentityInfo.hostStorage:type_name -> proto.BizIdentityInfo.BizIdentityInfoHostStorageType
-	32,  // 261: proto.BizIdentityInfo.actualActors:type_name -> proto.BizIdentityInfo.BizIdentityInfoActualActorsType
-	211, // 262: proto.BizAccountPayload.vnameCert:type_name -> proto.VerifiedNameCertificate
-	33,  // 263: proto.BizAccountLinkInfo.hostStorage:type_name -> proto.BizAccountLinkInfo.BizAccountLinkInfoHostStorageType
-	34,  // 264: proto.BizAccountLinkInfo.accountType:type_name -> proto.BizAccountLinkInfo.BizAccountLinkInfoAccountType
-	221, // 265: proto.HandshakeMessage.clientHello:type_name -> proto.ClientHello
-	220, // 266: proto.HandshakeMessage.serverHello:type_name -> proto.ServerHello
-	222, // 267: proto.HandshakeMessage.clientFinish:type_name -> proto.ClientFinish
-	226, // 268: proto.ClientPayload.userAgent:type_name -> proto.UserAgent
-	224, // 269: proto.ClientPayload.webInfo:type_name -> proto.WebInfo
-	35,  // 270: proto.ClientPayload.connectType:type_name -> proto.ClientPayload.ClientPayloadConnectType
-	36,  // 271: proto.ClientPayload.connectReason:type_name -> proto.ClientPayload.ClientPayloadConnectReason
-	227, // 272: proto.ClientPayload.dnsSource:type_name -> proto.DNSSource
-	228, // 273: proto.ClientPayload.regData:type_name -> proto.CompanionRegData
-	37,  // 274: proto.ClientPayload.product:type_name -> proto.ClientPayload.ClientPayloadProduct
-	38,  // 275: proto.ClientPayload.iosAppExtension:type_name -> proto.ClientPayload.ClientPayloadIOSAppExtension
-	225, // 276: proto.WebInfo.webdPayload:type_name -> proto.WebdPayload
-	39,  // 277: proto.WebInfo.webSubPlatform:type_name -> proto.WebInfo.WebInfoWebSubPlatform
-	40,  // 278: proto.UserAgent.platform:type_name -> proto.UserAgent.UserAgentPlatform
-	56,  // 279: proto.UserAgent.appVersion:type_name -> proto.AppVersion
-	41,  // 280: proto.UserAgent.releaseChannel:type_name -> proto.UserAgent.UserAgentReleaseChannel
-	42,  // 281: proto.DNSSource.dnsMethod:type_name -> proto.DNSSource.DNSSourceDNSResolutionMethod
-	230, // 282: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo
-	170, // 283: proto.WebMessageInfo.key:type_name -> proto.MessageKey
-	149, // 284: proto.WebMessageInfo.message:type_name -> proto.Message
-	43,  // 285: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.WebMessageInfoStatus
-	44,  // 286: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.WebMessageInfoStubType
-	238, // 287: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo
-	69,  // 288: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage
-	238, // 289: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo
-	45,  // 290: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus
-	240, // 291: proto.WebMessageInfo.mediaData:type_name -> proto.MediaData
-	237, // 292: proto.WebMessageInfo.photoChange:type_name -> proto.PhotoChange
-	232, // 293: proto.WebMessageInfo.userReceipt:type_name -> proto.UserReceipt
-	234, // 294: proto.WebMessageInfo.reactions:type_name -> proto.Reaction
-	240, // 295: proto.WebMessageInfo.quotedStickerData:type_name -> proto.MediaData
-	233, // 296: proto.WebMessageInfo.statusPsa:type_name -> proto.StatusPSA
-	235, // 297: proto.WebMessageInfo.pollUpdates:type_name -> proto.PollUpdate
-	236, // 298: proto.WebMessageInfo.pollAdditionalMetadata:type_name -> proto.PollAdditionalMetadata
-	46,  // 299: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 300: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 301: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 302: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 303: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 304: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 305: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 306: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 307: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 308: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 309: proto.WebFeatures.payments:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 310: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 311: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 312: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 313: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 314: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 315: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 316: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 317: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 318: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 319: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 320: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 321: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 322: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 323: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 324: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 325: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 326: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 327: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 328: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 329: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 330: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 331: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 332: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 333: proto.WebFeatures.support:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 334: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 335: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 336: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 337: proto.WebFeatures.archiveV2:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 338: proto.WebFeatures.ephemeralAllowGroupMembers:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 339: proto.WebFeatures.ephemeral24HDuration:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 340: proto.WebFeatures.mdForceUpgrade:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 341: proto.WebFeatures.disappearingMode:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 342: proto.WebFeatures.externalMdOptInAvailable:type_name -> proto.WebFeatures.WebFeaturesFlag
-	46,  // 343: proto.WebFeatures.noDeleteMessageTimeLimit:type_name -> proto.WebFeatures.WebFeaturesFlag
-	170, // 344: proto.Reaction.key:type_name -> proto.MessageKey
-	170, // 345: proto.PollUpdate.pollUpdateMessageKey:type_name -> proto.MessageKey
-	141, // 346: proto.PollUpdate.pollUpdateMessage:type_name -> proto.PollUpdateMessageContent
-	47,  // 347: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.PaymentInfoCurrency
-	48,  // 348: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.PaymentInfoStatus
-	170, // 349: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey
-	49,  // 350: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.PaymentInfoTxnStatus
-	148, // 351: proto.PaymentInfo.primaryAmount:type_name -> proto.Money
-	148, // 352: proto.PaymentInfo.exchangeAmount:type_name -> proto.Money
-	170, // 353: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey
-	149, // 354: proto.NotificationMessageInfo.message:type_name -> proto.Message
-	355, // [355:355] is the sub-list for method output_type
-	355, // [355:355] is the sub-list for method input_type
-	355, // [355:355] is the sub-list for extension type_name
-	355, // [355:355] is the sub-list for extension extendee
-	0,   // [0:355] is the sub-list for field type_name
+	171, // 2: proto.ProtocolMessage.key:type_name -> proto.MessageKey
+	2,   // 3: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.ProtocolMessageType
+	93,  // 4: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification
+	118, // 5: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare
+	119, // 6: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest
+	91,  // 7: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync
+	123, // 8: proto.ProtocolMessage.appStateFatalExceptionNotification:type_name -> proto.AppStateFatalExceptionNotification
+	130, // 9: proto.ProtocolMessage.disappearingMode:type_name -> proto.DisappearingMode
+	59,  // 10: proto.ProductMessage.product:type_name -> proto.ProductSnapshot
+	60,  // 11: proto.ProductMessage.catalog:type_name -> proto.CatalogSnapshot
+	132, // 12: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo
+	92,  // 13: proto.ProductSnapshot.productImage:type_name -> proto.ImageMessage
+	92,  // 14: proto.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage
+	171, // 15: proto.PollUpdateMessage.pollCreationMessageKey:type_name -> proto.MessageKey
+	63,  // 16: proto.PollUpdateMessage.vote:type_name -> proto.PollEncValue
+	65,  // 17: proto.PollCreationMessage.options:type_name -> proto.Option
+	132, // 18: proto.PollCreationMessage.contextInfo:type_name -> proto.ContextInfo
+	3,   // 19: proto.PaymentInviteMessage.serviceType:type_name -> proto.PaymentInviteMessage.PaymentInviteMessageServiceType
+	4,   // 20: proto.OrderMessage.status:type_name -> proto.OrderMessage.OrderMessageOrderStatus
+	5,   // 21: proto.OrderMessage.surface:type_name -> proto.OrderMessage.OrderMessageOrderSurface
+	132, // 22: proto.OrderMessage.contextInfo:type_name -> proto.ContextInfo
+	132, // 23: proto.LocationMessage.contextInfo:type_name -> proto.ContextInfo
+	132, // 24: proto.LiveLocationMessage.contextInfo:type_name -> proto.ContextInfo
+	6,   // 25: proto.ListResponseMessage.listType:type_name -> proto.ListResponseMessage.ListResponseMessageListType
+	71,  // 26: proto.ListResponseMessage.singleSelectReply:type_name -> proto.SingleSelectReply
+	132, // 27: proto.ListResponseMessage.contextInfo:type_name -> proto.ContextInfo
+	7,   // 28: proto.ListMessage.listType:type_name -> proto.ListMessage.ListMessageListType
+	73,  // 29: proto.ListMessage.sections:type_name -> proto.Section
+	77,  // 30: proto.ListMessage.productListInfo:type_name -> proto.ProductListInfo
+	132, // 31: proto.ListMessage.contextInfo:type_name -> proto.ContextInfo
+	74,  // 32: proto.Section.rows:type_name -> proto.Row
+	75,  // 33: proto.ProductSection.products:type_name -> proto.Product
+	76,  // 34: proto.ProductListInfo.productSections:type_name -> proto.ProductSection
+	78,  // 35: proto.ProductListInfo.headerImage:type_name -> proto.ProductListHeaderImage
+	8,   // 36: proto.InvoiceMessage.attachmentType:type_name -> proto.InvoiceMessage.InvoiceMessageAttachmentType
+	82,  // 37: proto.InteractiveResponseMessage.body:type_name -> proto.InteractiveResponseMessageBody
+	132, // 38: proto.InteractiveResponseMessage.contextInfo:type_name -> proto.ContextInfo
+	81,  // 39: proto.InteractiveResponseMessage.nativeFlowResponseMessage:type_name -> proto.NativeFlowResponseMessage
+	87,  // 40: proto.InteractiveMessage.header:type_name -> proto.Header
+	90,  // 41: proto.InteractiveMessage.body:type_name -> proto.InteractiveMessageBody
+	88,  // 42: proto.InteractiveMessage.footer:type_name -> proto.Footer
+	132, // 43: proto.InteractiveMessage.contextInfo:type_name -> proto.ContextInfo
+	84,  // 44: proto.InteractiveMessage.shopStorefrontMessage:type_name -> proto.ShopMessage
+	89,  // 45: proto.InteractiveMessage.collectionMessage:type_name -> proto.CollectionMessage
+	85,  // 46: proto.InteractiveMessage.nativeFlowMessage:type_name -> proto.NativeFlowMessage
+	9,   // 47: proto.ShopMessage.surface:type_name -> proto.ShopMessage.ShopMessageSurface
+	86,  // 48: proto.NativeFlowMessage.buttons:type_name -> proto.NativeFlowButton
+	103, // 49: proto.Header.documentMessage:type_name -> proto.DocumentMessage
+	92,  // 50: proto.Header.imageMessage:type_name -> proto.ImageMessage
+	146, // 51: proto.Header.videoMessage:type_name -> proto.VideoMessage
+	125, // 52: proto.ImageMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
+	132, // 53: proto.ImageMessage.contextInfo:type_name -> proto.ContextInfo
+	10,  // 54: proto.HistorySyncNotification.syncType:type_name -> proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType
+	95,  // 55: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HSMLocalizableParameter
+	147, // 56: proto.HighlyStructuredMessage.hydratedHsm:type_name -> proto.TemplateMessage
+	99,  // 57: proto.HSMLocalizableParameter.currency:type_name -> proto.HSMCurrency
+	96,  // 58: proto.HSMLocalizableParameter.dateTime:type_name -> proto.HSMDateTime
+	98,  // 59: proto.HSMDateTime.component:type_name -> proto.HSMDateTimeComponent
+	97,  // 60: proto.HSMDateTime.unixEpoch:type_name -> proto.HSMDateTimeUnixEpoch
+	11,  // 61: proto.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType
+	12,  // 62: proto.HSMDateTimeComponent.calendar:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType
+	132, // 63: proto.GroupInviteMessage.contextInfo:type_name -> proto.ContextInfo
+	13,  // 64: proto.GroupInviteMessage.groupType:type_name -> proto.GroupInviteMessage.GroupInviteMessageGroupType
+	144, // 65: proto.FutureProofMessage.message:type_name -> proto.Message
+	14,  // 66: proto.ExtendedTextMessage.font:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageFontType
+	15,  // 67: proto.ExtendedTextMessage.previewType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessagePreviewType
+	132, // 68: proto.ExtendedTextMessage.contextInfo:type_name -> proto.ContextInfo
+	16,  // 69: proto.ExtendedTextMessage.inviteLinkGroupType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageInviteLinkGroupType
+	16,  // 70: proto.ExtendedTextMessage.inviteLinkGroupTypeV2:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageInviteLinkGroupType
+	132, // 71: proto.DocumentMessage.contextInfo:type_name -> proto.ContextInfo
+	144, // 72: proto.DeviceSentMessage.message:type_name -> proto.Message
+	171, // 73: proto.DeclinePaymentRequestMessage.key:type_name -> proto.MessageKey
+	107, // 74: proto.ContactsArrayMessage.contacts:type_name -> proto.ContactMessage
+	132, // 75: proto.ContactsArrayMessage.contextInfo:type_name -> proto.ContextInfo
+	132, // 76: proto.ContactMessage.contextInfo:type_name -> proto.ContextInfo
+	171, // 77: proto.CancelPaymentRequestMessage.key:type_name -> proto.MessageKey
+	132, // 78: proto.ButtonsResponseMessage.contextInfo:type_name -> proto.ContextInfo
+	17,  // 79: proto.ButtonsResponseMessage.type:type_name -> proto.ButtonsResponseMessage.ButtonsResponseMessageType
+	132, // 80: proto.ButtonsMessage.contextInfo:type_name -> proto.ContextInfo
+	113, // 81: proto.ButtonsMessage.buttons:type_name -> proto.Button
+	18,  // 82: proto.ButtonsMessage.headerType:type_name -> proto.ButtonsMessage.ButtonsMessageHeaderType
+	103, // 83: proto.ButtonsMessage.documentMessage:type_name -> proto.DocumentMessage
+	92,  // 84: proto.ButtonsMessage.imageMessage:type_name -> proto.ImageMessage
+	146, // 85: proto.ButtonsMessage.videoMessage:type_name -> proto.VideoMessage
+	68,  // 86: proto.ButtonsMessage.locationMessage:type_name -> proto.LocationMessage
+	115, // 87: proto.Button.buttonText:type_name -> proto.ButtonText
+	19,  // 88: proto.Button.type:type_name -> proto.Button.ButtonType
+	114, // 89: proto.Button.nativeFlowInfo:type_name -> proto.NativeFlowInfo
+	132, // 90: proto.AudioMessage.contextInfo:type_name -> proto.ContextInfo
+	120, // 91: proto.AppStateSyncKey.keyId:type_name -> proto.AppStateSyncKeyId
+	122, // 92: proto.AppStateSyncKey.keyData:type_name -> proto.AppStateSyncKeyData
+	117, // 93: proto.AppStateSyncKeyShare.keys:type_name -> proto.AppStateSyncKey
+	120, // 94: proto.AppStateSyncKeyRequest.keyIds:type_name -> proto.AppStateSyncKeyId
+	121, // 95: proto.AppStateSyncKeyData.fingerprint:type_name -> proto.AppStateSyncKeyFingerprint
+	140, // 96: proto.InteractiveAnnotation.polygonVertices:type_name -> proto.Point
+	124, // 97: proto.InteractiveAnnotation.location:type_name -> proto.Location
+	128, // 98: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedQuickReplyButton
+	127, // 99: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedURLButton
+	129, // 100: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedCallButton
+	20,  // 101: proto.DisappearingMode.initiator:type_name -> proto.DisappearingMode.DisappearingModeInitiator
+	144, // 102: proto.ContextInfo.quotedMessage:type_name -> proto.Message
+	134, // 103: proto.ContextInfo.quotedAd:type_name -> proto.AdReplyInfo
+	171, // 104: proto.ContextInfo.placeholderKey:type_name -> proto.MessageKey
+	133, // 105: proto.ContextInfo.externalAdReply:type_name -> proto.ExternalAdReplyInfo
+	130, // 106: proto.ContextInfo.disappearingMode:type_name -> proto.DisappearingMode
+	135, // 107: proto.ContextInfo.actionLink:type_name -> proto.ActionLink
+	21,  // 108: proto.ExternalAdReplyInfo.mediaType:type_name -> proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType
+	22,  // 109: proto.AdReplyInfo.mediaType:type_name -> proto.AdReplyInfo.AdReplyInfoMediaType
+	138, // 110: proto.TemplateButton.quickReplyButton:type_name -> proto.QuickReplyButton
+	137, // 111: proto.TemplateButton.urlButton:type_name -> proto.URLButton
+	139, // 112: proto.TemplateButton.callButton:type_name -> proto.CallButton
+	94,  // 113: proto.URLButton.displayText:type_name -> proto.HighlyStructuredMessage
+	94,  // 114: proto.URLButton.url:type_name -> proto.HighlyStructuredMessage
+	94,  // 115: proto.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage
+	94,  // 116: proto.CallButton.displayText:type_name -> proto.HighlyStructuredMessage
+	94,  // 117: proto.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage
+	142, // 118: proto.PaymentBackground.mediaData:type_name -> proto.PBMediaData
+	23,  // 119: proto.PaymentBackground.type:type_name -> proto.PaymentBackground.PaymentBackgroundType
+	153, // 120: proto.Message.senderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
+	92,  // 121: proto.Message.imageMessage:type_name -> proto.ImageMessage
+	107, // 122: proto.Message.contactMessage:type_name -> proto.ContactMessage
+	68,  // 123: proto.Message.locationMessage:type_name -> proto.LocationMessage
+	102, // 124: proto.Message.extendedTextMessage:type_name -> proto.ExtendedTextMessage
+	103, // 125: proto.Message.documentMessage:type_name -> proto.DocumentMessage
+	116, // 126: proto.Message.audioMessage:type_name -> proto.AudioMessage
+	146, // 127: proto.Message.videoMessage:type_name -> proto.VideoMessage
+	110, // 128: proto.Message.call:type_name -> proto.Call
+	108, // 129: proto.Message.chat:type_name -> proto.Chat
+	57,  // 130: proto.Message.protocolMessage:type_name -> proto.ProtocolMessage
+	106, // 131: proto.Message.contactsArrayMessage:type_name -> proto.ContactsArrayMessage
+	94,  // 132: proto.Message.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
+	153, // 133: proto.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
+	154, // 134: proto.Message.sendPaymentMessage:type_name -> proto.SendPaymentMessage
+	69,  // 135: proto.Message.liveLocationMessage:type_name -> proto.LiveLocationMessage
+	155, // 136: proto.Message.requestPaymentMessage:type_name -> proto.RequestPaymentMessage
+	105, // 137: proto.Message.declinePaymentRequestMessage:type_name -> proto.DeclinePaymentRequestMessage
+	109, // 138: proto.Message.cancelPaymentRequestMessage:type_name -> proto.CancelPaymentRequestMessage
+	147, // 139: proto.Message.templateMessage:type_name -> proto.TemplateMessage
+	152, // 140: proto.Message.stickerMessage:type_name -> proto.StickerMessage
+	100, // 141: proto.Message.groupInviteMessage:type_name -> proto.GroupInviteMessage
+	150, // 142: proto.Message.templateButtonReplyMessage:type_name -> proto.TemplateButtonReplyMessage
+	58,  // 143: proto.Message.productMessage:type_name -> proto.ProductMessage
+	104, // 144: proto.Message.deviceSentMessage:type_name -> proto.DeviceSentMessage
+	145, // 145: proto.Message.messageContextInfo:type_name -> proto.MessageContextInfo
+	72,  // 146: proto.Message.listMessage:type_name -> proto.ListMessage
+	101, // 147: proto.Message.viewOnceMessage:type_name -> proto.FutureProofMessage
+	67,  // 148: proto.Message.orderMessage:type_name -> proto.OrderMessage
+	70,  // 149: proto.Message.listResponseMessage:type_name -> proto.ListResponseMessage
+	101, // 150: proto.Message.ephemeralMessage:type_name -> proto.FutureProofMessage
+	79,  // 151: proto.Message.invoiceMessage:type_name -> proto.InvoiceMessage
+	112, // 152: proto.Message.buttonsMessage:type_name -> proto.ButtonsMessage
+	111, // 153: proto.Message.buttonsResponseMessage:type_name -> proto.ButtonsResponseMessage
+	66,  // 154: proto.Message.paymentInviteMessage:type_name -> proto.PaymentInviteMessage
+	83,  // 155: proto.Message.interactiveMessage:type_name -> proto.InteractiveMessage
+	156, // 156: proto.Message.reactionMessage:type_name -> proto.ReactionMessage
+	151, // 157: proto.Message.stickerSyncRmrMessage:type_name -> proto.StickerSyncRMRMessage
+	80,  // 158: proto.Message.interactiveResponseMessage:type_name -> proto.InteractiveResponseMessage
+	64,  // 159: proto.Message.pollCreationMessage:type_name -> proto.PollCreationMessage
+	62,  // 160: proto.Message.pollUpdateMessage:type_name -> proto.PollUpdateMessage
+	131, // 161: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata
+	125, // 162: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
+	132, // 163: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo
+	24,  // 164: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.VideoMessageAttribution
+	132, // 165: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo
+	148, // 166: proto.TemplateMessage.hydratedTemplate:type_name -> proto.HydratedFourRowTemplate
+	149, // 167: proto.TemplateMessage.fourRowTemplate:type_name -> proto.FourRowTemplate
+	148, // 168: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.HydratedFourRowTemplate
+	126, // 169: proto.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton
+	103, // 170: proto.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
+	92,  // 171: proto.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage
+	146, // 172: proto.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage
+	68,  // 173: proto.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage
+	94,  // 174: proto.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage
+	94,  // 175: proto.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage
+	136, // 176: proto.FourRowTemplate.buttons:type_name -> proto.TemplateButton
+	103, // 177: proto.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
+	94,  // 178: proto.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
+	92,  // 179: proto.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage
+	146, // 180: proto.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage
+	68,  // 181: proto.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage
+	132, // 182: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo
+	132, // 183: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo
+	144, // 184: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message
+	171, // 185: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey
+	141, // 186: proto.SendPaymentMessage.background:type_name -> proto.PaymentBackground
+	144, // 187: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message
+	143, // 188: proto.RequestPaymentMessage.amount:type_name -> proto.Money
+	141, // 189: proto.RequestPaymentMessage.background:type_name -> proto.PaymentBackground
+	171, // 190: proto.ReactionMessage.key:type_name -> proto.MessageKey
+	25,  // 191: proto.HistorySync.syncType:type_name -> proto.HistorySync.HistorySyncHistorySyncType
+	164, // 192: proto.HistorySync.conversations:type_name -> proto.Conversation
+	235, // 193: proto.HistorySync.statusV3Messages:type_name -> proto.WebMessageInfo
+	159, // 194: proto.HistorySync.pushnames:type_name -> proto.Pushname
+	163, // 195: proto.HistorySync.globalSettings:type_name -> proto.GlobalSettings
+	235, // 196: proto.HistorySyncMsg.message:type_name -> proto.WebMessageInfo
+	26,  // 197: proto.GroupParticipant.rank:type_name -> proto.GroupParticipant.GroupParticipantRank
+	158, // 198: proto.GlobalSettings.lightThemeWallpaper:type_name -> proto.WallpaperSettings
+	0,   // 199: proto.GlobalSettings.mediaVisibility:type_name -> proto.MediaVisibility
+	158, // 200: proto.GlobalSettings.darkThemeWallpaper:type_name -> proto.WallpaperSettings
+	165, // 201: proto.GlobalSettings.autoDownloadWiFi:type_name -> proto.AutoDownloadSettings
+	165, // 202: proto.GlobalSettings.autoDownloadCellular:type_name -> proto.AutoDownloadSettings
+	165, // 203: proto.GlobalSettings.autoDownloadRoaming:type_name -> proto.AutoDownloadSettings
+	161, // 204: proto.Conversation.messages:type_name -> proto.HistorySyncMsg
+	27,  // 205: proto.Conversation.endOfHistoryTransferType:type_name -> proto.Conversation.ConversationEndOfHistoryTransferType
+	130, // 206: proto.Conversation.disappearingMode:type_name -> proto.DisappearingMode
+	162, // 207: proto.Conversation.participant:type_name -> proto.GroupParticipant
+	158, // 208: proto.Conversation.wallpaper:type_name -> proto.WallpaperSettings
+	0,   // 209: proto.Conversation.mediaVisibility:type_name -> proto.MediaVisibility
+	167, // 210: proto.MsgRowOpaqueData.currentMsg:type_name -> proto.MsgOpaqueData
+	167, // 211: proto.MsgRowOpaqueData.quotedMsg:type_name -> proto.MsgOpaqueData
+	168, // 212: proto.MsgOpaqueData.pollOptions:type_name -> proto.PollOption
+	28,  // 213: proto.MediaRetryNotification.result:type_name -> proto.MediaRetryNotification.MediaRetryNotificationResultType
+	172, // 214: proto.SyncdSnapshot.version:type_name -> proto.SyncdVersion
+	175, // 215: proto.SyncdSnapshot.records:type_name -> proto.SyncdRecord
+	180, // 216: proto.SyncdSnapshot.keyId:type_name -> proto.KeyId
+	179, // 217: proto.SyncdRecord.index:type_name -> proto.SyncdIndex
+	173, // 218: proto.SyncdRecord.value:type_name -> proto.SyncdValue
+	180, // 219: proto.SyncdRecord.keyId:type_name -> proto.KeyId
+	172, // 220: proto.SyncdPatch.version:type_name -> proto.SyncdVersion
+	178, // 221: proto.SyncdPatch.mutations:type_name -> proto.SyncdMutation
+	181, // 222: proto.SyncdPatch.externalMutations:type_name -> proto.ExternalBlobReference
+	180, // 223: proto.SyncdPatch.keyId:type_name -> proto.KeyId
+	182, // 224: proto.SyncdPatch.exitCode:type_name -> proto.ExitCode
+	178, // 225: proto.SyncdMutations.mutations:type_name -> proto.SyncdMutation
+	29,  // 226: proto.SyncdMutation.operation:type_name -> proto.SyncdMutation.SyncdMutationSyncdOperation
+	175, // 227: proto.SyncdMutation.record:type_name -> proto.SyncdRecord
+	190, // 228: proto.SyncActionValue.starAction:type_name -> proto.StarAction
+	208, // 229: proto.SyncActionValue.contactAction:type_name -> proto.ContactAction
+	199, // 230: proto.SyncActionValue.muteAction:type_name -> proto.MuteAction
+	198, // 231: proto.SyncActionValue.pinAction:type_name -> proto.PinAction
+	191, // 232: proto.SyncActionValue.securityNotificationSetting:type_name -> proto.SecurityNotificationSetting
+	196, // 233: proto.SyncActionValue.pushNameSetting:type_name -> proto.PushNameSetting
+	195, // 234: proto.SyncActionValue.quickReplyAction:type_name -> proto.QuickReplyAction
+	192, // 235: proto.SyncActionValue.recentStickerWeightsAction:type_name -> proto.RecentStickerWeightsAction
+	193, // 236: proto.SyncActionValue.recentStickerMetadata:type_name -> proto.RecentStickerMetadata
+	194, // 237: proto.SyncActionValue.recentEmojiWeightsAction:type_name -> proto.RecentEmojiWeightsAction
+	202, // 238: proto.SyncActionValue.labelEditAction:type_name -> proto.LabelEditAction
+	203, // 239: proto.SyncActionValue.labelAssociationAction:type_name -> proto.LabelAssociationAction
+	201, // 240: proto.SyncActionValue.localeSetting:type_name -> proto.LocaleSetting
+	210, // 241: proto.SyncActionValue.archiveChatAction:type_name -> proto.ArchiveChatAction
+	206, // 242: proto.SyncActionValue.deleteMessageForMeAction:type_name -> proto.DeleteMessageForMeAction
+	204, // 243: proto.SyncActionValue.keyExpiration:type_name -> proto.KeyExpiration
+	200, // 244: proto.SyncActionValue.markChatAsReadAction:type_name -> proto.MarkChatAsReadAction
+	209, // 245: proto.SyncActionValue.clearChatAction:type_name -> proto.ClearChatAction
+	207, // 246: proto.SyncActionValue.deleteChatAction:type_name -> proto.DeleteChatAction
+	185, // 247: proto.SyncActionValue.unarchiveChatsSetting:type_name -> proto.UnarchiveChatsSetting
+	197, // 248: proto.SyncActionValue.primaryFeature:type_name -> proto.PrimaryFeature
+	205, // 249: proto.SyncActionValue.favoriteStickerAction:type_name -> proto.FavoriteStickerAction
+	211, // 250: proto.SyncActionValue.androidUnsupportedActions:type_name -> proto.AndroidUnsupportedActions
+	212, // 251: proto.SyncActionValue.agentAction:type_name -> proto.AgentAction
+	189, // 252: proto.SyncActionValue.subscriptionAction:type_name -> proto.SubscriptionAction
+	184, // 253: proto.SyncActionValue.userStatusMuteAction:type_name -> proto.UserStatusMuteAction
+	186, // 254: proto.SyncActionValue.timeFormatAction:type_name -> proto.TimeFormatAction
+	171, // 255: proto.SyncActionMessage.key:type_name -> proto.MessageKey
+	187, // 256: proto.SyncActionMessageRange.messages:type_name -> proto.SyncActionMessage
+	214, // 257: proto.RecentStickerWeightsAction.weights:type_name -> proto.RecentStickerWeight
+	215, // 258: proto.RecentEmojiWeightsAction.weights:type_name -> proto.RecentEmojiWeight
+	188, // 259: proto.MarkChatAsReadAction.messageRange:type_name -> proto.SyncActionMessageRange
+	188, // 260: proto.DeleteChatAction.messageRange:type_name -> proto.SyncActionMessageRange
+	188, // 261: proto.ClearChatAction.messageRange:type_name -> proto.SyncActionMessageRange
+	188, // 262: proto.ArchiveChatAction.messageRange:type_name -> proto.SyncActionMessageRange
+	183, // 263: proto.SyncActionData.value:type_name -> proto.SyncActionValue
+	218, // 264: proto.VerifiedNameDetails.localizedNames:type_name -> proto.LocalizedName
+	30,  // 265: proto.BizIdentityInfo.vlevel:type_name -> proto.BizIdentityInfo.BizIdentityInfoVerifiedLevelValue
+	216, // 266: proto.BizIdentityInfo.vnameCert:type_name -> proto.VerifiedNameCertificate
+	31,  // 267: proto.BizIdentityInfo.hostStorage:type_name -> proto.BizIdentityInfo.BizIdentityInfoHostStorageType
+	32,  // 268: proto.BizIdentityInfo.actualActors:type_name -> proto.BizIdentityInfo.BizIdentityInfoActualActorsType
+	216, // 269: proto.BizAccountPayload.vnameCert:type_name -> proto.VerifiedNameCertificate
+	33,  // 270: proto.BizAccountLinkInfo.hostStorage:type_name -> proto.BizAccountLinkInfo.BizAccountLinkInfoHostStorageType
+	34,  // 271: proto.BizAccountLinkInfo.accountType:type_name -> proto.BizAccountLinkInfo.BizAccountLinkInfoAccountType
+	226, // 272: proto.HandshakeMessage.clientHello:type_name -> proto.ClientHello
+	225, // 273: proto.HandshakeMessage.serverHello:type_name -> proto.ServerHello
+	227, // 274: proto.HandshakeMessage.clientFinish:type_name -> proto.ClientFinish
+	231, // 275: proto.ClientPayload.userAgent:type_name -> proto.UserAgent
+	229, // 276: proto.ClientPayload.webInfo:type_name -> proto.WebInfo
+	35,  // 277: proto.ClientPayload.connectType:type_name -> proto.ClientPayload.ClientPayloadConnectType
+	36,  // 278: proto.ClientPayload.connectReason:type_name -> proto.ClientPayload.ClientPayloadConnectReason
+	232, // 279: proto.ClientPayload.dnsSource:type_name -> proto.DNSSource
+	233, // 280: proto.ClientPayload.regData:type_name -> proto.CompanionRegData
+	37,  // 281: proto.ClientPayload.product:type_name -> proto.ClientPayload.ClientPayloadProduct
+	38,  // 282: proto.ClientPayload.iosAppExtension:type_name -> proto.ClientPayload.ClientPayloadIOSAppExtension
+	230, // 283: proto.WebInfo.webdPayload:type_name -> proto.WebdPayload
+	39,  // 284: proto.WebInfo.webSubPlatform:type_name -> proto.WebInfo.WebInfoWebSubPlatform
+	40,  // 285: proto.UserAgent.platform:type_name -> proto.UserAgent.UserAgentPlatform
+	56,  // 286: proto.UserAgent.appVersion:type_name -> proto.AppVersion
+	41,  // 287: proto.UserAgent.releaseChannel:type_name -> proto.UserAgent.UserAgentReleaseChannel
+	42,  // 288: proto.DNSSource.dnsMethod:type_name -> proto.DNSSource.DNSSourceDNSResolutionMethod
+	235, // 289: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo
+	171, // 290: proto.WebMessageInfo.key:type_name -> proto.MessageKey
+	144, // 291: proto.WebMessageInfo.message:type_name -> proto.Message
+	43,  // 292: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.WebMessageInfoStatus
+	44,  // 293: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.WebMessageInfoStubType
+	243, // 294: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo
+	69,  // 295: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage
+	243, // 296: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo
+	45,  // 297: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus
+	245, // 298: proto.WebMessageInfo.mediaData:type_name -> proto.MediaData
+	242, // 299: proto.WebMessageInfo.photoChange:type_name -> proto.PhotoChange
+	237, // 300: proto.WebMessageInfo.userReceipt:type_name -> proto.UserReceipt
+	239, // 301: proto.WebMessageInfo.reactions:type_name -> proto.Reaction
+	245, // 302: proto.WebMessageInfo.quotedStickerData:type_name -> proto.MediaData
+	238, // 303: proto.WebMessageInfo.statusPsa:type_name -> proto.StatusPSA
+	240, // 304: proto.WebMessageInfo.pollUpdates:type_name -> proto.PollUpdate
+	241, // 305: proto.WebMessageInfo.pollAdditionalMetadata:type_name -> proto.PollAdditionalMetadata
+	46,  // 306: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 307: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 308: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 309: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 310: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 311: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 312: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 313: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 314: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 315: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 316: proto.WebFeatures.payments:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 317: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 318: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 319: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 320: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 321: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 322: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 323: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 324: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 325: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 326: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 327: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 328: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 329: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 330: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 331: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 332: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 333: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 334: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 335: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 336: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 337: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 338: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 339: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 340: proto.WebFeatures.support:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 341: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 342: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 343: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 344: proto.WebFeatures.archiveV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 345: proto.WebFeatures.ephemeralAllowGroupMembers:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 346: proto.WebFeatures.ephemeral24HDuration:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 347: proto.WebFeatures.mdForceUpgrade:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 348: proto.WebFeatures.disappearingMode:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 349: proto.WebFeatures.externalMdOptInAvailable:type_name -> proto.WebFeatures.WebFeaturesFlag
+	46,  // 350: proto.WebFeatures.noDeleteMessageTimeLimit:type_name -> proto.WebFeatures.WebFeaturesFlag
+	171, // 351: proto.Reaction.key:type_name -> proto.MessageKey
+	171, // 352: proto.PollUpdate.pollUpdateMessageKey:type_name -> proto.MessageKey
+	61,  // 353: proto.PollUpdate.vote:type_name -> proto.PollVoteMessage
+	47,  // 354: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.PaymentInfoCurrency
+	48,  // 355: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.PaymentInfoStatus
+	171, // 356: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey
+	49,  // 357: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.PaymentInfoTxnStatus
+	143, // 358: proto.PaymentInfo.primaryAmount:type_name -> proto.Money
+	143, // 359: proto.PaymentInfo.exchangeAmount:type_name -> proto.Money
+	171, // 360: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey
+	144, // 361: proto.NotificationMessageInfo.message:type_name -> proto.Message
+	362, // [362:362] is the sub-list for method output_type
+	362, // [362:362] is the sub-list for method input_type
+	362, // [362:362] is the sub-list for extension type_name
+	362, // [362:362] is the sub-list for extension extendee
+	0,   // [0:362] is the sub-list for field type_name
 }
 
 func init() { file_binary_proto_def_proto_init() }
@@ -20180,7 +20598,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StickerMessage); i {
+			switch v := v.(*ProtocolMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20192,7 +20610,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SenderKeyDistributionMessage); i {
+			switch v := v.(*ProductMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20204,7 +20622,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SendPaymentMessage); i {
+			switch v := v.(*ProductSnapshot); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20216,7 +20634,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RequestPaymentMessage); i {
+			switch v := v.(*CatalogSnapshot); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20228,7 +20646,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ReactionMessage); i {
+			switch v := v.(*PollVoteMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20240,7 +20658,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProtocolMessage); i {
+			switch v := v.(*PollUpdateMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20252,7 +20670,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProductMessage); i {
+			switch v := v.(*PollEncValue); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20264,7 +20682,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProductSnapshot); i {
+			switch v := v.(*PollCreationMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -20276,7 +20694,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CatalogSnapshot); i {
+			switch v := v.(*Option); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21176,7 +21594,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollUpdateMessage); i {
+			switch v := v.(*Point); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21188,7 +21606,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollUpdateMessageContent); i {
+			switch v := v.(*PaymentBackground); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21200,7 +21618,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollVoteMessage); i {
+			switch v := v.(*PBMediaData); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21212,7 +21630,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollCreationMessage); i {
+			switch v := v.(*Money); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21224,7 +21642,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Option); i {
+			switch v := v.(*Message); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21236,7 +21654,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Point); i {
+			switch v := v.(*MessageContextInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21248,7 +21666,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PaymentBackground); i {
+			switch v := v.(*VideoMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21260,7 +21678,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PBMediaData); i {
+			switch v := v.(*TemplateMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21272,7 +21690,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Money); i {
+			switch v := v.(*HydratedFourRowTemplate); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21284,7 +21702,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Message); i {
+			switch v := v.(*FourRowTemplate); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21296,7 +21714,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MessageContextInfo); i {
+			switch v := v.(*TemplateButtonReplyMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21308,7 +21726,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VideoMessage); i {
+			switch v := v.(*StickerSyncRMRMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21320,7 +21738,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TemplateMessage); i {
+			switch v := v.(*StickerMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21332,7 +21750,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*HydratedFourRowTemplate); i {
+			switch v := v.(*SenderKeyDistributionMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21344,7 +21762,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FourRowTemplate); i {
+			switch v := v.(*SendPaymentMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21356,7 +21774,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TemplateButtonReplyMessage); i {
+			switch v := v.(*RequestPaymentMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21368,7 +21786,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StickerSyncRMRMessage); i {
+			switch v := v.(*ReactionMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21512,7 +21930,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ServerErrorReceipt); i {
+			switch v := v.(*PollOption); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21524,7 +21942,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MediaRetryNotification); i {
+			switch v := v.(*ServerErrorReceipt); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21536,7 +21954,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MessageKey); i {
+			switch v := v.(*MediaRetryNotification); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21548,7 +21966,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdVersion); i {
+			switch v := v.(*MessageKey); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21560,7 +21978,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdValue); i {
+			switch v := v.(*SyncdVersion); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21572,7 +21990,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdSnapshot); i {
+			switch v := v.(*SyncdValue); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21584,7 +22002,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdRecord); i {
+			switch v := v.(*SyncdSnapshot); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21596,7 +22014,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdPatch); i {
+			switch v := v.(*SyncdRecord); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21608,7 +22026,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdMutations); i {
+			switch v := v.(*SyncdPatch); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21620,7 +22038,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdMutation); i {
+			switch v := v.(*SyncdMutations); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21632,7 +22050,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncdIndex); i {
+			switch v := v.(*SyncdMutation); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21644,7 +22062,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KeyId); i {
+			switch v := v.(*SyncdIndex); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21656,7 +22074,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ExternalBlobReference); i {
+			switch v := v.(*KeyId); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21668,7 +22086,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ExitCode); i {
+			switch v := v.(*ExternalBlobReference); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21680,7 +22098,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncActionValue); i {
+			switch v := v.(*ExitCode); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21692,7 +22110,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UnarchiveChatsSetting); i {
+			switch v := v.(*SyncActionValue); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21704,7 +22122,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncActionMessage); i {
+			switch v := v.(*UserStatusMuteAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21716,7 +22134,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncActionMessageRange); i {
+			switch v := v.(*UnarchiveChatsSetting); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21728,7 +22146,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StarAction); i {
+			switch v := v.(*TimeFormatAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21740,7 +22158,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SecurityNotificationSetting); i {
+			switch v := v.(*SyncActionMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21752,7 +22170,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RecentStickerWeightsAction); i {
+			switch v := v.(*SyncActionMessageRange); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21764,7 +22182,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RecentStickerMetadata); i {
+			switch v := v.(*SubscriptionAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21776,7 +22194,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RecentEmojiWeightsAction); i {
+			switch v := v.(*StarAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21788,7 +22206,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*QuickReplyAction); i {
+			switch v := v.(*SecurityNotificationSetting); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21800,7 +22218,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PushNameSetting); i {
+			switch v := v.(*RecentStickerWeightsAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21812,7 +22230,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PrimaryFeature); i {
+			switch v := v.(*RecentStickerMetadata); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21824,7 +22242,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PinAction); i {
+			switch v := v.(*RecentEmojiWeightsAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21836,7 +22254,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MuteAction); i {
+			switch v := v.(*QuickReplyAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21848,7 +22266,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MarkChatAsReadAction); i {
+			switch v := v.(*PushNameSetting); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21860,7 +22278,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LocaleSetting); i {
+			switch v := v.(*PrimaryFeature); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21872,7 +22290,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LabelEditAction); i {
+			switch v := v.(*PinAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21884,7 +22302,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LabelAssociationAction); i {
+			switch v := v.(*MuteAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21896,7 +22314,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KeyExpiration); i {
+			switch v := v.(*MarkChatAsReadAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21908,7 +22326,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FavoriteStickerAction); i {
+			switch v := v.(*LocaleSetting); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21920,7 +22338,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteMessageForMeAction); i {
+			switch v := v.(*LabelEditAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21932,7 +22350,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteChatAction); i {
+			switch v := v.(*LabelAssociationAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21944,7 +22362,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ContactAction); i {
+			switch v := v.(*KeyExpiration); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21956,7 +22374,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearChatAction); i {
+			switch v := v.(*FavoriteStickerAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21968,7 +22386,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ArchiveChatAction); i {
+			switch v := v.(*DeleteMessageForMeAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21980,7 +22398,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AndroidUnsupportedActions); i {
+			switch v := v.(*DeleteChatAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -21992,7 +22410,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncActionData); i {
+			switch v := v.(*ContactAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22004,7 +22422,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RecentStickerWeight); i {
+			switch v := v.(*ClearChatAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22016,7 +22434,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RecentEmojiWeight); i {
+			switch v := v.(*ArchiveChatAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22028,7 +22446,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VerifiedNameCertificate); i {
+			switch v := v.(*AndroidUnsupportedActions); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22040,7 +22458,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VerifiedNameDetails); i {
+			switch v := v.(*AgentAction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22052,7 +22470,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LocalizedName); i {
+			switch v := v.(*SyncActionData); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22064,7 +22482,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BizIdentityInfo); i {
+			switch v := v.(*RecentStickerWeight); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22076,7 +22494,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BizAccountPayload); i {
+			switch v := v.(*RecentEmojiWeight); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22088,7 +22506,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BizAccountLinkInfo); i {
+			switch v := v.(*VerifiedNameCertificate); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22100,7 +22518,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*NoiseCertificate); i {
+			switch v := v.(*VerifiedNameDetails); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22112,7 +22530,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*NoiseCertificateDetails); i {
+			switch v := v.(*LocalizedName); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22124,7 +22542,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*HandshakeMessage); i {
+			switch v := v.(*BizIdentityInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22136,7 +22554,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ServerHello); i {
+			switch v := v.(*BizAccountPayload); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22148,7 +22566,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClientHello); i {
+			switch v := v.(*BizAccountLinkInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22160,7 +22578,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClientFinish); i {
+			switch v := v.(*NoiseCertificate); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22172,7 +22590,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClientPayload); i {
+			switch v := v.(*NoiseCertificateDetails); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22184,7 +22602,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WebInfo); i {
+			switch v := v.(*HandshakeMessage); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22196,7 +22614,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WebdPayload); i {
+			switch v := v.(*ServerHello); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22208,7 +22626,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UserAgent); i {
+			switch v := v.(*ClientHello); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22220,7 +22638,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DNSSource); i {
+			switch v := v.(*ClientFinish); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22232,7 +22650,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CompanionRegData); i {
+			switch v := v.(*ClientPayload); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22244,7 +22662,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WebNotificationsInfo); i {
+			switch v := v.(*WebInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22256,7 +22674,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WebMessageInfo); i {
+			switch v := v.(*WebdPayload); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22268,7 +22686,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WebFeatures); i {
+			switch v := v.(*UserAgent); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22280,7 +22698,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UserReceipt); i {
+			switch v := v.(*DNSSource); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22292,7 +22710,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StatusPSA); i {
+			switch v := v.(*CompanionRegData); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22304,7 +22722,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Reaction); i {
+			switch v := v.(*WebNotificationsInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22316,7 +22734,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollUpdate); i {
+			switch v := v.(*WebMessageInfo); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22328,7 +22746,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PollAdditionalMetadata); i {
+			switch v := v.(*WebFeatures); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22340,7 +22758,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PhotoChange); i {
+			switch v := v.(*UserReceipt); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22352,7 +22770,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PaymentInfo); i {
+			switch v := v.(*StatusPSA); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22364,7 +22782,7 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*NotificationMessageInfo); i {
+			switch v := v.(*Reaction); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -22376,6 +22794,66 @@ func file_binary_proto_def_proto_init() {
 			}
 		}
 		file_binary_proto_def_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*PollUpdate); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_binary_proto_def_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*PollAdditionalMetadata); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_binary_proto_def_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*PhotoChange); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_binary_proto_def_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*PaymentInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_binary_proto_def_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*NotificationMessageInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_binary_proto_def_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*MediaData); i {
 			case 0:
 				return &v.state
@@ -22433,21 +22911,18 @@ func file_binary_proto_def_proto_init() {
 		(*TemplateButton_UrlButton)(nil),
 		(*TemplateButton_CallButton)(nil),
 	}
-	file_binary_proto_def_proto_msgTypes[91].OneofWrappers = []interface{}{
-		(*PollUpdateMessageContent_VoteMessage)(nil),
-	}
-	file_binary_proto_def_proto_msgTypes[102].OneofWrappers = []interface{}{
+	file_binary_proto_def_proto_msgTypes[97].OneofWrappers = []interface{}{
 		(*TemplateMessage_FourRowTemplate)(nil),
 		(*TemplateMessage_HydratedFourRowTemplate)(nil),
 	}
-	file_binary_proto_def_proto_msgTypes[103].OneofWrappers = []interface{}{
+	file_binary_proto_def_proto_msgTypes[98].OneofWrappers = []interface{}{
 		(*HydratedFourRowTemplate_DocumentMessage)(nil),
 		(*HydratedFourRowTemplate_HydratedTitleText)(nil),
 		(*HydratedFourRowTemplate_ImageMessage)(nil),
 		(*HydratedFourRowTemplate_VideoMessage)(nil),
 		(*HydratedFourRowTemplate_LocationMessage)(nil),
 	}
-	file_binary_proto_def_proto_msgTypes[104].OneofWrappers = []interface{}{
+	file_binary_proto_def_proto_msgTypes[99].OneofWrappers = []interface{}{
 		(*FourRowTemplate_DocumentMessage)(nil),
 		(*FourRowTemplate_HighlyStructuredMessage)(nil),
 		(*FourRowTemplate_ImageMessage)(nil),
@@ -22460,7 +22935,7 @@ func file_binary_proto_def_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_binary_proto_def_proto_rawDesc,
 			NumEnums:      50,
-			NumMessages:   191,
+			NumMessages:   196,
 			NumExtensions: 0,
 			NumServices:   0,
 		},
diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw
index 020745ed..d01d964f 100644
Binary files a/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw and b/vendor/go.mau.fi/whatsmeow/binary/proto/def.pb.raw differ
diff --git a/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
index 8ce9b2a2..fd15a61e 100644
--- a/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
+++ b/vendor/go.mau.fi/whatsmeow/binary/proto/def.proto
@@ -48,6 +48,7 @@ message CompanionProps {
         OHANA = 10;
         ALOHA = 11;
         CATALINA = 12;
+        TCL_TV = 13;
     }
     optional CompanionPropsPlatformType platformType = 3;
     optional bool requireFullSync = 4;
@@ -61,52 +62,6 @@ message AppVersion {
     optional uint32 quinary = 5;
 }
 
-message StickerMessage {
-    optional string url = 1;
-    optional bytes fileSha256 = 2;
-    optional bytes fileEncSha256 = 3;
-    optional bytes mediaKey = 4;
-    optional string mimetype = 5;
-    optional uint32 height = 6;
-    optional uint32 width = 7;
-    optional string directPath = 8;
-    optional uint64 fileLength = 9;
-    optional int64 mediaKeyTimestamp = 10;
-    optional uint32 firstFrameLength = 11;
-    optional bytes firstFrameSidecar = 12;
-    optional bool isAnimated = 13;
-    optional bytes pngThumbnail = 16;
-    optional ContextInfo contextInfo = 17;
-}
-
-message SenderKeyDistributionMessage {
-    optional string groupId = 1;
-    optional bytes axolotlSenderKeyDistributionMessage = 2;
-}
-
-message SendPaymentMessage {
-    optional Message noteMessage = 2;
-    optional MessageKey requestMessageKey = 3;
-    optional PaymentBackground background = 4;
-}
-
-message RequestPaymentMessage {
-    optional Message noteMessage = 4;
-    optional string currencyCodeIso4217 = 1;
-    optional uint64 amount1000 = 2;
-    optional string requestFrom = 3;
-    optional int64 expiryTimestamp = 5;
-    optional Money amount = 6;
-    optional PaymentBackground background = 7;
-}
-
-message ReactionMessage {
-    optional MessageKey key = 1;
-    optional string text = 2;
-    optional string groupingKey = 3;
-    optional int64 senderTimestampMs = 4;
-}
-
 message ProtocolMessage {
     optional MessageKey key = 1;
     enum ProtocolMessageType {
@@ -160,6 +115,33 @@ message CatalogSnapshot {
     optional string description = 3;
 }
 
+message PollVoteMessage {
+    repeated bytes selectedOptions = 1;
+    optional int64 senderTimestampMs = 2;
+}
+
+message PollUpdateMessage {
+    optional MessageKey pollCreationMessageKey = 1;
+    optional PollEncValue vote = 2;
+}
+
+message PollEncValue {
+    optional bytes encPayload = 1;
+    optional bytes encIv = 2;
+}
+
+message PollCreationMessage {
+    optional bytes encKey = 1;
+    optional string name = 2;
+    repeated Option options = 3;
+    optional uint32 selectableOptionsCount = 4;
+    optional ContextInfo contextInfo = 5;
+}
+
+message Option {
+    optional string optionName = 1;
+}
+
 message PaymentInviteMessage {
     enum PaymentInviteMessageServiceType {
         UNKNOWN = 0;
@@ -547,6 +529,9 @@ message ExtendedTextMessage {
         PARENT = 1;
     }
     optional ExtendedTextMessageInviteLinkGroupType inviteLinkGroupType = 26;
+    optional string inviteLinkParentGroupSubjectV2 = 27;
+    optional bytes inviteLinkParentGroupThumbnailV2 = 28;
+    optional ExtendedTextMessageInviteLinkGroupType inviteLinkGroupTypeV2 = 29;
 }
 
 message DocumentMessage {
@@ -796,6 +781,7 @@ message ContextInfo {
     optional ActionLink actionLink = 33;
     optional string groupSubject = 34;
     optional string parentGroupJid = 35;
+    optional bytes messageSecret = 36;
 }
 
 message ExternalAdReplyInfo {
@@ -859,34 +845,6 @@ message CallButton {
     optional HighlyStructuredMessage phoneNumber = 2;
 }
 
-message PollUpdateMessage {
-    optional MessageKey pollCreationMessageKey = 1;
-    optional bytes encPayload = 2;
-    optional bytes encIv = 3;
-}
-
-message PollUpdateMessageContent {
-    oneof update {
-        PollVoteMessage voteMessage = 1;
-    }
-}
-
-message PollVoteMessage {
-    repeated bytes selectedOptions = 1;
-    optional int64 senderTimestampMs = 2;
-}
-
-message PollCreationMessage {
-    optional bytes encKey = 1;
-    optional string name = 2;
-    repeated Option options = 3;
-    optional uint32 selectableOptionsCount = 4;
-}
-
-message Option {
-    optional string optionName = 1;
-}
-
 message Point {
     optional int32 xDeprecated = 1;
     optional int32 yDeprecated = 2;
@@ -1056,6 +1014,52 @@ message StickerSyncRMRMessage {
     optional int64 requestTimestamp = 3;
 }
 
+message StickerMessage {
+    optional string url = 1;
+    optional bytes fileSha256 = 2;
+    optional bytes fileEncSha256 = 3;
+    optional bytes mediaKey = 4;
+    optional string mimetype = 5;
+    optional uint32 height = 6;
+    optional uint32 width = 7;
+    optional string directPath = 8;
+    optional uint64 fileLength = 9;
+    optional int64 mediaKeyTimestamp = 10;
+    optional uint32 firstFrameLength = 11;
+    optional bytes firstFrameSidecar = 12;
+    optional bool isAnimated = 13;
+    optional bytes pngThumbnail = 16;
+    optional ContextInfo contextInfo = 17;
+}
+
+message SenderKeyDistributionMessage {
+    optional string groupId = 1;
+    optional bytes axolotlSenderKeyDistributionMessage = 2;
+}
+
+message SendPaymentMessage {
+    optional Message noteMessage = 2;
+    optional MessageKey requestMessageKey = 3;
+    optional PaymentBackground background = 4;
+}
+
+message RequestPaymentMessage {
+    optional Message noteMessage = 4;
+    optional string currencyCodeIso4217 = 1;
+    optional uint64 amount1000 = 2;
+    optional string requestFrom = 3;
+    optional int64 expiryTimestamp = 5;
+    optional Money amount = 6;
+    optional PaymentBackground background = 7;
+}
+
+message ReactionMessage {
+    optional MessageKey key = 1;
+    optional string text = 2;
+    optional string groupingKey = 3;
+    optional int64 senderTimestampMs = 4;
+}
+
 message EphemeralSetting {
     optional sfixed32 duration = 1;
     optional sfixed64 timestamp = 2;
@@ -1184,6 +1188,14 @@ message MsgOpaqueData {
     optional bytes futureproofBuffer = 14;
     optional string clientUrl = 15;
     optional string loc = 16;
+    optional string pollName = 17;
+    repeated PollOption pollOptions = 18;
+    optional bytes pollEncKey = 19;
+    optional uint32 pollSelectableOptionsCount = 20;
+}
+
+message PollOption {
+    optional string name = 1;
 }
 
 message ServerErrorReceipt {
@@ -1309,12 +1321,24 @@ message SyncActionValue {
     optional PrimaryFeature primaryFeature = 24;
     optional FavoriteStickerAction favoriteStickerAction = 25;
     optional AndroidUnsupportedActions androidUnsupportedActions = 26;
+    optional AgentAction agentAction = 27;
+    optional SubscriptionAction subscriptionAction = 28;
+    optional UserStatusMuteAction userStatusMuteAction = 29;
+    optional TimeFormatAction timeFormatAction = 30;
+}
+
+message UserStatusMuteAction {
+    optional bool muted = 1;
 }
 
 message UnarchiveChatsSetting {
     optional bool unarchiveChats = 1;
 }
 
+message TimeFormatAction {
+    optional bool isTwentyFourHourFormatEnabled = 1;
+}
+
 message SyncActionMessage {
     optional MessageKey key = 1;
     optional int64 timestamp = 2;
@@ -1326,6 +1350,12 @@ message SyncActionMessageRange {
     repeated SyncActionMessage messages = 3;
 }
 
+message SubscriptionAction {
+    optional bool isDeactivated = 1;
+    optional bool isAutoRenewing = 2;
+    optional int64 expirationDate = 3;
+}
+
 message StarAction {
     optional bool starred = 1;
 }
@@ -1439,6 +1469,12 @@ message AndroidUnsupportedActions {
     optional bool allowed = 1;
 }
 
+message AgentAction {
+    optional string name = 1;
+    optional int32 deviceID = 2;
+    optional bool isDeleted = 3;
+}
+
 message SyncActionData {
     optional bytes index = 1;
     optional SyncActionValue value = 2;
@@ -1899,6 +1935,12 @@ message WebMessageInfo {
         COMMUNITY_LINK_PARENT_GROUP = 134;
         COMMUNITY_LINK_SIBLING_GROUP = 135;
         COMMUNITY_LINK_SUB_GROUP = 136;
+        COMMUNITY_UNLINK_PARENT_GROUP = 137;
+        COMMUNITY_UNLINK_SIBLING_GROUP = 138;
+        COMMUNITY_UNLINK_SUB_GROUP = 139;
+        GROUP_PARTICIPANT_ACCEPT = 140;
+        GROUP_PARTICIPANT_LINKED_GROUP_JOIN = 141;
+        COMMUNITY_CREATE = 142;
     }
     optional WebMessageInfoStubType messageStubType = 24;
     optional bool clearMedia = 25;
@@ -1929,6 +1971,9 @@ message WebMessageInfo {
     optional StatusPSA statusPsa = 44;
     repeated PollUpdate pollUpdates = 45;
     optional PollAdditionalMetadata pollAdditionalMetadata = 46;
+    optional string agentId = 47;
+    optional bool statusAlreadyViewed = 48;
+    optional bytes messageSecret = 49;
 }
 
 message WebFeatures {
@@ -1995,7 +2040,7 @@ message UserReceipt {
 }
 
 message StatusPSA {
-    required string campaignId = 44;
+    required uint64 campaignId = 44;
     optional uint64 campaignExpirationTimestamp = 45;
 }
 
@@ -2009,7 +2054,7 @@ message Reaction {
 
 message PollUpdate {
     optional MessageKey pollUpdateMessageKey = 1;
-    optional PollUpdateMessageContent pollUpdateMessage = 2;
+    optional PollVoteMessage vote = 2;
 }
 
 message PollAdditionalMetadata {
@@ -2080,6 +2125,9 @@ message PaymentInfo {
         COLLECT_CANCELED = 26;
         COLLECT_CANCELLING = 27;
         IN_REVIEW = 28;
+        REVERSAL_SUCCESS = 29;
+        REVERSAL_PENDING = 30;
+        REFUND_PENDING = 31;
     }
     optional PaymentInfoTxnStatus txnStatus = 10;
     optional bool useNoviFiatFormat = 11;
diff --git a/vendor/go.mau.fi/whatsmeow/client.go b/vendor/go.mau.fi/whatsmeow/client.go
index 41bad823..75054cea 100644
--- a/vendor/go.mau.fi/whatsmeow/client.go
+++ b/vendor/go.mau.fi/whatsmeow/client.go
@@ -10,6 +10,7 @@ package whatsmeow
 import (
 	"context"
 	"crypto/rand"
+	"encoding/base64"
 	"encoding/hex"
 	"errors"
 	"fmt"
@@ -110,6 +111,8 @@ type Client struct {
 	// If false, decrypting a message from untrusted devices will fail.
 	AutoTrustIdentity bool
 
+	DebugDecodeBeforeSend bool
+
 	uniqueID  string
 	idCounter uint32
 
@@ -497,6 +500,15 @@ func (cli *Client) sendNode(node waBinary.Node) error {
 	if err != nil {
 		return fmt.Errorf("failed to marshal node: %w", err)
 	}
+	if cli.DebugDecodeBeforeSend {
+		var decoded *waBinary.Node
+		decoded, err = waBinary.Unmarshal(payload[1:])
+		if err != nil {
+			cli.Log.Infof("Malformed payload: %s", base64.URLEncoding.EncodeToString(payload))
+			return fmt.Errorf("failed to decode the binary we just produced: %w", err)
+		}
+		node = *decoded
+	}
 
 	cli.sendLog.Debugf("%s", node.XMLString())
 	return sock.SendFrame(payload)
diff --git a/vendor/go.mau.fi/whatsmeow/internals.go b/vendor/go.mau.fi/whatsmeow/internals.go
new file mode 100644
index 00000000..64a0b354
--- /dev/null
+++ b/vendor/go.mau.fi/whatsmeow/internals.go
@@ -0,0 +1,55 @@
+// Copyright (c) 2022 Tulir Asokan
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+package whatsmeow
+
+import waBinary "go.mau.fi/whatsmeow/binary"
+
+type DangerousInternalClient struct {
+	c *Client
+}
+
+// DangerousInternals allows access to some unexported methods in Client.
+//
+// Deprecated: dangerous
+func (cli *Client) DangerousInternals() *DangerousInternalClient {
+	return &DangerousInternalClient{cli}
+}
+
+type DangerousInfoQuery = infoQuery
+type DangerousInfoQueryType = infoQueryType
+
+func (int *DangerousInternalClient) SendIQ(query DangerousInfoQuery) (*waBinary.Node, error) {
+	return int.c.sendIQ(query)
+}
+
+func (int *DangerousInternalClient) SendIQAsync(query DangerousInfoQuery) (<-chan *waBinary.Node, error) {
+	return int.c.sendIQAsync(query)
+}
+
+func (int *DangerousInternalClient) SendNode(node waBinary.Node) error {
+	return int.c.sendNode(node)
+}
+
+func (int *DangerousInternalClient) WaitResponse(reqID string) chan *waBinary.Node {
+	return int.c.waitResponse(reqID)
+}
+
+func (int *DangerousInternalClient) CancelResponse(reqID string, ch chan *waBinary.Node) {
+	int.c.cancelResponse(reqID, ch)
+}
+
+func (int *DangerousInternalClient) QueryMediaConn() (*MediaConn, error) {
+	return int.c.queryMediaConn()
+}
+
+func (int *DangerousInternalClient) RefreshMediaConn(force bool) (*MediaConn, error) {
+	return int.c.refreshMediaConn(force)
+}
+
+func (int *DangerousInternalClient) GetServerPreKeyCount() (int, error) {
+	return int.c.getServerPreKeyCount()
+}
diff --git a/vendor/go.mau.fi/whatsmeow/message.go b/vendor/go.mau.fi/whatsmeow/message.go
index 85ccb12b..36ccfcad 100644
--- a/vendor/go.mau.fi/whatsmeow/message.go
+++ b/vendor/go.mau.fi/whatsmeow/message.go
@@ -110,12 +110,20 @@ func (cli *Client) parseMessageInfo(node *waBinary.Node) (*types.MessageInfo, er
 	info.PushName, _ = node.Attrs["notify"].(string)
 	info.Category, _ = node.Attrs["category"].(string)
 
+	for _, child := range node.GetChildren() {
+		if child.Tag == "multicast" {
+			info.Multicast = true
+		} else if mediaType, ok := child.AttrGetter().GetString("mediatype", false); ok {
+			info.MediaType = mediaType
+		}
+	}
+
 	return &info, nil
 }
 
 func (cli *Client) decryptMessages(info *types.MessageInfo, node *waBinary.Node) {
 	go cli.sendAck(node)
-	if len(node.GetChildrenByTag("unavailable")) == len(node.GetChildren()) {
+	if len(node.GetChildrenByTag("unavailable")) > 0 && len(node.GetChildrenByTag("enc")) == 0 {
 		cli.Log.Warnf("Unavailable message %s from %s", info.ID, info.SourceString())
 		go cli.sendRetryReceipt(node, true)
 		cli.dispatchEvent(&events.UndecryptableMessage{Info: *info, IsUnavailable: true})
diff --git a/vendor/go.mau.fi/whatsmeow/send.go b/vendor/go.mau.fi/whatsmeow/send.go
index 3216156e..041f7fdf 100644
--- a/vendor/go.mau.fi/whatsmeow/send.go
+++ b/vendor/go.mau.fi/whatsmeow/send.go
@@ -35,13 +35,13 @@ import (
 //   msgID := whatsmeow.GenerateMessageID()
 //   cli.SendMessage(targetJID, msgID, &waProto.Message{...})
 func GenerateMessageID() types.MessageID {
-	id := make([]byte, 16)
+	id := make([]byte, 8)
 	_, err := rand.Read(id)
 	if err != nil {
 		// Out of entropy
 		panic(err)
 	}
-	return strings.ToUpper(hex.EncodeToString(id))
+	return "3EB0" + strings.ToUpper(hex.EncodeToString(id))
 }
 
 // SendMessage sends the given message.
@@ -229,7 +229,11 @@ func (cli *Client) prepareMessageNode(to types.JID, id types.MessageID, message
 		}},
 	}
 	if message.ProtocolMessage != nil && message.GetProtocolMessage().GetType() == waProto.ProtocolMessage_REVOKE && message.GetProtocolMessage().GetKey() != nil {
-		node.Attrs["edit"] = "7"
+		if message.GetProtocolMessage().GetKey().GetFromMe() {
+			node.Attrs["edit"] = "7"
+		} else {
+			node.Attrs["edit"] = "8"
+		}
 	}
 	if includeIdentity {
 		err := cli.appendDeviceIdentityNode(&node)
diff --git a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go
index 2f9496e8..23b0f438 100644
--- a/vendor/go.mau.fi/whatsmeow/store/clientpayload.go
+++ b/vendor/go.mau.fi/whatsmeow/store/clientpayload.go
@@ -74,7 +74,7 @@ func (vc WAVersionContainer) ProtoAppVersion() *waProto.AppVersion {
 }
 
 // waVersion is the WhatsApp web client version
-var waVersion = WAVersionContainer{2, 2210, 9}
+var waVersion = WAVersionContainer{2, 2214, 9}
 
 // waVersionHash is the md5 hash of a dot-separated waVersion
 var waVersionHash [16]byte
diff --git a/vendor/go.mau.fi/whatsmeow/types/message.go b/vendor/go.mau.fi/whatsmeow/types/message.go
index b1ebaa52..d4b93ac5 100644
--- a/vendor/go.mau.fi/whatsmeow/types/message.go
+++ b/vendor/go.mau.fi/whatsmeow/types/message.go
@@ -44,6 +44,8 @@ type MessageInfo struct {
 	PushName  string
 	Timestamp time.Time
 	Category  string
+	Multicast bool
+	MediaType string
 
 	DeviceSentMeta *DeviceSentMeta // Metadata for direct messages sent from another one of the user's own devices.
 }
-- 
cgit v1.2.3