From 0bc159341dbb4aece685ce373e9bc0b6b32984e7 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 27 Oct 2019 01:45:57 +0200 Subject: Update vendor (#932) * Update vendor * Fix godiscord api change --- bridge/discord/handlers.go | 5 +- go.mod | 6 +- go.sum | 12 +- .../Rhymen/go-whatsapp/binary/proto/def.pb.go | 6565 +++++++++++++------- .../Rhymen/go-whatsapp/binary/proto/def.proto | 389 +- vendor/github.com/Rhymen/go-whatsapp/conn.go | 20 +- vendor/github.com/Rhymen/go-whatsapp/contact.go | 11 +- vendor/github.com/Rhymen/go-whatsapp/errors.go | 26 +- vendor/github.com/Rhymen/go-whatsapp/handler.go | 20 + vendor/github.com/Rhymen/go-whatsapp/media.go | 6 + vendor/github.com/Rhymen/go-whatsapp/message.go | 151 +- vendor/github.com/Rhymen/go-whatsapp/session.go | 54 + vendor/github.com/Rhymen/go-whatsapp/write.go | 8 +- vendor/github.com/bwmarrin/discordgo/README.md | 2 +- vendor/github.com/bwmarrin/discordgo/discord.go | 3 +- vendor/github.com/bwmarrin/discordgo/endpoints.go | 12 +- vendor/github.com/bwmarrin/discordgo/events.go | 8 +- vendor/github.com/bwmarrin/discordgo/message.go | 79 + vendor/github.com/bwmarrin/discordgo/oauth2.go | 19 + vendor/github.com/bwmarrin/discordgo/restapi.go | 14 +- vendor/github.com/bwmarrin/discordgo/state.go | 7 + vendor/github.com/bwmarrin/discordgo/structs.go | 66 +- vendor/github.com/bwmarrin/discordgo/util.go | 17 + vendor/github.com/bwmarrin/discordgo/voice.go | 5 +- vendor/github.com/bwmarrin/discordgo/wsapi.go | 22 +- vendor/github.com/d5/tengo/.goreleaser.yml | 6 + vendor/github.com/d5/tengo/go.sum | 0 .../d5/tengo/objects/immautable_array.go | 109 - .../github.com/d5/tengo/objects/immutable_array.go | 109 + vendor/github.com/d5/tengo/stdlib/base64.go | 20 + .../github.com/d5/tengo/stdlib/builtin_modules.go | 2 + vendor/github.com/d5/tengo/stdlib/func_typedefs.go | 53 + vendor/github.com/d5/tengo/stdlib/hex.go | 11 + vendor/modules.txt | 6 +- 34 files changed, 5196 insertions(+), 2647 deletions(-) create mode 100644 vendor/github.com/bwmarrin/discordgo/util.go create mode 100644 vendor/github.com/d5/tengo/go.sum delete mode 100644 vendor/github.com/d5/tengo/objects/immautable_array.go create mode 100644 vendor/github.com/d5/tengo/objects/immutable_array.go create mode 100644 vendor/github.com/d5/tengo/stdlib/base64.go create mode 100644 vendor/github.com/d5/tengo/stdlib/hex.go diff --git a/bridge/discord/handlers.go b/bridge/discord/handlers.go index 9260427d..4ffbf5ab 100644 --- a/bridge/discord/handlers.go +++ b/bridge/discord/handlers.go @@ -58,7 +58,10 @@ func (b *Bdiscord) messageUpdate(s *discordgo.Session, m *discordgo.MessageUpdat if m.Message.EditedTimestamp != "" { b.Log.Debugf("Sending edit message") m.Content += b.GetString("EditSuffix") - b.messageCreate(s, (*discordgo.MessageCreate)(m)) + msg := &discordgo.MessageCreate{ + Message: m.Message, + } + b.messageCreate(s, msg) } } diff --git a/go.mod b/go.mod index 5330cce9..c9592111 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ require ( github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f github.com/Jeffail/gabs v1.1.1 // indirect github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 - github.com/Rhymen/go-whatsapp v0.0.3-0.20190729104911-5c79b2cf277a + github.com/Rhymen/go-whatsapp v0.0.3-0.20191003184814-fc3f792c814c github.com/bwmarrin/discordgo v0.19.0 // github.com/bwmarrin/discordgo v0.19.0 - github.com/d5/tengo v1.24.3 + github.com/d5/tengo v1.24.8 github.com/dfordsoft/golib v0.0.0-20180902042739-76ee6ab99bec github.com/fsnotify/fsnotify v1.4.7 github.com/go-telegram-bot-api/telegram-bot-api v4.6.5-0.20181225215658-ec221ba9ea45+incompatible @@ -70,6 +70,6 @@ require ( gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect ) -replace github.com/bwmarrin/discordgo v0.19.0 => github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40 +replace github.com/bwmarrin/discordgo v0.19.0 => github.com/matterbridge/discordgo v0.0.0-20191026232317-01823f4ebba4 go 1.13 diff --git a/go.sum b/go.sum index a0b1b595..2cfcb909 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 h1:TO7d4rocnNFng6ZQrPe7U6WqHtK5eHEMrgrnnM/72IQ= github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0/go.mod h1:HuVM+sZFzumUdKPWiz+IlCMb4RdsKdT3T+nQBKL+sYg= github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA= -github.com/Rhymen/go-whatsapp v0.0.3-0.20190729104911-5c79b2cf277a h1:umvfZW+YE+ynhYwsyheyunB/3xRK68kNFMRNUMQxzJI= -github.com/Rhymen/go-whatsapp v0.0.3-0.20190729104911-5c79b2cf277a/go.mod h1:qf/2PQi82Okxw/igghu/oMGzTeUYuKBq1JNo3tdQyNg= +github.com/Rhymen/go-whatsapp v0.0.3-0.20191003184814-fc3f792c814c h1:+yAllLxP+WjpuVVE1WNm0/Oigbeob9+liYEyk/v4nj8= +github.com/Rhymen/go-whatsapp v0.0.3-0.20191003184814-fc3f792c814c/go.mod h1:qf/2PQi82Okxw/igghu/oMGzTeUYuKBq1JNo3tdQyNg= github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME= github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU= github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw= @@ -32,8 +32,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/d5/tengo v1.24.3 h1:wp44VW7fdfzMzIDT19tT5uNeGnm2UMd6s3TLAahrwSU= -github.com/d5/tengo v1.24.3/go.mod h1:VhLq8Q2QFhCIJO3NhvM934qOThykMqJi9y9Siqd1ocQ= +github.com/d5/tengo v1.24.8 h1:PRJ+NWt7ae/9sSbIfThOBTkPSvNV+dwYoBAvwfNgNJY= +github.com/d5/tengo v1.24.8/go.mod h1:VhLq8Q2QFhCIJO3NhvM934qOThykMqJi9y9Siqd1ocQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -121,8 +121,8 @@ github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDe github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d h1:F+Sr+C0ojSlYQ37BLylQtSFmyQULe3jbAygcyXQ9mVs= github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d/go.mod h1:c6MxwqHD+0HvtAJjsHMIdPCiAwGiQwPRPTp69ACMg8A= -github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40 h1:OJmjOa1ry5IZzFowLhAZ8b3bFPWFFNUbqGxs9pNqgEU= -github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= +github.com/matterbridge/discordgo v0.0.0-20191026232317-01823f4ebba4 h1:RvH3lC4bEp+bieca+Yh5xPU8tLJgnk7ridiSwMFHrrw= +github.com/matterbridge/discordgo v0.0.0-20191026232317-01823f4ebba4/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 h1:KzDEcy8eDbTx881giW8a6llsAck3e2bJvMyKvh1IK+k= github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q= github.com/matterbridge/gomatrix v0.0.0-20191026211822-6fc7accd00ca h1:3ypqEpFpt6vg5Sv2xxA8/v4WiSOnWMXW7DqxTxpM4XI= diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go index 71d9923f..8d811b34 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go +++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go @@ -3,9 +3,11 @@ package proto -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -16,20 +18,63 @@ var _ = math.Inf // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type AdReplyInfo_AD_REPLY_INFO_MEDIATYPE int32 + +const ( + AdReplyInfo_NONE AdReplyInfo_AD_REPLY_INFO_MEDIATYPE = 0 + AdReplyInfo_IMAGE AdReplyInfo_AD_REPLY_INFO_MEDIATYPE = 1 + AdReplyInfo_VIDEO AdReplyInfo_AD_REPLY_INFO_MEDIATYPE = 2 +) + +var AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_name = map[int32]string{ + 0: "NONE", + 1: "IMAGE", + 2: "VIDEO", +} + +var AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_value = map[string]int32{ + "NONE": 0, + "IMAGE": 1, + "VIDEO": 2, +} + +func (x AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) Enum() *AdReplyInfo_AD_REPLY_INFO_MEDIATYPE { + p := new(AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) + *p = x + return p +} + +func (x AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) String() string { + return proto.EnumName(AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_name, int32(x)) +} + +func (x *AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_value, data, "AdReplyInfo_AD_REPLY_INFO_MEDIATYPE") + if err != nil { + return err + } + *x = AdReplyInfo_AD_REPLY_INFO_MEDIATYPE(value) + return nil +} + +func (AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{11, 0} +} -type ExtendedTextMessage_FONTTYPE int32 +type ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE int32 const ( - ExtendedTextMessage_SANS_SERIF ExtendedTextMessage_FONTTYPE = 0 - ExtendedTextMessage_SERIF ExtendedTextMessage_FONTTYPE = 1 - ExtendedTextMessage_NORICAN_REGULAR ExtendedTextMessage_FONTTYPE = 2 - ExtendedTextMessage_BRYNDAN_WRITE ExtendedTextMessage_FONTTYPE = 3 - ExtendedTextMessage_BEBASNEUE_REGULAR ExtendedTextMessage_FONTTYPE = 4 - ExtendedTextMessage_OSWALD_HEAVY ExtendedTextMessage_FONTTYPE = 5 + ExtendedTextMessage_SANS_SERIF ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 0 + ExtendedTextMessage_SERIF ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 1 + ExtendedTextMessage_NORICAN_REGULAR ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 2 + ExtendedTextMessage_BRYNDAN_WRITE ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 3 + ExtendedTextMessage_BEBASNEUE_REGULAR ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 4 + ExtendedTextMessage_OSWALD_HEAVY ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE = 5 ) -var ExtendedTextMessage_FONTTYPE_name = map[int32]string{ +var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_name = map[int32]string{ 0: "SANS_SERIF", 1: "SERIF", 2: "NORICAN_REGULAR", @@ -37,7 +82,8 @@ var ExtendedTextMessage_FONTTYPE_name = map[int32]string{ 4: "BEBASNEUE_REGULAR", 5: "OSWALD_HEAVY", } -var ExtendedTextMessage_FONTTYPE_value = map[string]int32{ + +var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_value = map[string]int32{ "SANS_SERIF": 0, "SERIF": 1, "NORICAN_REGULAR": 2, @@ -46,111 +92,162 @@ var ExtendedTextMessage_FONTTYPE_value = map[string]int32{ "OSWALD_HEAVY": 5, } -func (x ExtendedTextMessage_FONTTYPE) Enum() *ExtendedTextMessage_FONTTYPE { - p := new(ExtendedTextMessage_FONTTYPE) +func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) Enum() *ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE { + p := new(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) + *p = x + return p +} + +func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) String() string { + return proto.EnumName(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_name, int32(x)) +} + +func (x *ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_value, data, "ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE") + if err != nil { + return err + } + *x = ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE(value) + return nil +} + +func (ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{17, 0} +} + +type ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE int32 + +const ( + ExtendedTextMessage_NONE ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE = 0 + ExtendedTextMessage_VIDEO ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE = 1 +) + +var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_name = map[int32]string{ + 0: "NONE", + 1: "VIDEO", +} + +var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_value = map[string]int32{ + "NONE": 0, + "VIDEO": 1, +} + +func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) Enum() *ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE { + p := new(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) *p = x return p } -func (x ExtendedTextMessage_FONTTYPE) String() string { - return proto.EnumName(ExtendedTextMessage_FONTTYPE_name, int32(x)) + +func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) String() string { + return proto.EnumName(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_name, int32(x)) } -func (x *ExtendedTextMessage_FONTTYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(ExtendedTextMessage_FONTTYPE_value, data, "ExtendedTextMessage_FONTTYPE") + +func (x *ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_value, data, "ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE") if err != nil { return err } - *x = ExtendedTextMessage_FONTTYPE(value) + *x = ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE(value) return nil } -func (ExtendedTextMessage_FONTTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{7, 0} + +func (ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{17, 1} } -type VideoMessage_ATTRIBUTION int32 +type VideoMessage_VIDEO_MESSAGE_ATTRIBUTION int32 const ( - VideoMessage_NONE VideoMessage_ATTRIBUTION = 0 - VideoMessage_GIPHY VideoMessage_ATTRIBUTION = 1 - VideoMessage_TENOR VideoMessage_ATTRIBUTION = 2 + VideoMessage_NONE VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 0 + VideoMessage_GIPHY VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 1 + VideoMessage_TENOR VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 2 ) -var VideoMessage_ATTRIBUTION_name = map[int32]string{ +var VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_name = map[int32]string{ 0: "NONE", 1: "GIPHY", 2: "TENOR", } -var VideoMessage_ATTRIBUTION_value = map[string]int32{ + +var VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_value = map[string]int32{ "NONE": 0, "GIPHY": 1, "TENOR": 2, } -func (x VideoMessage_ATTRIBUTION) Enum() *VideoMessage_ATTRIBUTION { - p := new(VideoMessage_ATTRIBUTION) +func (x VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) Enum() *VideoMessage_VIDEO_MESSAGE_ATTRIBUTION { + p := new(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) *p = x return p } -func (x VideoMessage_ATTRIBUTION) String() string { - return proto.EnumName(VideoMessage_ATTRIBUTION_name, int32(x)) + +func (x VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) String() string { + return proto.EnumName(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_name, int32(x)) } -func (x *VideoMessage_ATTRIBUTION) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(VideoMessage_ATTRIBUTION_value, data, "VideoMessage_ATTRIBUTION") + +func (x *VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_value, data, "VideoMessage_VIDEO_MESSAGE_ATTRIBUTION") if err != nil { return err } - *x = VideoMessage_ATTRIBUTION(value) + *x = VideoMessage_VIDEO_MESSAGE_ATTRIBUTION(value) return nil } -func (VideoMessage_ATTRIBUTION) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{10, 0} + +func (VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{20, 0} } -type ProtocolMessage_TYPE int32 +type ProtocolMessage_PROTOCOL_MESSAGE_TYPE int32 const ( - ProtocolMessage_REVOKE ProtocolMessage_TYPE = 0 + ProtocolMessage_REVOKE ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 0 ) -var ProtocolMessage_TYPE_name = map[int32]string{ +var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name = map[int32]string{ 0: "REVOKE", } -var ProtocolMessage_TYPE_value = map[string]int32{ + +var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value = map[string]int32{ "REVOKE": 0, } -func (x ProtocolMessage_TYPE) Enum() *ProtocolMessage_TYPE { - p := new(ProtocolMessage_TYPE) +func (x ProtocolMessage_PROTOCOL_MESSAGE_TYPE) Enum() *ProtocolMessage_PROTOCOL_MESSAGE_TYPE { + p := new(ProtocolMessage_PROTOCOL_MESSAGE_TYPE) *p = x return p } -func (x ProtocolMessage_TYPE) String() string { - return proto.EnumName(ProtocolMessage_TYPE_name, int32(x)) + +func (x ProtocolMessage_PROTOCOL_MESSAGE_TYPE) String() string { + return proto.EnumName(ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name, int32(x)) } -func (x *ProtocolMessage_TYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(ProtocolMessage_TYPE_value, data, "ProtocolMessage_TYPE") + +func (x *ProtocolMessage_PROTOCOL_MESSAGE_TYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value, data, "ProtocolMessage_PROTOCOL_MESSAGE_TYPE") if err != nil { return err } - *x = ProtocolMessage_TYPE(value) + *x = ProtocolMessage_PROTOCOL_MESSAGE_TYPE(value) return nil } -func (ProtocolMessage_TYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{13, 0} + +func (ProtocolMessage_PROTOCOL_MESSAGE_TYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{23, 0} } -type HSMDateTimeComponent_DAYOFWEEKTYPE int32 +type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE int32 const ( - HSMDateTimeComponent_MONDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 1 - HSMDateTimeComponent_TUESDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 2 - HSMDateTimeComponent_WEDNESDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 3 - HSMDateTimeComponent_THURSDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 4 - HSMDateTimeComponent_FRIDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 5 - HSMDateTimeComponent_SATURDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 6 - HSMDateTimeComponent_SUNDAY HSMDateTimeComponent_DAYOFWEEKTYPE = 7 + HSMDateTimeComponent_MONDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 1 + HSMDateTimeComponent_TUESDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 2 + HSMDateTimeComponent_WEDNESDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 3 + HSMDateTimeComponent_THURSDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 4 + HSMDateTimeComponent_FRIDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 5 + HSMDateTimeComponent_SATURDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 6 + HSMDateTimeComponent_SUNDAY HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE = 7 ) -var HSMDateTimeComponent_DAYOFWEEKTYPE_name = map[int32]string{ +var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_name = map[int32]string{ 1: "MONDAY", 2: "TUESDAY", 3: "WEDNESDAY", @@ -159,7 +256,8 @@ var HSMDateTimeComponent_DAYOFWEEKTYPE_name = map[int32]string{ 6: "SATURDAY", 7: "SUNDAY", } -var HSMDateTimeComponent_DAYOFWEEKTYPE_value = map[string]int32{ + +var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_value = map[string]int32{ "MONDAY": 1, "TUESDAY": 2, "WEDNESDAY": 3, @@ -169,74 +267,194 @@ var HSMDateTimeComponent_DAYOFWEEKTYPE_value = map[string]int32{ "SUNDAY": 7, } -func (x HSMDateTimeComponent_DAYOFWEEKTYPE) Enum() *HSMDateTimeComponent_DAYOFWEEKTYPE { - p := new(HSMDateTimeComponent_DAYOFWEEKTYPE) +func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) Enum() *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE { + p := new(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) *p = x return p } -func (x HSMDateTimeComponent_DAYOFWEEKTYPE) String() string { - return proto.EnumName(HSMDateTimeComponent_DAYOFWEEKTYPE_name, int32(x)) + +func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) String() string { + return proto.EnumName(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_name, int32(x)) } -func (x *HSMDateTimeComponent_DAYOFWEEKTYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(HSMDateTimeComponent_DAYOFWEEKTYPE_value, data, "HSMDateTimeComponent_DAYOFWEEKTYPE") + +func (x *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_value, data, "HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE") if err != nil { return err } - *x = HSMDateTimeComponent_DAYOFWEEKTYPE(value) + *x = HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE(value) return nil } -func (HSMDateTimeComponent_DAYOFWEEKTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{16, 0} + +func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{26, 0} } -type HSMDateTimeComponent_CALENDARTYPE int32 +type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE int32 const ( - HSMDateTimeComponent_GREGORIAN HSMDateTimeComponent_CALENDARTYPE = 1 - HSMDateTimeComponent_SOLAR_HIJRI HSMDateTimeComponent_CALENDARTYPE = 2 + HSMDateTimeComponent_GREGORIAN HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE = 1 + HSMDateTimeComponent_SOLAR_HIJRI HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE = 2 ) -var HSMDateTimeComponent_CALENDARTYPE_name = map[int32]string{ +var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_name = map[int32]string{ 1: "GREGORIAN", 2: "SOLAR_HIJRI", } -var HSMDateTimeComponent_CALENDARTYPE_value = map[string]int32{ + +var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_value = map[string]int32{ "GREGORIAN": 1, "SOLAR_HIJRI": 2, } -func (x HSMDateTimeComponent_CALENDARTYPE) Enum() *HSMDateTimeComponent_CALENDARTYPE { - p := new(HSMDateTimeComponent_CALENDARTYPE) +func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) Enum() *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE { + p := new(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) + *p = x + return p +} + +func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) String() string { + return proto.EnumName(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_name, int32(x)) +} + +func (x *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_value, data, "HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE") + if err != nil { + return err + } + *x = HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE(value) + return nil +} + +func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{26, 1} +} + +type WebFeatures_WEB_FEATURES_FLAG int32 + +const ( + WebFeatures_NOT_IMPLEMENTED WebFeatures_WEB_FEATURES_FLAG = 0 + WebFeatures_IMPLEMENTED WebFeatures_WEB_FEATURES_FLAG = 1 + WebFeatures_OPTIONAL WebFeatures_WEB_FEATURES_FLAG = 2 +) + +var WebFeatures_WEB_FEATURES_FLAG_name = map[int32]string{ + 0: "NOT_IMPLEMENTED", + 1: "IMPLEMENTED", + 2: "OPTIONAL", +} + +var WebFeatures_WEB_FEATURES_FLAG_value = map[string]int32{ + "NOT_IMPLEMENTED": 0, + "IMPLEMENTED": 1, + "OPTIONAL": 2, +} + +func (x WebFeatures_WEB_FEATURES_FLAG) Enum() *WebFeatures_WEB_FEATURES_FLAG { + p := new(WebFeatures_WEB_FEATURES_FLAG) + *p = x + return p +} + +func (x WebFeatures_WEB_FEATURES_FLAG) String() string { + return proto.EnumName(WebFeatures_WEB_FEATURES_FLAG_name, int32(x)) +} + +func (x *WebFeatures_WEB_FEATURES_FLAG) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(WebFeatures_WEB_FEATURES_FLAG_value, data, "WebFeatures_WEB_FEATURES_FLAG") + if err != nil { + return err + } + *x = WebFeatures_WEB_FEATURES_FLAG(value) + return nil +} + +func (WebFeatures_WEB_FEATURES_FLAG) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{46, 0} +} + +type PaymentInfo_PAYMENT_INFO_STATUS int32 + +const ( + PaymentInfo_UNKNOWN_STATUS PaymentInfo_PAYMENT_INFO_STATUS = 0 + PaymentInfo_PROCESSING PaymentInfo_PAYMENT_INFO_STATUS = 1 + PaymentInfo_SENT PaymentInfo_PAYMENT_INFO_STATUS = 2 + PaymentInfo_NEED_TO_ACCEPT PaymentInfo_PAYMENT_INFO_STATUS = 3 + PaymentInfo_COMPLETE PaymentInfo_PAYMENT_INFO_STATUS = 4 + PaymentInfo_COULD_NOT_COMPLETE PaymentInfo_PAYMENT_INFO_STATUS = 5 + PaymentInfo_REFUNDED PaymentInfo_PAYMENT_INFO_STATUS = 6 + PaymentInfo_EXPIRED PaymentInfo_PAYMENT_INFO_STATUS = 7 + PaymentInfo_REJECTED PaymentInfo_PAYMENT_INFO_STATUS = 8 + PaymentInfo_CANCELLED PaymentInfo_PAYMENT_INFO_STATUS = 9 + PaymentInfo_WAITING_FOR_PAYER PaymentInfo_PAYMENT_INFO_STATUS = 10 + PaymentInfo_WAITING PaymentInfo_PAYMENT_INFO_STATUS = 11 +) + +var PaymentInfo_PAYMENT_INFO_STATUS_name = map[int32]string{ + 0: "UNKNOWN_STATUS", + 1: "PROCESSING", + 2: "SENT", + 3: "NEED_TO_ACCEPT", + 4: "COMPLETE", + 5: "COULD_NOT_COMPLETE", + 6: "REFUNDED", + 7: "EXPIRED", + 8: "REJECTED", + 9: "CANCELLED", + 10: "WAITING_FOR_PAYER", + 11: "WAITING", +} + +var PaymentInfo_PAYMENT_INFO_STATUS_value = map[string]int32{ + "UNKNOWN_STATUS": 0, + "PROCESSING": 1, + "SENT": 2, + "NEED_TO_ACCEPT": 3, + "COMPLETE": 4, + "COULD_NOT_COMPLETE": 5, + "REFUNDED": 6, + "EXPIRED": 7, + "REJECTED": 8, + "CANCELLED": 9, + "WAITING_FOR_PAYER": 10, + "WAITING": 11, +} + +func (x PaymentInfo_PAYMENT_INFO_STATUS) Enum() *PaymentInfo_PAYMENT_INFO_STATUS { + p := new(PaymentInfo_PAYMENT_INFO_STATUS) *p = x return p } -func (x HSMDateTimeComponent_CALENDARTYPE) String() string { - return proto.EnumName(HSMDateTimeComponent_CALENDARTYPE_name, int32(x)) + +func (x PaymentInfo_PAYMENT_INFO_STATUS) String() string { + return proto.EnumName(PaymentInfo_PAYMENT_INFO_STATUS_name, int32(x)) } -func (x *HSMDateTimeComponent_CALENDARTYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(HSMDateTimeComponent_CALENDARTYPE_value, data, "HSMDateTimeComponent_CALENDARTYPE") + +func (x *PaymentInfo_PAYMENT_INFO_STATUS) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(PaymentInfo_PAYMENT_INFO_STATUS_value, data, "PaymentInfo_PAYMENT_INFO_STATUS") if err != nil { return err } - *x = HSMDateTimeComponent_CALENDARTYPE(value) + *x = PaymentInfo_PAYMENT_INFO_STATUS(value) return nil } -func (HSMDateTimeComponent_CALENDARTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{16, 1} + +func (PaymentInfo_PAYMENT_INFO_STATUS) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{50, 0} } -type WebMessageInfo_STATUS int32 +type WebMessageInfo_WEB_MESSAGE_INFO_STATUS int32 const ( - WebMessageInfo_ERROR WebMessageInfo_STATUS = 0 - WebMessageInfo_PENDING WebMessageInfo_STATUS = 1 - WebMessageInfo_SERVER_ACK WebMessageInfo_STATUS = 2 - WebMessageInfo_DELIVERY_ACK WebMessageInfo_STATUS = 3 - WebMessageInfo_READ WebMessageInfo_STATUS = 4 - WebMessageInfo_PLAYED WebMessageInfo_STATUS = 5 + WebMessageInfo_ERROR WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 0 + WebMessageInfo_PENDING WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 1 + WebMessageInfo_SERVER_ACK WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 2 + WebMessageInfo_DELIVERY_ACK WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 3 + WebMessageInfo_READ WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 4 + WebMessageInfo_PLAYED WebMessageInfo_WEB_MESSAGE_INFO_STATUS = 5 ) -var WebMessageInfo_STATUS_name = map[int32]string{ +var WebMessageInfo_WEB_MESSAGE_INFO_STATUS_name = map[int32]string{ 0: "ERROR", 1: "PENDING", 2: "SERVER_ACK", @@ -244,7 +462,8 @@ var WebMessageInfo_STATUS_name = map[int32]string{ 4: "READ", 5: "PLAYED", } -var WebMessageInfo_STATUS_value = map[string]int32{ + +var WebMessageInfo_WEB_MESSAGE_INFO_STATUS_value = map[string]int32{ "ERROR": 0, "PENDING": 1, "SERVER_ACK": 2, @@ -253,76 +472,105 @@ var WebMessageInfo_STATUS_value = map[string]int32{ "PLAYED": 5, } -func (x WebMessageInfo_STATUS) Enum() *WebMessageInfo_STATUS { - p := new(WebMessageInfo_STATUS) +func (x WebMessageInfo_WEB_MESSAGE_INFO_STATUS) Enum() *WebMessageInfo_WEB_MESSAGE_INFO_STATUS { + p := new(WebMessageInfo_WEB_MESSAGE_INFO_STATUS) *p = x return p } -func (x WebMessageInfo_STATUS) String() string { - return proto.EnumName(WebMessageInfo_STATUS_name, int32(x)) + +func (x WebMessageInfo_WEB_MESSAGE_INFO_STATUS) String() string { + return proto.EnumName(WebMessageInfo_WEB_MESSAGE_INFO_STATUS_name, int32(x)) } -func (x *WebMessageInfo_STATUS) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(WebMessageInfo_STATUS_value, data, "WebMessageInfo_STATUS") + +func (x *WebMessageInfo_WEB_MESSAGE_INFO_STATUS) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(WebMessageInfo_WEB_MESSAGE_INFO_STATUS_value, data, "WebMessageInfo_WEB_MESSAGE_INFO_STATUS") if err != nil { return err } - *x = WebMessageInfo_STATUS(value) + *x = WebMessageInfo_WEB_MESSAGE_INFO_STATUS(value) return nil } -func (WebMessageInfo_STATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{30, 0} + +func (WebMessageInfo_WEB_MESSAGE_INFO_STATUS) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{51, 0} } -type WebMessageInfo_STUBTYPE int32 +type WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE int32 const ( - WebMessageInfo_UNKNOWN WebMessageInfo_STUBTYPE = 0 - WebMessageInfo_REVOKE WebMessageInfo_STUBTYPE = 1 - WebMessageInfo_CIPHERTEXT WebMessageInfo_STUBTYPE = 2 - WebMessageInfo_FUTUREPROOF WebMessageInfo_STUBTYPE = 3 - WebMessageInfo_NON_VERIFIED_TRANSITION WebMessageInfo_STUBTYPE = 4 - WebMessageInfo_UNVERIFIED_TRANSITION WebMessageInfo_STUBTYPE = 5 - WebMessageInfo_VERIFIED_TRANSITION WebMessageInfo_STUBTYPE = 6 - WebMessageInfo_VERIFIED_LOW_UNKNOWN WebMessageInfo_STUBTYPE = 7 - WebMessageInfo_VERIFIED_HIGH WebMessageInfo_STUBTYPE = 8 - WebMessageInfo_VERIFIED_INITIAL_UNKNOWN WebMessageInfo_STUBTYPE = 9 - WebMessageInfo_VERIFIED_INITIAL_LOW WebMessageInfo_STUBTYPE = 10 - WebMessageInfo_VERIFIED_INITIAL_HIGH WebMessageInfo_STUBTYPE = 11 - WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_NONE WebMessageInfo_STUBTYPE = 12 - WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_HIGH WebMessageInfo_STUBTYPE = 13 - WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_LOW WebMessageInfo_STUBTYPE = 14 - WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_UNKNOWN WebMessageInfo_STUBTYPE = 15 - WebMessageInfo_VERIFIED_TRANSITION_UNKNOWN_TO_LOW WebMessageInfo_STUBTYPE = 16 - WebMessageInfo_VERIFIED_TRANSITION_LOW_TO_UNKNOWN WebMessageInfo_STUBTYPE = 17 - WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_LOW WebMessageInfo_STUBTYPE = 18 - WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_UNKNOWN WebMessageInfo_STUBTYPE = 19 - WebMessageInfo_GROUP_CREATE WebMessageInfo_STUBTYPE = 20 - WebMessageInfo_GROUP_CHANGE_SUBJECT WebMessageInfo_STUBTYPE = 21 - WebMessageInfo_GROUP_CHANGE_ICON WebMessageInfo_STUBTYPE = 22 - WebMessageInfo_GROUP_CHANGE_INVITE_LINK WebMessageInfo_STUBTYPE = 23 - WebMessageInfo_GROUP_CHANGE_DESCRIPTION WebMessageInfo_STUBTYPE = 24 - WebMessageInfo_GROUP_CHANGE_RESTRICT WebMessageInfo_STUBTYPE = 25 - WebMessageInfo_GROUP_CHANGE_ANNOUNCE WebMessageInfo_STUBTYPE = 26 - WebMessageInfo_GROUP_PARTICIPANT_ADD WebMessageInfo_STUBTYPE = 27 - WebMessageInfo_GROUP_PARTICIPANT_REMOVE WebMessageInfo_STUBTYPE = 28 - WebMessageInfo_GROUP_PARTICIPANT_PROMOTE WebMessageInfo_STUBTYPE = 29 - WebMessageInfo_GROUP_PARTICIPANT_DEMOTE WebMessageInfo_STUBTYPE = 30 - WebMessageInfo_GROUP_PARTICIPANT_INVITE WebMessageInfo_STUBTYPE = 31 - WebMessageInfo_GROUP_PARTICIPANT_LEAVE WebMessageInfo_STUBTYPE = 32 - WebMessageInfo_GROUP_PARTICIPANT_CHANGE_NUMBER WebMessageInfo_STUBTYPE = 33 - WebMessageInfo_BROADCAST_CREATE WebMessageInfo_STUBTYPE = 34 - WebMessageInfo_BROADCAST_ADD WebMessageInfo_STUBTYPE = 35 - WebMessageInfo_BROADCAST_REMOVE WebMessageInfo_STUBTYPE = 36 - WebMessageInfo_GENERIC_NOTIFICATION WebMessageInfo_STUBTYPE = 37 - WebMessageInfo_E2E_IDENTITY_CHANGED WebMessageInfo_STUBTYPE = 38 - WebMessageInfo_E2E_ENCRYPTED WebMessageInfo_STUBTYPE = 39 - WebMessageInfo_CALL_MISSED_VOICE WebMessageInfo_STUBTYPE = 40 - WebMessageInfo_CALL_MISSED_VIDEO WebMessageInfo_STUBTYPE = 41 - WebMessageInfo_INDIVIDUAL_CHANGE_NUMBER WebMessageInfo_STUBTYPE = 42 - WebMessageInfo_GROUP_DELETE WebMessageInfo_STUBTYPE = 43 + WebMessageInfo_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 0 + WebMessageInfo_REVOKE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 1 + WebMessageInfo_CIPHERTEXT WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 2 + WebMessageInfo_FUTUREPROOF WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 3 + WebMessageInfo_NON_VERIFIED_TRANSITION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 4 + WebMessageInfo_UNVERIFIED_TRANSITION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 5 + WebMessageInfo_VERIFIED_TRANSITION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 6 + WebMessageInfo_VERIFIED_LOW_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 7 + WebMessageInfo_VERIFIED_HIGH WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 8 + WebMessageInfo_VERIFIED_INITIAL_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 9 + WebMessageInfo_VERIFIED_INITIAL_LOW WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 10 + WebMessageInfo_VERIFIED_INITIAL_HIGH WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 11 + WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_NONE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 12 + WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_HIGH WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 13 + WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_LOW WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 14 + WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 15 + WebMessageInfo_VERIFIED_TRANSITION_UNKNOWN_TO_LOW WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 16 + WebMessageInfo_VERIFIED_TRANSITION_LOW_TO_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 17 + WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_LOW WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 18 + WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_UNKNOWN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 19 + WebMessageInfo_GROUP_CREATE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 20 + WebMessageInfo_GROUP_CHANGE_SUBJECT WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 21 + WebMessageInfo_GROUP_CHANGE_ICON WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 22 + WebMessageInfo_GROUP_CHANGE_INVITE_LINK WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 23 + WebMessageInfo_GROUP_CHANGE_DESCRIPTION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 24 + WebMessageInfo_GROUP_CHANGE_RESTRICT WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 25 + WebMessageInfo_GROUP_CHANGE_ANNOUNCE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 26 + WebMessageInfo_GROUP_PARTICIPANT_ADD WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 27 + WebMessageInfo_GROUP_PARTICIPANT_REMOVE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 28 + WebMessageInfo_GROUP_PARTICIPANT_PROMOTE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 29 + WebMessageInfo_GROUP_PARTICIPANT_DEMOTE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 30 + WebMessageInfo_GROUP_PARTICIPANT_INVITE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 31 + WebMessageInfo_GROUP_PARTICIPANT_LEAVE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 32 + WebMessageInfo_GROUP_PARTICIPANT_CHANGE_NUMBER WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 33 + WebMessageInfo_BROADCAST_CREATE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 34 + WebMessageInfo_BROADCAST_ADD WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 35 + WebMessageInfo_BROADCAST_REMOVE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 36 + WebMessageInfo_GENERIC_NOTIFICATION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 37 + WebMessageInfo_E2E_IDENTITY_CHANGED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 38 + WebMessageInfo_E2E_ENCRYPTED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 39 + WebMessageInfo_CALL_MISSED_VOICE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 40 + WebMessageInfo_CALL_MISSED_VIDEO WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 41 + WebMessageInfo_INDIVIDUAL_CHANGE_NUMBER WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 42 + WebMessageInfo_GROUP_DELETE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 43 + WebMessageInfo_GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 44 + WebMessageInfo_CALL_MISSED_GROUP_VOICE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 45 + WebMessageInfo_CALL_MISSED_GROUP_VIDEO WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 46 + WebMessageInfo_PAYMENT_CIPHERTEXT WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 47 + WebMessageInfo_PAYMENT_FUTUREPROOF WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 48 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 49 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 50 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 51 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 52 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 53 + WebMessageInfo_PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 54 + WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_REMINDER WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 55 + WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_INVITATION WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 56 + WebMessageInfo_PAYMENT_ACTION_REQUEST_DECLINED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 57 + WebMessageInfo_PAYMENT_ACTION_REQUEST_EXPIRED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 58 + WebMessageInfo_PAYMENT_ACTION_REQUEST_CANCELLED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 59 + WebMessageInfo_BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 60 + WebMessageInfo_BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 61 + WebMessageInfo_BIZ_INTRO_TOP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 62 + WebMessageInfo_BIZ_INTRO_BOTTOM WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 63 + WebMessageInfo_BIZ_NAME_CHANGE WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 64 + WebMessageInfo_BIZ_MOVE_TO_CONSUMER_APP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 65 + WebMessageInfo_BIZ_TWO_TIER_MIGRATION_TOP WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 66 + WebMessageInfo_BIZ_TWO_TIER_MIGRATION_BOTTOM WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 67 + WebMessageInfo_OVERSIZED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 68 + WebMessageInfo_GROUP_CHANGE_NO_FREQUENTLY_FORWARDED WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 69 ) -var WebMessageInfo_STUBTYPE_name = map[int32]string{ +var WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_name = map[int32]string{ 0: "UNKNOWN", 1: "REVOKE", 2: "CIPHERTEXT", @@ -367,2177 +615,3599 @@ var WebMessageInfo_STUBTYPE_name = map[int32]string{ 41: "CALL_MISSED_VIDEO", 42: "INDIVIDUAL_CHANGE_NUMBER", 43: "GROUP_DELETE", -} -var WebMessageInfo_STUBTYPE_value = map[string]int32{ - "UNKNOWN": 0, - "REVOKE": 1, - "CIPHERTEXT": 2, - "FUTUREPROOF": 3, - "NON_VERIFIED_TRANSITION": 4, - "UNVERIFIED_TRANSITION": 5, - "VERIFIED_TRANSITION": 6, - "VERIFIED_LOW_UNKNOWN": 7, - "VERIFIED_HIGH": 8, - "VERIFIED_INITIAL_UNKNOWN": 9, - "VERIFIED_INITIAL_LOW": 10, - "VERIFIED_INITIAL_HIGH": 11, - "VERIFIED_TRANSITION_ANY_TO_NONE": 12, - "VERIFIED_TRANSITION_ANY_TO_HIGH": 13, - "VERIFIED_TRANSITION_HIGH_TO_LOW": 14, - "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN": 15, - "VERIFIED_TRANSITION_UNKNOWN_TO_LOW": 16, - "VERIFIED_TRANSITION_LOW_TO_UNKNOWN": 17, - "VERIFIED_TRANSITION_NONE_TO_LOW": 18, - "VERIFIED_TRANSITION_NONE_TO_UNKNOWN": 19, - "GROUP_CREATE": 20, - "GROUP_CHANGE_SUBJECT": 21, - "GROUP_CHANGE_ICON": 22, - "GROUP_CHANGE_INVITE_LINK": 23, - "GROUP_CHANGE_DESCRIPTION": 24, - "GROUP_CHANGE_RESTRICT": 25, - "GROUP_CHANGE_ANNOUNCE": 26, - "GROUP_PARTICIPANT_ADD": 27, - "GROUP_PARTICIPANT_REMOVE": 28, - "GROUP_PARTICIPANT_PROMOTE": 29, - "GROUP_PARTICIPANT_DEMOTE": 30, - "GROUP_PARTICIPANT_INVITE": 31, - "GROUP_PARTICIPANT_LEAVE": 32, - "GROUP_PARTICIPANT_CHANGE_NUMBER": 33, - "BROADCAST_CREATE": 34, - "BROADCAST_ADD": 35, - "BROADCAST_REMOVE": 36, - "GENERIC_NOTIFICATION": 37, - "E2E_IDENTITY_CHANGED": 38, - "E2E_ENCRYPTED": 39, - "CALL_MISSED_VOICE": 40, - "CALL_MISSED_VIDEO": 41, - "INDIVIDUAL_CHANGE_NUMBER": 42, - "GROUP_DELETE": 43, -} - -func (x WebMessageInfo_STUBTYPE) Enum() *WebMessageInfo_STUBTYPE { - p := new(WebMessageInfo_STUBTYPE) + 44: "GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE", + 45: "CALL_MISSED_GROUP_VOICE", + 46: "CALL_MISSED_GROUP_VIDEO", + 47: "PAYMENT_CIPHERTEXT", + 48: "PAYMENT_FUTUREPROOF", + 49: "PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED", + 50: "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED", + 51: "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED", + 52: "PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP", + 53: "PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP", + 54: "PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER", + 55: "PAYMENT_ACTION_SEND_PAYMENT_REMINDER", + 56: "PAYMENT_ACTION_SEND_PAYMENT_INVITATION", + 57: "PAYMENT_ACTION_REQUEST_DECLINED", + 58: "PAYMENT_ACTION_REQUEST_EXPIRED", + 59: "PAYMENT_ACTION_REQUEST_CANCELLED", + 60: "BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM", + 61: "BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP", + 62: "BIZ_INTRO_TOP", + 63: "BIZ_INTRO_BOTTOM", + 64: "BIZ_NAME_CHANGE", + 65: "BIZ_MOVE_TO_CONSUMER_APP", + 66: "BIZ_TWO_TIER_MIGRATION_TOP", + 67: "BIZ_TWO_TIER_MIGRATION_BOTTOM", + 68: "OVERSIZED", + 69: "GROUP_CHANGE_NO_FREQUENTLY_FORWARDED", +} + +var WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_value = map[string]int32{ + "UNKNOWN": 0, + "REVOKE": 1, + "CIPHERTEXT": 2, + "FUTUREPROOF": 3, + "NON_VERIFIED_TRANSITION": 4, + "UNVERIFIED_TRANSITION": 5, + "VERIFIED_TRANSITION": 6, + "VERIFIED_LOW_UNKNOWN": 7, + "VERIFIED_HIGH": 8, + "VERIFIED_INITIAL_UNKNOWN": 9, + "VERIFIED_INITIAL_LOW": 10, + "VERIFIED_INITIAL_HIGH": 11, + "VERIFIED_TRANSITION_ANY_TO_NONE": 12, + "VERIFIED_TRANSITION_ANY_TO_HIGH": 13, + "VERIFIED_TRANSITION_HIGH_TO_LOW": 14, + "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN": 15, + "VERIFIED_TRANSITION_UNKNOWN_TO_LOW": 16, + "VERIFIED_TRANSITION_LOW_TO_UNKNOWN": 17, + "VERIFIED_TRANSITION_NONE_TO_LOW": 18, + "VERIFIED_TRANSITION_NONE_TO_UNKNOWN": 19, + "GROUP_CREATE": 20, + "GROUP_CHANGE_SUBJECT": 21, + "GROUP_CHANGE_ICON": 22, + "GROUP_CHANGE_INVITE_LINK": 23, + "GROUP_CHANGE_DESCRIPTION": 24, + "GROUP_CHANGE_RESTRICT": 25, + "GROUP_CHANGE_ANNOUNCE": 26, + "GROUP_PARTICIPANT_ADD": 27, + "GROUP_PARTICIPANT_REMOVE": 28, + "GROUP_PARTICIPANT_PROMOTE": 29, + "GROUP_PARTICIPANT_DEMOTE": 30, + "GROUP_PARTICIPANT_INVITE": 31, + "GROUP_PARTICIPANT_LEAVE": 32, + "GROUP_PARTICIPANT_CHANGE_NUMBER": 33, + "BROADCAST_CREATE": 34, + "BROADCAST_ADD": 35, + "BROADCAST_REMOVE": 36, + "GENERIC_NOTIFICATION": 37, + "E2E_IDENTITY_CHANGED": 38, + "E2E_ENCRYPTED": 39, + "CALL_MISSED_VOICE": 40, + "CALL_MISSED_VIDEO": 41, + "INDIVIDUAL_CHANGE_NUMBER": 42, + "GROUP_DELETE": 43, + "GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE": 44, + "CALL_MISSED_GROUP_VOICE": 45, + "CALL_MISSED_GROUP_VIDEO": 46, + "PAYMENT_CIPHERTEXT": 47, + "PAYMENT_FUTUREPROOF": 48, + "PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED": 49, + "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED": 50, + "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED": 51, + "PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP": 52, + "PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP": 53, + "PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER": 54, + "PAYMENT_ACTION_SEND_PAYMENT_REMINDER": 55, + "PAYMENT_ACTION_SEND_PAYMENT_INVITATION": 56, + "PAYMENT_ACTION_REQUEST_DECLINED": 57, + "PAYMENT_ACTION_REQUEST_EXPIRED": 58, + "PAYMENT_ACTION_REQUEST_CANCELLED": 59, + "BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM": 60, + "BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP": 61, + "BIZ_INTRO_TOP": 62, + "BIZ_INTRO_BOTTOM": 63, + "BIZ_NAME_CHANGE": 64, + "BIZ_MOVE_TO_CONSUMER_APP": 65, + "BIZ_TWO_TIER_MIGRATION_TOP": 66, + "BIZ_TWO_TIER_MIGRATION_BOTTOM": 67, + "OVERSIZED": 68, + "GROUP_CHANGE_NO_FREQUENTLY_FORWARDED": 69, +} + +func (x WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) Enum() *WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE { + p := new(WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) *p = x return p } -func (x WebMessageInfo_STUBTYPE) String() string { - return proto.EnumName(WebMessageInfo_STUBTYPE_name, int32(x)) + +func (x WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) String() string { + return proto.EnumName(WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_name, int32(x)) } -func (x *WebMessageInfo_STUBTYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(WebMessageInfo_STUBTYPE_value, data, "WebMessageInfo_STUBTYPE") + +func (x *WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_value, data, "WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE") if err != nil { return err } - *x = WebMessageInfo_STUBTYPE(value) + *x = WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE(value) return nil } -func (WebMessageInfo_STUBTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{30, 1} + +func (WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{51, 1} } -type WebFeatures_FLAG int32 +type HydratedQuickReplyButton struct { + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + ButtonId *string `protobuf:"bytes,2,opt,name=buttonId" json:"buttonId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} -const ( - WebFeatures_NOT_IMPLEMENTED WebFeatures_FLAG = 0 - WebFeatures_IMPLEMENTED WebFeatures_FLAG = 1 - WebFeatures_OPTIONAL WebFeatures_FLAG = 2 -) +func (m *HydratedQuickReplyButton) Reset() { *m = HydratedQuickReplyButton{} } +func (m *HydratedQuickReplyButton) String() string { return proto.CompactTextString(m) } +func (*HydratedQuickReplyButton) ProtoMessage() {} +func (*HydratedQuickReplyButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{0} +} -var WebFeatures_FLAG_name = map[int32]string{ - 0: "NOT_IMPLEMENTED", - 1: "IMPLEMENTED", - 2: "OPTIONAL", +func (m *HydratedQuickReplyButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HydratedQuickReplyButton.Unmarshal(m, b) } -var WebFeatures_FLAG_value = map[string]int32{ - "NOT_IMPLEMENTED": 0, - "IMPLEMENTED": 1, - "OPTIONAL": 2, +func (m *HydratedQuickReplyButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HydratedQuickReplyButton.Marshal(b, m, deterministic) } - -func (x WebFeatures_FLAG) Enum() *WebFeatures_FLAG { - p := new(WebFeatures_FLAG) - *p = x - return p +func (m *HydratedQuickReplyButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydratedQuickReplyButton.Merge(m, src) } -func (x WebFeatures_FLAG) String() string { - return proto.EnumName(WebFeatures_FLAG_name, int32(x)) +func (m *HydratedQuickReplyButton) XXX_Size() int { + return xxx_messageInfo_HydratedQuickReplyButton.Size(m) } -func (x *WebFeatures_FLAG) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(WebFeatures_FLAG_value, data, "WebFeatures_FLAG") - if err != nil { - return err +func (m *HydratedQuickReplyButton) XXX_DiscardUnknown() { + xxx_messageInfo_HydratedQuickReplyButton.DiscardUnknown(m) +} + +var xxx_messageInfo_HydratedQuickReplyButton proto.InternalMessageInfo + +func (m *HydratedQuickReplyButton) GetDisplayText() string { + if m != nil && m.DisplayText != nil { + return *m.DisplayText } - *x = WebFeatures_FLAG(value) - return nil + return "" } -func (WebFeatures_FLAG) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{34, 0} + +func (m *HydratedQuickReplyButton) GetButtonId() string { + if m != nil && m.ButtonId != nil { + return *m.ButtonId + } + return "" } -type FingerprintData struct { - PublicKey *string `protobuf:"bytes,1,opt,name=publicKey" json:"publicKey,omitempty"` - Identifier *string `protobuf:"bytes,2,opt,name=identifier" json:"identifier,omitempty"` +type HydratedURLButton struct { + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FingerprintData) Reset() { *m = FingerprintData{} } -func (m *FingerprintData) String() string { return proto.CompactTextString(m) } -func (*FingerprintData) ProtoMessage() {} -func (*FingerprintData) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{0} +func (m *HydratedURLButton) Reset() { *m = HydratedURLButton{} } +func (m *HydratedURLButton) String() string { return proto.CompactTextString(m) } +func (*HydratedURLButton) ProtoMessage() {} +func (*HydratedURLButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{1} } -func (m *FingerprintData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FingerprintData.Unmarshal(m, b) + +func (m *HydratedURLButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HydratedURLButton.Unmarshal(m, b) } -func (m *FingerprintData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FingerprintData.Marshal(b, m, deterministic) +func (m *HydratedURLButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HydratedURLButton.Marshal(b, m, deterministic) } -func (dst *FingerprintData) XXX_Merge(src proto.Message) { - xxx_messageInfo_FingerprintData.Merge(dst, src) +func (m *HydratedURLButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydratedURLButton.Merge(m, src) } -func (m *FingerprintData) XXX_Size() int { - return xxx_messageInfo_FingerprintData.Size(m) +func (m *HydratedURLButton) XXX_Size() int { + return xxx_messageInfo_HydratedURLButton.Size(m) } -func (m *FingerprintData) XXX_DiscardUnknown() { - xxx_messageInfo_FingerprintData.DiscardUnknown(m) +func (m *HydratedURLButton) XXX_DiscardUnknown() { + xxx_messageInfo_HydratedURLButton.DiscardUnknown(m) } -var xxx_messageInfo_FingerprintData proto.InternalMessageInfo +var xxx_messageInfo_HydratedURLButton proto.InternalMessageInfo -func (m *FingerprintData) GetPublicKey() string { - if m != nil && m.PublicKey != nil { - return *m.PublicKey +func (m *HydratedURLButton) GetDisplayText() string { + if m != nil && m.DisplayText != nil { + return *m.DisplayText } return "" } -func (m *FingerprintData) GetIdentifier() string { - if m != nil && m.Identifier != nil { - return *m.Identifier +func (m *HydratedURLButton) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url } return "" } -type CombinedFingerprint struct { - Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` - LocalFingerprint *FingerprintData `protobuf:"bytes,2,opt,name=localFingerprint" json:"localFingerprint,omitempty"` - RemoteFingerprint *FingerprintData `protobuf:"bytes,3,opt,name=remoteFingerprint" json:"remoteFingerprint,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type HydratedCallButton struct { + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + PhoneNumber *string `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CombinedFingerprint) Reset() { *m = CombinedFingerprint{} } -func (m *CombinedFingerprint) String() string { return proto.CompactTextString(m) } -func (*CombinedFingerprint) ProtoMessage() {} -func (*CombinedFingerprint) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{1} +func (m *HydratedCallButton) Reset() { *m = HydratedCallButton{} } +func (m *HydratedCallButton) String() string { return proto.CompactTextString(m) } +func (*HydratedCallButton) ProtoMessage() {} +func (*HydratedCallButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{2} } -func (m *CombinedFingerprint) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CombinedFingerprint.Unmarshal(m, b) + +func (m *HydratedCallButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HydratedCallButton.Unmarshal(m, b) } -func (m *CombinedFingerprint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CombinedFingerprint.Marshal(b, m, deterministic) +func (m *HydratedCallButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HydratedCallButton.Marshal(b, m, deterministic) } -func (dst *CombinedFingerprint) XXX_Merge(src proto.Message) { - xxx_messageInfo_CombinedFingerprint.Merge(dst, src) +func (m *HydratedCallButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydratedCallButton.Merge(m, src) } -func (m *CombinedFingerprint) XXX_Size() int { - return xxx_messageInfo_CombinedFingerprint.Size(m) +func (m *HydratedCallButton) XXX_Size() int { + return xxx_messageInfo_HydratedCallButton.Size(m) } -func (m *CombinedFingerprint) XXX_DiscardUnknown() { - xxx_messageInfo_CombinedFingerprint.DiscardUnknown(m) +func (m *HydratedCallButton) XXX_DiscardUnknown() { + xxx_messageInfo_HydratedCallButton.DiscardUnknown(m) } -var xxx_messageInfo_CombinedFingerprint proto.InternalMessageInfo +var xxx_messageInfo_HydratedCallButton proto.InternalMessageInfo -func (m *CombinedFingerprint) GetVersion() uint32 { - if m != nil && m.Version != nil { - return *m.Version +func (m *HydratedCallButton) GetDisplayText() string { + if m != nil && m.DisplayText != nil { + return *m.DisplayText } - return 0 + return "" } -func (m *CombinedFingerprint) GetLocalFingerprint() *FingerprintData { - if m != nil { - return m.LocalFingerprint +func (m *HydratedCallButton) GetPhoneNumber() string { + if m != nil && m.PhoneNumber != nil { + return *m.PhoneNumber } - return nil + return "" } -func (m *CombinedFingerprint) GetRemoteFingerprint() *FingerprintData { - if m != nil { - return m.RemoteFingerprint - } - return nil +type HydratedTemplateButton struct { + // Types that are valid to be assigned to HydratedButton: + // *HydratedTemplateButton_QuickReplyButton + // *HydratedTemplateButton_UrlButton + // *HydratedTemplateButton_CallButton + HydratedButton isHydratedTemplateButton_HydratedButton `protobuf_oneof:"hydratedButton"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -type MessageKey struct { - RemoteJid *string `protobuf:"bytes,1,opt,name=remoteJid" json:"remoteJid,omitempty"` - FromMe *bool `protobuf:"varint,2,opt,name=fromMe" json:"fromMe,omitempty"` - Id *string `protobuf:"bytes,3,opt,name=id" json:"id,omitempty"` - Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *HydratedTemplateButton) Reset() { *m = HydratedTemplateButton{} } +func (m *HydratedTemplateButton) String() string { return proto.CompactTextString(m) } +func (*HydratedTemplateButton) ProtoMessage() {} +func (*HydratedTemplateButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{3} } -func (m *MessageKey) Reset() { *m = MessageKey{} } -func (m *MessageKey) String() string { return proto.CompactTextString(m) } -func (*MessageKey) ProtoMessage() {} -func (*MessageKey) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{2} +func (m *HydratedTemplateButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HydratedTemplateButton.Unmarshal(m, b) } -func (m *MessageKey) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageKey.Unmarshal(m, b) +func (m *HydratedTemplateButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HydratedTemplateButton.Marshal(b, m, deterministic) } -func (m *MessageKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageKey.Marshal(b, m, deterministic) +func (m *HydratedTemplateButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydratedTemplateButton.Merge(m, src) } -func (dst *MessageKey) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageKey.Merge(dst, src) +func (m *HydratedTemplateButton) XXX_Size() int { + return xxx_messageInfo_HydratedTemplateButton.Size(m) } -func (m *MessageKey) XXX_Size() int { - return xxx_messageInfo_MessageKey.Size(m) +func (m *HydratedTemplateButton) XXX_DiscardUnknown() { + xxx_messageInfo_HydratedTemplateButton.DiscardUnknown(m) } -func (m *MessageKey) XXX_DiscardUnknown() { - xxx_messageInfo_MessageKey.DiscardUnknown(m) + +var xxx_messageInfo_HydratedTemplateButton proto.InternalMessageInfo + +type isHydratedTemplateButton_HydratedButton interface { + isHydratedTemplateButton_HydratedButton() } -var xxx_messageInfo_MessageKey proto.InternalMessageInfo +type HydratedTemplateButton_QuickReplyButton struct { + QuickReplyButton *HydratedQuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +} -func (m *MessageKey) GetRemoteJid() string { - if m != nil && m.RemoteJid != nil { - return *m.RemoteJid +type HydratedTemplateButton_UrlButton struct { + UrlButton *HydratedURLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"` +} + +type HydratedTemplateButton_CallButton struct { + CallButton *HydratedCallButton `protobuf:"bytes,3,opt,name=callButton,oneof"` +} + +func (*HydratedTemplateButton_QuickReplyButton) isHydratedTemplateButton_HydratedButton() {} + +func (*HydratedTemplateButton_UrlButton) isHydratedTemplateButton_HydratedButton() {} + +func (*HydratedTemplateButton_CallButton) isHydratedTemplateButton_HydratedButton() {} + +func (m *HydratedTemplateButton) GetHydratedButton() isHydratedTemplateButton_HydratedButton { + if m != nil { + return m.HydratedButton } - return "" + return nil } -func (m *MessageKey) GetFromMe() bool { - if m != nil && m.FromMe != nil { - return *m.FromMe +func (m *HydratedTemplateButton) GetQuickReplyButton() *HydratedQuickReplyButton { + if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_QuickReplyButton); ok { + return x.QuickReplyButton } - return false + return nil } -func (m *MessageKey) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +func (m *HydratedTemplateButton) GetUrlButton() *HydratedURLButton { + if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_UrlButton); ok { + return x.UrlButton } - return "" + return nil } -func (m *MessageKey) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant +func (m *HydratedTemplateButton) GetCallButton() *HydratedCallButton { + if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_CallButton); ok { + return x.CallButton } - return "" + return nil } -type SenderKeyDistributionMessage struct { - GroupId *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` - AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HydratedTemplateButton) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HydratedTemplateButton_QuickReplyButton)(nil), + (*HydratedTemplateButton_UrlButton)(nil), + (*HydratedTemplateButton_CallButton)(nil), + } } -func (m *SenderKeyDistributionMessage) Reset() { *m = SenderKeyDistributionMessage{} } -func (m *SenderKeyDistributionMessage) String() string { return proto.CompactTextString(m) } -func (*SenderKeyDistributionMessage) ProtoMessage() {} -func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{3} +type QuickReplyButton struct { + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + ButtonId *string `protobuf:"bytes,2,opt,name=buttonId" json:"buttonId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *SenderKeyDistributionMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SenderKeyDistributionMessage.Unmarshal(m, b) + +func (m *QuickReplyButton) Reset() { *m = QuickReplyButton{} } +func (m *QuickReplyButton) String() string { return proto.CompactTextString(m) } +func (*QuickReplyButton) ProtoMessage() {} +func (*QuickReplyButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{4} } -func (m *SenderKeyDistributionMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SenderKeyDistributionMessage.Marshal(b, m, deterministic) + +func (m *QuickReplyButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuickReplyButton.Unmarshal(m, b) } -func (dst *SenderKeyDistributionMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_SenderKeyDistributionMessage.Merge(dst, src) +func (m *QuickReplyButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuickReplyButton.Marshal(b, m, deterministic) } -func (m *SenderKeyDistributionMessage) XXX_Size() int { - return xxx_messageInfo_SenderKeyDistributionMessage.Size(m) +func (m *QuickReplyButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuickReplyButton.Merge(m, src) } -func (m *SenderKeyDistributionMessage) XXX_DiscardUnknown() { - xxx_messageInfo_SenderKeyDistributionMessage.DiscardUnknown(m) +func (m *QuickReplyButton) XXX_Size() int { + return xxx_messageInfo_QuickReplyButton.Size(m) +} +func (m *QuickReplyButton) XXX_DiscardUnknown() { + xxx_messageInfo_QuickReplyButton.DiscardUnknown(m) } -var xxx_messageInfo_SenderKeyDistributionMessage proto.InternalMessageInfo +var xxx_messageInfo_QuickReplyButton proto.InternalMessageInfo -func (m *SenderKeyDistributionMessage) GetGroupId() string { - if m != nil && m.GroupId != nil { - return *m.GroupId +func (m *QuickReplyButton) GetDisplayText() *HighlyStructuredMessage { + if m != nil { + return m.DisplayText } - return "" + return nil } -func (m *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte { - if m != nil { - return m.AxolotlSenderKeyDistributionMessage +func (m *QuickReplyButton) GetButtonId() string { + if m != nil && m.ButtonId != nil { + return *m.ButtonId } - return nil + return "" } -type ImageMessage struct { - Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` - Caption *string `protobuf:"bytes,3,opt,name=caption" json:"caption,omitempty"` - FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"` - FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"` - Height *uint32 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"` - Width *uint32 `protobuf:"varint,7,opt,name=width" json:"width,omitempty"` - MediaKey []byte `protobuf:"bytes,8,opt,name=mediaKey" json:"mediaKey,omitempty"` - FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` - InteractiveAnnotations []*InteractiveAnnotation `protobuf:"bytes,10,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"` - DirectPath *string `protobuf:"bytes,11,opt,name=directPath" json:"directPath,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - FirstScanSidecar []byte `protobuf:"bytes,18,opt,name=firstScanSidecar" json:"firstScanSidecar,omitempty"` - FirstScanLength *uint32 `protobuf:"varint,19,opt,name=firstScanLength" json:"firstScanLength,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type URLButton struct { + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Url *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ImageMessage) Reset() { *m = ImageMessage{} } -func (m *ImageMessage) String() string { return proto.CompactTextString(m) } -func (*ImageMessage) ProtoMessage() {} -func (*ImageMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{4} +func (m *URLButton) Reset() { *m = URLButton{} } +func (m *URLButton) String() string { return proto.CompactTextString(m) } +func (*URLButton) ProtoMessage() {} +func (*URLButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{5} } -func (m *ImageMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImageMessage.Unmarshal(m, b) -} -func (m *ImageMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImageMessage.Marshal(b, m, deterministic) + +func (m *URLButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLButton.Unmarshal(m, b) } -func (dst *ImageMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageMessage.Merge(dst, src) +func (m *URLButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLButton.Marshal(b, m, deterministic) } -func (m *ImageMessage) XXX_Size() int { - return xxx_messageInfo_ImageMessage.Size(m) +func (m *URLButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLButton.Merge(m, src) } -func (m *ImageMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ImageMessage.DiscardUnknown(m) +func (m *URLButton) XXX_Size() int { + return xxx_messageInfo_URLButton.Size(m) } - -var xxx_messageInfo_ImageMessage proto.InternalMessageInfo - -func (m *ImageMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" +func (m *URLButton) XXX_DiscardUnknown() { + xxx_messageInfo_URLButton.DiscardUnknown(m) } -func (m *ImageMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype - } - return "" -} +var xxx_messageInfo_URLButton proto.InternalMessageInfo -func (m *ImageMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (m *URLButton) GetDisplayText() *HighlyStructuredMessage { + if m != nil { + return m.DisplayText } - return "" + return nil } -func (m *ImageMessage) GetFileSha256() []byte { +func (m *URLButton) GetUrl() *HighlyStructuredMessage { if m != nil { - return m.FileSha256 + return m.Url } return nil } -func (m *ImageMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength - } - return 0 +type CallButton struct { + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + PhoneNumber *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ImageMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height - } - return 0 +func (m *CallButton) Reset() { *m = CallButton{} } +func (m *CallButton) String() string { return proto.CompactTextString(m) } +func (*CallButton) ProtoMessage() {} +func (*CallButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{6} } -func (m *ImageMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width - } - return 0 +func (m *CallButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CallButton.Unmarshal(m, b) } - -func (m *ImageMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey - } - return nil +func (m *CallButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CallButton.Marshal(b, m, deterministic) } - -func (m *ImageMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 - } - return nil +func (m *CallButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_CallButton.Merge(m, src) } - -func (m *ImageMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { - if m != nil { - return m.InteractiveAnnotations - } - return nil +func (m *CallButton) XXX_Size() int { + return xxx_messageInfo_CallButton.Size(m) } - -func (m *ImageMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" +func (m *CallButton) XXX_DiscardUnknown() { + xxx_messageInfo_CallButton.DiscardUnknown(m) } -func (m *ImageMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail - } - return nil -} +var xxx_messageInfo_CallButton proto.InternalMessageInfo -func (m *ImageMessage) GetContextInfo() *ContextInfo { +func (m *CallButton) GetDisplayText() *HighlyStructuredMessage { if m != nil { - return m.ContextInfo + return m.DisplayText } return nil } -func (m *ImageMessage) GetFirstScanSidecar() []byte { +func (m *CallButton) GetPhoneNumber() *HighlyStructuredMessage { if m != nil { - return m.FirstScanSidecar + return m.PhoneNumber } return nil } -func (m *ImageMessage) GetFirstScanLength() uint32 { - if m != nil && m.FirstScanLength != nil { - return *m.FirstScanLength - } - return 0 +type TemplateButton struct { + // Types that are valid to be assigned to Button: + // *TemplateButton_QuickReplyButton + // *TemplateButton_UrlButton + // *TemplateButton_CallButton + Button isTemplateButton_Button `protobuf_oneof:"button"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -type ContactMessage struct { - DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` - Vcard *string `protobuf:"bytes,16,opt,name=vcard" json:"vcard,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *TemplateButton) Reset() { *m = TemplateButton{} } +func (m *TemplateButton) String() string { return proto.CompactTextString(m) } +func (*TemplateButton) ProtoMessage() {} +func (*TemplateButton) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{7} } -func (m *ContactMessage) Reset() { *m = ContactMessage{} } -func (m *ContactMessage) String() string { return proto.CompactTextString(m) } -func (*ContactMessage) ProtoMessage() {} -func (*ContactMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{5} +func (m *TemplateButton) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TemplateButton.Unmarshal(m, b) } -func (m *ContactMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContactMessage.Unmarshal(m, b) +func (m *TemplateButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TemplateButton.Marshal(b, m, deterministic) } -func (m *ContactMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContactMessage.Marshal(b, m, deterministic) +func (m *TemplateButton) XXX_Merge(src proto.Message) { + xxx_messageInfo_TemplateButton.Merge(m, src) } -func (dst *ContactMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContactMessage.Merge(dst, src) +func (m *TemplateButton) XXX_Size() int { + return xxx_messageInfo_TemplateButton.Size(m) } -func (m *ContactMessage) XXX_Size() int { - return xxx_messageInfo_ContactMessage.Size(m) +func (m *TemplateButton) XXX_DiscardUnknown() { + xxx_messageInfo_TemplateButton.DiscardUnknown(m) } -func (m *ContactMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ContactMessage.DiscardUnknown(m) + +var xxx_messageInfo_TemplateButton proto.InternalMessageInfo + +type isTemplateButton_Button interface { + isTemplateButton_Button() } -var xxx_messageInfo_ContactMessage proto.InternalMessageInfo +type TemplateButton_QuickReplyButton struct { + QuickReplyButton *QuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +} -func (m *ContactMessage) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +type TemplateButton_UrlButton struct { + UrlButton *URLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"` +} + +type TemplateButton_CallButton struct { + CallButton *CallButton `protobuf:"bytes,3,opt,name=callButton,oneof"` +} + +func (*TemplateButton_QuickReplyButton) isTemplateButton_Button() {} + +func (*TemplateButton_UrlButton) isTemplateButton_Button() {} + +func (*TemplateButton_CallButton) isTemplateButton_Button() {} + +func (m *TemplateButton) GetButton() isTemplateButton_Button { + if m != nil { + return m.Button } - return "" + return nil } -func (m *ContactMessage) GetVcard() string { - if m != nil && m.Vcard != nil { - return *m.Vcard +func (m *TemplateButton) GetQuickReplyButton() *QuickReplyButton { + if x, ok := m.GetButton().(*TemplateButton_QuickReplyButton); ok { + return x.QuickReplyButton } - return "" + return nil } -func (m *ContactMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (m *TemplateButton) GetUrlButton() *URLButton { + if x, ok := m.GetButton().(*TemplateButton_UrlButton); ok { + return x.UrlButton } return nil } -type LocationMessage struct { - DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` - DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` - Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Address *string `protobuf:"bytes,4,opt,name=address" json:"address,omitempty"` - Url *string `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *TemplateButton) GetCallButton() *CallButton { + if x, ok := m.GetButton().(*TemplateButton_CallButton); ok { + return x.CallButton + } + return nil } -func (m *LocationMessage) Reset() { *m = LocationMessage{} } -func (m *LocationMessage) String() string { return proto.CompactTextString(m) } -func (*LocationMessage) ProtoMessage() {} -func (*LocationMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{6} +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TemplateButton) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TemplateButton_QuickReplyButton)(nil), + (*TemplateButton_UrlButton)(nil), + (*TemplateButton_CallButton)(nil), + } } -func (m *LocationMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LocationMessage.Unmarshal(m, b) + +type Location struct { + DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` + DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *LocationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LocationMessage.Marshal(b, m, deterministic) + +func (m *Location) Reset() { *m = Location{} } +func (m *Location) String() string { return proto.CompactTextString(m) } +func (*Location) ProtoMessage() {} +func (*Location) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{8} } -func (dst *LocationMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_LocationMessage.Merge(dst, src) + +func (m *Location) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Location.Unmarshal(m, b) } -func (m *LocationMessage) XXX_Size() int { - return xxx_messageInfo_LocationMessage.Size(m) +func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Location.Marshal(b, m, deterministic) } -func (m *LocationMessage) XXX_DiscardUnknown() { - xxx_messageInfo_LocationMessage.DiscardUnknown(m) +func (m *Location) XXX_Merge(src proto.Message) { + xxx_messageInfo_Location.Merge(m, src) +} +func (m *Location) XXX_Size() int { + return xxx_messageInfo_Location.Size(m) +} +func (m *Location) XXX_DiscardUnknown() { + xxx_messageInfo_Location.DiscardUnknown(m) } -var xxx_messageInfo_LocationMessage proto.InternalMessageInfo +var xxx_messageInfo_Location proto.InternalMessageInfo -func (m *LocationMessage) GetDegreesLatitude() float64 { +func (m *Location) GetDegreesLatitude() float64 { if m != nil && m.DegreesLatitude != nil { return *m.DegreesLatitude } return 0 } -func (m *LocationMessage) GetDegreesLongitude() float64 { +func (m *Location) GetDegreesLongitude() float64 { if m != nil && m.DegreesLongitude != nil { return *m.DegreesLongitude } return 0 } -func (m *LocationMessage) GetName() string { +func (m *Location) GetName() string { if m != nil && m.Name != nil { return *m.Name } return "" } -func (m *LocationMessage) GetAddress() string { - if m != nil && m.Address != nil { - return *m.Address - } - return "" +type Point struct { + X *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"` + Y *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *LocationMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" +func (m *Point) Reset() { *m = Point{} } +func (m *Point) String() string { return proto.CompactTextString(m) } +func (*Point) ProtoMessage() {} +func (*Point) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{9} } -func (m *LocationMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail - } - return nil +func (m *Point) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Point.Unmarshal(m, b) } - -func (m *LocationMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo - } - return nil +func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Point.Marshal(b, m, deterministic) } - -type ExtendedTextMessage struct { - 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_FONTTYPE `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_FONTTYPE" json:"font,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *Point) XXX_Merge(src proto.Message) { + xxx_messageInfo_Point.Merge(m, src) } - -func (m *ExtendedTextMessage) Reset() { *m = ExtendedTextMessage{} } -func (m *ExtendedTextMessage) String() string { return proto.CompactTextString(m) } -func (*ExtendedTextMessage) ProtoMessage() {} -func (*ExtendedTextMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{7} +func (m *Point) XXX_Size() int { + return xxx_messageInfo_Point.Size(m) } -func (m *ExtendedTextMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ExtendedTextMessage.Unmarshal(m, b) +func (m *Point) XXX_DiscardUnknown() { + xxx_messageInfo_Point.DiscardUnknown(m) } -func (m *ExtendedTextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ExtendedTextMessage.Marshal(b, m, deterministic) + +var xxx_messageInfo_Point proto.InternalMessageInfo + +func (m *Point) GetX() float64 { + if m != nil && m.X != nil { + return *m.X + } + return 0 } -func (dst *ExtendedTextMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExtendedTextMessage.Merge(dst, src) + +func (m *Point) GetY() float64 { + if m != nil && m.Y != nil { + return *m.Y + } + return 0 } -func (m *ExtendedTextMessage) XXX_Size() int { - return xxx_messageInfo_ExtendedTextMessage.Size(m) + +type InteractiveAnnotation struct { + PolygonVertices []*Point `protobuf:"bytes,1,rep,name=polygonVertices" json:"polygonVertices,omitempty"` + // Types that are valid to be assigned to Action: + // *InteractiveAnnotation_Location + Action isInteractiveAnnotation_Action `protobuf_oneof:"action"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ExtendedTextMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ExtendedTextMessage.DiscardUnknown(m) + +func (m *InteractiveAnnotation) Reset() { *m = InteractiveAnnotation{} } +func (m *InteractiveAnnotation) String() string { return proto.CompactTextString(m) } +func (*InteractiveAnnotation) ProtoMessage() {} +func (*InteractiveAnnotation) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{10} } -var xxx_messageInfo_ExtendedTextMessage proto.InternalMessageInfo +func (m *InteractiveAnnotation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InteractiveAnnotation.Unmarshal(m, b) +} +func (m *InteractiveAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InteractiveAnnotation.Marshal(b, m, deterministic) +} +func (m *InteractiveAnnotation) XXX_Merge(src proto.Message) { + xxx_messageInfo_InteractiveAnnotation.Merge(m, src) +} +func (m *InteractiveAnnotation) XXX_Size() int { + return xxx_messageInfo_InteractiveAnnotation.Size(m) +} +func (m *InteractiveAnnotation) XXX_DiscardUnknown() { + xxx_messageInfo_InteractiveAnnotation.DiscardUnknown(m) +} -func (m *ExtendedTextMessage) GetText() string { - if m != nil && m.Text != nil { - return *m.Text +var xxx_messageInfo_InteractiveAnnotation proto.InternalMessageInfo + +func (m *InteractiveAnnotation) GetPolygonVertices() []*Point { + if m != nil { + return m.PolygonVertices } - return "" + return nil } -func (m *ExtendedTextMessage) GetMatchedText() string { - if m != nil && m.MatchedText != nil { - return *m.MatchedText - } - return "" +type isInteractiveAnnotation_Action interface { + isInteractiveAnnotation_Action() } -func (m *ExtendedTextMessage) GetCanonicalUrl() string { - if m != nil && m.CanonicalUrl != nil { - return *m.CanonicalUrl - } - return "" +type InteractiveAnnotation_Location struct { + Location *Location `protobuf:"bytes,2,opt,name=location,oneof"` } -func (m *ExtendedTextMessage) GetDescription() string { - if m != nil && m.Description != nil { - return *m.Description +func (*InteractiveAnnotation_Location) isInteractiveAnnotation_Action() {} + +func (m *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action { + if m != nil { + return m.Action } - return "" + return nil } -func (m *ExtendedTextMessage) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title +func (m *InteractiveAnnotation) GetLocation() *Location { + if x, ok := m.GetAction().(*InteractiveAnnotation_Location); ok { + return x.Location } - return "" + return nil } -func (m *ExtendedTextMessage) GetTextArgb() uint32 { - if m != nil && m.TextArgb != nil { - return *m.TextArgb +// XXX_OneofWrappers is for the internal use of the proto package. +func (*InteractiveAnnotation) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*InteractiveAnnotation_Location)(nil), } - return 0 } -func (m *ExtendedTextMessage) GetBackgroundArgb() uint32 { - if m != nil && m.BackgroundArgb != nil { - return *m.BackgroundArgb +type AdReplyInfo struct { + AdvertiserName *string `protobuf:"bytes,1,opt,name=advertiserName" json:"advertiserName,omitempty"` + MediaType *AdReplyInfo_AD_REPLY_INFO_MEDIATYPE `protobuf:"varint,2,opt,name=mediaType,enum=proto.AdReplyInfo_AD_REPLY_INFO_MEDIATYPE" json:"mediaType,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + Caption *string `protobuf:"bytes,17,opt,name=caption" json:"caption,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdReplyInfo) Reset() { *m = AdReplyInfo{} } +func (m *AdReplyInfo) String() string { return proto.CompactTextString(m) } +func (*AdReplyInfo) ProtoMessage() {} +func (*AdReplyInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{11} +} + +func (m *AdReplyInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdReplyInfo.Unmarshal(m, b) +} +func (m *AdReplyInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdReplyInfo.Marshal(b, m, deterministic) +} +func (m *AdReplyInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdReplyInfo.Merge(m, src) +} +func (m *AdReplyInfo) XXX_Size() int { + return xxx_messageInfo_AdReplyInfo.Size(m) +} +func (m *AdReplyInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AdReplyInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AdReplyInfo proto.InternalMessageInfo + +func (m *AdReplyInfo) GetAdvertiserName() string { + if m != nil && m.AdvertiserName != nil { + return *m.AdvertiserName } - return 0 + return "" } -func (m *ExtendedTextMessage) GetFont() ExtendedTextMessage_FONTTYPE { - if m != nil && m.Font != nil { - return *m.Font +func (m *AdReplyInfo) GetMediaType() AdReplyInfo_AD_REPLY_INFO_MEDIATYPE { + if m != nil && m.MediaType != nil { + return *m.MediaType } - return ExtendedTextMessage_SANS_SERIF + return AdReplyInfo_NONE } -func (m *ExtendedTextMessage) GetJpegThumbnail() []byte { +func (m *AdReplyInfo) GetJpegThumbnail() []byte { if m != nil { return m.JpegThumbnail } return nil } -func (m *ExtendedTextMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (m *AdReplyInfo) GetCaption() string { + if m != nil && m.Caption != nil { + return *m.Caption } - return nil + return "" } -type DocumentMessage struct { - Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` - Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` - Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` - FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"` - FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"` - PageCount *uint32 `protobuf:"varint,6,opt,name=pageCount" json:"pageCount,omitempty"` - MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"` - FileName *string `protobuf:"bytes,8,opt,name=fileName" json:"fileName,omitempty"` - FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` - DirectPath *string `protobuf:"bytes,10,opt,name=directPath" json:"directPath,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type ContextInfo struct { + StanzaId *string `protobuf:"bytes,1,opt,name=stanzaId" json:"stanzaId,omitempty"` + Participant *string `protobuf:"bytes,2,opt,name=participant" json:"participant,omitempty"` + QuotedMessage *Message `protobuf:"bytes,3,opt,name=quotedMessage" json:"quotedMessage,omitempty"` + RemoteJid *string `protobuf:"bytes,4,opt,name=remoteJid" json:"remoteJid,omitempty"` + MentionedJid []string `protobuf:"bytes,15,rep,name=mentionedJid" json:"mentionedJid,omitempty"` + ConversionSource *string `protobuf:"bytes,18,opt,name=conversionSource" json:"conversionSource,omitempty"` + ConversionData []byte `protobuf:"bytes,19,opt,name=conversionData" json:"conversionData,omitempty"` + ConversionDelaySeconds *uint32 `protobuf:"varint,20,opt,name=conversionDelaySeconds" json:"conversionDelaySeconds,omitempty"` + ForwardingScore *uint32 `protobuf:"varint,21,opt,name=forwardingScore" json:"forwardingScore,omitempty"` + IsForwarded *bool `protobuf:"varint,22,opt,name=isForwarded" json:"isForwarded,omitempty"` + QuotedAd *AdReplyInfo `protobuf:"bytes,23,opt,name=quotedAd" json:"quotedAd,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *DocumentMessage) Reset() { *m = DocumentMessage{} } -func (m *DocumentMessage) String() string { return proto.CompactTextString(m) } -func (*DocumentMessage) ProtoMessage() {} -func (*DocumentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{8} +func (m *ContextInfo) Reset() { *m = ContextInfo{} } +func (m *ContextInfo) String() string { return proto.CompactTextString(m) } +func (*ContextInfo) ProtoMessage() {} +func (*ContextInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{12} } -func (m *DocumentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DocumentMessage.Unmarshal(m, b) + +func (m *ContextInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContextInfo.Unmarshal(m, b) } -func (m *DocumentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DocumentMessage.Marshal(b, m, deterministic) +func (m *ContextInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContextInfo.Marshal(b, m, deterministic) } -func (dst *DocumentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_DocumentMessage.Merge(dst, src) +func (m *ContextInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContextInfo.Merge(m, src) } -func (m *DocumentMessage) XXX_Size() int { - return xxx_messageInfo_DocumentMessage.Size(m) +func (m *ContextInfo) XXX_Size() int { + return xxx_messageInfo_ContextInfo.Size(m) } -func (m *DocumentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_DocumentMessage.DiscardUnknown(m) +func (m *ContextInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ContextInfo.DiscardUnknown(m) } -var xxx_messageInfo_DocumentMessage proto.InternalMessageInfo - -func (m *DocumentMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" -} +var xxx_messageInfo_ContextInfo proto.InternalMessageInfo -func (m *DocumentMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype +func (m *ContextInfo) GetStanzaId() string { + if m != nil && m.StanzaId != nil { + return *m.StanzaId } return "" } -func (m *DocumentMessage) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title +func (m *ContextInfo) GetParticipant() string { + if m != nil && m.Participant != nil { + return *m.Participant } return "" } -func (m *DocumentMessage) GetFileSha256() []byte { +func (m *ContextInfo) GetQuotedMessage() *Message { if m != nil { - return m.FileSha256 + return m.QuotedMessage } return nil } -func (m *DocumentMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength - } - return 0 -} - -func (m *DocumentMessage) GetPageCount() uint32 { - if m != nil && m.PageCount != nil { - return *m.PageCount +func (m *ContextInfo) GetRemoteJid() string { + if m != nil && m.RemoteJid != nil { + return *m.RemoteJid } - return 0 + return "" } -func (m *DocumentMessage) GetMediaKey() []byte { +func (m *ContextInfo) GetMentionedJid() []string { if m != nil { - return m.MediaKey + return m.MentionedJid } return nil } -func (m *DocumentMessage) GetFileName() string { - if m != nil && m.FileName != nil { - return *m.FileName +func (m *ContextInfo) GetConversionSource() string { + if m != nil && m.ConversionSource != nil { + return *m.ConversionSource } return "" } -func (m *DocumentMessage) GetFileEncSha256() []byte { +func (m *ContextInfo) GetConversionData() []byte { if m != nil { - return m.FileEncSha256 + return m.ConversionData } return nil } -func (m *DocumentMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath +func (m *ContextInfo) GetConversionDelaySeconds() uint32 { + if m != nil && m.ConversionDelaySeconds != nil { + return *m.ConversionDelaySeconds } - return "" + return 0 } -func (m *DocumentMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (m *ContextInfo) GetForwardingScore() uint32 { + if m != nil && m.ForwardingScore != nil { + return *m.ForwardingScore } - return nil + return 0 } -func (m *DocumentMessage) GetContextInfo() *ContextInfo { +func (m *ContextInfo) GetIsForwarded() bool { + if m != nil && m.IsForwarded != nil { + return *m.IsForwarded + } + return false +} + +func (m *ContextInfo) GetQuotedAd() *AdReplyInfo { if m != nil { - return m.ContextInfo + return m.QuotedAd } return nil } -type AudioMessage struct { - 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"` - Ptt *bool `protobuf:"varint,6,opt,name=ptt" json:"ptt,omitempty"` - MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"` - FileEncSha256 []byte `protobuf:"bytes,8,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` - DirectPath *string `protobuf:"bytes,9,opt,name=directPath" json:"directPath,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - StreamingSidecar []byte `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` +type SenderKeyDistributionMessage struct { + GroupId *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` + AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SenderKeyDistributionMessage) Reset() { *m = SenderKeyDistributionMessage{} } +func (m *SenderKeyDistributionMessage) String() string { return proto.CompactTextString(m) } +func (*SenderKeyDistributionMessage) ProtoMessage() {} +func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{13} +} + +func (m *SenderKeyDistributionMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SenderKeyDistributionMessage.Unmarshal(m, b) +} +func (m *SenderKeyDistributionMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SenderKeyDistributionMessage.Marshal(b, m, deterministic) +} +func (m *SenderKeyDistributionMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_SenderKeyDistributionMessage.Merge(m, src) +} +func (m *SenderKeyDistributionMessage) XXX_Size() int { + return xxx_messageInfo_SenderKeyDistributionMessage.Size(m) +} +func (m *SenderKeyDistributionMessage) XXX_DiscardUnknown() { + xxx_messageInfo_SenderKeyDistributionMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_SenderKeyDistributionMessage proto.InternalMessageInfo + +func (m *SenderKeyDistributionMessage) GetGroupId() string { + if m != nil && m.GroupId != nil { + return *m.GroupId + } + return "" +} + +func (m *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte { + if m != nil { + return m.AxolotlSenderKeyDistributionMessage + } + return nil +} + +type ImageMessage struct { + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + Caption *string `protobuf:"bytes,3,opt,name=caption" json:"caption,omitempty"` + FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"` + Height *uint32 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"` + Width *uint32 `protobuf:"varint,7,opt,name=width" json:"width,omitempty"` + MediaKey []byte `protobuf:"bytes,8,opt,name=mediaKey" json:"mediaKey,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + InteractiveAnnotations []*InteractiveAnnotation `protobuf:"bytes,10,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"` + DirectPath *string `protobuf:"bytes,11,opt,name=directPath" json:"directPath,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,12,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"` + FirstScanSidecar []byte `protobuf:"bytes,18,opt,name=firstScanSidecar" json:"firstScanSidecar,omitempty"` + FirstScanLength *uint32 `protobuf:"varint,19,opt,name=firstScanLength" json:"firstScanLength,omitempty"` + ExperimentGroupId *uint32 `protobuf:"varint,20,opt,name=experimentGroupId" json:"experimentGroupId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImageMessage) Reset() { *m = ImageMessage{} } +func (m *ImageMessage) String() string { return proto.CompactTextString(m) } +func (*ImageMessage) ProtoMessage() {} +func (*ImageMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{14} +} + +func (m *ImageMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImageMessage.Unmarshal(m, b) +} +func (m *ImageMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImageMessage.Marshal(b, m, deterministic) +} +func (m *ImageMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImageMessage.Merge(m, src) +} +func (m *ImageMessage) XXX_Size() int { + return xxx_messageInfo_ImageMessage.Size(m) +} +func (m *ImageMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ImageMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ImageMessage proto.InternalMessageInfo + +func (m *ImageMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *ImageMessage) GetMimetype() string { + if m != nil && m.Mimetype != nil { + return *m.Mimetype + } + return "" +} + +func (m *ImageMessage) GetCaption() string { + if m != nil && m.Caption != nil { + return *m.Caption + } + return "" +} + +func (m *ImageMessage) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 + } + return nil +} + +func (m *ImageMessage) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength + } + return 0 +} + +func (m *ImageMessage) GetHeight() uint32 { + if m != nil && m.Height != nil { + return *m.Height + } + return 0 +} + +func (m *ImageMessage) GetWidth() uint32 { + if m != nil && m.Width != nil { + return *m.Width + } + return 0 +} + +func (m *ImageMessage) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil +} + +func (m *ImageMessage) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil +} + +func (m *ImageMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { + if m != nil { + return m.InteractiveAnnotations + } + return nil +} + +func (m *ImageMessage) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath + } + return "" +} + +func (m *ImageMessage) GetMediaKeyTimestamp() int64 { + if m != nil && m.MediaKeyTimestamp != nil { + return *m.MediaKeyTimestamp + } + return 0 +} + +func (m *ImageMessage) GetJpegThumbnail() []byte { + if m != nil { + return m.JpegThumbnail + } + return nil +} + +func (m *ImageMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +func (m *ImageMessage) GetFirstScanSidecar() []byte { + if m != nil { + return m.FirstScanSidecar + } + return nil +} + +func (m *ImageMessage) GetFirstScanLength() uint32 { + if m != nil && m.FirstScanLength != nil { + return *m.FirstScanLength + } + return 0 +} + +func (m *ImageMessage) GetExperimentGroupId() uint32 { + if m != nil && m.ExperimentGroupId != nil { + return *m.ExperimentGroupId + } + return 0 +} + +type ContactMessage struct { + DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` + Vcard *string `protobuf:"bytes,16,opt,name=vcard" json:"vcard,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *AudioMessage) Reset() { *m = AudioMessage{} } -func (m *AudioMessage) String() string { return proto.CompactTextString(m) } -func (*AudioMessage) ProtoMessage() {} -func (*AudioMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{9} +func (m *ContactMessage) Reset() { *m = ContactMessage{} } +func (m *ContactMessage) String() string { return proto.CompactTextString(m) } +func (*ContactMessage) ProtoMessage() {} +func (*ContactMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{15} +} + +func (m *ContactMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContactMessage.Unmarshal(m, b) +} +func (m *ContactMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContactMessage.Marshal(b, m, deterministic) +} +func (m *ContactMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContactMessage.Merge(m, src) +} +func (m *ContactMessage) XXX_Size() int { + return xxx_messageInfo_ContactMessage.Size(m) +} +func (m *ContactMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ContactMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ContactMessage proto.InternalMessageInfo + +func (m *ContactMessage) GetDisplayName() string { + if m != nil && m.DisplayName != nil { + return *m.DisplayName + } + return "" +} + +func (m *ContactMessage) GetVcard() string { + if m != nil && m.Vcard != nil { + return *m.Vcard + } + return "" +} + +func (m *ContactMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +type LocationMessage struct { + DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` + DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Address *string `protobuf:"bytes,4,opt,name=address" json:"address,omitempty"` + Url *string `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocationMessage) Reset() { *m = LocationMessage{} } +func (m *LocationMessage) String() string { return proto.CompactTextString(m) } +func (*LocationMessage) ProtoMessage() {} +func (*LocationMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{16} +} + +func (m *LocationMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocationMessage.Unmarshal(m, b) +} +func (m *LocationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocationMessage.Marshal(b, m, deterministic) +} +func (m *LocationMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocationMessage.Merge(m, src) +} +func (m *LocationMessage) XXX_Size() int { + return xxx_messageInfo_LocationMessage.Size(m) +} +func (m *LocationMessage) XXX_DiscardUnknown() { + xxx_messageInfo_LocationMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_LocationMessage proto.InternalMessageInfo + +func (m *LocationMessage) GetDegreesLatitude() float64 { + if m != nil && m.DegreesLatitude != nil { + return *m.DegreesLatitude + } + return 0 +} + +func (m *LocationMessage) GetDegreesLongitude() float64 { + if m != nil && m.DegreesLongitude != nil { + return *m.DegreesLongitude + } + return 0 +} + +func (m *LocationMessage) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *LocationMessage) GetAddress() string { + if m != nil && m.Address != nil { + return *m.Address + } + return "" +} + +func (m *LocationMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *LocationMessage) GetJpegThumbnail() []byte { + if m != nil { + return m.JpegThumbnail + } + return nil +} + +func (m *LocationMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +type ExtendedTextMessage struct { + 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_EXTENDED_TEXT_MESSAGE_FONTTYPE `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE" json:"font,omitempty"` + PreviewType *ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE `protobuf:"varint,10,opt,name=previewType,enum=proto.ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE" 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"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExtendedTextMessage) Reset() { *m = ExtendedTextMessage{} } +func (m *ExtendedTextMessage) String() string { return proto.CompactTextString(m) } +func (*ExtendedTextMessage) ProtoMessage() {} +func (*ExtendedTextMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{17} +} + +func (m *ExtendedTextMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExtendedTextMessage.Unmarshal(m, b) +} +func (m *ExtendedTextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExtendedTextMessage.Marshal(b, m, deterministic) +} +func (m *ExtendedTextMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtendedTextMessage.Merge(m, src) +} +func (m *ExtendedTextMessage) XXX_Size() int { + return xxx_messageInfo_ExtendedTextMessage.Size(m) +} +func (m *ExtendedTextMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ExtendedTextMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtendedTextMessage proto.InternalMessageInfo + +func (m *ExtendedTextMessage) GetText() string { + if m != nil && m.Text != nil { + return *m.Text + } + return "" +} + +func (m *ExtendedTextMessage) GetMatchedText() string { + if m != nil && m.MatchedText != nil { + return *m.MatchedText + } + return "" +} + +func (m *ExtendedTextMessage) GetCanonicalUrl() string { + if m != nil && m.CanonicalUrl != nil { + return *m.CanonicalUrl + } + return "" +} + +func (m *ExtendedTextMessage) GetDescription() string { + if m != nil && m.Description != nil { + return *m.Description + } + return "" +} + +func (m *ExtendedTextMessage) GetTitle() string { + if m != nil && m.Title != nil { + return *m.Title + } + return "" +} + +func (m *ExtendedTextMessage) GetTextArgb() uint32 { + if m != nil && m.TextArgb != nil { + return *m.TextArgb + } + return 0 +} + +func (m *ExtendedTextMessage) GetBackgroundArgb() uint32 { + if m != nil && m.BackgroundArgb != nil { + return *m.BackgroundArgb + } + return 0 +} + +func (m *ExtendedTextMessage) GetFont() ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE { + if m != nil && m.Font != nil { + return *m.Font + } + return ExtendedTextMessage_SANS_SERIF +} + +func (m *ExtendedTextMessage) GetPreviewType() ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE { + if m != nil && m.PreviewType != nil { + return *m.PreviewType + } + return ExtendedTextMessage_NONE +} + +func (m *ExtendedTextMessage) GetJpegThumbnail() []byte { + if m != nil { + return m.JpegThumbnail + } + return nil +} + +func (m *ExtendedTextMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +type DocumentMessage struct { + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` + FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"` + PageCount *uint32 `protobuf:"varint,6,opt,name=pageCount" json:"pageCount,omitempty"` + MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"` + FileName *string `protobuf:"bytes,8,opt,name=fileName" json:"fileName,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + DirectPath *string `protobuf:"bytes,10,opt,name=directPath" json:"directPath,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,11,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"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentMessage) Reset() { *m = DocumentMessage{} } +func (m *DocumentMessage) String() string { return proto.CompactTextString(m) } +func (*DocumentMessage) ProtoMessage() {} +func (*DocumentMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{18} +} + +func (m *DocumentMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentMessage.Unmarshal(m, b) +} +func (m *DocumentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentMessage.Marshal(b, m, deterministic) +} +func (m *DocumentMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentMessage.Merge(m, src) +} +func (m *DocumentMessage) XXX_Size() int { + return xxx_messageInfo_DocumentMessage.Size(m) +} +func (m *DocumentMessage) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentMessage proto.InternalMessageInfo + +func (m *DocumentMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *DocumentMessage) GetMimetype() string { + if m != nil && m.Mimetype != nil { + return *m.Mimetype + } + return "" +} + +func (m *DocumentMessage) GetTitle() string { + if m != nil && m.Title != nil { + return *m.Title + } + return "" +} + +func (m *DocumentMessage) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 + } + return nil +} + +func (m *DocumentMessage) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength + } + return 0 +} + +func (m *DocumentMessage) GetPageCount() uint32 { + if m != nil && m.PageCount != nil { + return *m.PageCount + } + return 0 +} + +func (m *DocumentMessage) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil +} + +func (m *DocumentMessage) GetFileName() string { + if m != nil && m.FileName != nil { + return *m.FileName + } + return "" +} + +func (m *DocumentMessage) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil +} + +func (m *DocumentMessage) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath + } + return "" +} + +func (m *DocumentMessage) GetMediaKeyTimestamp() int64 { + if m != nil && m.MediaKeyTimestamp != nil { + return *m.MediaKeyTimestamp + } + return 0 +} + +func (m *DocumentMessage) GetJpegThumbnail() []byte { + if m != nil { + return m.JpegThumbnail + } + return nil +} + +func (m *DocumentMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +type AudioMessage struct { + 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"` + Ptt *bool `protobuf:"varint,6,opt,name=ptt" json:"ptt,omitempty"` + MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,8,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + DirectPath *string `protobuf:"bytes,9,opt,name=directPath" json:"directPath,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + StreamingSidecar []byte `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AudioMessage) Reset() { *m = AudioMessage{} } +func (m *AudioMessage) String() string { return proto.CompactTextString(m) } +func (*AudioMessage) ProtoMessage() {} +func (*AudioMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{19} +} + +func (m *AudioMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AudioMessage.Unmarshal(m, b) +} +func (m *AudioMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AudioMessage.Marshal(b, m, deterministic) +} +func (m *AudioMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_AudioMessage.Merge(m, src) +} +func (m *AudioMessage) XXX_Size() int { + return xxx_messageInfo_AudioMessage.Size(m) +} +func (m *AudioMessage) XXX_DiscardUnknown() { + xxx_messageInfo_AudioMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_AudioMessage proto.InternalMessageInfo + +func (m *AudioMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *AudioMessage) GetMimetype() string { + if m != nil && m.Mimetype != nil { + return *m.Mimetype + } + return "" +} + +func (m *AudioMessage) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 + } + return nil +} + +func (m *AudioMessage) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength + } + return 0 +} + +func (m *AudioMessage) GetSeconds() uint32 { + if m != nil && m.Seconds != nil { + return *m.Seconds + } + return 0 +} + +func (m *AudioMessage) GetPtt() bool { + if m != nil && m.Ptt != nil { + return *m.Ptt + } + return false +} + +func (m *AudioMessage) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil +} + +func (m *AudioMessage) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil +} + +func (m *AudioMessage) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath + } + return "" +} + +func (m *AudioMessage) GetMediaKeyTimestamp() int64 { + if m != nil && m.MediaKeyTimestamp != nil { + return *m.MediaKeyTimestamp + } + return 0 +} + +func (m *AudioMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +func (m *AudioMessage) GetStreamingSidecar() []byte { + if m != nil { + return m.StreamingSidecar + } + return nil +} + +type VideoMessage struct { + 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_VIDEO_MESSAGE_ATTRIBUTION `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_VIDEO_MESSAGE_ATTRIBUTION" json:"gifAttribution,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VideoMessage) Reset() { *m = VideoMessage{} } +func (m *VideoMessage) String() string { return proto.CompactTextString(m) } +func (*VideoMessage) ProtoMessage() {} +func (*VideoMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{20} +} + +func (m *VideoMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VideoMessage.Unmarshal(m, b) +} +func (m *VideoMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VideoMessage.Marshal(b, m, deterministic) +} +func (m *VideoMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_VideoMessage.Merge(m, src) +} +func (m *VideoMessage) XXX_Size() int { + return xxx_messageInfo_VideoMessage.Size(m) +} +func (m *VideoMessage) XXX_DiscardUnknown() { + xxx_messageInfo_VideoMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_VideoMessage proto.InternalMessageInfo + +func (m *VideoMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *VideoMessage) GetMimetype() string { + if m != nil && m.Mimetype != nil { + return *m.Mimetype + } + return "" +} + +func (m *VideoMessage) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 + } + return nil +} + +func (m *VideoMessage) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength + } + return 0 +} + +func (m *VideoMessage) GetSeconds() uint32 { + if m != nil && m.Seconds != nil { + return *m.Seconds + } + return 0 +} + +func (m *VideoMessage) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil +} + +func (m *VideoMessage) GetCaption() string { + if m != nil && m.Caption != nil { + return *m.Caption + } + return "" +} + +func (m *VideoMessage) GetGifPlayback() bool { + if m != nil && m.GifPlayback != nil { + return *m.GifPlayback + } + return false +} + +func (m *VideoMessage) GetHeight() uint32 { + if m != nil && m.Height != nil { + return *m.Height + } + return 0 +} + +func (m *VideoMessage) GetWidth() uint32 { + if m != nil && m.Width != nil { + return *m.Width + } + return 0 +} + +func (m *VideoMessage) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil +} + +func (m *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { + if m != nil { + return m.InteractiveAnnotations + } + return nil +} + +func (m *VideoMessage) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath + } + return "" +} + +func (m *VideoMessage) GetMediaKeyTimestamp() int64 { + if m != nil && m.MediaKeyTimestamp != nil { + return *m.MediaKeyTimestamp + } + return 0 +} + +func (m *VideoMessage) GetJpegThumbnail() []byte { + if m != nil { + return m.JpegThumbnail + } + return nil +} + +func (m *VideoMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +func (m *VideoMessage) GetStreamingSidecar() []byte { + if m != nil { + return m.StreamingSidecar + } + return nil +} + +func (m *VideoMessage) GetGifAttribution() VideoMessage_VIDEO_MESSAGE_ATTRIBUTION { + if m != nil && m.GifAttribution != nil { + return *m.GifAttribution + } + return VideoMessage_NONE +} + +type Call struct { + CallKey []byte `protobuf:"bytes,1,opt,name=callKey" json:"callKey,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Call) Reset() { *m = Call{} } +func (m *Call) String() string { return proto.CompactTextString(m) } +func (*Call) ProtoMessage() {} +func (*Call) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{21} +} + +func (m *Call) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Call.Unmarshal(m, b) +} +func (m *Call) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Call.Marshal(b, m, deterministic) +} +func (m *Call) XXX_Merge(src proto.Message) { + xxx_messageInfo_Call.Merge(m, src) +} +func (m *Call) XXX_Size() int { + return xxx_messageInfo_Call.Size(m) +} +func (m *Call) XXX_DiscardUnknown() { + xxx_messageInfo_Call.DiscardUnknown(m) +} + +var xxx_messageInfo_Call proto.InternalMessageInfo + +func (m *Call) GetCallKey() []byte { + if m != nil { + return m.CallKey + } + return nil +} + +type Chat struct { + DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Chat) Reset() { *m = Chat{} } +func (m *Chat) String() string { return proto.CompactTextString(m) } +func (*Chat) ProtoMessage() {} +func (*Chat) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{22} +} + +func (m *Chat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Chat.Unmarshal(m, b) +} +func (m *Chat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Chat.Marshal(b, m, deterministic) +} +func (m *Chat) XXX_Merge(src proto.Message) { + xxx_messageInfo_Chat.Merge(m, src) +} +func (m *Chat) XXX_Size() int { + return xxx_messageInfo_Chat.Size(m) +} +func (m *Chat) XXX_DiscardUnknown() { + xxx_messageInfo_Chat.DiscardUnknown(m) +} + +var xxx_messageInfo_Chat proto.InternalMessageInfo + +func (m *Chat) GetDisplayName() string { + if m != nil && m.DisplayName != nil { + return *m.DisplayName + } + return "" +} + +func (m *Chat) GetId() string { + if m != nil && m.Id != nil { + return *m.Id + } + return "" +} + +type ProtocolMessage struct { + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + Type *ProtocolMessage_PROTOCOL_MESSAGE_TYPE `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_PROTOCOL_MESSAGE_TYPE" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProtocolMessage) Reset() { *m = ProtocolMessage{} } +func (m *ProtocolMessage) String() string { return proto.CompactTextString(m) } +func (*ProtocolMessage) ProtoMessage() {} +func (*ProtocolMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{23} +} + +func (m *ProtocolMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProtocolMessage.Unmarshal(m, b) +} +func (m *ProtocolMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProtocolMessage.Marshal(b, m, deterministic) +} +func (m *ProtocolMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProtocolMessage.Merge(m, src) +} +func (m *ProtocolMessage) XXX_Size() int { + return xxx_messageInfo_ProtocolMessage.Size(m) +} +func (m *ProtocolMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ProtocolMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ProtocolMessage proto.InternalMessageInfo + +func (m *ProtocolMessage) GetKey() *MessageKey { + if m != nil { + return m.Key + } + return nil +} + +func (m *ProtocolMessage) GetType() ProtocolMessage_PROTOCOL_MESSAGE_TYPE { + if m != nil && m.Type != nil { + return *m.Type + } + return ProtocolMessage_REVOKE +} + +type ContactsArrayMessage struct { + DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` + Contacts []*ContactMessage `protobuf:"bytes,2,rep,name=contacts" json:"contacts,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContactsArrayMessage) Reset() { *m = ContactsArrayMessage{} } +func (m *ContactsArrayMessage) String() string { return proto.CompactTextString(m) } +func (*ContactsArrayMessage) ProtoMessage() {} +func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{24} +} + +func (m *ContactsArrayMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContactsArrayMessage.Unmarshal(m, b) +} +func (m *ContactsArrayMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContactsArrayMessage.Marshal(b, m, deterministic) +} +func (m *ContactsArrayMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContactsArrayMessage.Merge(m, src) +} +func (m *ContactsArrayMessage) XXX_Size() int { + return xxx_messageInfo_ContactsArrayMessage.Size(m) +} +func (m *ContactsArrayMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ContactsArrayMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_ContactsArrayMessage proto.InternalMessageInfo + +func (m *ContactsArrayMessage) GetDisplayName() string { + if m != nil && m.DisplayName != nil { + return *m.DisplayName + } + return "" +} + +func (m *ContactsArrayMessage) GetContacts() []*ContactMessage { + if m != nil { + return m.Contacts + } + return nil +} + +func (m *ContactsArrayMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil +} + +type HSMCurrency struct { + CurrencyCode *string `protobuf:"bytes,1,opt,name=currencyCode" json:"currencyCode,omitempty"` + Amount1000 *int64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HSMCurrency) Reset() { *m = HSMCurrency{} } +func (m *HSMCurrency) String() string { return proto.CompactTextString(m) } +func (*HSMCurrency) ProtoMessage() {} +func (*HSMCurrency) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{25} +} + +func (m *HSMCurrency) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HSMCurrency.Unmarshal(m, b) +} +func (m *HSMCurrency) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HSMCurrency.Marshal(b, m, deterministic) +} +func (m *HSMCurrency) XXX_Merge(src proto.Message) { + xxx_messageInfo_HSMCurrency.Merge(m, src) +} +func (m *HSMCurrency) XXX_Size() int { + return xxx_messageInfo_HSMCurrency.Size(m) +} +func (m *HSMCurrency) XXX_DiscardUnknown() { + xxx_messageInfo_HSMCurrency.DiscardUnknown(m) +} + +var xxx_messageInfo_HSMCurrency proto.InternalMessageInfo + +func (m *HSMCurrency) GetCurrencyCode() string { + if m != nil && m.CurrencyCode != nil { + return *m.CurrencyCode + } + return "" +} + +func (m *HSMCurrency) GetAmount1000() int64 { + if m != nil && m.Amount1000 != nil { + return *m.Amount1000 + } + return 0 +} + +type HSMDateTimeComponent struct { + DayOfWeek *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE `protobuf:"varint,1,opt,name=dayOfWeek,enum=proto.HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE" json:"dayOfWeek,omitempty"` + Year *uint32 `protobuf:"varint,2,opt,name=year" json:"year,omitempty"` + Month *uint32 `protobuf:"varint,3,opt,name=month" json:"month,omitempty"` + DayOfMonth *uint32 `protobuf:"varint,4,opt,name=dayOfMonth" json:"dayOfMonth,omitempty"` + Hour *uint32 `protobuf:"varint,5,opt,name=hour" json:"hour,omitempty"` + Minute *uint32 `protobuf:"varint,6,opt,name=minute" json:"minute,omitempty"` + Calendar *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE `protobuf:"varint,7,opt,name=calendar,enum=proto.HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE" json:"calendar,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HSMDateTimeComponent) Reset() { *m = HSMDateTimeComponent{} } +func (m *HSMDateTimeComponent) String() string { return proto.CompactTextString(m) } +func (*HSMDateTimeComponent) ProtoMessage() {} +func (*HSMDateTimeComponent) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{26} +} + +func (m *HSMDateTimeComponent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HSMDateTimeComponent.Unmarshal(m, b) +} +func (m *HSMDateTimeComponent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HSMDateTimeComponent.Marshal(b, m, deterministic) +} +func (m *HSMDateTimeComponent) XXX_Merge(src proto.Message) { + xxx_messageInfo_HSMDateTimeComponent.Merge(m, src) +} +func (m *HSMDateTimeComponent) XXX_Size() int { + return xxx_messageInfo_HSMDateTimeComponent.Size(m) +} +func (m *HSMDateTimeComponent) XXX_DiscardUnknown() { + xxx_messageInfo_HSMDateTimeComponent.DiscardUnknown(m) +} + +var xxx_messageInfo_HSMDateTimeComponent proto.InternalMessageInfo + +func (m *HSMDateTimeComponent) GetDayOfWeek() HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE { + if m != nil && m.DayOfWeek != nil { + return *m.DayOfWeek + } + return HSMDateTimeComponent_MONDAY +} + +func (m *HSMDateTimeComponent) GetYear() uint32 { + if m != nil && m.Year != nil { + return *m.Year + } + return 0 +} + +func (m *HSMDateTimeComponent) GetMonth() uint32 { + if m != nil && m.Month != nil { + return *m.Month + } + return 0 +} + +func (m *HSMDateTimeComponent) GetDayOfMonth() uint32 { + if m != nil && m.DayOfMonth != nil { + return *m.DayOfMonth + } + return 0 +} + +func (m *HSMDateTimeComponent) GetHour() uint32 { + if m != nil && m.Hour != nil { + return *m.Hour + } + return 0 +} + +func (m *HSMDateTimeComponent) GetMinute() uint32 { + if m != nil && m.Minute != nil { + return *m.Minute + } + return 0 +} + +func (m *HSMDateTimeComponent) GetCalendar() HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE { + if m != nil && m.Calendar != nil { + return *m.Calendar + } + return HSMDateTimeComponent_GREGORIAN +} + +type HSMDateTimeUnixEpoch struct { + Timestamp *int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HSMDateTimeUnixEpoch) Reset() { *m = HSMDateTimeUnixEpoch{} } +func (m *HSMDateTimeUnixEpoch) String() string { return proto.CompactTextString(m) } +func (*HSMDateTimeUnixEpoch) ProtoMessage() {} +func (*HSMDateTimeUnixEpoch) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{27} +} + +func (m *HSMDateTimeUnixEpoch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HSMDateTimeUnixEpoch.Unmarshal(m, b) +} +func (m *HSMDateTimeUnixEpoch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HSMDateTimeUnixEpoch.Marshal(b, m, deterministic) +} +func (m *HSMDateTimeUnixEpoch) XXX_Merge(src proto.Message) { + xxx_messageInfo_HSMDateTimeUnixEpoch.Merge(m, src) +} +func (m *HSMDateTimeUnixEpoch) XXX_Size() int { + return xxx_messageInfo_HSMDateTimeUnixEpoch.Size(m) +} +func (m *HSMDateTimeUnixEpoch) XXX_DiscardUnknown() { + xxx_messageInfo_HSMDateTimeUnixEpoch.DiscardUnknown(m) +} + +var xxx_messageInfo_HSMDateTimeUnixEpoch proto.InternalMessageInfo + +func (m *HSMDateTimeUnixEpoch) GetTimestamp() int64 { + if m != nil && m.Timestamp != nil { + return *m.Timestamp + } + return 0 +} + +type HSMDateTime struct { + // Types that are valid to be assigned to DatetimeOneof: + // *HSMDateTime_Component + // *HSMDateTime_UnixEpoch + DatetimeOneof isHSMDateTime_DatetimeOneof `protobuf_oneof:"datetimeOneof"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HSMDateTime) Reset() { *m = HSMDateTime{} } +func (m *HSMDateTime) String() string { return proto.CompactTextString(m) } +func (*HSMDateTime) ProtoMessage() {} +func (*HSMDateTime) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{28} +} + +func (m *HSMDateTime) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HSMDateTime.Unmarshal(m, b) +} +func (m *HSMDateTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HSMDateTime.Marshal(b, m, deterministic) +} +func (m *HSMDateTime) XXX_Merge(src proto.Message) { + xxx_messageInfo_HSMDateTime.Merge(m, src) +} +func (m *HSMDateTime) XXX_Size() int { + return xxx_messageInfo_HSMDateTime.Size(m) +} +func (m *HSMDateTime) XXX_DiscardUnknown() { + xxx_messageInfo_HSMDateTime.DiscardUnknown(m) +} + +var xxx_messageInfo_HSMDateTime proto.InternalMessageInfo + +type isHSMDateTime_DatetimeOneof interface { + isHSMDateTime_DatetimeOneof() +} + +type HSMDateTime_Component struct { + Component *HSMDateTimeComponent `protobuf:"bytes,1,opt,name=component,oneof"` +} + +type HSMDateTime_UnixEpoch struct { + UnixEpoch *HSMDateTimeUnixEpoch `protobuf:"bytes,2,opt,name=unixEpoch,oneof"` +} + +func (*HSMDateTime_Component) isHSMDateTime_DatetimeOneof() {} + +func (*HSMDateTime_UnixEpoch) isHSMDateTime_DatetimeOneof() {} + +func (m *HSMDateTime) GetDatetimeOneof() isHSMDateTime_DatetimeOneof { + if m != nil { + return m.DatetimeOneof + } + return nil +} + +func (m *HSMDateTime) GetComponent() *HSMDateTimeComponent { + if x, ok := m.GetDatetimeOneof().(*HSMDateTime_Component); ok { + return x.Component + } + return nil +} + +func (m *HSMDateTime) GetUnixEpoch() *HSMDateTimeUnixEpoch { + if x, ok := m.GetDatetimeOneof().(*HSMDateTime_UnixEpoch); ok { + return x.UnixEpoch + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HSMDateTime) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HSMDateTime_Component)(nil), + (*HSMDateTime_UnixEpoch)(nil), + } +} + +type HSMLocalizableParameter struct { + Default *string `protobuf:"bytes,1,opt,name=default" json:"default,omitempty"` + // Types that are valid to be assigned to ParamOneof: + // *HSMLocalizableParameter_Currency + // *HSMLocalizableParameter_DateTime + ParamOneof isHSMLocalizableParameter_ParamOneof `protobuf_oneof:"paramOneof"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HSMLocalizableParameter) Reset() { *m = HSMLocalizableParameter{} } +func (m *HSMLocalizableParameter) String() string { return proto.CompactTextString(m) } +func (*HSMLocalizableParameter) ProtoMessage() {} +func (*HSMLocalizableParameter) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{29} } -func (m *AudioMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AudioMessage.Unmarshal(m, b) + +func (m *HSMLocalizableParameter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HSMLocalizableParameter.Unmarshal(m, b) } -func (m *AudioMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AudioMessage.Marshal(b, m, deterministic) +func (m *HSMLocalizableParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HSMLocalizableParameter.Marshal(b, m, deterministic) } -func (dst *AudioMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_AudioMessage.Merge(dst, src) +func (m *HSMLocalizableParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_HSMLocalizableParameter.Merge(m, src) } -func (m *AudioMessage) XXX_Size() int { - return xxx_messageInfo_AudioMessage.Size(m) +func (m *HSMLocalizableParameter) XXX_Size() int { + return xxx_messageInfo_HSMLocalizableParameter.Size(m) } -func (m *AudioMessage) XXX_DiscardUnknown() { - xxx_messageInfo_AudioMessage.DiscardUnknown(m) +func (m *HSMLocalizableParameter) XXX_DiscardUnknown() { + xxx_messageInfo_HSMLocalizableParameter.DiscardUnknown(m) } -var xxx_messageInfo_AudioMessage proto.InternalMessageInfo +var xxx_messageInfo_HSMLocalizableParameter proto.InternalMessageInfo -func (m *AudioMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (m *HSMLocalizableParameter) GetDefault() string { + if m != nil && m.Default != nil { + return *m.Default } return "" } -func (m *AudioMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype - } - return "" +type isHSMLocalizableParameter_ParamOneof interface { + isHSMLocalizableParameter_ParamOneof() } -func (m *AudioMessage) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 - } - return nil +type HSMLocalizableParameter_Currency struct { + Currency *HSMCurrency `protobuf:"bytes,2,opt,name=currency,oneof"` } -func (m *AudioMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength - } - return 0 +type HSMLocalizableParameter_DateTime struct { + DateTime *HSMDateTime `protobuf:"bytes,3,opt,name=dateTime,oneof"` } -func (m *AudioMessage) GetSeconds() uint32 { - if m != nil && m.Seconds != nil { - return *m.Seconds - } - return 0 -} +func (*HSMLocalizableParameter_Currency) isHSMLocalizableParameter_ParamOneof() {} -func (m *AudioMessage) GetPtt() bool { - if m != nil && m.Ptt != nil { - return *m.Ptt - } - return false -} +func (*HSMLocalizableParameter_DateTime) isHSMLocalizableParameter_ParamOneof() {} -func (m *AudioMessage) GetMediaKey() []byte { +func (m *HSMLocalizableParameter) GetParamOneof() isHSMLocalizableParameter_ParamOneof { if m != nil { - return m.MediaKey + return m.ParamOneof } return nil } -func (m *AudioMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +func (m *HSMLocalizableParameter) GetCurrency() *HSMCurrency { + if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_Currency); ok { + return x.Currency } return nil } -func (m *AudioMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" -} - -func (m *AudioMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (m *HSMLocalizableParameter) GetDateTime() *HSMDateTime { + if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_DateTime); ok { + return x.DateTime } return nil } -func (m *AudioMessage) GetStreamingSidecar() []byte { - if m != nil { - return m.StreamingSidecar +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HSMLocalizableParameter) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HSMLocalizableParameter_Currency)(nil), + (*HSMLocalizableParameter_DateTime)(nil), } - return nil } -type VideoMessage struct { - 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"` - 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_ATTRIBUTION `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_ATTRIBUTION" json:"gifAttribution,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type HighlyStructuredMessage struct { + Namespace *string `protobuf:"bytes,1,opt,name=namespace" json:"namespace,omitempty"` + ElementName *string `protobuf:"bytes,2,opt,name=elementName" json:"elementName,omitempty"` + Params []string `protobuf:"bytes,3,rep,name=params" json:"params,omitempty"` + FallbackLg *string `protobuf:"bytes,4,opt,name=fallbackLg" json:"fallbackLg,omitempty"` + FallbackLc *string `protobuf:"bytes,5,opt,name=fallbackLc" json:"fallbackLc,omitempty"` + LocalizableParams []*HSMLocalizableParameter `protobuf:"bytes,6,rep,name=localizableParams" json:"localizableParams,omitempty"` + DeterministicLg *string `protobuf:"bytes,7,opt,name=deterministicLg" json:"deterministicLg,omitempty"` + DeterministicLc *string `protobuf:"bytes,8,opt,name=deterministicLc" json:"deterministicLc,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *VideoMessage) Reset() { *m = VideoMessage{} } -func (m *VideoMessage) String() string { return proto.CompactTextString(m) } -func (*VideoMessage) ProtoMessage() {} -func (*VideoMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{10} +func (m *HighlyStructuredMessage) Reset() { *m = HighlyStructuredMessage{} } +func (m *HighlyStructuredMessage) String() string { return proto.CompactTextString(m) } +func (*HighlyStructuredMessage) ProtoMessage() {} +func (*HighlyStructuredMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{30} } -func (m *VideoMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VideoMessage.Unmarshal(m, b) + +func (m *HighlyStructuredMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HighlyStructuredMessage.Unmarshal(m, b) } -func (m *VideoMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VideoMessage.Marshal(b, m, deterministic) +func (m *HighlyStructuredMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HighlyStructuredMessage.Marshal(b, m, deterministic) } -func (dst *VideoMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_VideoMessage.Merge(dst, src) +func (m *HighlyStructuredMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_HighlyStructuredMessage.Merge(m, src) } -func (m *VideoMessage) XXX_Size() int { - return xxx_messageInfo_VideoMessage.Size(m) +func (m *HighlyStructuredMessage) XXX_Size() int { + return xxx_messageInfo_HighlyStructuredMessage.Size(m) } -func (m *VideoMessage) XXX_DiscardUnknown() { - xxx_messageInfo_VideoMessage.DiscardUnknown(m) +func (m *HighlyStructuredMessage) XXX_DiscardUnknown() { + xxx_messageInfo_HighlyStructuredMessage.DiscardUnknown(m) } -var xxx_messageInfo_VideoMessage proto.InternalMessageInfo +var xxx_messageInfo_HighlyStructuredMessage proto.InternalMessageInfo -func (m *VideoMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (m *HighlyStructuredMessage) GetNamespace() string { + if m != nil && m.Namespace != nil { + return *m.Namespace } return "" } -func (m *VideoMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype +func (m *HighlyStructuredMessage) GetElementName() string { + if m != nil && m.ElementName != nil { + return *m.ElementName } return "" } -func (m *VideoMessage) GetFileSha256() []byte { +func (m *HighlyStructuredMessage) GetParams() []string { if m != nil { - return m.FileSha256 + return m.Params } return nil } -func (m *VideoMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (m *HighlyStructuredMessage) GetFallbackLg() string { + if m != nil && m.FallbackLg != nil { + return *m.FallbackLg } - return 0 + return "" } -func (m *VideoMessage) GetSeconds() uint32 { - if m != nil && m.Seconds != nil { - return *m.Seconds +func (m *HighlyStructuredMessage) GetFallbackLc() string { + if m != nil && m.FallbackLc != nil { + return *m.FallbackLc } - return 0 + return "" } -func (m *VideoMessage) GetMediaKey() []byte { +func (m *HighlyStructuredMessage) GetLocalizableParams() []*HSMLocalizableParameter { if m != nil { - return m.MediaKey + return m.LocalizableParams } return nil } -func (m *VideoMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (m *HighlyStructuredMessage) GetDeterministicLg() string { + if m != nil && m.DeterministicLg != nil { + return *m.DeterministicLg } return "" } -func (m *VideoMessage) GetGifPlayback() bool { - if m != nil && m.GifPlayback != nil { - return *m.GifPlayback +func (m *HighlyStructuredMessage) GetDeterministicLc() string { + if m != nil && m.DeterministicLc != nil { + return *m.DeterministicLc } - return false + return "" } -func (m *VideoMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height - } - return 0 +type SendPaymentMessage struct { + NoteMessage *Message `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"` + RequestMessageKey *MessageKey `protobuf:"bytes,3,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *VideoMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width +func (m *SendPaymentMessage) Reset() { *m = SendPaymentMessage{} } +func (m *SendPaymentMessage) String() string { return proto.CompactTextString(m) } +func (*SendPaymentMessage) ProtoMessage() {} +func (*SendPaymentMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{31} +} + +func (m *SendPaymentMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendPaymentMessage.Unmarshal(m, b) +} +func (m *SendPaymentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendPaymentMessage.Marshal(b, m, deterministic) +} +func (m *SendPaymentMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendPaymentMessage.Merge(m, src) +} +func (m *SendPaymentMessage) XXX_Size() int { + return xxx_messageInfo_SendPaymentMessage.Size(m) +} +func (m *SendPaymentMessage) XXX_DiscardUnknown() { + xxx_messageInfo_SendPaymentMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_SendPaymentMessage proto.InternalMessageInfo + +func (m *SendPaymentMessage) GetNoteMessage() *Message { + if m != nil { + return m.NoteMessage } - return 0 + return nil } -func (m *VideoMessage) GetFileEncSha256() []byte { +func (m *SendPaymentMessage) GetRequestMessageKey() *MessageKey { if m != nil { - return m.FileEncSha256 + return m.RequestMessageKey } return nil } -func (m *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { +type RequestPaymentMessage struct { + 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"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestPaymentMessage) Reset() { *m = RequestPaymentMessage{} } +func (m *RequestPaymentMessage) String() string { return proto.CompactTextString(m) } +func (*RequestPaymentMessage) ProtoMessage() {} +func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{32} +} + +func (m *RequestPaymentMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestPaymentMessage.Unmarshal(m, b) +} +func (m *RequestPaymentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestPaymentMessage.Marshal(b, m, deterministic) +} +func (m *RequestPaymentMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestPaymentMessage.Merge(m, src) +} +func (m *RequestPaymentMessage) XXX_Size() int { + return xxx_messageInfo_RequestPaymentMessage.Size(m) +} +func (m *RequestPaymentMessage) XXX_DiscardUnknown() { + xxx_messageInfo_RequestPaymentMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestPaymentMessage proto.InternalMessageInfo + +func (m *RequestPaymentMessage) GetNoteMessage() *Message { if m != nil { - return m.InteractiveAnnotations + return m.NoteMessage } return nil } -func (m *VideoMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath +func (m *RequestPaymentMessage) GetCurrencyCodeIso4217() string { + if m != nil && m.CurrencyCodeIso4217 != nil { + return *m.CurrencyCodeIso4217 } return "" } -func (m *VideoMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (m *RequestPaymentMessage) GetAmount1000() uint64 { + if m != nil && m.Amount1000 != nil { + return *m.Amount1000 } - return nil + return 0 } -func (m *VideoMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (m *RequestPaymentMessage) GetRequestFrom() string { + if m != nil && m.RequestFrom != nil { + return *m.RequestFrom } - return nil + return "" } -func (m *VideoMessage) GetStreamingSidecar() []byte { - if m != nil { - return m.StreamingSidecar +func (m *RequestPaymentMessage) GetExpiryTimestamp() int64 { + if m != nil && m.ExpiryTimestamp != nil { + return *m.ExpiryTimestamp } - return nil + return 0 } -func (m *VideoMessage) GetGifAttribution() VideoMessage_ATTRIBUTION { - if m != nil && m.GifAttribution != nil { - return *m.GifAttribution - } - return VideoMessage_NONE +type DeclinePaymentRequestMessage struct { + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -type Call struct { - CallKey []byte `protobuf:"bytes,1,opt,name=callKey" json:"callKey,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *DeclinePaymentRequestMessage) Reset() { *m = DeclinePaymentRequestMessage{} } +func (m *DeclinePaymentRequestMessage) String() string { return proto.CompactTextString(m) } +func (*DeclinePaymentRequestMessage) ProtoMessage() {} +func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{33} } -func (m *Call) Reset() { *m = Call{} } -func (m *Call) String() string { return proto.CompactTextString(m) } -func (*Call) ProtoMessage() {} -func (*Call) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{11} +func (m *DeclinePaymentRequestMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeclinePaymentRequestMessage.Unmarshal(m, b) } -func (m *Call) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Call.Unmarshal(m, b) -} -func (m *Call) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Call.Marshal(b, m, deterministic) +func (m *DeclinePaymentRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeclinePaymentRequestMessage.Marshal(b, m, deterministic) } -func (dst *Call) XXX_Merge(src proto.Message) { - xxx_messageInfo_Call.Merge(dst, src) +func (m *DeclinePaymentRequestMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeclinePaymentRequestMessage.Merge(m, src) } -func (m *Call) XXX_Size() int { - return xxx_messageInfo_Call.Size(m) +func (m *DeclinePaymentRequestMessage) XXX_Size() int { + return xxx_messageInfo_DeclinePaymentRequestMessage.Size(m) } -func (m *Call) XXX_DiscardUnknown() { - xxx_messageInfo_Call.DiscardUnknown(m) +func (m *DeclinePaymentRequestMessage) XXX_DiscardUnknown() { + xxx_messageInfo_DeclinePaymentRequestMessage.DiscardUnknown(m) } -var xxx_messageInfo_Call proto.InternalMessageInfo +var xxx_messageInfo_DeclinePaymentRequestMessage proto.InternalMessageInfo -func (m *Call) GetCallKey() []byte { +func (m *DeclinePaymentRequestMessage) GetKey() *MessageKey { if m != nil { - return m.CallKey + return m.Key } return nil } -type Chat struct { - DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` - Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type CancelPaymentRequestMessage struct { + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Chat) Reset() { *m = Chat{} } -func (m *Chat) String() string { return proto.CompactTextString(m) } -func (*Chat) ProtoMessage() {} -func (*Chat) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{12} +func (m *CancelPaymentRequestMessage) Reset() { *m = CancelPaymentRequestMessage{} } +func (m *CancelPaymentRequestMessage) String() string { return proto.CompactTextString(m) } +func (*CancelPaymentRequestMessage) ProtoMessage() {} +func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{34} } -func (m *Chat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Chat.Unmarshal(m, b) + +func (m *CancelPaymentRequestMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelPaymentRequestMessage.Unmarshal(m, b) } -func (m *Chat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Chat.Marshal(b, m, deterministic) +func (m *CancelPaymentRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelPaymentRequestMessage.Marshal(b, m, deterministic) } -func (dst *Chat) XXX_Merge(src proto.Message) { - xxx_messageInfo_Chat.Merge(dst, src) +func (m *CancelPaymentRequestMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelPaymentRequestMessage.Merge(m, src) } -func (m *Chat) XXX_Size() int { - return xxx_messageInfo_Chat.Size(m) +func (m *CancelPaymentRequestMessage) XXX_Size() int { + return xxx_messageInfo_CancelPaymentRequestMessage.Size(m) } -func (m *Chat) XXX_DiscardUnknown() { - xxx_messageInfo_Chat.DiscardUnknown(m) +func (m *CancelPaymentRequestMessage) XXX_DiscardUnknown() { + xxx_messageInfo_CancelPaymentRequestMessage.DiscardUnknown(m) } -var xxx_messageInfo_Chat proto.InternalMessageInfo +var xxx_messageInfo_CancelPaymentRequestMessage proto.InternalMessageInfo -func (m *Chat) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +func (m *CancelPaymentRequestMessage) GetKey() *MessageKey { + if m != nil { + return m.Key } - return "" + return nil } -func (m *Chat) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" +type LiveLocationMessage struct { + DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` + DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` + AccuracyInMeters *uint32 `protobuf:"varint,3,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"` + SpeedInMps *float32 `protobuf:"fixed32,4,opt,name=speedInMps" json:"speedInMps,omitempty"` + DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,5,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"` + Caption *string `protobuf:"bytes,6,opt,name=caption" json:"caption,omitempty"` + SequenceNumber *int64 `protobuf:"varint,7,opt,name=sequenceNumber" json:"sequenceNumber,omitempty"` + TimeOffset *uint32 `protobuf:"varint,8,opt,name=timeOffset" json:"timeOffset,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -type ProtocolMessage struct { - Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - Type *ProtocolMessage_TYPE `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_TYPE" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *LiveLocationMessage) Reset() { *m = LiveLocationMessage{} } +func (m *LiveLocationMessage) String() string { return proto.CompactTextString(m) } +func (*LiveLocationMessage) ProtoMessage() {} +func (*LiveLocationMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{35} } -func (m *ProtocolMessage) Reset() { *m = ProtocolMessage{} } -func (m *ProtocolMessage) String() string { return proto.CompactTextString(m) } -func (*ProtocolMessage) ProtoMessage() {} -func (*ProtocolMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{13} -} -func (m *ProtocolMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProtocolMessage.Unmarshal(m, b) +func (m *LiveLocationMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LiveLocationMessage.Unmarshal(m, b) } -func (m *ProtocolMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProtocolMessage.Marshal(b, m, deterministic) +func (m *LiveLocationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LiveLocationMessage.Marshal(b, m, deterministic) } -func (dst *ProtocolMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProtocolMessage.Merge(dst, src) +func (m *LiveLocationMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_LiveLocationMessage.Merge(m, src) } -func (m *ProtocolMessage) XXX_Size() int { - return xxx_messageInfo_ProtocolMessage.Size(m) +func (m *LiveLocationMessage) XXX_Size() int { + return xxx_messageInfo_LiveLocationMessage.Size(m) } -func (m *ProtocolMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ProtocolMessage.DiscardUnknown(m) +func (m *LiveLocationMessage) XXX_DiscardUnknown() { + xxx_messageInfo_LiveLocationMessage.DiscardUnknown(m) } -var xxx_messageInfo_ProtocolMessage proto.InternalMessageInfo +var xxx_messageInfo_LiveLocationMessage proto.InternalMessageInfo -func (m *ProtocolMessage) GetKey() *MessageKey { - if m != nil { - return m.Key +func (m *LiveLocationMessage) GetDegreesLatitude() float64 { + if m != nil && m.DegreesLatitude != nil { + return *m.DegreesLatitude } - return nil + return 0 } -func (m *ProtocolMessage) GetType() ProtocolMessage_TYPE { - if m != nil && m.Type != nil { - return *m.Type +func (m *LiveLocationMessage) GetDegreesLongitude() float64 { + if m != nil && m.DegreesLongitude != nil { + return *m.DegreesLongitude } - return ProtocolMessage_REVOKE + return 0 } -type ContactsArrayMessage struct { - DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` - Contacts []*ContactMessage `protobuf:"bytes,2,rep,name=contacts" json:"contacts,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *LiveLocationMessage) GetAccuracyInMeters() uint32 { + if m != nil && m.AccuracyInMeters != nil { + return *m.AccuracyInMeters + } + return 0 } -func (m *ContactsArrayMessage) Reset() { *m = ContactsArrayMessage{} } -func (m *ContactsArrayMessage) String() string { return proto.CompactTextString(m) } -func (*ContactsArrayMessage) ProtoMessage() {} -func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{14} -} -func (m *ContactsArrayMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContactsArrayMessage.Unmarshal(m, b) -} -func (m *ContactsArrayMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContactsArrayMessage.Marshal(b, m, deterministic) -} -func (dst *ContactsArrayMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContactsArrayMessage.Merge(dst, src) +func (m *LiveLocationMessage) GetSpeedInMps() float32 { + if m != nil && m.SpeedInMps != nil { + return *m.SpeedInMps + } + return 0 } -func (m *ContactsArrayMessage) XXX_Size() int { - return xxx_messageInfo_ContactsArrayMessage.Size(m) + +func (m *LiveLocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { + if m != nil && m.DegreesClockwiseFromMagneticNorth != nil { + return *m.DegreesClockwiseFromMagneticNorth + } + return 0 } -func (m *ContactsArrayMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ContactsArrayMessage.DiscardUnknown(m) + +func (m *LiveLocationMessage) GetCaption() string { + if m != nil && m.Caption != nil { + return *m.Caption + } + return "" } -var xxx_messageInfo_ContactsArrayMessage proto.InternalMessageInfo +func (m *LiveLocationMessage) GetSequenceNumber() int64 { + if m != nil && m.SequenceNumber != nil { + return *m.SequenceNumber + } + return 0 +} -func (m *ContactsArrayMessage) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +func (m *LiveLocationMessage) GetTimeOffset() uint32 { + if m != nil && m.TimeOffset != nil { + return *m.TimeOffset } - return "" + return 0 } -func (m *ContactsArrayMessage) GetContacts() []*ContactMessage { +func (m *LiveLocationMessage) GetJpegThumbnail() []byte { if m != nil { - return m.Contacts + return m.JpegThumbnail } return nil } -func (m *ContactsArrayMessage) GetContextInfo() *ContextInfo { +func (m *LiveLocationMessage) GetContextInfo() *ContextInfo { if m != nil { return m.ContextInfo } return nil } -type HSMCurrency struct { - CurrencyCode *string `protobuf:"bytes,1,opt,name=currencyCode" json:"currencyCode,omitempty"` - Amount1000 *int64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type StickerMessage struct { + 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"` + PngThumbnail []byte `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *HSMCurrency) Reset() { *m = HSMCurrency{} } -func (m *HSMCurrency) String() string { return proto.CompactTextString(m) } -func (*HSMCurrency) ProtoMessage() {} -func (*HSMCurrency) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{15} -} -func (m *HSMCurrency) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMCurrency.Unmarshal(m, b) +func (m *StickerMessage) Reset() { *m = StickerMessage{} } +func (m *StickerMessage) String() string { return proto.CompactTextString(m) } +func (*StickerMessage) ProtoMessage() {} +func (*StickerMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{36} } -func (m *HSMCurrency) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMCurrency.Marshal(b, m, deterministic) + +func (m *StickerMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StickerMessage.Unmarshal(m, b) } -func (dst *HSMCurrency) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMCurrency.Merge(dst, src) +func (m *StickerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StickerMessage.Marshal(b, m, deterministic) } -func (m *HSMCurrency) XXX_Size() int { - return xxx_messageInfo_HSMCurrency.Size(m) +func (m *StickerMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_StickerMessage.Merge(m, src) } -func (m *HSMCurrency) XXX_DiscardUnknown() { - xxx_messageInfo_HSMCurrency.DiscardUnknown(m) +func (m *StickerMessage) XXX_Size() int { + return xxx_messageInfo_StickerMessage.Size(m) +} +func (m *StickerMessage) XXX_DiscardUnknown() { + xxx_messageInfo_StickerMessage.DiscardUnknown(m) } -var xxx_messageInfo_HSMCurrency proto.InternalMessageInfo +var xxx_messageInfo_StickerMessage proto.InternalMessageInfo -func (m *HSMCurrency) GetCurrencyCode() string { - if m != nil && m.CurrencyCode != nil { - return *m.CurrencyCode +func (m *StickerMessage) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url } return "" } -func (m *HSMCurrency) GetAmount1000() int64 { - if m != nil && m.Amount1000 != nil { - return *m.Amount1000 +func (m *StickerMessage) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 } - return 0 + return nil } -type HSMDateTimeComponent struct { - DayOfWeek *HSMDateTimeComponent_DAYOFWEEKTYPE `protobuf:"varint,1,opt,name=dayOfWeek,enum=proto.HSMDateTimeComponent_DAYOFWEEKTYPE" json:"dayOfWeek,omitempty"` - Year *uint32 `protobuf:"varint,2,opt,name=year" json:"year,omitempty"` - Month *uint32 `protobuf:"varint,3,opt,name=month" json:"month,omitempty"` - DayOfMonth *uint32 `protobuf:"varint,4,opt,name=dayOfMonth" json:"dayOfMonth,omitempty"` - Hour *uint32 `protobuf:"varint,5,opt,name=hour" json:"hour,omitempty"` - Minute *uint32 `protobuf:"varint,6,opt,name=minute" json:"minute,omitempty"` - Calendar *HSMDateTimeComponent_CALENDARTYPE `protobuf:"varint,7,opt,name=calendar,enum=proto.HSMDateTimeComponent_CALENDARTYPE" json:"calendar,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *StickerMessage) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil } -func (m *HSMDateTimeComponent) Reset() { *m = HSMDateTimeComponent{} } -func (m *HSMDateTimeComponent) String() string { return proto.CompactTextString(m) } -func (*HSMDateTimeComponent) ProtoMessage() {} -func (*HSMDateTimeComponent) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{16} -} -func (m *HSMDateTimeComponent) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMDateTimeComponent.Unmarshal(m, b) -} -func (m *HSMDateTimeComponent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMDateTimeComponent.Marshal(b, m, deterministic) -} -func (dst *HSMDateTimeComponent) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMDateTimeComponent.Merge(dst, src) -} -func (m *HSMDateTimeComponent) XXX_Size() int { - return xxx_messageInfo_HSMDateTimeComponent.Size(m) -} -func (m *HSMDateTimeComponent) XXX_DiscardUnknown() { - xxx_messageInfo_HSMDateTimeComponent.DiscardUnknown(m) +func (m *StickerMessage) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil } -var xxx_messageInfo_HSMDateTimeComponent proto.InternalMessageInfo - -func (m *HSMDateTimeComponent) GetDayOfWeek() HSMDateTimeComponent_DAYOFWEEKTYPE { - if m != nil && m.DayOfWeek != nil { - return *m.DayOfWeek +func (m *StickerMessage) GetMimetype() string { + if m != nil && m.Mimetype != nil { + return *m.Mimetype } - return HSMDateTimeComponent_MONDAY + return "" } -func (m *HSMDateTimeComponent) GetYear() uint32 { - if m != nil && m.Year != nil { - return *m.Year +func (m *StickerMessage) GetHeight() uint32 { + if m != nil && m.Height != nil { + return *m.Height } return 0 } -func (m *HSMDateTimeComponent) GetMonth() uint32 { - if m != nil && m.Month != nil { - return *m.Month +func (m *StickerMessage) GetWidth() uint32 { + if m != nil && m.Width != nil { + return *m.Width } return 0 } -func (m *HSMDateTimeComponent) GetDayOfMonth() uint32 { - if m != nil && m.DayOfMonth != nil { - return *m.DayOfMonth +func (m *StickerMessage) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath } - return 0 + return "" } -func (m *HSMDateTimeComponent) GetHour() uint32 { - if m != nil && m.Hour != nil { - return *m.Hour +func (m *StickerMessage) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength } return 0 } -func (m *HSMDateTimeComponent) GetMinute() uint32 { - if m != nil && m.Minute != nil { - return *m.Minute +func (m *StickerMessage) GetMediaKeyTimestamp() int64 { + if m != nil && m.MediaKeyTimestamp != nil { + return *m.MediaKeyTimestamp } return 0 } -func (m *HSMDateTimeComponent) GetCalendar() HSMDateTimeComponent_CALENDARTYPE { - if m != nil && m.Calendar != nil { - return *m.Calendar +func (m *StickerMessage) GetPngThumbnail() []byte { + if m != nil { + return m.PngThumbnail } - return HSMDateTimeComponent_GREGORIAN + return nil } -type HSMDateTimeUnixEpoch struct { - Timestamp *int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *StickerMessage) GetContextInfo() *ContextInfo { + if m != nil { + return m.ContextInfo + } + return nil } -func (m *HSMDateTimeUnixEpoch) Reset() { *m = HSMDateTimeUnixEpoch{} } -func (m *HSMDateTimeUnixEpoch) String() string { return proto.CompactTextString(m) } -func (*HSMDateTimeUnixEpoch) ProtoMessage() {} -func (*HSMDateTimeUnixEpoch) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{17} +type FourRowTemplate struct { + 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 valid to be assigned to Title: + // *FourRowTemplate_DocumentMessage + // *FourRowTemplate_HighlyStructuredMessage + // *FourRowTemplate_ImageMessage + // *FourRowTemplate_VideoMessage + // *FourRowTemplate_LocationMessage + Title isFourRowTemplate_Title `protobuf_oneof:"title"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *HSMDateTimeUnixEpoch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMDateTimeUnixEpoch.Unmarshal(m, b) + +func (m *FourRowTemplate) Reset() { *m = FourRowTemplate{} } +func (m *FourRowTemplate) String() string { return proto.CompactTextString(m) } +func (*FourRowTemplate) ProtoMessage() {} +func (*FourRowTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{37} } -func (m *HSMDateTimeUnixEpoch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMDateTimeUnixEpoch.Marshal(b, m, deterministic) + +func (m *FourRowTemplate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FourRowTemplate.Unmarshal(m, b) } -func (dst *HSMDateTimeUnixEpoch) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMDateTimeUnixEpoch.Merge(dst, src) +func (m *FourRowTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FourRowTemplate.Marshal(b, m, deterministic) } -func (m *HSMDateTimeUnixEpoch) XXX_Size() int { - return xxx_messageInfo_HSMDateTimeUnixEpoch.Size(m) +func (m *FourRowTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_FourRowTemplate.Merge(m, src) } -func (m *HSMDateTimeUnixEpoch) XXX_DiscardUnknown() { - xxx_messageInfo_HSMDateTimeUnixEpoch.DiscardUnknown(m) +func (m *FourRowTemplate) XXX_Size() int { + return xxx_messageInfo_FourRowTemplate.Size(m) +} +func (m *FourRowTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_FourRowTemplate.DiscardUnknown(m) } -var xxx_messageInfo_HSMDateTimeUnixEpoch proto.InternalMessageInfo +var xxx_messageInfo_FourRowTemplate proto.InternalMessageInfo -func (m *HSMDateTimeUnixEpoch) GetTimestamp() int64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp +func (m *FourRowTemplate) GetContent() *HighlyStructuredMessage { + if m != nil { + return m.Content } - return 0 + return nil } -type HSMDateTime struct { - // Types that are valid to be assigned to DatetimeOneof: - // *HSMDateTime_Component - // *HSMDateTime_UnixEpoch - DatetimeOneof isHSMDateTime_DatetimeOneof `protobuf_oneof:"datetimeOneof"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *FourRowTemplate) GetFooter() *HighlyStructuredMessage { + if m != nil { + return m.Footer + } + return nil } -func (m *HSMDateTime) Reset() { *m = HSMDateTime{} } -func (m *HSMDateTime) String() string { return proto.CompactTextString(m) } -func (*HSMDateTime) ProtoMessage() {} -func (*HSMDateTime) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{18} -} -func (m *HSMDateTime) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMDateTime.Unmarshal(m, b) +func (m *FourRowTemplate) GetButtons() []*TemplateButton { + if m != nil { + return m.Buttons + } + return nil } -func (m *HSMDateTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMDateTime.Marshal(b, m, deterministic) + +type isFourRowTemplate_Title interface { + isFourRowTemplate_Title() } -func (dst *HSMDateTime) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMDateTime.Merge(dst, src) + +type FourRowTemplate_DocumentMessage struct { + DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` } -func (m *HSMDateTime) XXX_Size() int { - return xxx_messageInfo_HSMDateTime.Size(m) + +type FourRowTemplate_HighlyStructuredMessage struct { + HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"` } -func (m *HSMDateTime) XXX_DiscardUnknown() { - xxx_messageInfo_HSMDateTime.DiscardUnknown(m) + +type FourRowTemplate_ImageMessage struct { + ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` } -var xxx_messageInfo_HSMDateTime proto.InternalMessageInfo +type FourRowTemplate_VideoMessage struct { + VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` +} -type isHSMDateTime_DatetimeOneof interface { - isHSMDateTime_DatetimeOneof() +type FourRowTemplate_LocationMessage struct { + LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` } -type HSMDateTime_Component struct { - Component *HSMDateTimeComponent `protobuf:"bytes,1,opt,name=component,oneof"` +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() {} + +func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title { + if m != nil { + return m.Title + } + return nil } -type HSMDateTime_UnixEpoch struct { - UnixEpoch *HSMDateTimeUnixEpoch `protobuf:"bytes,2,opt,name=unixEpoch,oneof"` + +func (m *FourRowTemplate) GetDocumentMessage() *DocumentMessage { + if x, ok := m.GetTitle().(*FourRowTemplate_DocumentMessage); ok { + return x.DocumentMessage + } + return nil } -func (*HSMDateTime_Component) isHSMDateTime_DatetimeOneof() {} -func (*HSMDateTime_UnixEpoch) isHSMDateTime_DatetimeOneof() {} +func (m *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage { + if x, ok := m.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok { + return x.HighlyStructuredMessage + } + return nil +} -func (m *HSMDateTime) GetDatetimeOneof() isHSMDateTime_DatetimeOneof { - if m != nil { - return m.DatetimeOneof +func (m *FourRowTemplate) GetImageMessage() *ImageMessage { + if x, ok := m.GetTitle().(*FourRowTemplate_ImageMessage); ok { + return x.ImageMessage } return nil } -func (m *HSMDateTime) GetComponent() *HSMDateTimeComponent { - if x, ok := m.GetDatetimeOneof().(*HSMDateTime_Component); ok { - return x.Component +func (m *FourRowTemplate) GetVideoMessage() *VideoMessage { + if x, ok := m.GetTitle().(*FourRowTemplate_VideoMessage); ok { + return x.VideoMessage } return nil } -func (m *HSMDateTime) GetUnixEpoch() *HSMDateTimeUnixEpoch { - if x, ok := m.GetDatetimeOneof().(*HSMDateTime_UnixEpoch); ok { - return x.UnixEpoch +func (m *FourRowTemplate) GetLocationMessage() *LocationMessage { + if x, ok := m.GetTitle().(*FourRowTemplate_LocationMessage); ok { + return x.LocationMessage } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*HSMDateTime) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _HSMDateTime_OneofMarshaler, _HSMDateTime_OneofUnmarshaler, _HSMDateTime_OneofSizer, []interface{}{ - (*HSMDateTime_Component)(nil), - (*HSMDateTime_UnixEpoch)(nil), +// XXX_OneofWrappers is for the internal use of the proto package. +func (*FourRowTemplate) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*FourRowTemplate_DocumentMessage)(nil), + (*FourRowTemplate_HighlyStructuredMessage)(nil), + (*FourRowTemplate_ImageMessage)(nil), + (*FourRowTemplate_VideoMessage)(nil), + (*FourRowTemplate_LocationMessage)(nil), } } -func _HSMDateTime_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*HSMDateTime) - // datetimeOneof - switch x := m.DatetimeOneof.(type) { - case *HSMDateTime_Component: - b.EncodeVarint(1<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Component); err != nil { - return err - } - case *HSMDateTime_UnixEpoch: - b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.UnixEpoch); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("HSMDateTime.DatetimeOneof has unexpected type %T", x) - } - return nil -} - -func _HSMDateTime_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*HSMDateTime) - switch tag { - case 1: // datetimeOneof.component - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(HSMDateTimeComponent) - err := b.DecodeMessage(msg) - m.DatetimeOneof = &HSMDateTime_Component{msg} - return true, err - case 2: // datetimeOneof.unixEpoch - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(HSMDateTimeUnixEpoch) - err := b.DecodeMessage(msg) - m.DatetimeOneof = &HSMDateTime_UnixEpoch{msg} - return true, err - default: - return false, nil - } -} - -func _HSMDateTime_OneofSizer(msg proto.Message) (n int) { - m := msg.(*HSMDateTime) - // datetimeOneof - switch x := m.DatetimeOneof.(type) { - case *HSMDateTime_Component: - s := proto.Size(x.Component) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *HSMDateTime_UnixEpoch: - s := proto.Size(x.UnixEpoch) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n +type HydratedFourRowTemplate struct { + 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,9,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"` + // Types that are valid to be assigned to Title: + // *HydratedFourRowTemplate_DocumentMessage + // *HydratedFourRowTemplate_HydratedTitleText + // *HydratedFourRowTemplate_ImageMessage + // *HydratedFourRowTemplate_VideoMessage + // *HydratedFourRowTemplate_LocationMessage + Title isHydratedFourRowTemplate_Title `protobuf_oneof:"title"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -type HSMLocalizableParameter struct { - Default *string `protobuf:"bytes,1,opt,name=default" json:"default,omitempty"` - // Types that are valid to be assigned to ParamOneof: - // *HSMLocalizableParameter_Currency - // *HSMLocalizableParameter_DateTime - ParamOneof isHSMLocalizableParameter_ParamOneof `protobuf_oneof:"paramOneof"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *HydratedFourRowTemplate) Reset() { *m = HydratedFourRowTemplate{} } +func (m *HydratedFourRowTemplate) String() string { return proto.CompactTextString(m) } +func (*HydratedFourRowTemplate) ProtoMessage() {} +func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{38} } -func (m *HSMLocalizableParameter) Reset() { *m = HSMLocalizableParameter{} } -func (m *HSMLocalizableParameter) String() string { return proto.CompactTextString(m) } -func (*HSMLocalizableParameter) ProtoMessage() {} -func (*HSMLocalizableParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{19} +func (m *HydratedFourRowTemplate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HydratedFourRowTemplate.Unmarshal(m, b) } -func (m *HSMLocalizableParameter) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMLocalizableParameter.Unmarshal(m, b) +func (m *HydratedFourRowTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HydratedFourRowTemplate.Marshal(b, m, deterministic) } -func (m *HSMLocalizableParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMLocalizableParameter.Marshal(b, m, deterministic) +func (m *HydratedFourRowTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_HydratedFourRowTemplate.Merge(m, src) } -func (dst *HSMLocalizableParameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMLocalizableParameter.Merge(dst, src) +func (m *HydratedFourRowTemplate) XXX_Size() int { + return xxx_messageInfo_HydratedFourRowTemplate.Size(m) } -func (m *HSMLocalizableParameter) XXX_Size() int { - return xxx_messageInfo_HSMLocalizableParameter.Size(m) +func (m *HydratedFourRowTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_HydratedFourRowTemplate.DiscardUnknown(m) } -func (m *HSMLocalizableParameter) XXX_DiscardUnknown() { - xxx_messageInfo_HSMLocalizableParameter.DiscardUnknown(m) + +var xxx_messageInfo_HydratedFourRowTemplate proto.InternalMessageInfo + +func (m *HydratedFourRowTemplate) GetHydratedContentText() string { + if m != nil && m.HydratedContentText != nil { + return *m.HydratedContentText + } + return "" } -var xxx_messageInfo_HSMLocalizableParameter proto.InternalMessageInfo +func (m *HydratedFourRowTemplate) GetHydratedFooterText() string { + if m != nil && m.HydratedFooterText != nil { + return *m.HydratedFooterText + } + return "" +} -type isHSMLocalizableParameter_ParamOneof interface { - isHSMLocalizableParameter_ParamOneof() +func (m *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton { + if m != nil { + return m.HydratedButtons + } + return nil } -type HSMLocalizableParameter_Currency struct { - Currency *HSMCurrency `protobuf:"bytes,2,opt,name=currency,oneof"` +type isHydratedFourRowTemplate_Title interface { + isHydratedFourRowTemplate_Title() } -type HSMLocalizableParameter_DateTime struct { - DateTime *HSMDateTime `protobuf:"bytes,3,opt,name=dateTime,oneof"` + +type HydratedFourRowTemplate_DocumentMessage struct { + DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` } -func (*HSMLocalizableParameter_Currency) isHSMLocalizableParameter_ParamOneof() {} -func (*HSMLocalizableParameter_DateTime) isHSMLocalizableParameter_ParamOneof() {} +type HydratedFourRowTemplate_HydratedTitleText struct { + HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"` +} -func (m *HSMLocalizableParameter) GetParamOneof() isHSMLocalizableParameter_ParamOneof { +type HydratedFourRowTemplate_ImageMessage struct { + ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` +} + +type HydratedFourRowTemplate_VideoMessage struct { + VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` +} + +type HydratedFourRowTemplate_LocationMessage struct { + LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` +} + +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() {} + +func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title { if m != nil { - return m.ParamOneof + return m.Title } return nil } -func (m *HSMLocalizableParameter) GetDefault() string { - if m != nil && m.Default != nil { - return *m.Default +func (m *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage { + if x, ok := m.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok { + return x.DocumentMessage + } + return nil +} + +func (m *HydratedFourRowTemplate) GetHydratedTitleText() string { + if x, ok := m.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok { + return x.HydratedTitleText } return "" } -func (m *HSMLocalizableParameter) GetCurrency() *HSMCurrency { - if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_Currency); ok { - return x.Currency +func (m *HydratedFourRowTemplate) GetImageMessage() *ImageMessage { + if x, ok := m.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok { + return x.ImageMessage } return nil } -func (m *HSMLocalizableParameter) GetDateTime() *HSMDateTime { - if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_DateTime); ok { - return x.DateTime +func (m *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage { + if x, ok := m.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok { + return x.VideoMessage } return nil } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*HSMLocalizableParameter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _HSMLocalizableParameter_OneofMarshaler, _HSMLocalizableParameter_OneofUnmarshaler, _HSMLocalizableParameter_OneofSizer, []interface{}{ - (*HSMLocalizableParameter_Currency)(nil), - (*HSMLocalizableParameter_DateTime)(nil), +func (m *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage { + if x, ok := m.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok { + return x.LocationMessage } + return nil } -func _HSMLocalizableParameter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*HSMLocalizableParameter) - // paramOneof - switch x := m.ParamOneof.(type) { - case *HSMLocalizableParameter_Currency: - b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Currency); err != nil { - return err - } - case *HSMLocalizableParameter_DateTime: - b.EncodeVarint(3<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.DateTime); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("HSMLocalizableParameter.ParamOneof has unexpected type %T", x) - } - return nil -} - -func _HSMLocalizableParameter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*HSMLocalizableParameter) - switch tag { - case 2: // paramOneof.currency - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(HSMCurrency) - err := b.DecodeMessage(msg) - m.ParamOneof = &HSMLocalizableParameter_Currency{msg} - return true, err - case 3: // paramOneof.dateTime - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(HSMDateTime) - err := b.DecodeMessage(msg) - m.ParamOneof = &HSMLocalizableParameter_DateTime{msg} - return true, err - default: - return false, nil - } -} - -func _HSMLocalizableParameter_OneofSizer(msg proto.Message) (n int) { - m := msg.(*HSMLocalizableParameter) - // paramOneof - switch x := m.ParamOneof.(type) { - case *HSMLocalizableParameter_Currency: - s := proto.Size(x.Currency) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case *HSMLocalizableParameter_DateTime: - s := proto.Size(x.DateTime) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n +// XXX_OneofWrappers is for the internal use of the proto package. +func (*HydratedFourRowTemplate) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*HydratedFourRowTemplate_DocumentMessage)(nil), + (*HydratedFourRowTemplate_HydratedTitleText)(nil), + (*HydratedFourRowTemplate_ImageMessage)(nil), + (*HydratedFourRowTemplate_VideoMessage)(nil), + (*HydratedFourRowTemplate_LocationMessage)(nil), + } } -type HighlyStructuredMessage struct { - Namespace *string `protobuf:"bytes,1,opt,name=namespace" json:"namespace,omitempty"` - ElementName *string `protobuf:"bytes,2,opt,name=elementName" json:"elementName,omitempty"` - Params []string `protobuf:"bytes,3,rep,name=params" json:"params,omitempty"` - FallbackLg *string `protobuf:"bytes,4,opt,name=fallbackLg" json:"fallbackLg,omitempty"` - FallbackLc *string `protobuf:"bytes,5,opt,name=fallbackLc" json:"fallbackLc,omitempty"` - LocalizableParams []*HSMLocalizableParameter `protobuf:"bytes,6,rep,name=localizableParams" json:"localizableParams,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type TemplateMessage struct { + // Types that are valid to be assigned to Format: + // *TemplateMessage_FourRowTemplate + // *TemplateMessage_HydratedFourRowTemplate + Format isTemplateMessage_Format `protobuf_oneof:"format"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *HighlyStructuredMessage) Reset() { *m = HighlyStructuredMessage{} } -func (m *HighlyStructuredMessage) String() string { return proto.CompactTextString(m) } -func (*HighlyStructuredMessage) ProtoMessage() {} -func (*HighlyStructuredMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{20} +func (m *TemplateMessage) Reset() { *m = TemplateMessage{} } +func (m *TemplateMessage) String() string { return proto.CompactTextString(m) } +func (*TemplateMessage) ProtoMessage() {} +func (*TemplateMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{39} } -func (m *HighlyStructuredMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HighlyStructuredMessage.Unmarshal(m, b) + +func (m *TemplateMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TemplateMessage.Unmarshal(m, b) } -func (m *HighlyStructuredMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HighlyStructuredMessage.Marshal(b, m, deterministic) +func (m *TemplateMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TemplateMessage.Marshal(b, m, deterministic) } -func (dst *HighlyStructuredMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_HighlyStructuredMessage.Merge(dst, src) +func (m *TemplateMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_TemplateMessage.Merge(m, src) } -func (m *HighlyStructuredMessage) XXX_Size() int { - return xxx_messageInfo_HighlyStructuredMessage.Size(m) +func (m *TemplateMessage) XXX_Size() int { + return xxx_messageInfo_TemplateMessage.Size(m) } -func (m *HighlyStructuredMessage) XXX_DiscardUnknown() { - xxx_messageInfo_HighlyStructuredMessage.DiscardUnknown(m) +func (m *TemplateMessage) XXX_DiscardUnknown() { + xxx_messageInfo_TemplateMessage.DiscardUnknown(m) } -var xxx_messageInfo_HighlyStructuredMessage proto.InternalMessageInfo +var xxx_messageInfo_TemplateMessage proto.InternalMessageInfo -func (m *HighlyStructuredMessage) GetNamespace() string { - if m != nil && m.Namespace != nil { - return *m.Namespace - } - return "" +type isTemplateMessage_Format interface { + isTemplateMessage_Format() } -func (m *HighlyStructuredMessage) GetElementName() string { - if m != nil && m.ElementName != nil { - return *m.ElementName - } - return "" +type TemplateMessage_FourRowTemplate struct { + FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"` } -func (m *HighlyStructuredMessage) GetParams() []string { - if m != nil { - return m.Params - } - return nil +type TemplateMessage_HydratedFourRowTemplate struct { + HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"` } -func (m *HighlyStructuredMessage) GetFallbackLg() string { - if m != nil && m.FallbackLg != nil { - return *m.FallbackLg - } - return "" -} +func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {} -func (m *HighlyStructuredMessage) GetFallbackLc() string { - if m != nil && m.FallbackLc != nil { - return *m.FallbackLc - } - return "" -} +func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {} -func (m *HighlyStructuredMessage) GetLocalizableParams() []*HSMLocalizableParameter { +func (m *TemplateMessage) GetFormat() isTemplateMessage_Format { if m != nil { - return m.LocalizableParams + return m.Format } return nil } -type SendPaymentMessage struct { - NoteMessage *Message `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *TemplateMessage) GetFourRowTemplate() *FourRowTemplate { + if x, ok := m.GetFormat().(*TemplateMessage_FourRowTemplate); ok { + return x.FourRowTemplate + } + return nil } -func (m *SendPaymentMessage) Reset() { *m = SendPaymentMessage{} } -func (m *SendPaymentMessage) String() string { return proto.CompactTextString(m) } -func (*SendPaymentMessage) ProtoMessage() {} -func (*SendPaymentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{21} -} -func (m *SendPaymentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendPaymentMessage.Unmarshal(m, b) -} -func (m *SendPaymentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendPaymentMessage.Marshal(b, m, deterministic) -} -func (dst *SendPaymentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendPaymentMessage.Merge(dst, src) -} -func (m *SendPaymentMessage) XXX_Size() int { - return xxx_messageInfo_SendPaymentMessage.Size(m) -} -func (m *SendPaymentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_SendPaymentMessage.DiscardUnknown(m) +func (m *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate { + if x, ok := m.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok { + return x.HydratedFourRowTemplate + } + return nil } -var xxx_messageInfo_SendPaymentMessage proto.InternalMessageInfo - -func (m *SendPaymentMessage) GetNoteMessage() *Message { - if m != nil { - return m.NoteMessage +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TemplateMessage) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TemplateMessage_FourRowTemplate)(nil), + (*TemplateMessage_HydratedFourRowTemplate)(nil), } - return nil } -type RequestPaymentMessage struct { - 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"` - NoteMessage *Message `protobuf:"bytes,4,opt,name=noteMessage" json:"noteMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type TemplateButtonReplyMessage struct { + SelectedButtonId *string `protobuf:"bytes,1,opt,name=selectedButtonId" json:"selectedButtonId,omitempty"` + SelectedButtonDisplayText []string `protobuf:"bytes,2,rep,name=selectedButtonDisplayText" json:"selectedButtonDisplayText,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RequestPaymentMessage) Reset() { *m = RequestPaymentMessage{} } -func (m *RequestPaymentMessage) String() string { return proto.CompactTextString(m) } -func (*RequestPaymentMessage) ProtoMessage() {} -func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{22} +func (m *TemplateButtonReplyMessage) Reset() { *m = TemplateButtonReplyMessage{} } +func (m *TemplateButtonReplyMessage) String() string { return proto.CompactTextString(m) } +func (*TemplateButtonReplyMessage) ProtoMessage() {} +func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{40} } -func (m *RequestPaymentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RequestPaymentMessage.Unmarshal(m, b) + +func (m *TemplateButtonReplyMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TemplateButtonReplyMessage.Unmarshal(m, b) } -func (m *RequestPaymentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RequestPaymentMessage.Marshal(b, m, deterministic) +func (m *TemplateButtonReplyMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TemplateButtonReplyMessage.Marshal(b, m, deterministic) } -func (dst *RequestPaymentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_RequestPaymentMessage.Merge(dst, src) +func (m *TemplateButtonReplyMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_TemplateButtonReplyMessage.Merge(m, src) } -func (m *RequestPaymentMessage) XXX_Size() int { - return xxx_messageInfo_RequestPaymentMessage.Size(m) +func (m *TemplateButtonReplyMessage) XXX_Size() int { + return xxx_messageInfo_TemplateButtonReplyMessage.Size(m) } -func (m *RequestPaymentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_RequestPaymentMessage.DiscardUnknown(m) +func (m *TemplateButtonReplyMessage) XXX_DiscardUnknown() { + xxx_messageInfo_TemplateButtonReplyMessage.DiscardUnknown(m) } -var xxx_messageInfo_RequestPaymentMessage proto.InternalMessageInfo +var xxx_messageInfo_TemplateButtonReplyMessage proto.InternalMessageInfo -func (m *RequestPaymentMessage) GetCurrencyCodeIso4217() string { - if m != nil && m.CurrencyCodeIso4217 != nil { - return *m.CurrencyCodeIso4217 +func (m *TemplateButtonReplyMessage) GetSelectedButtonId() string { + if m != nil && m.SelectedButtonId != nil { + return *m.SelectedButtonId } return "" } -func (m *RequestPaymentMessage) GetAmount1000() uint64 { - if m != nil && m.Amount1000 != nil { - return *m.Amount1000 - } - return 0 -} - -func (m *RequestPaymentMessage) GetRequestFrom() string { - if m != nil && m.RequestFrom != nil { - return *m.RequestFrom +func (m *TemplateButtonReplyMessage) GetSelectedButtonDisplayText() []string { + if m != nil { + return m.SelectedButtonDisplayText } - return "" + return nil } -func (m *RequestPaymentMessage) GetNoteMessage() *Message { +func (m *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo { if m != nil { - return m.NoteMessage + return m.ContextInfo } return nil } -type LiveLocationMessage struct { - DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` - DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` - AccuracyInMeters *uint32 `protobuf:"varint,3,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"` - SpeedInMps *float32 `protobuf:"fixed32,4,opt,name=speedInMps" json:"speedInMps,omitempty"` - DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,5,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"` - Caption *string `protobuf:"bytes,6,opt,name=caption" json:"caption,omitempty"` - SequenceNumber *int64 `protobuf:"varint,7,opt,name=sequenceNumber" json:"sequenceNumber,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type ProductSnapshot struct { + 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"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *LiveLocationMessage) Reset() { *m = LiveLocationMessage{} } -func (m *LiveLocationMessage) String() string { return proto.CompactTextString(m) } -func (*LiveLocationMessage) ProtoMessage() {} -func (*LiveLocationMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{23} +func (m *ProductSnapshot) Reset() { *m = ProductSnapshot{} } +func (m *ProductSnapshot) String() string { return proto.CompactTextString(m) } +func (*ProductSnapshot) ProtoMessage() {} +func (*ProductSnapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{41} } -func (m *LiveLocationMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LiveLocationMessage.Unmarshal(m, b) + +func (m *ProductSnapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductSnapshot.Unmarshal(m, b) } -func (m *LiveLocationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LiveLocationMessage.Marshal(b, m, deterministic) +func (m *ProductSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductSnapshot.Marshal(b, m, deterministic) } -func (dst *LiveLocationMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_LiveLocationMessage.Merge(dst, src) +func (m *ProductSnapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductSnapshot.Merge(m, src) } -func (m *LiveLocationMessage) XXX_Size() int { - return xxx_messageInfo_LiveLocationMessage.Size(m) +func (m *ProductSnapshot) XXX_Size() int { + return xxx_messageInfo_ProductSnapshot.Size(m) } -func (m *LiveLocationMessage) XXX_DiscardUnknown() { - xxx_messageInfo_LiveLocationMessage.DiscardUnknown(m) +func (m *ProductSnapshot) XXX_DiscardUnknown() { + xxx_messageInfo_ProductSnapshot.DiscardUnknown(m) } -var xxx_messageInfo_LiveLocationMessage proto.InternalMessageInfo - -func (m *LiveLocationMessage) GetDegreesLatitude() float64 { - if m != nil && m.DegreesLatitude != nil { - return *m.DegreesLatitude - } - return 0 -} +var xxx_messageInfo_ProductSnapshot proto.InternalMessageInfo -func (m *LiveLocationMessage) GetDegreesLongitude() float64 { - if m != nil && m.DegreesLongitude != nil { - return *m.DegreesLongitude +func (m *ProductSnapshot) GetProductImage() *ImageMessage { + if m != nil { + return m.ProductImage } - return 0 + return nil } -func (m *LiveLocationMessage) GetAccuracyInMeters() uint32 { - if m != nil && m.AccuracyInMeters != nil { - return *m.AccuracyInMeters +func (m *ProductSnapshot) GetProductId() string { + if m != nil && m.ProductId != nil { + return *m.ProductId } - return 0 + return "" } -func (m *LiveLocationMessage) GetSpeedInMps() float32 { - if m != nil && m.SpeedInMps != nil { - return *m.SpeedInMps +func (m *ProductSnapshot) GetTitle() string { + if m != nil && m.Title != nil { + return *m.Title } - return 0 + return "" } -func (m *LiveLocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { - if m != nil && m.DegreesClockwiseFromMagneticNorth != nil { - return *m.DegreesClockwiseFromMagneticNorth +func (m *ProductSnapshot) GetDescription() string { + if m != nil && m.Description != nil { + return *m.Description } - return 0 + return "" } -func (m *LiveLocationMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (m *ProductSnapshot) GetCurrencyCode() string { + if m != nil && m.CurrencyCode != nil { + return *m.CurrencyCode } return "" } -func (m *LiveLocationMessage) GetSequenceNumber() int64 { - if m != nil && m.SequenceNumber != nil { - return *m.SequenceNumber +func (m *ProductSnapshot) GetPriceAmount1000() int64 { + if m != nil && m.PriceAmount1000 != nil { + return *m.PriceAmount1000 } return 0 } -func (m *LiveLocationMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (m *ProductSnapshot) GetRetailerId() string { + if m != nil && m.RetailerId != nil { + return *m.RetailerId } - return nil + return "" } -func (m *LiveLocationMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (m *ProductSnapshot) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url } - return nil + return "" } -type StickerMessage struct { - 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"` - PngThumbnail []byte `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *ProductSnapshot) GetProductImageCount() uint32 { + if m != nil && m.ProductImageCount != nil { + return *m.ProductImageCount + } + return 0 } -func (m *StickerMessage) Reset() { *m = StickerMessage{} } -func (m *StickerMessage) String() string { return proto.CompactTextString(m) } -func (*StickerMessage) ProtoMessage() {} -func (*StickerMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{24} +type ProductMessage struct { + Product *ProductSnapshot `protobuf:"bytes,1,opt,name=product" json:"product,omitempty"` + BusinessOwnerJid *string `protobuf:"bytes,2,opt,name=businessOwnerJid" json:"businessOwnerJid,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *StickerMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StickerMessage.Unmarshal(m, b) + +func (m *ProductMessage) Reset() { *m = ProductMessage{} } +func (m *ProductMessage) String() string { return proto.CompactTextString(m) } +func (*ProductMessage) ProtoMessage() {} +func (*ProductMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{42} } -func (m *StickerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StickerMessage.Marshal(b, m, deterministic) + +func (m *ProductMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductMessage.Unmarshal(m, b) } -func (dst *StickerMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_StickerMessage.Merge(dst, src) +func (m *ProductMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductMessage.Marshal(b, m, deterministic) } -func (m *StickerMessage) XXX_Size() int { - return xxx_messageInfo_StickerMessage.Size(m) +func (m *ProductMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductMessage.Merge(m, src) } -func (m *StickerMessage) XXX_DiscardUnknown() { - xxx_messageInfo_StickerMessage.DiscardUnknown(m) +func (m *ProductMessage) XXX_Size() int { + return xxx_messageInfo_ProductMessage.Size(m) } - -var xxx_messageInfo_StickerMessage proto.InternalMessageInfo - -func (m *StickerMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" +func (m *ProductMessage) XXX_DiscardUnknown() { + xxx_messageInfo_ProductMessage.DiscardUnknown(m) } -func (m *StickerMessage) GetFileSha256() []byte { +var xxx_messageInfo_ProductMessage proto.InternalMessageInfo + +func (m *ProductMessage) GetProduct() *ProductSnapshot { if m != nil { - return m.FileSha256 + return m.Product } return nil } -func (m *StickerMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +func (m *ProductMessage) GetBusinessOwnerJid() string { + if m != nil && m.BusinessOwnerJid != nil { + return *m.BusinessOwnerJid } - return nil + return "" } -func (m *StickerMessage) GetMediaKey() []byte { +func (m *ProductMessage) GetContextInfo() *ContextInfo { if m != nil { - return m.MediaKey + return m.ContextInfo } return nil } -func (m *StickerMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype - } - return "" +type GroupInviteMessage struct { + GroupJid *string `protobuf:"bytes,1,opt,name=groupJid" json:"groupJid,omitempty"` + InviteCode *string `protobuf:"bytes,2,opt,name=inviteCode" json:"inviteCode,omitempty"` + InviteExpiration *int64 `protobuf:"varint,3,opt,name=inviteExpiration" json:"inviteExpiration,omitempty"` + GroupName *string `protobuf:"bytes,4,opt,name=groupName" json:"groupName,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,5,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + Caption *string `protobuf:"bytes,6,opt,name=caption" json:"caption,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *StickerMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height - } - return 0 +func (m *GroupInviteMessage) Reset() { *m = GroupInviteMessage{} } +func (m *GroupInviteMessage) String() string { return proto.CompactTextString(m) } +func (*GroupInviteMessage) ProtoMessage() {} +func (*GroupInviteMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{43} } -func (m *StickerMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width +func (m *GroupInviteMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInviteMessage.Unmarshal(m, b) +} +func (m *GroupInviteMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInviteMessage.Marshal(b, m, deterministic) +} +func (m *GroupInviteMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInviteMessage.Merge(m, src) +} +func (m *GroupInviteMessage) XXX_Size() int { + return xxx_messageInfo_GroupInviteMessage.Size(m) +} +func (m *GroupInviteMessage) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInviteMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInviteMessage proto.InternalMessageInfo + +func (m *GroupInviteMessage) GetGroupJid() string { + if m != nil && m.GroupJid != nil { + return *m.GroupJid } - return 0 + return "" } -func (m *StickerMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath +func (m *GroupInviteMessage) GetInviteCode() string { + if m != nil && m.InviteCode != nil { + return *m.InviteCode } return "" } -func (m *StickerMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (m *GroupInviteMessage) GetInviteExpiration() int64 { + if m != nil && m.InviteExpiration != nil { + return *m.InviteExpiration } return 0 } -func (m *StickerMessage) GetPngThumbnail() []byte { - if m != nil { - return m.PngThumbnail +func (m *GroupInviteMessage) GetGroupName() string { + if m != nil && m.GroupName != nil { + return *m.GroupName } - return nil + return "" } -func (m *StickerMessage) GetContextInfo() *ContextInfo { +func (m *GroupInviteMessage) GetJpegThumbnail() []byte { if m != nil { - return m.ContextInfo + return m.JpegThumbnail } return nil } +func (m *GroupInviteMessage) GetCaption() string { + if m != nil && m.Caption != nil { + return *m.Caption + } + return "" +} + type Message struct { Conversation *string `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` SenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=senderKeyDistributionMessage" json:"senderKeyDistributionMessage,omitempty"` @@ -2555,9 +4225,14 @@ type Message struct { 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"` - RequestPaymentMessage *RequestPaymentMessage `protobuf:"bytes,17,opt,name=requestPaymentMessage" json:"requestPaymentMessage,omitempty"` LiveLocationMessage *LiveLocationMessage `protobuf:"bytes,18,opt,name=liveLocationMessage" json:"liveLocationMessage,omitempty"` - StickerMessage *StickerMessage `protobuf:"bytes,20,opt,name=stickerMessage" json:"stickerMessage,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"` + ProductMessage *ProductMessage `protobuf:"bytes,27,opt,name=productMessage" json:"productMessage,omitempty"` + GroupInviteMessage *GroupInviteMessage `protobuf:"bytes,28,opt,name=groupInviteMessage" json:"groupInviteMessage,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2567,16 +4242,17 @@ func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{25} + return fileDescriptor_76fb0470a3b910d8, []int{44} } + func (m *Message) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Message.Unmarshal(m, b) } func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_Message.Marshal(b, m, deterministic) } -func (dst *Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_Message.Merge(dst, src) +func (m *Message) XXX_Merge(src proto.Message) { + xxx_messageInfo_Message.Merge(m, src) } func (m *Message) XXX_Size() int { return xxx_messageInfo_Message.Size(m) @@ -2699,6 +4375,13 @@ func (m *Message) GetSendPaymentMessage() *SendPaymentMessage { return nil } +func (m *Message) GetLiveLocationMessage() *LiveLocationMessage { + if m != nil { + return m.LiveLocationMessage + } + return nil +} + func (m *Message) GetRequestPaymentMessage() *RequestPaymentMessage { if m != nil { return m.RequestPaymentMessage @@ -2706,9 +4389,23 @@ func (m *Message) GetRequestPaymentMessage() *RequestPaymentMessage { return nil } -func (m *Message) GetLiveLocationMessage() *LiveLocationMessage { +func (m *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage { if m != nil { - return m.LiveLocationMessage + return m.DeclinePaymentRequestMessage + } + return nil +} + +func (m *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage { + if m != nil { + return m.CancelPaymentRequestMessage + } + return nil +} + +func (m *Message) GetTemplateMessage() *TemplateMessage { + if m != nil { + return m.TemplateMessage } return nil } @@ -2720,366 +4417,616 @@ func (m *Message) GetStickerMessage() *StickerMessage { return nil } -type ContextInfo struct { - StanzaId *string `protobuf:"bytes,1,opt,name=stanzaId" json:"stanzaId,omitempty"` - Participant *string `protobuf:"bytes,2,opt,name=participant" json:"participant,omitempty"` - QuotedMessage []*Message `protobuf:"bytes,3,rep,name=quotedMessage" json:"quotedMessage,omitempty"` - RemoteJid *string `protobuf:"bytes,4,opt,name=remoteJid" json:"remoteJid,omitempty"` - MentionedJid []string `protobuf:"bytes,15,rep,name=mentionedJid" json:"mentionedJid,omitempty"` - ConversionSource *string `protobuf:"bytes,18,opt,name=conversionSource" json:"conversionSource,omitempty"` - ConversionData []byte `protobuf:"bytes,19,opt,name=conversionData" json:"conversionData,omitempty"` - ConversionDelaySeconds *uint32 `protobuf:"varint,20,opt,name=conversionDelaySeconds" json:"conversionDelaySeconds,omitempty"` - IsForwarded *bool `protobuf:"varint,22,opt,name=isForwarded" json:"isForwarded,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *Message) GetProductMessage() *ProductMessage { + if m != nil { + return m.ProductMessage + } + return nil } -func (m *ContextInfo) Reset() { *m = ContextInfo{} } -func (m *ContextInfo) String() string { return proto.CompactTextString(m) } -func (*ContextInfo) ProtoMessage() {} -func (*ContextInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{26} +func (m *Message) GetGroupInviteMessage() *GroupInviteMessage { + if m != nil { + return m.GroupInviteMessage + } + return nil } -func (m *ContextInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContextInfo.Unmarshal(m, b) + +type MessageKey struct { + RemoteJid *string `protobuf:"bytes,1,opt,name=remoteJid" json:"remoteJid,omitempty"` + FromMe *bool `protobuf:"varint,2,opt,name=fromMe" json:"fromMe,omitempty"` + Id *string `protobuf:"bytes,3,opt,name=id" json:"id,omitempty"` + Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ContextInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContextInfo.Marshal(b, m, deterministic) + +func (m *MessageKey) Reset() { *m = MessageKey{} } +func (m *MessageKey) String() string { return proto.CompactTextString(m) } +func (*MessageKey) ProtoMessage() {} +func (*MessageKey) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{45} } -func (dst *ContextInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContextInfo.Merge(dst, src) + +func (m *MessageKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MessageKey.Unmarshal(m, b) } -func (m *ContextInfo) XXX_Size() int { - return xxx_messageInfo_ContextInfo.Size(m) +func (m *MessageKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MessageKey.Marshal(b, m, deterministic) } -func (m *ContextInfo) XXX_DiscardUnknown() { - xxx_messageInfo_ContextInfo.DiscardUnknown(m) +func (m *MessageKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_MessageKey.Merge(m, src) +} +func (m *MessageKey) XXX_Size() int { + return xxx_messageInfo_MessageKey.Size(m) +} +func (m *MessageKey) XXX_DiscardUnknown() { + xxx_messageInfo_MessageKey.DiscardUnknown(m) } -var xxx_messageInfo_ContextInfo proto.InternalMessageInfo +var xxx_messageInfo_MessageKey proto.InternalMessageInfo -func (m *ContextInfo) GetStanzaId() string { - if m != nil && m.StanzaId != nil { - return *m.StanzaId +func (m *MessageKey) GetRemoteJid() string { + if m != nil && m.RemoteJid != nil { + return *m.RemoteJid } return "" } -func (m *ContextInfo) GetParticipant() string { +func (m *MessageKey) GetFromMe() bool { + if m != nil && m.FromMe != nil { + return *m.FromMe + } + return false +} + +func (m *MessageKey) GetId() string { + if m != nil && m.Id != nil { + return *m.Id + } + return "" +} + +func (m *MessageKey) GetParticipant() string { if m != nil && m.Participant != nil { return *m.Participant } return "" } -func (m *ContextInfo) GetQuotedMessage() []*Message { - if m != nil { - return m.QuotedMessage +type WebFeatures struct { + LabelsDisplay *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,1,opt,name=labelsDisplay,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"labelsDisplay,omitempty"` + VoipIndividualOutgoing *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,2,opt,name=voipIndividualOutgoing,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"voipIndividualOutgoing,omitempty"` + GroupsV3 *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,3,opt,name=groupsV3,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"groupsV3,omitempty"` + GroupsV3Create *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,4,opt,name=groupsV3Create,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"groupsV3Create,omitempty"` + ChangeNumberV2 *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,5,opt,name=changeNumberV2,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"changeNumberV2,omitempty"` + QueryStatusV3Thumbnail *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,6,opt,name=queryStatusV3Thumbnail,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"queryStatusV3Thumbnail,omitempty"` + LiveLocations *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,7,opt,name=liveLocations,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"liveLocations,omitempty"` + QueryVname *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,8,opt,name=queryVname,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"queryVname,omitempty"` + VoipIndividualIncoming *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,9,opt,name=voipIndividualIncoming,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"voipIndividualIncoming,omitempty"` + QuickRepliesQuery *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,10,opt,name=quickRepliesQuery,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"quickRepliesQuery,omitempty"` + Payments *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,11,opt,name=payments,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"payments,omitempty"` + StickerPackQuery *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,12,opt,name=stickerPackQuery,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"stickerPackQuery,omitempty"` + LiveLocationsFinal *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,13,opt,name=liveLocationsFinal,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"liveLocationsFinal,omitempty"` + LabelsEdit *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,14,opt,name=labelsEdit,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"labelsEdit,omitempty"` + MediaUpload *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,15,opt,name=mediaUpload,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"mediaUpload,omitempty"` + MediaUploadRichQuickReplies *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,18,opt,name=mediaUploadRichQuickReplies,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"mediaUploadRichQuickReplies,omitempty"` + VnameV2 *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,19,opt,name=vnameV2,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"vnameV2,omitempty"` + VideoPlaybackUrl *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,20,opt,name=videoPlaybackUrl,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"videoPlaybackUrl,omitempty"` + StatusRanking *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,21,opt,name=statusRanking,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"statusRanking,omitempty"` + VoipIndividualVideo *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,22,opt,name=voipIndividualVideo,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"voipIndividualVideo,omitempty"` + ThirdPartyStickers *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,23,opt,name=thirdPartyStickers,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"thirdPartyStickers,omitempty"` + FrequentlyForwardedSetting *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,24,opt,name=frequentlyForwardedSetting,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"frequentlyForwardedSetting,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WebFeatures) Reset() { *m = WebFeatures{} } +func (m *WebFeatures) String() string { return proto.CompactTextString(m) } +func (*WebFeatures) ProtoMessage() {} +func (*WebFeatures) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{46} +} + +func (m *WebFeatures) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WebFeatures.Unmarshal(m, b) +} +func (m *WebFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WebFeatures.Marshal(b, m, deterministic) +} +func (m *WebFeatures) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebFeatures.Merge(m, src) +} +func (m *WebFeatures) XXX_Size() int { + return xxx_messageInfo_WebFeatures.Size(m) +} +func (m *WebFeatures) XXX_DiscardUnknown() { + xxx_messageInfo_WebFeatures.DiscardUnknown(m) +} + +var xxx_messageInfo_WebFeatures proto.InternalMessageInfo + +func (m *WebFeatures) GetLabelsDisplay() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.LabelsDisplay != nil { + return *m.LabelsDisplay } - return nil + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetRemoteJid() string { - if m != nil && m.RemoteJid != nil { - return *m.RemoteJid +func (m *WebFeatures) GetVoipIndividualOutgoing() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.VoipIndividualOutgoing != nil { + return *m.VoipIndividualOutgoing + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetGroupsV3() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.GroupsV3 != nil { + return *m.GroupsV3 + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetGroupsV3Create() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.GroupsV3Create != nil { + return *m.GroupsV3Create + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetChangeNumberV2() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.ChangeNumberV2 != nil { + return *m.ChangeNumberV2 + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetQueryStatusV3Thumbnail() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.QueryStatusV3Thumbnail != nil { + return *m.QueryStatusV3Thumbnail + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetLiveLocations() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.LiveLocations != nil { + return *m.LiveLocations + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetQueryVname() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.QueryVname != nil { + return *m.QueryVname + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetVoipIndividualIncoming() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.VoipIndividualIncoming != nil { + return *m.VoipIndividualIncoming + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetQuickRepliesQuery() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.QuickRepliesQuery != nil { + return *m.QuickRepliesQuery + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetPayments() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.Payments != nil { + return *m.Payments + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetStickerPackQuery() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.StickerPackQuery != nil { + return *m.StickerPackQuery + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetLiveLocationsFinal() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.LiveLocationsFinal != nil { + return *m.LiveLocationsFinal + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetLabelsEdit() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.LabelsEdit != nil { + return *m.LabelsEdit + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetMediaUpload() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.MediaUpload != nil { + return *m.MediaUpload + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetMediaUploadRichQuickReplies() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.MediaUploadRichQuickReplies != nil { + return *m.MediaUploadRichQuickReplies + } + return WebFeatures_NOT_IMPLEMENTED +} + +func (m *WebFeatures) GetVnameV2() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.VnameV2 != nil { + return *m.VnameV2 } - return "" + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetMentionedJid() []string { - if m != nil { - return m.MentionedJid +func (m *WebFeatures) GetVideoPlaybackUrl() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.VideoPlaybackUrl != nil { + return *m.VideoPlaybackUrl } - return nil + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetConversionSource() string { - if m != nil && m.ConversionSource != nil { - return *m.ConversionSource +func (m *WebFeatures) GetStatusRanking() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.StatusRanking != nil { + return *m.StatusRanking } - return "" + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetConversionData() []byte { - if m != nil { - return m.ConversionData +func (m *WebFeatures) GetVoipIndividualVideo() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.VoipIndividualVideo != nil { + return *m.VoipIndividualVideo } - return nil + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetConversionDelaySeconds() uint32 { - if m != nil && m.ConversionDelaySeconds != nil { - return *m.ConversionDelaySeconds +func (m *WebFeatures) GetThirdPartyStickers() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.ThirdPartyStickers != nil { + return *m.ThirdPartyStickers } - return 0 + return WebFeatures_NOT_IMPLEMENTED } -func (m *ContextInfo) GetIsForwarded() bool { - if m != nil && m.IsForwarded != nil { - return *m.IsForwarded +func (m *WebFeatures) GetFrequentlyForwardedSetting() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.FrequentlyForwardedSetting != nil { + return *m.FrequentlyForwardedSetting } - return false + return WebFeatures_NOT_IMPLEMENTED } -type InteractiveAnnotation struct { - PolygonVertices []*Point `protobuf:"bytes,1,rep,name=polygonVertices" json:"polygonVertices,omitempty"` - // Types that are valid to be assigned to Action: - // *InteractiveAnnotation_Location - Action isInteractiveAnnotation_Action `protobuf_oneof:"action"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type TabletNotificationsInfo struct { + Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` + UnreadChats *uint32 `protobuf:"varint,3,opt,name=unreadChats" json:"unreadChats,omitempty"` + NotifyMessageCount *uint32 `protobuf:"varint,4,opt,name=notifyMessageCount" json:"notifyMessageCount,omitempty"` + NotifyMessage []*NotificationMessageInfo `protobuf:"bytes,5,rep,name=notifyMessage" json:"notifyMessage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *InteractiveAnnotation) Reset() { *m = InteractiveAnnotation{} } -func (m *InteractiveAnnotation) String() string { return proto.CompactTextString(m) } -func (*InteractiveAnnotation) ProtoMessage() {} -func (*InteractiveAnnotation) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{27} +func (m *TabletNotificationsInfo) Reset() { *m = TabletNotificationsInfo{} } +func (m *TabletNotificationsInfo) String() string { return proto.CompactTextString(m) } +func (*TabletNotificationsInfo) ProtoMessage() {} +func (*TabletNotificationsInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{47} } -func (m *InteractiveAnnotation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InteractiveAnnotation.Unmarshal(m, b) + +func (m *TabletNotificationsInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TabletNotificationsInfo.Unmarshal(m, b) } -func (m *InteractiveAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InteractiveAnnotation.Marshal(b, m, deterministic) +func (m *TabletNotificationsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TabletNotificationsInfo.Marshal(b, m, deterministic) } -func (dst *InteractiveAnnotation) XXX_Merge(src proto.Message) { - xxx_messageInfo_InteractiveAnnotation.Merge(dst, src) +func (m *TabletNotificationsInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TabletNotificationsInfo.Merge(m, src) } -func (m *InteractiveAnnotation) XXX_Size() int { - return xxx_messageInfo_InteractiveAnnotation.Size(m) +func (m *TabletNotificationsInfo) XXX_Size() int { + return xxx_messageInfo_TabletNotificationsInfo.Size(m) } -func (m *InteractiveAnnotation) XXX_DiscardUnknown() { - xxx_messageInfo_InteractiveAnnotation.DiscardUnknown(m) +func (m *TabletNotificationsInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TabletNotificationsInfo.DiscardUnknown(m) } -var xxx_messageInfo_InteractiveAnnotation proto.InternalMessageInfo +var xxx_messageInfo_TabletNotificationsInfo proto.InternalMessageInfo -type isInteractiveAnnotation_Action interface { - isInteractiveAnnotation_Action() +func (m *TabletNotificationsInfo) GetTimestamp() uint64 { + if m != nil && m.Timestamp != nil { + return *m.Timestamp + } + return 0 } -type InteractiveAnnotation_Location struct { - Location *Location `protobuf:"bytes,2,opt,name=location,oneof"` +func (m *TabletNotificationsInfo) GetUnreadChats() uint32 { + if m != nil && m.UnreadChats != nil { + return *m.UnreadChats + } + return 0 } -func (*InteractiveAnnotation_Location) isInteractiveAnnotation_Action() {} - -func (m *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action { - if m != nil { - return m.Action +func (m *TabletNotificationsInfo) GetNotifyMessageCount() uint32 { + if m != nil && m.NotifyMessageCount != nil { + return *m.NotifyMessageCount } - return nil + return 0 } -func (m *InteractiveAnnotation) GetPolygonVertices() []*Point { +func (m *TabletNotificationsInfo) GetNotifyMessage() []*NotificationMessageInfo { if m != nil { - return m.PolygonVertices + return m.NotifyMessage } return nil } -func (m *InteractiveAnnotation) GetLocation() *Location { - if x, ok := m.GetAction().(*InteractiveAnnotation_Location); ok { - return x.Location - } - return nil +type NotificationMessageInfo struct { + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"` + Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -// XXX_OneofFuncs is for the internal use of the proto package. -func (*InteractiveAnnotation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _InteractiveAnnotation_OneofMarshaler, _InteractiveAnnotation_OneofUnmarshaler, _InteractiveAnnotation_OneofSizer, []interface{}{ - (*InteractiveAnnotation_Location)(nil), +func (m *NotificationMessageInfo) Reset() { *m = NotificationMessageInfo{} } +func (m *NotificationMessageInfo) String() string { return proto.CompactTextString(m) } +func (*NotificationMessageInfo) ProtoMessage() {} +func (*NotificationMessageInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{48} +} + +func (m *NotificationMessageInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NotificationMessageInfo.Unmarshal(m, b) +} +func (m *NotificationMessageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NotificationMessageInfo.Marshal(b, m, deterministic) +} +func (m *NotificationMessageInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotificationMessageInfo.Merge(m, src) +} +func (m *NotificationMessageInfo) XXX_Size() int { + return xxx_messageInfo_NotificationMessageInfo.Size(m) +} +func (m *NotificationMessageInfo) XXX_DiscardUnknown() { + xxx_messageInfo_NotificationMessageInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_NotificationMessageInfo proto.InternalMessageInfo + +func (m *NotificationMessageInfo) GetKey() *MessageKey { + if m != nil { + return m.Key } + return nil } -func _InteractiveAnnotation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*InteractiveAnnotation) - // action - switch x := m.Action.(type) { - case *InteractiveAnnotation_Location: - b.EncodeVarint(2<<3 | proto.WireBytes) - if err := b.EncodeMessage(x.Location); err != nil { - return err - } - case nil: - default: - return fmt.Errorf("InteractiveAnnotation.Action has unexpected type %T", x) +func (m *NotificationMessageInfo) GetMessage() *Message { + if m != nil { + return m.Message } return nil } -func _InteractiveAnnotation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*InteractiveAnnotation) - switch tag { - case 2: // action.location - if wire != proto.WireBytes { - return true, proto.ErrInternalBadWireType - } - msg := new(Location) - err := b.DecodeMessage(msg) - m.Action = &InteractiveAnnotation_Location{msg} - return true, err - default: - return false, nil +func (m *NotificationMessageInfo) GetMessageTimestamp() uint64 { + if m != nil && m.MessageTimestamp != nil { + return *m.MessageTimestamp } + return 0 } -func _InteractiveAnnotation_OneofSizer(msg proto.Message) (n int) { - m := msg.(*InteractiveAnnotation) - // action - switch x := m.Action.(type) { - case *InteractiveAnnotation_Location: - s := proto.Size(x.Location) - n += 1 // tag and wire - n += proto.SizeVarint(uint64(s)) - n += s - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) +func (m *NotificationMessageInfo) GetParticipant() string { + if m != nil && m.Participant != nil { + return *m.Participant } - return n + return "" } -type Point struct { - X *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"` - Y *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type WebNotificationsInfo struct { + Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` + UnreadChats *uint32 `protobuf:"varint,3,opt,name=unreadChats" json:"unreadChats,omitempty"` + NotifyMessageCount *uint32 `protobuf:"varint,4,opt,name=notifyMessageCount" json:"notifyMessageCount,omitempty"` + NotifyMessages []*WebMessageInfo `protobuf:"bytes,5,rep,name=notifyMessages" json:"notifyMessages,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Point) Reset() { *m = Point{} } -func (m *Point) String() string { return proto.CompactTextString(m) } -func (*Point) ProtoMessage() {} -func (*Point) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{28} +func (m *WebNotificationsInfo) Reset() { *m = WebNotificationsInfo{} } +func (m *WebNotificationsInfo) String() string { return proto.CompactTextString(m) } +func (*WebNotificationsInfo) ProtoMessage() {} +func (*WebNotificationsInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{49} } -func (m *Point) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Point.Unmarshal(m, b) + +func (m *WebNotificationsInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WebNotificationsInfo.Unmarshal(m, b) } -func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Point.Marshal(b, m, deterministic) +func (m *WebNotificationsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WebNotificationsInfo.Marshal(b, m, deterministic) } -func (dst *Point) XXX_Merge(src proto.Message) { - xxx_messageInfo_Point.Merge(dst, src) +func (m *WebNotificationsInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebNotificationsInfo.Merge(m, src) } -func (m *Point) XXX_Size() int { - return xxx_messageInfo_Point.Size(m) +func (m *WebNotificationsInfo) XXX_Size() int { + return xxx_messageInfo_WebNotificationsInfo.Size(m) } -func (m *Point) XXX_DiscardUnknown() { - xxx_messageInfo_Point.DiscardUnknown(m) +func (m *WebNotificationsInfo) XXX_DiscardUnknown() { + xxx_messageInfo_WebNotificationsInfo.DiscardUnknown(m) } -var xxx_messageInfo_Point proto.InternalMessageInfo +var xxx_messageInfo_WebNotificationsInfo proto.InternalMessageInfo -func (m *Point) GetX() float64 { - if m != nil && m.X != nil { - return *m.X +func (m *WebNotificationsInfo) GetTimestamp() uint64 { + if m != nil && m.Timestamp != nil { + return *m.Timestamp } return 0 } -func (m *Point) GetY() float64 { - if m != nil && m.Y != nil { - return *m.Y +func (m *WebNotificationsInfo) GetUnreadChats() uint32 { + if m != nil && m.UnreadChats != nil { + return *m.UnreadChats } return 0 } -type Location struct { - DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` - DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` - Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *WebNotificationsInfo) GetNotifyMessageCount() uint32 { + if m != nil && m.NotifyMessageCount != nil { + return *m.NotifyMessageCount + } + return 0 } -func (m *Location) Reset() { *m = Location{} } -func (m *Location) String() string { return proto.CompactTextString(m) } -func (*Location) ProtoMessage() {} -func (*Location) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{29} +func (m *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo { + if m != nil { + return m.NotifyMessages + } + return nil } -func (m *Location) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Location.Unmarshal(m, b) + +type PaymentInfo struct { + Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` + ReceiverJid *string `protobuf:"bytes,3,opt,name=receiverJid" json:"receiverJid,omitempty"` + Status *PaymentInfo_PAYMENT_INFO_STATUS `protobuf:"varint,4,opt,name=status,enum=proto.PaymentInfo_PAYMENT_INFO_STATUS" json:"status,omitempty"` + TransactionTimestamp *uint64 `protobuf:"varint,5,opt,name=transactionTimestamp" json:"transactionTimestamp,omitempty"` + RequestMessageKey *MessageKey `protobuf:"bytes,6,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"` + ExpiryTimestamp *uint64 `protobuf:"varint,7,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"` + Futureproofed *bool `protobuf:"varint,8,opt,name=futureproofed" json:"futureproofed,omitempty"` + Currency *string `protobuf:"bytes,9,opt,name=currency" json:"currency,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Location.Marshal(b, m, deterministic) + +func (m *PaymentInfo) Reset() { *m = PaymentInfo{} } +func (m *PaymentInfo) String() string { return proto.CompactTextString(m) } +func (*PaymentInfo) ProtoMessage() {} +func (*PaymentInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{50} } -func (dst *Location) XXX_Merge(src proto.Message) { - xxx_messageInfo_Location.Merge(dst, src) + +func (m *PaymentInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PaymentInfo.Unmarshal(m, b) } -func (m *Location) XXX_Size() int { - return xxx_messageInfo_Location.Size(m) +func (m *PaymentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PaymentInfo.Marshal(b, m, deterministic) } -func (m *Location) XXX_DiscardUnknown() { - xxx_messageInfo_Location.DiscardUnknown(m) +func (m *PaymentInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PaymentInfo.Merge(m, src) +} +func (m *PaymentInfo) XXX_Size() int { + return xxx_messageInfo_PaymentInfo.Size(m) +} +func (m *PaymentInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PaymentInfo.DiscardUnknown(m) } -var xxx_messageInfo_Location proto.InternalMessageInfo +var xxx_messageInfo_PaymentInfo proto.InternalMessageInfo -func (m *Location) GetDegreesLatitude() float64 { - if m != nil && m.DegreesLatitude != nil { - return *m.DegreesLatitude +func (m *PaymentInfo) GetAmount1000() uint64 { + if m != nil && m.Amount1000 != nil { + return *m.Amount1000 } return 0 } -func (m *Location) GetDegreesLongitude() float64 { - if m != nil && m.DegreesLongitude != nil { - return *m.DegreesLongitude +func (m *PaymentInfo) GetReceiverJid() string { + if m != nil && m.ReceiverJid != nil { + return *m.ReceiverJid + } + return "" +} + +func (m *PaymentInfo) GetStatus() PaymentInfo_PAYMENT_INFO_STATUS { + if m != nil && m.Status != nil { + return *m.Status + } + return PaymentInfo_UNKNOWN_STATUS +} + +func (m *PaymentInfo) GetTransactionTimestamp() uint64 { + if m != nil && m.TransactionTimestamp != nil { + return *m.TransactionTimestamp + } + return 0 +} + +func (m *PaymentInfo) GetRequestMessageKey() *MessageKey { + if m != nil { + return m.RequestMessageKey + } + return nil +} + +func (m *PaymentInfo) GetExpiryTimestamp() uint64 { + if m != nil && m.ExpiryTimestamp != nil { + return *m.ExpiryTimestamp } return 0 } -func (m *Location) GetName() string { - if m != nil && m.Name != nil { - return *m.Name +func (m *PaymentInfo) GetFutureproofed() bool { + if m != nil && m.Futureproofed != nil { + return *m.Futureproofed + } + return false +} + +func (m *PaymentInfo) GetCurrency() string { + if m != nil && m.Currency != nil { + return *m.Currency } return "" } type WebMessageInfo struct { - Key *MessageKey `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"` - Status *WebMessageInfo_STATUS `protobuf:"varint,4,opt,name=status,enum=proto.WebMessageInfo_STATUS,def=1" json:"status,omitempty"` - Participant *string `protobuf:"bytes,5,opt,name=participant" json:"participant,omitempty"` - Ignore *bool `protobuf:"varint,16,opt,name=ignore" json:"ignore,omitempty"` - Starred *bool `protobuf:"varint,17,opt,name=starred" json:"starred,omitempty"` - Broadcast *bool `protobuf:"varint,18,opt,name=broadcast" json:"broadcast,omitempty"` - PushName *string `protobuf:"bytes,19,opt,name=pushName" json:"pushName,omitempty"` - MediaCiphertextSha256 []byte `protobuf:"bytes,20,opt,name=mediaCiphertextSha256" json:"mediaCiphertextSha256,omitempty"` - Multicast *bool `protobuf:"varint,21,opt,name=multicast" json:"multicast,omitempty"` - UrlText *bool `protobuf:"varint,22,opt,name=urlText" json:"urlText,omitempty"` - UrlNumber *bool `protobuf:"varint,23,opt,name=urlNumber" json:"urlNumber,omitempty"` - MessageStubType *WebMessageInfo_STUBTYPE `protobuf:"varint,24,opt,name=messageStubType,enum=proto.WebMessageInfo_STUBTYPE" json:"messageStubType,omitempty"` - ClearMedia *bool `protobuf:"varint,25,opt,name=clearMedia" json:"clearMedia,omitempty"` - MessageStubParameters []string `protobuf:"bytes,26,rep,name=messageStubParameters" json:"messageStubParameters,omitempty"` - Duration *uint32 `protobuf:"varint,27,opt,name=duration" json:"duration,omitempty"` - Labels []string `protobuf:"bytes,28,rep,name=labels" json:"labels,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Key *MessageKey `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` + Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"` + Status *WebMessageInfo_WEB_MESSAGE_INFO_STATUS `protobuf:"varint,4,opt,name=status,enum=proto.WebMessageInfo_WEB_MESSAGE_INFO_STATUS" json:"status,omitempty"` + Participant *string `protobuf:"bytes,5,opt,name=participant" json:"participant,omitempty"` + Ignore *bool `protobuf:"varint,16,opt,name=ignore" json:"ignore,omitempty"` + Starred *bool `protobuf:"varint,17,opt,name=starred" json:"starred,omitempty"` + Broadcast *bool `protobuf:"varint,18,opt,name=broadcast" json:"broadcast,omitempty"` + PushName *string `protobuf:"bytes,19,opt,name=pushName" json:"pushName,omitempty"` + MediaCiphertextSha256 []byte `protobuf:"bytes,20,opt,name=mediaCiphertextSha256" json:"mediaCiphertextSha256,omitempty"` + Multicast *bool `protobuf:"varint,21,opt,name=multicast" json:"multicast,omitempty"` + UrlText *bool `protobuf:"varint,22,opt,name=urlText" json:"urlText,omitempty"` + UrlNumber *bool `protobuf:"varint,23,opt,name=urlNumber" json:"urlNumber,omitempty"` + MessageStubType *WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE `protobuf:"varint,24,opt,name=messageStubType,enum=proto.WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE" json:"messageStubType,omitempty"` + ClearMedia *bool `protobuf:"varint,25,opt,name=clearMedia" json:"clearMedia,omitempty"` + MessageStubParameters []string `protobuf:"bytes,26,rep,name=messageStubParameters" json:"messageStubParameters,omitempty"` + Duration *uint32 `protobuf:"varint,27,opt,name=duration" json:"duration,omitempty"` + Labels []string `protobuf:"bytes,28,rep,name=labels" json:"labels,omitempty"` + PaymentInfo *PaymentInfo `protobuf:"bytes,29,opt,name=paymentInfo" json:"paymentInfo,omitempty"` + FinalLiveLocation *LiveLocationMessage `protobuf:"bytes,30,opt,name=finalLiveLocation" json:"finalLiveLocation,omitempty"` + QuotedPaymentInfo *PaymentInfo `protobuf:"bytes,31,opt,name=quotedPaymentInfo" json:"quotedPaymentInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WebMessageInfo) Reset() { *m = WebMessageInfo{} } func (m *WebMessageInfo) String() string { return proto.CompactTextString(m) } func (*WebMessageInfo) ProtoMessage() {} func (*WebMessageInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{30} + return fileDescriptor_76fb0470a3b910d8, []int{51} } + func (m *WebMessageInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WebMessageInfo.Unmarshal(m, b) } func (m *WebMessageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_WebMessageInfo.Marshal(b, m, deterministic) } -func (dst *WebMessageInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_WebMessageInfo.Merge(dst, src) +func (m *WebMessageInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebMessageInfo.Merge(m, src) } func (m *WebMessageInfo) XXX_Size() int { return xxx_messageInfo_WebMessageInfo.Size(m) @@ -3090,8 +5037,6 @@ func (m *WebMessageInfo) XXX_DiscardUnknown() { var xxx_messageInfo_WebMessageInfo proto.InternalMessageInfo -const Default_WebMessageInfo_Status WebMessageInfo_STATUS = WebMessageInfo_PENDING - func (m *WebMessageInfo) GetKey() *MessageKey { if m != nil { return m.Key @@ -3113,11 +5058,11 @@ func (m *WebMessageInfo) GetMessageTimestamp() uint64 { return 0 } -func (m *WebMessageInfo) GetStatus() WebMessageInfo_STATUS { +func (m *WebMessageInfo) GetStatus() WebMessageInfo_WEB_MESSAGE_INFO_STATUS { if m != nil && m.Status != nil { return *m.Status } - return Default_WebMessageInfo_Status + return WebMessageInfo_ERROR } func (m *WebMessageInfo) GetParticipant() string { @@ -3183,7 +5128,7 @@ func (m *WebMessageInfo) GetUrlNumber() bool { return false } -func (m *WebMessageInfo) GetMessageStubType() WebMessageInfo_STUBTYPE { +func (m *WebMessageInfo) GetMessageStubType() WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE { if m != nil && m.MessageStubType != nil { return *m.MessageStubType } @@ -3218,306 +5163,52 @@ func (m *WebMessageInfo) GetLabels() []string { return nil } -type WebNotificationsInfo struct { - Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` - UnreadChats *uint32 `protobuf:"varint,3,opt,name=unreadChats" json:"unreadChats,omitempty"` - NotifyMessageCount *uint32 `protobuf:"varint,4,opt,name=notifyMessageCount" json:"notifyMessageCount,omitempty"` - NotifyMessages []*Message `protobuf:"bytes,5,rep,name=notifyMessages" json:"notifyMessages,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WebNotificationsInfo) Reset() { *m = WebNotificationsInfo{} } -func (m *WebNotificationsInfo) String() string { return proto.CompactTextString(m) } -func (*WebNotificationsInfo) ProtoMessage() {} -func (*WebNotificationsInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{31} -} -func (m *WebNotificationsInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WebNotificationsInfo.Unmarshal(m, b) -} -func (m *WebNotificationsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WebNotificationsInfo.Marshal(b, m, deterministic) -} -func (dst *WebNotificationsInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_WebNotificationsInfo.Merge(dst, src) -} -func (m *WebNotificationsInfo) XXX_Size() int { - return xxx_messageInfo_WebNotificationsInfo.Size(m) -} -func (m *WebNotificationsInfo) XXX_DiscardUnknown() { - xxx_messageInfo_WebNotificationsInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_WebNotificationsInfo proto.InternalMessageInfo - -func (m *WebNotificationsInfo) GetTimestamp() uint64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp - } - return 0 -} - -func (m *WebNotificationsInfo) GetUnreadChats() uint32 { - if m != nil && m.UnreadChats != nil { - return *m.UnreadChats - } - return 0 -} - -func (m *WebNotificationsInfo) GetNotifyMessageCount() uint32 { - if m != nil && m.NotifyMessageCount != nil { - return *m.NotifyMessageCount - } - return 0 -} - -func (m *WebNotificationsInfo) GetNotifyMessages() []*Message { - if m != nil { - return m.NotifyMessages - } - return nil -} - -type NotificationMessageInfo struct { - Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"` - Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NotificationMessageInfo) Reset() { *m = NotificationMessageInfo{} } -func (m *NotificationMessageInfo) String() string { return proto.CompactTextString(m) } -func (*NotificationMessageInfo) ProtoMessage() {} -func (*NotificationMessageInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{32} -} -func (m *NotificationMessageInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NotificationMessageInfo.Unmarshal(m, b) -} -func (m *NotificationMessageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NotificationMessageInfo.Marshal(b, m, deterministic) -} -func (dst *NotificationMessageInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_NotificationMessageInfo.Merge(dst, src) -} -func (m *NotificationMessageInfo) XXX_Size() int { - return xxx_messageInfo_NotificationMessageInfo.Size(m) -} -func (m *NotificationMessageInfo) XXX_DiscardUnknown() { - xxx_messageInfo_NotificationMessageInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_NotificationMessageInfo proto.InternalMessageInfo - -func (m *NotificationMessageInfo) GetKey() *MessageKey { +func (m *WebMessageInfo) GetPaymentInfo() *PaymentInfo { if m != nil { - return m.Key + return m.PaymentInfo } return nil } -func (m *NotificationMessageInfo) GetMessage() *Message { +func (m *WebMessageInfo) GetFinalLiveLocation() *LiveLocationMessage { if m != nil { - return m.Message + return m.FinalLiveLocation } return nil } -func (m *NotificationMessageInfo) GetMessageTimestamp() uint64 { - if m != nil && m.MessageTimestamp != nil { - return *m.MessageTimestamp - } - return 0 -} - -func (m *NotificationMessageInfo) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant - } - return "" -} - -type TabletNotificationsInfo struct { - Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` - UnreadChats *uint32 `protobuf:"varint,3,opt,name=unreadChats" json:"unreadChats,omitempty"` - NotifyMessageCount *uint32 `protobuf:"varint,4,opt,name=notifyMessageCount" json:"notifyMessageCount,omitempty"` - NotifyMessage []*Message `protobuf:"bytes,5,rep,name=notifyMessage" json:"notifyMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TabletNotificationsInfo) Reset() { *m = TabletNotificationsInfo{} } -func (m *TabletNotificationsInfo) String() string { return proto.CompactTextString(m) } -func (*TabletNotificationsInfo) ProtoMessage() {} -func (*TabletNotificationsInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{33} -} -func (m *TabletNotificationsInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TabletNotificationsInfo.Unmarshal(m, b) -} -func (m *TabletNotificationsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TabletNotificationsInfo.Marshal(b, m, deterministic) -} -func (dst *TabletNotificationsInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_TabletNotificationsInfo.Merge(dst, src) -} -func (m *TabletNotificationsInfo) XXX_Size() int { - return xxx_messageInfo_TabletNotificationsInfo.Size(m) -} -func (m *TabletNotificationsInfo) XXX_DiscardUnknown() { - xxx_messageInfo_TabletNotificationsInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_TabletNotificationsInfo proto.InternalMessageInfo - -func (m *TabletNotificationsInfo) GetTimestamp() uint64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp - } - return 0 -} - -func (m *TabletNotificationsInfo) GetUnreadChats() uint32 { - if m != nil && m.UnreadChats != nil { - return *m.UnreadChats - } - return 0 -} - -func (m *TabletNotificationsInfo) GetNotifyMessageCount() uint32 { - if m != nil && m.NotifyMessageCount != nil { - return *m.NotifyMessageCount - } - return 0 -} - -func (m *TabletNotificationsInfo) GetNotifyMessage() []*Message { +func (m *WebMessageInfo) GetQuotedPaymentInfo() *PaymentInfo { if m != nil { - return m.NotifyMessage + return m.QuotedPaymentInfo } return nil } -type WebFeatures struct { - LabelsDisplay *WebFeatures_FLAG `protobuf:"varint,1,opt,name=labelsDisplay,enum=proto.WebFeatures_FLAG" json:"labelsDisplay,omitempty"` - VoipIndividualOutgoing *WebFeatures_FLAG `protobuf:"varint,2,opt,name=voipIndividualOutgoing,enum=proto.WebFeatures_FLAG" json:"voipIndividualOutgoing,omitempty"` - GroupsV3 *WebFeatures_FLAG `protobuf:"varint,3,opt,name=groupsV3,enum=proto.WebFeatures_FLAG" json:"groupsV3,omitempty"` - GroupsV3Create *WebFeatures_FLAG `protobuf:"varint,4,opt,name=groupsV3Create,enum=proto.WebFeatures_FLAG" json:"groupsV3Create,omitempty"` - ChangeNumberV2 *WebFeatures_FLAG `protobuf:"varint,5,opt,name=changeNumberV2,enum=proto.WebFeatures_FLAG" json:"changeNumberV2,omitempty"` - QueryStatusV3Thumbnail *WebFeatures_FLAG `protobuf:"varint,6,opt,name=queryStatusV3Thumbnail,enum=proto.WebFeatures_FLAG" json:"queryStatusV3Thumbnail,omitempty"` - LiveLocations *WebFeatures_FLAG `protobuf:"varint,7,opt,name=liveLocations,enum=proto.WebFeatures_FLAG" json:"liveLocations,omitempty"` - QueryVname *WebFeatures_FLAG `protobuf:"varint,8,opt,name=queryVname,enum=proto.WebFeatures_FLAG" json:"queryVname,omitempty"` - VoipIndividualIncoming *WebFeatures_FLAG `protobuf:"varint,9,opt,name=voipIndividualIncoming,enum=proto.WebFeatures_FLAG" json:"voipIndividualIncoming,omitempty"` - QuickRepliesQuery *WebFeatures_FLAG `protobuf:"varint,10,opt,name=quickRepliesQuery,enum=proto.WebFeatures_FLAG" json:"quickRepliesQuery,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WebFeatures) Reset() { *m = WebFeatures{} } -func (m *WebFeatures) String() string { return proto.CompactTextString(m) } -func (*WebFeatures) ProtoMessage() {} -func (*WebFeatures) Descriptor() ([]byte, []int) { - return fileDescriptor_def_131d1935231ace52, []int{34} -} -func (m *WebFeatures) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WebFeatures.Unmarshal(m, b) -} -func (m *WebFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WebFeatures.Marshal(b, m, deterministic) -} -func (dst *WebFeatures) XXX_Merge(src proto.Message) { - xxx_messageInfo_WebFeatures.Merge(dst, src) -} -func (m *WebFeatures) XXX_Size() int { - return xxx_messageInfo_WebFeatures.Size(m) -} -func (m *WebFeatures) XXX_DiscardUnknown() { - xxx_messageInfo_WebFeatures.DiscardUnknown(m) -} - -var xxx_messageInfo_WebFeatures proto.InternalMessageInfo - -func (m *WebFeatures) GetLabelsDisplay() WebFeatures_FLAG { - if m != nil && m.LabelsDisplay != nil { - return *m.LabelsDisplay - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetVoipIndividualOutgoing() WebFeatures_FLAG { - if m != nil && m.VoipIndividualOutgoing != nil { - return *m.VoipIndividualOutgoing - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetGroupsV3() WebFeatures_FLAG { - if m != nil && m.GroupsV3 != nil { - return *m.GroupsV3 - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetGroupsV3Create() WebFeatures_FLAG { - if m != nil && m.GroupsV3Create != nil { - return *m.GroupsV3Create - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetChangeNumberV2() WebFeatures_FLAG { - if m != nil && m.ChangeNumberV2 != nil { - return *m.ChangeNumberV2 - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetQueryStatusV3Thumbnail() WebFeatures_FLAG { - if m != nil && m.QueryStatusV3Thumbnail != nil { - return *m.QueryStatusV3Thumbnail - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetLiveLocations() WebFeatures_FLAG { - if m != nil && m.LiveLocations != nil { - return *m.LiveLocations - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetQueryVname() WebFeatures_FLAG { - if m != nil && m.QueryVname != nil { - return *m.QueryVname - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetVoipIndividualIncoming() WebFeatures_FLAG { - if m != nil && m.VoipIndividualIncoming != nil { - return *m.VoipIndividualIncoming - } - return WebFeatures_NOT_IMPLEMENTED -} - -func (m *WebFeatures) GetQuickRepliesQuery() WebFeatures_FLAG { - if m != nil && m.QuickRepliesQuery != nil { - return *m.QuickRepliesQuery - } - return WebFeatures_NOT_IMPLEMENTED -} - func init() { - proto.RegisterType((*FingerprintData)(nil), "proto.FingerprintData") - proto.RegisterType((*CombinedFingerprint)(nil), "proto.CombinedFingerprint") - proto.RegisterType((*MessageKey)(nil), "proto.MessageKey") + proto.RegisterEnum("proto.AdReplyInfo_AD_REPLY_INFO_MEDIATYPE", AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_name, AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_value) + proto.RegisterEnum("proto.ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE", ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_name, ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_value) + proto.RegisterEnum("proto.ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE", ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_name, ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_value) + proto.RegisterEnum("proto.VideoMessage_VIDEO_MESSAGE_ATTRIBUTION", VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_name, VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_value) + proto.RegisterEnum("proto.ProtocolMessage_PROTOCOL_MESSAGE_TYPE", ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name, ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value) + proto.RegisterEnum("proto.HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE", HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_name, HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_value) + proto.RegisterEnum("proto.HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE", HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_name, HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_value) + proto.RegisterEnum("proto.WebFeatures_WEB_FEATURES_FLAG", WebFeatures_WEB_FEATURES_FLAG_name, WebFeatures_WEB_FEATURES_FLAG_value) + proto.RegisterEnum("proto.PaymentInfo_PAYMENT_INFO_STATUS", PaymentInfo_PAYMENT_INFO_STATUS_name, PaymentInfo_PAYMENT_INFO_STATUS_value) + proto.RegisterEnum("proto.WebMessageInfo_WEB_MESSAGE_INFO_STATUS", WebMessageInfo_WEB_MESSAGE_INFO_STATUS_name, WebMessageInfo_WEB_MESSAGE_INFO_STATUS_value) + proto.RegisterEnum("proto.WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE", WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_name, WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_value) + proto.RegisterType((*HydratedQuickReplyButton)(nil), "proto.HydratedQuickReplyButton") + proto.RegisterType((*HydratedURLButton)(nil), "proto.HydratedURLButton") + proto.RegisterType((*HydratedCallButton)(nil), "proto.HydratedCallButton") + proto.RegisterType((*HydratedTemplateButton)(nil), "proto.HydratedTemplateButton") + proto.RegisterType((*QuickReplyButton)(nil), "proto.QuickReplyButton") + proto.RegisterType((*URLButton)(nil), "proto.URLButton") + proto.RegisterType((*CallButton)(nil), "proto.CallButton") + proto.RegisterType((*TemplateButton)(nil), "proto.TemplateButton") + proto.RegisterType((*Location)(nil), "proto.Location") + proto.RegisterType((*Point)(nil), "proto.Point") + proto.RegisterType((*InteractiveAnnotation)(nil), "proto.InteractiveAnnotation") + proto.RegisterType((*AdReplyInfo)(nil), "proto.AdReplyInfo") + proto.RegisterType((*ContextInfo)(nil), "proto.ContextInfo") proto.RegisterType((*SenderKeyDistributionMessage)(nil), "proto.SenderKeyDistributionMessage") proto.RegisterType((*ImageMessage)(nil), "proto.ImageMessage") proto.RegisterType((*ContactMessage)(nil), "proto.ContactMessage") @@ -3538,263 +5229,385 @@ func init() { proto.RegisterType((*HighlyStructuredMessage)(nil), "proto.HighlyStructuredMessage") proto.RegisterType((*SendPaymentMessage)(nil), "proto.SendPaymentMessage") proto.RegisterType((*RequestPaymentMessage)(nil), "proto.RequestPaymentMessage") + proto.RegisterType((*DeclinePaymentRequestMessage)(nil), "proto.DeclinePaymentRequestMessage") + proto.RegisterType((*CancelPaymentRequestMessage)(nil), "proto.CancelPaymentRequestMessage") proto.RegisterType((*LiveLocationMessage)(nil), "proto.LiveLocationMessage") proto.RegisterType((*StickerMessage)(nil), "proto.StickerMessage") + proto.RegisterType((*FourRowTemplate)(nil), "proto.FourRowTemplate") + proto.RegisterType((*HydratedFourRowTemplate)(nil), "proto.HydratedFourRowTemplate") + proto.RegisterType((*TemplateMessage)(nil), "proto.TemplateMessage") + proto.RegisterType((*TemplateButtonReplyMessage)(nil), "proto.TemplateButtonReplyMessage") + proto.RegisterType((*ProductSnapshot)(nil), "proto.ProductSnapshot") + proto.RegisterType((*ProductMessage)(nil), "proto.ProductMessage") + proto.RegisterType((*GroupInviteMessage)(nil), "proto.GroupInviteMessage") proto.RegisterType((*Message)(nil), "proto.Message") - proto.RegisterType((*ContextInfo)(nil), "proto.ContextInfo") - proto.RegisterType((*InteractiveAnnotation)(nil), "proto.InteractiveAnnotation") - proto.RegisterType((*Point)(nil), "proto.Point") - proto.RegisterType((*Location)(nil), "proto.Location") - proto.RegisterType((*WebMessageInfo)(nil), "proto.WebMessageInfo") - proto.RegisterType((*WebNotificationsInfo)(nil), "proto.WebNotificationsInfo") - proto.RegisterType((*NotificationMessageInfo)(nil), "proto.NotificationMessageInfo") - proto.RegisterType((*TabletNotificationsInfo)(nil), "proto.TabletNotificationsInfo") + proto.RegisterType((*MessageKey)(nil), "proto.MessageKey") proto.RegisterType((*WebFeatures)(nil), "proto.WebFeatures") - proto.RegisterEnum("proto.ExtendedTextMessage_FONTTYPE", ExtendedTextMessage_FONTTYPE_name, ExtendedTextMessage_FONTTYPE_value) - proto.RegisterEnum("proto.VideoMessage_ATTRIBUTION", VideoMessage_ATTRIBUTION_name, VideoMessage_ATTRIBUTION_value) - proto.RegisterEnum("proto.ProtocolMessage_TYPE", ProtocolMessage_TYPE_name, ProtocolMessage_TYPE_value) - proto.RegisterEnum("proto.HSMDateTimeComponent_DAYOFWEEKTYPE", HSMDateTimeComponent_DAYOFWEEKTYPE_name, HSMDateTimeComponent_DAYOFWEEKTYPE_value) - proto.RegisterEnum("proto.HSMDateTimeComponent_CALENDARTYPE", HSMDateTimeComponent_CALENDARTYPE_name, HSMDateTimeComponent_CALENDARTYPE_value) - proto.RegisterEnum("proto.WebMessageInfo_STATUS", WebMessageInfo_STATUS_name, WebMessageInfo_STATUS_value) - proto.RegisterEnum("proto.WebMessageInfo_STUBTYPE", WebMessageInfo_STUBTYPE_name, WebMessageInfo_STUBTYPE_value) - proto.RegisterEnum("proto.WebFeatures_FLAG", WebFeatures_FLAG_name, WebFeatures_FLAG_value) -} - -func init() { proto.RegisterFile("def.proto", fileDescriptor_def_131d1935231ace52) } - -var fileDescriptor_def_131d1935231ace52 = []byte{ - // 3724 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0x4d, 0x6f, 0xe3, 0x48, - 0x76, 0xad, 0x0f, 0xdb, 0xd2, 0x93, 0x2c, 0xd1, 0x65, 0xbb, 0xad, 0xe9, 0xf6, 0xce, 0x78, 0xd9, - 0x9b, 0x59, 0xef, 0x04, 0xeb, 0xf4, 0x78, 0x3a, 0x33, 0xc1, 0x06, 0x83, 0x84, 0x96, 0x68, 0x9b, - 0xdd, 0x32, 0xa9, 0x2d, 0x51, 0xf6, 0xf8, 0x24, 0x94, 0xc9, 0xb2, 0xc4, 0x34, 0x45, 0x6a, 0xc8, - 0x92, 0xa7, 0xb5, 0x01, 0x72, 0xd9, 0x4b, 0x10, 0x20, 0xf7, 0x5c, 0x83, 0x20, 0xd7, 0x5c, 0x02, - 0x04, 0x9b, 0x00, 0x49, 0x7e, 0x42, 0xfe, 0x46, 0x0e, 0xb9, 0xe4, 0x96, 0x4b, 0x90, 0xa0, 0x8a, - 0xa4, 0x44, 0x4a, 0xb2, 0xbb, 0xa7, 0x93, 0xe9, 0xe4, 0x64, 0xd5, 0xfb, 0xaa, 0x57, 0xef, 0xd5, - 0x7b, 0xf5, 0xde, 0xa3, 0xa1, 0x6c, 0xd3, 0xdb, 0xa3, 0x71, 0xe0, 0x33, 0x1f, 0xad, 0x89, 0x3f, - 0xb2, 0x01, 0xf5, 0x53, 0xc7, 0x1b, 0xd0, 0x60, 0x1c, 0x38, 0x1e, 0x6b, 0x11, 0x46, 0xd0, 0x3e, - 0x94, 0xc7, 0x93, 0x1b, 0xd7, 0xb1, 0x5e, 0xd1, 0x69, 0x23, 0x77, 0x90, 0x3b, 0x2c, 0xe3, 0x39, - 0x00, 0x7d, 0x0c, 0xe0, 0xd8, 0xd4, 0x63, 0xce, 0xad, 0x43, 0x83, 0x46, 0x5e, 0xa0, 0x53, 0x10, - 0xf9, 0xef, 0x73, 0xb0, 0xdd, 0xf4, 0x47, 0x37, 0x8e, 0x47, 0xed, 0x94, 0x64, 0xd4, 0x80, 0x8d, - 0x3b, 0x1a, 0x84, 0x8e, 0xef, 0x09, 0x99, 0x9b, 0x38, 0x59, 0xa2, 0x13, 0x90, 0x5c, 0xdf, 0x22, - 0x6e, 0x8a, 0x5a, 0xc8, 0xad, 0x1c, 0x3f, 0x8e, 0x74, 0x3d, 0x5a, 0xd0, 0x10, 0x2f, 0xd1, 0xa3, - 0x16, 0x6c, 0x05, 0x74, 0xe4, 0x33, 0x9a, 0x16, 0x52, 0x78, 0x50, 0xc8, 0x32, 0x83, 0xcc, 0x00, - 0x2e, 0x68, 0x18, 0x92, 0x01, 0xe5, 0x27, 0xdd, 0x87, 0x72, 0x44, 0xf2, 0xd2, 0xb1, 0x13, 0x3b, - 0xcc, 0x00, 0xe8, 0x31, 0xac, 0xdf, 0x06, 0xfe, 0xe8, 0x82, 0x0a, 0x5d, 0x4b, 0x38, 0x5e, 0xa1, - 0x1a, 0xe4, 0x1d, 0x5b, 0x6c, 0x5d, 0xc6, 0x79, 0xc7, 0x46, 0x07, 0x50, 0x19, 0x93, 0x80, 0x39, - 0x96, 0x33, 0x26, 0x1e, 0x6b, 0x14, 0x05, 0x22, 0x0d, 0x92, 0xff, 0x2c, 0x07, 0xfb, 0x5d, 0xea, - 0xd9, 0x34, 0x78, 0x45, 0xa7, 0x2d, 0x27, 0x64, 0x81, 0x73, 0x33, 0x61, 0x8e, 0xef, 0xc5, 0xba, - 0x70, 0xd3, 0x0d, 0x02, 0x7f, 0x32, 0xd6, 0x12, 0x35, 0x92, 0x25, 0xea, 0xc0, 0x33, 0xf2, 0xc6, - 0x77, 0x7d, 0xe6, 0x3e, 0x24, 0x40, 0x68, 0x58, 0xc5, 0xef, 0x42, 0x2a, 0xff, 0x4d, 0x11, 0xaa, - 0xda, 0x88, 0x0c, 0x68, 0xb2, 0xb9, 0x04, 0x85, 0x49, 0xe0, 0xc6, 0x1b, 0xf3, 0x9f, 0xe8, 0x09, - 0x94, 0x46, 0xce, 0x88, 0xb2, 0xe9, 0x98, 0xc6, 0xfe, 0x9f, 0xad, 0xb9, 0xaa, 0x16, 0x19, 0x73, - 0x81, 0xb1, 0x09, 0x92, 0x25, 0xbf, 0x37, 0xb7, 0x8e, 0x4b, 0xbb, 0x43, 0x72, 0xfc, 0xbb, 0x5f, - 0x0a, 0x33, 0x54, 0x71, 0x0a, 0x92, 0xe0, 0xdb, 0xd4, 0x1b, 0xb0, 0x61, 0x63, 0xed, 0x20, 0x77, - 0x58, 0xc4, 0x29, 0x08, 0xb7, 0xf7, 0x90, 0x3a, 0x83, 0x21, 0x6b, 0xac, 0x8b, 0xeb, 0x13, 0xaf, - 0xd0, 0x0e, 0xac, 0x7d, 0xe7, 0xd8, 0x6c, 0xd8, 0xd8, 0x10, 0xe0, 0x68, 0x21, 0x74, 0xa4, 0xb6, - 0x43, 0xf8, 0x15, 0x2e, 0x89, 0xbd, 0x66, 0x6b, 0xf4, 0x13, 0xd8, 0xe4, 0x72, 0x55, 0xcf, 0x8a, - 0x95, 0x29, 0x0b, 0x82, 0x2c, 0x10, 0x99, 0xf0, 0xd8, 0xf1, 0x18, 0x0d, 0x88, 0xc5, 0x9c, 0x3b, - 0xaa, 0x78, 0x9e, 0xcf, 0x08, 0x3f, 0x48, 0xd8, 0x80, 0x83, 0xc2, 0x61, 0xe5, 0x78, 0x3f, 0xbe, - 0x56, 0xda, 0x2a, 0x22, 0x7c, 0x0f, 0x2f, 0x3f, 0xa5, 0xed, 0x04, 0xd4, 0x62, 0x1d, 0xc2, 0x86, - 0x8d, 0x4a, 0x14, 0x3d, 0x73, 0x08, 0xd7, 0xed, 0x8f, 0xc6, 0x74, 0x60, 0x0e, 0x27, 0xa3, 0x1b, - 0x8f, 0x38, 0x6e, 0x43, 0x8a, 0x74, 0xcb, 0x00, 0xd1, 0x0b, 0xa8, 0x58, 0xbe, 0xc7, 0xe8, 0x1b, - 0xa6, 0x79, 0xb7, 0x7e, 0x63, 0x4b, 0xdc, 0x73, 0x14, 0x2b, 0xd4, 0x9c, 0x63, 0x70, 0x9a, 0x0c, - 0x7d, 0x06, 0xd2, 0xad, 0x13, 0x84, 0xac, 0x6b, 0x11, 0xaf, 0xeb, 0xd8, 0xd4, 0x22, 0x41, 0x03, - 0x09, 0xf1, 0x4b, 0x70, 0x74, 0x08, 0xf5, 0x19, 0x2c, 0x76, 0xc9, 0xb6, 0xb0, 0xef, 0x22, 0x58, - 0xfe, 0x13, 0xa8, 0xf1, 0x1d, 0x89, 0xc5, 0x92, 0x1b, 0x73, 0x00, 0x15, 0xdb, 0x09, 0xc7, 0x2e, - 0x99, 0xea, 0x64, 0x44, 0xe3, 0x9b, 0x93, 0x06, 0x71, 0x9f, 0xdd, 0x59, 0x24, 0xb0, 0xc5, 0xe9, - 0xca, 0x38, 0x5a, 0xbc, 0xdf, 0xa9, 0xe4, 0x5f, 0xe7, 0xa1, 0xde, 0xf6, 0x2d, 0x92, 0x0e, 0x98, - 0x43, 0xa8, 0xdb, 0x74, 0x10, 0x50, 0x1a, 0xb6, 0x09, 0x73, 0xd8, 0xc4, 0x8e, 0xb4, 0xc8, 0xe1, - 0x45, 0x30, 0xb7, 0x49, 0x02, 0xf2, 0xbd, 0x41, 0x44, 0x9a, 0x17, 0xa4, 0x4b, 0x70, 0x84, 0xa0, - 0xe8, 0xf1, 0x03, 0x45, 0x17, 0x5b, 0xfc, 0xe6, 0xf7, 0x9d, 0xd8, 0x76, 0x40, 0xc3, 0x30, 0x8e, - 0xec, 0x64, 0x99, 0xc4, 0xcd, 0xda, 0x3c, 0x6e, 0x7e, 0x40, 0xdf, 0xca, 0xff, 0x51, 0x80, 0x6d, - 0xf5, 0x0d, 0xe3, 0x91, 0x6d, 0x9b, 0xf4, 0xcd, 0xcc, 0x17, 0x08, 0x8a, 0x9c, 0x26, 0x76, 0x82, - 0xf8, 0xcd, 0xfd, 0x33, 0x22, 0xcc, 0x1a, 0x46, 0x94, 0x71, 0x08, 0xa7, 0x41, 0x48, 0x86, 0xaa, - 0x45, 0x3c, 0xdf, 0x73, 0x2c, 0xe2, 0xf6, 0x02, 0x37, 0x3e, 0x5a, 0x06, 0x26, 0xbc, 0x4c, 0x43, - 0x2b, 0x70, 0xa2, 0x68, 0x5f, 0x8b, 0xbd, 0x3c, 0x07, 0x71, 0x2f, 0x33, 0x87, 0xb9, 0x54, 0x04, - 0x6c, 0x19, 0x47, 0x0b, 0x1e, 0x99, 0x5c, 0x0b, 0x25, 0x18, 0xdc, 0x88, 0x90, 0xdd, 0xc0, 0xb3, - 0x35, 0xfa, 0x14, 0x6a, 0x37, 0xc4, 0x7a, 0xcd, 0xb3, 0x9b, 0x67, 0x0b, 0x8a, 0x92, 0xa0, 0x58, - 0x80, 0xa2, 0xaf, 0xa0, 0x78, 0xeb, 0x7b, 0x4c, 0x04, 0x6e, 0xed, 0xf8, 0x59, 0x6c, 0x9c, 0x15, - 0xe7, 0x3f, 0x3a, 0x35, 0x74, 0xd3, 0xbc, 0xee, 0xa8, 0x58, 0x30, 0xfc, 0xa0, 0x2e, 0xb8, 0x83, - 0x52, 0xb2, 0x1b, 0xaa, 0x01, 0x74, 0x15, 0xbd, 0xdb, 0xef, 0xaa, 0x58, 0x3b, 0x95, 0x1e, 0xa1, - 0x32, 0xac, 0x45, 0x3f, 0x73, 0x68, 0x1b, 0xea, 0xba, 0x81, 0xb5, 0xa6, 0xa2, 0xf7, 0xb1, 0x7a, - 0xd6, 0x6b, 0x2b, 0x58, 0xca, 0xa3, 0x2d, 0xd8, 0x3c, 0xc1, 0xd7, 0x7a, 0x4b, 0xd1, 0xfb, 0x57, - 0x58, 0x33, 0x55, 0xa9, 0x80, 0x76, 0x61, 0xeb, 0x44, 0x3d, 0x51, 0xba, 0xba, 0xda, 0x53, 0x67, - 0x94, 0x45, 0x24, 0x41, 0xd5, 0xe8, 0x5e, 0x29, 0xed, 0x56, 0xff, 0x5c, 0x55, 0x2e, 0xaf, 0xa5, - 0x35, 0xf9, 0xcf, 0x0b, 0x50, 0x6f, 0xf9, 0xd6, 0x64, 0x44, 0x3d, 0xf6, 0x7e, 0x49, 0x7b, 0xe6, - 0xa8, 0x42, 0xda, 0x51, 0xff, 0xd3, 0x84, 0xcd, 0xcb, 0x08, 0x32, 0xa0, 0x4d, 0x7f, 0xe2, 0x25, - 0x39, 0x7b, 0x0e, 0xc8, 0x24, 0xe8, 0x8d, 0x85, 0x04, 0xfd, 0x04, 0x4a, 0x5c, 0x8e, 0xc8, 0x1e, - 0xa5, 0x48, 0xd7, 0x64, 0xfd, 0x8e, 0xc9, 0x3b, 0x9b, 0x66, 0xe1, 0x43, 0xa6, 0x59, 0xf9, 0xdf, - 0xf2, 0x50, 0x55, 0x26, 0xb6, 0xe3, 0xbf, 0x9f, 0x33, 0xb2, 0x66, 0x2f, 0xbc, 0xc5, 0xec, 0xc5, - 0x25, 0xb3, 0x37, 0x60, 0x23, 0xa4, 0x96, 0xef, 0xd9, 0xa1, 0xf0, 0xc9, 0x26, 0x4e, 0x96, 0x5c, - 0x8f, 0x31, 0x8b, 0x5c, 0x51, 0xc2, 0xfc, 0xe7, 0x83, 0x4e, 0x58, 0x32, 0x74, 0xe9, 0xed, 0x86, - 0x2e, 0x2f, 0x19, 0xfa, 0xbd, 0x5f, 0xaa, 0x90, 0x05, 0x94, 0x8c, 0x1c, 0x6f, 0xb0, 0xf0, 0x52, - 0x2d, 0xc2, 0xe5, 0xdf, 0xac, 0x41, 0xf5, 0xd2, 0xb1, 0xe9, 0xff, 0x3b, 0x73, 0xa7, 0x8d, 0xbb, - 0xbe, 0x60, 0xdc, 0x54, 0x99, 0xb4, 0x91, 0x2d, 0x93, 0x0e, 0xa0, 0x32, 0x70, 0x6e, 0x3b, 0x2e, - 0x99, 0xf2, 0x9c, 0x27, 0x8c, 0x5e, 0xc2, 0x69, 0x50, 0xaa, 0x10, 0x2a, 0xaf, 0x2e, 0x84, 0x20, - 0x5d, 0x08, 0x2d, 0xb9, 0xb1, 0xf2, 0xfd, 0x8a, 0x9d, 0xea, 0xff, 0x5a, 0xb1, 0xb3, 0xf9, 0xa1, - 0x8b, 0x9d, 0x77, 0xbd, 0x42, 0xe8, 0x0c, 0x6a, 0x03, 0xe7, 0x56, 0x61, 0xb3, 0x62, 0x58, 0xd4, - 0x3a, 0xb5, 0xe3, 0x4f, 0xe2, 0x4d, 0xd2, 0xd7, 0xeb, 0x48, 0x31, 0x4d, 0xac, 0x9d, 0xf4, 0x4c, - 0xcd, 0xd0, 0xf1, 0x02, 0x9b, 0xfc, 0x73, 0xa8, 0xa4, 0xd0, 0xa8, 0x04, 0x45, 0xdd, 0xd0, 0xd5, - 0x28, 0xff, 0x9f, 0x69, 0x9d, 0xf3, 0x6b, 0x29, 0xc7, 0x7f, 0x9a, 0xaa, 0x6e, 0x60, 0x29, 0x2f, - 0x1f, 0x40, 0xb1, 0x49, 0x5c, 0x37, 0xba, 0x0d, 0xae, 0x9b, 0xb4, 0x5b, 0x55, 0x9c, 0x2c, 0xe5, - 0xdf, 0x83, 0x62, 0x73, 0x48, 0xd8, 0x3b, 0x94, 0x54, 0x51, 0xdb, 0x91, 0x4f, 0xda, 0x0e, 0xf9, - 0x8f, 0xa1, 0xde, 0xe1, 0xca, 0x5b, 0xbe, 0x9b, 0x04, 0xc6, 0x33, 0x28, 0xbc, 0x8e, 0xb7, 0xa8, - 0x1c, 0x6f, 0xc5, 0x67, 0x9b, 0xf7, 0x3b, 0x98, 0x63, 0xd1, 0xef, 0x40, 0x71, 0x16, 0x27, 0xb5, - 0xe3, 0xa7, 0x31, 0xd5, 0x82, 0xa8, 0xa3, 0xe8, 0x49, 0xe5, 0x84, 0x32, 0x82, 0xa2, 0x78, 0xf2, - 0x00, 0xd6, 0xb1, 0x7a, 0x69, 0xbc, 0x52, 0xa5, 0x47, 0xf2, 0x5f, 0xe6, 0x60, 0x27, 0x2e, 0x0a, - 0x43, 0x25, 0x08, 0xc8, 0xf4, 0xdd, 0x4b, 0xc3, 0xcf, 0xa1, 0x64, 0xc5, 0x9c, 0x8d, 0xbc, 0xb8, - 0x7b, 0xbb, 0x29, 0x57, 0xcf, 0xab, 0x4c, 0x3c, 0x23, 0x7b, 0xcf, 0x34, 0xfd, 0x4b, 0xa8, 0x9c, - 0x77, 0x2f, 0x9a, 0x93, 0x20, 0xa0, 0x9e, 0x35, 0x15, 0x25, 0x4f, 0xfc, 0xbb, 0xe9, 0xdb, 0x89, - 0x6a, 0x19, 0x18, 0xbf, 0xcf, 0x64, 0xc4, 0x5f, 0xaf, 0xcf, 0x9f, 0x3f, 0x7f, 0x2e, 0x2c, 0x54, - 0xc0, 0x29, 0x88, 0xfc, 0x9b, 0x02, 0xec, 0x9c, 0x77, 0x2f, 0x5a, 0x84, 0x51, 0xd3, 0x19, 0xd1, - 0xa6, 0x3f, 0x1a, 0xfb, 0x1e, 0xf5, 0x18, 0x3a, 0x83, 0xb2, 0x4d, 0xa6, 0xc6, 0xed, 0x15, 0xa5, - 0xaf, 0x85, 0xe4, 0xda, 0xf1, 0xcf, 0x62, 0xfd, 0x56, 0xd1, 0x1f, 0xb5, 0x94, 0x6b, 0xe3, 0xf4, - 0x4a, 0x55, 0x5f, 0x09, 0x3b, 0xcf, 0x79, 0x79, 0x39, 0x37, 0xa5, 0x24, 0x6a, 0xbb, 0x37, 0xb1, - 0xf8, 0xcd, 0xe3, 0x7e, 0xe4, 0x7b, 0x6c, 0x28, 0x92, 0xd7, 0x26, 0x8e, 0x16, 0x22, 0xf6, 0x38, - 0xdb, 0x85, 0x40, 0x15, 0x05, 0x2a, 0x05, 0xe1, 0x92, 0x86, 0xfe, 0x24, 0x88, 0x93, 0x96, 0xf8, - 0xcd, 0x33, 0xcb, 0xc8, 0xf1, 0x26, 0x8c, 0x26, 0x2d, 0x56, 0xb4, 0x42, 0x2d, 0x28, 0x59, 0xc4, - 0xa5, 0x9e, 0x4d, 0x02, 0x91, 0xae, 0x6a, 0xc7, 0x87, 0x0f, 0x69, 0xdf, 0x54, 0xda, 0xaa, 0xde, - 0x52, 0xb0, 0x50, 0x7e, 0xc6, 0x29, 0xbf, 0x86, 0xcd, 0xcc, 0xb9, 0xf8, 0x8d, 0xb9, 0x30, 0xf4, - 0x96, 0xc2, 0xa3, 0xa2, 0x02, 0x1b, 0x66, 0x4f, 0xed, 0xf2, 0x45, 0x1e, 0x6d, 0x42, 0xf9, 0x4a, - 0x6d, 0xe9, 0xd1, 0xb2, 0x80, 0xaa, 0x50, 0x32, 0xcf, 0x7b, 0x58, 0xac, 0x8a, 0x9c, 0xeb, 0x14, - 0x6b, 0xfc, 0xf7, 0x1a, 0xc7, 0x74, 0x15, 0xb3, 0x87, 0xf9, 0x6a, 0x9d, 0x63, 0xba, 0x3d, 0x21, - 0x6f, 0x43, 0x3e, 0x82, 0x6a, 0x5a, 0x0d, 0x2e, 0xf2, 0x0c, 0xab, 0x67, 0x06, 0xd6, 0x14, 0x5d, - 0xca, 0xa1, 0x3a, 0x54, 0xba, 0x46, 0x5b, 0xc1, 0xfd, 0x73, 0xed, 0x25, 0xd6, 0xa4, 0xbc, 0xfc, - 0x22, 0xe3, 0xb9, 0x9e, 0xe7, 0xbc, 0x51, 0xc7, 0xbe, 0x25, 0x8a, 0x18, 0xe6, 0x8c, 0x68, 0xc8, - 0xc8, 0x68, 0x2c, 0x3c, 0x57, 0xc0, 0x73, 0x80, 0xfc, 0x17, 0x39, 0x71, 0x89, 0x12, 0x36, 0xf4, - 0xfb, 0x50, 0xb6, 0x12, 0x33, 0xc4, 0x71, 0xf6, 0xf4, 0x01, 0x4b, 0x9d, 0x3f, 0xc2, 0x73, 0x7a, - 0xce, 0x3c, 0x49, 0xf6, 0x8d, 0xe7, 0x1f, 0x2b, 0x98, 0x67, 0xaa, 0x71, 0xe6, 0x19, 0xfd, 0x49, - 0x1d, 0x36, 0x6d, 0xc2, 0x28, 0x57, 0xcd, 0xf0, 0xa8, 0x7f, 0x2b, 0xff, 0x75, 0x0e, 0xf6, 0xce, - 0xbb, 0x17, 0xbc, 0x33, 0x72, 0x9d, 0x5f, 0x91, 0x1b, 0x97, 0x76, 0x48, 0x40, 0x46, 0x94, 0xd1, - 0x80, 0xe7, 0x1b, 0x9b, 0xde, 0x92, 0x89, 0x9b, 0xf4, 0x05, 0xc9, 0x12, 0x3d, 0x87, 0x52, 0x72, - 0xe3, 0x63, 0x15, 0xd0, 0x5c, 0x85, 0x24, 0x56, 0xce, 0x1f, 0xe1, 0x19, 0x15, 0xe7, 0xb0, 0x63, - 0xd5, 0xe2, 0x79, 0x0b, 0x5a, 0x56, 0x9a, 0x73, 0x24, 0x54, 0x27, 0x55, 0x80, 0x31, 0x57, 0x25, - 0xd2, 0xf3, 0xbf, 0xb8, 0x9e, 0xce, 0x60, 0xe8, 0x4e, 0xbb, 0x2c, 0x98, 0x58, 0x6c, 0x12, 0x50, - 0x3b, 0xc9, 0x16, 0xfb, 0x50, 0xe6, 0x4d, 0x56, 0x38, 0x26, 0x56, 0x12, 0x90, 0x73, 0x00, 0xcf, - 0x25, 0xd4, 0xa5, 0xbc, 0xea, 0x15, 0xb9, 0x24, 0x6e, 0x63, 0x52, 0x20, 0x7e, 0x9f, 0xc5, 0x4e, - 0x61, 0xa3, 0x70, 0x50, 0x38, 0x2c, 0xe3, 0x78, 0x25, 0xde, 0x74, 0xe2, 0xba, 0xfc, 0x35, 0x6d, - 0x0f, 0xe2, 0xe6, 0x26, 0x05, 0xc9, 0xe0, 0xad, 0xb8, 0xb3, 0x49, 0x41, 0x50, 0x1b, 0xb6, 0xdc, - 0x05, 0xbb, 0x86, 0x8d, 0x75, 0x91, 0xac, 0x3e, 0x9e, 0x1f, 0x7e, 0x95, 0xe9, 0xf1, 0x32, 0xa3, - 0x7c, 0x0a, 0xa8, 0x4b, 0x3d, 0xbb, 0x43, 0xa6, 0xe9, 0x0a, 0xfe, 0x39, 0x54, 0x3c, 0x9f, 0xd1, - 0xf4, 0x04, 0xa7, 0x72, 0x5c, 0xcb, 0x26, 0x6d, 0x9c, 0x26, 0x91, 0xff, 0x31, 0x07, 0xbb, 0x98, - 0x7e, 0x3b, 0xa1, 0x21, 0x5b, 0x92, 0xb5, 0x9d, 0xce, 0x63, 0x5a, 0xe8, 0xbf, 0x38, 0xfe, 0xfc, - 0xab, 0xd8, 0xa2, 0xab, 0x50, 0x2b, 0x32, 0x5d, 0x31, 0x9d, 0xe9, 0xb8, 0xed, 0x83, 0x68, 0xab, - 0xd3, 0xc0, 0x1f, 0xc5, 0x7d, 0x43, 0x1a, 0xb4, 0xa8, 0x7f, 0xf1, 0xed, 0xfa, 0xff, 0x55, 0x01, - 0xb6, 0xdb, 0xce, 0x1d, 0xfd, 0x30, 0xcd, 0xfc, 0x67, 0x20, 0x11, 0xcb, 0x9a, 0x04, 0xc4, 0x9a, - 0x6a, 0xde, 0x05, 0xf7, 0x4d, 0x18, 0x27, 0xd0, 0x25, 0x38, 0xb7, 0x46, 0x38, 0xa6, 0xd4, 0xd6, - 0xbc, 0x8b, 0x71, 0xd4, 0xe7, 0xe7, 0x71, 0x0a, 0x82, 0xda, 0xf0, 0xe3, 0x58, 0x7e, 0xd3, 0xf5, - 0xad, 0xd7, 0xdf, 0x39, 0x21, 0xe5, 0x36, 0xb8, 0x20, 0x03, 0x8f, 0x32, 0xc7, 0xd2, 0xfd, 0x20, - 0x6e, 0x90, 0x36, 0xf1, 0xdb, 0x09, 0xd3, 0xb5, 0xe1, 0x7a, 0xb6, 0x36, 0xfc, 0x14, 0x6a, 0x21, - 0x37, 0xb1, 0x67, 0x51, 0x7d, 0x32, 0xba, 0xa1, 0x51, 0x36, 0x2e, 0xe0, 0x05, 0xe8, 0x0f, 0xda, - 0xdd, 0xfc, 0x6b, 0x1e, 0x6a, 0x5d, 0xe6, 0x58, 0xaf, 0x69, 0x70, 0x7f, 0xc1, 0x9d, 0x2d, 0xaa, - 0xf3, 0x4b, 0x45, 0xf5, 0x52, 0x51, 0x5a, 0x58, 0x55, 0x94, 0xa6, 0x0b, 0xe8, 0xe2, 0x72, 0x8b, - 0x38, 0x2b, 0xe9, 0xd7, 0x16, 0x4a, 0xfa, 0xef, 0x37, 0x29, 0xcc, 0x16, 0xa9, 0xa5, 0xa5, 0x22, - 0x35, 0xdb, 0x00, 0x94, 0x97, 0x1a, 0x00, 0x19, 0xaa, 0x63, 0x6f, 0xc9, 0xd6, 0x19, 0xd8, 0x7b, - 0x9a, 0xfa, 0x6f, 0x01, 0x36, 0x12, 0x1b, 0xf3, 0xf2, 0xc4, 0xf7, 0xee, 0x68, 0x10, 0x8a, 0xd8, - 0x98, 0x95, 0x27, 0x29, 0x18, 0x1a, 0xc0, 0x7e, 0xf8, 0xb6, 0x29, 0x70, 0x65, 0x36, 0x2d, 0x79, - 0x68, 0x0a, 0x8c, 0x1f, 0x14, 0x84, 0xbe, 0x82, 0xaa, 0x93, 0x1a, 0x11, 0xc7, 0x79, 0x7f, 0x3b, - 0xe9, 0x11, 0x52, 0x28, 0x9c, 0x21, 0x44, 0x5f, 0x43, 0xcd, 0xca, 0x54, 0x71, 0x71, 0x5e, 0xb8, - 0xa7, 0xc4, 0x5b, 0x20, 0x46, 0x7f, 0x08, 0x75, 0x37, 0x9b, 0x1c, 0x84, 0xef, 0xe7, 0x23, 0xfe, - 0x85, 0xd4, 0x81, 0x17, 0xc9, 0x51, 0x1b, 0xb6, 0xe9, 0xf2, 0x94, 0x48, 0xdc, 0x93, 0xca, 0xf1, - 0x93, 0xfb, 0xe7, 0x48, 0x78, 0x15, 0x1b, 0xd7, 0xc7, 0xce, 0x0e, 0x5e, 0xc4, 0xd5, 0x9a, 0xeb, - 0xb3, 0x30, 0x96, 0xc1, 0x8b, 0xe4, 0xdc, 0x92, 0x24, 0x35, 0x2a, 0x10, 0xd7, 0x6f, 0x6e, 0xc9, - 0xf4, 0x14, 0x01, 0x67, 0x08, 0x39, 0xe3, 0x5d, 0xaa, 0x2b, 0x11, 0xf7, 0x72, 0xce, 0x98, 0x6e, - 0x58, 0x70, 0x86, 0x10, 0x7d, 0x02, 0x45, 0xde, 0x5c, 0x88, 0x26, 0xb1, 0x72, 0x5c, 0x49, 0x0c, - 0x4f, 0x5c, 0x17, 0x0b, 0x84, 0x20, 0x18, 0x12, 0x26, 0xfa, 0xc4, 0x14, 0xc1, 0x90, 0x30, 0x2c, - 0x10, 0xfc, 0xd4, 0xe3, 0x6c, 0x3b, 0xd0, 0xa8, 0x66, 0x4e, 0xbd, 0xd0, 0x2c, 0xe0, 0x45, 0x72, - 0x64, 0xc0, 0x8e, 0xb5, 0xa2, 0x3b, 0x10, 0x1d, 0xe2, 0xbc, 0xe8, 0x59, 0xd5, 0x40, 0xe0, 0x95, - 0x8c, 0xe8, 0x1b, 0xd8, 0x1b, 0xae, 0xae, 0x21, 0x1a, 0x35, 0x21, 0x73, 0xf6, 0x2c, 0xaf, 0xa6, - 0xc2, 0xf7, 0xb1, 0xa3, 0x5f, 0xe7, 0xe0, 0xb3, 0x5b, 0x12, 0x32, 0x2c, 0xa6, 0xa3, 0xec, 0x15, - 0x9d, 0x3e, 0xf8, 0xa1, 0xa5, 0xfe, 0xee, 0x21, 0xf6, 0x3d, 0xc4, 0x22, 0x0d, 0x50, 0xb8, 0x54, - 0x22, 0x88, 0x4c, 0x53, 0x39, 0xfe, 0x28, 0xb5, 0x59, 0x96, 0x00, 0xaf, 0x60, 0x42, 0x18, 0x76, - 0x83, 0x55, 0x45, 0x42, 0x9c, 0x94, 0x92, 0x46, 0x7f, 0x65, 0x21, 0x81, 0x57, 0xb3, 0xf2, 0xa8, - 0x72, 0x97, 0x1f, 0x6e, 0xd1, 0x6e, 0xcf, 0xa3, 0x6a, 0xc5, 0xd3, 0x8e, 0x57, 0xb1, 0xf1, 0x24, - 0x11, 0x66, 0x1e, 0x98, 0xc6, 0x4e, 0x26, 0x49, 0x64, 0x5f, 0x1f, 0xbc, 0x40, 0x2c, 0xff, 0x67, - 0x1e, 0x2a, 0xa9, 0x94, 0xca, 0x5f, 0x8a, 0x90, 0x11, 0xef, 0x57, 0x64, 0xf6, 0xf5, 0x6c, 0xb6, - 0x5e, 0xfc, 0x36, 0x97, 0x5f, 0xfa, 0x36, 0x87, 0x5e, 0xc0, 0xe6, 0xb7, 0x13, 0x9f, 0xcd, 0xef, - 0x53, 0x41, 0x94, 0x79, 0x8b, 0x85, 0x4c, 0x96, 0x28, 0xfb, 0xe5, 0xb0, 0xb8, 0xf8, 0xe5, 0x50, - 0x86, 0x2a, 0xb7, 0x9e, 0xe3, 0x7b, 0xd4, 0xe6, 0x04, 0x75, 0x51, 0x9c, 0x66, 0x60, 0xbc, 0x3c, - 0x89, 0x73, 0xbb, 0xe3, 0x7b, 0x5d, 0x7f, 0x12, 0x58, 0x91, 0x3d, 0xcb, 0x78, 0x09, 0xce, 0xcb, - 0x82, 0x39, 0xac, 0x45, 0x18, 0x11, 0xe3, 0x8b, 0x2a, 0x5e, 0x80, 0xa2, 0x2f, 0xe1, 0x71, 0x0a, - 0x42, 0x5d, 0x32, 0xed, 0xc6, 0x93, 0xab, 0x1d, 0xf1, 0x20, 0xde, 0x83, 0xe5, 0x56, 0x72, 0xc2, - 0x53, 0x3f, 0xf8, 0x8e, 0x04, 0x36, 0xb5, 0x1b, 0x8f, 0xa3, 0x91, 0x54, 0x0a, 0xf4, 0xb2, 0x58, - 0x92, 0xa4, 0xad, 0x97, 0xc5, 0xd2, 0x96, 0x84, 0xe4, 0x3f, 0xcd, 0xc1, 0xee, 0xca, 0x31, 0x11, - 0xfa, 0x12, 0xea, 0x63, 0xdf, 0x9d, 0x0e, 0x7c, 0xef, 0x92, 0x72, 0x0b, 0xd3, 0xb0, 0x91, 0x13, - 0xd6, 0xac, 0x26, 0x89, 0xc3, 0x77, 0x3c, 0x86, 0x17, 0x89, 0xd0, 0xcf, 0xa1, 0x94, 0xe4, 0xf1, - 0xf8, 0x0d, 0xab, 0x2f, 0xe4, 0x7b, 0xde, 0x5f, 0x24, 0x24, 0x27, 0x25, 0x58, 0xe7, 0x5b, 0xfb, - 0x9e, 0xfc, 0x0c, 0xd6, 0x84, 0x48, 0x54, 0x85, 0xdc, 0x1b, 0xf1, 0x4a, 0xe5, 0x70, 0xee, 0x0d, - 0x5f, 0x45, 0x05, 0x45, 0x0e, 0xe7, 0xa6, 0x32, 0x83, 0x52, 0x22, 0xe6, 0xc3, 0x7d, 0x37, 0x92, - 0xff, 0xa5, 0x0e, 0xb5, 0x2b, 0x7a, 0x13, 0x5f, 0x18, 0x71, 0x51, 0x67, 0xe3, 0x99, 0xfc, 0x03, - 0xe3, 0x99, 0x43, 0xd8, 0x18, 0x3d, 0xd8, 0x12, 0x24, 0x68, 0xae, 0x61, 0xfc, 0xd3, 0x9c, 0x35, - 0xb0, 0x05, 0x51, 0xbd, 0x2c, 0xc1, 0xd1, 0xd7, 0xb0, 0x1e, 0x32, 0xc2, 0x26, 0x51, 0x71, 0x5b, - 0x9b, 0x65, 0x81, 0xac, 0x86, 0x47, 0x5d, 0x53, 0x31, 0x7b, 0xdd, 0x5f, 0x6c, 0x74, 0x54, 0xbd, - 0xa5, 0xe9, 0x67, 0x38, 0x66, 0x5a, 0x0c, 0xa3, 0xb5, 0xe5, 0x30, 0x7a, 0x0c, 0xeb, 0xce, 0xc0, - 0xf3, 0x83, 0x28, 0x69, 0x95, 0x70, 0xbc, 0x12, 0xd3, 0x53, 0x46, 0x82, 0x80, 0xda, 0x22, 0xff, - 0x94, 0x70, 0xb2, 0xe4, 0x21, 0x74, 0x13, 0xf8, 0xc4, 0xb6, 0x48, 0xc8, 0xc4, 0xcd, 0x2f, 0xe1, - 0x39, 0x80, 0x07, 0xf5, 0x78, 0x12, 0x0e, 0x45, 0xe3, 0xb7, 0x1d, 0x05, 0x75, 0xb2, 0x46, 0x2f, - 0x60, 0x57, 0x94, 0x89, 0x4d, 0x67, 0x3c, 0xa4, 0x01, 0xcf, 0x03, 0x71, 0x91, 0xb9, 0x23, 0xa2, - 0x62, 0x35, 0x92, 0xef, 0x37, 0x9a, 0xb8, 0xcc, 0x11, 0xfb, 0xed, 0x46, 0xfb, 0xcd, 0x00, 0x5c, - 0xcf, 0x49, 0xe0, 0x8a, 0xcf, 0x65, 0xd1, 0xf5, 0x4f, 0x96, 0x9c, 0x6f, 0x12, 0xb8, 0x71, 0x39, - 0xbe, 0x17, 0xf1, 0xcd, 0x00, 0xe8, 0x1c, 0xea, 0xb1, 0xb1, 0xbb, 0x6c, 0x72, 0x63, 0xf2, 0x6a, - 0xb5, 0x21, 0x2c, 0xfc, 0xf1, 0x7d, 0x16, 0xee, 0x9d, 0x88, 0xb1, 0xc9, 0x22, 0x1b, 0x2f, 0x43, - 0x2d, 0x97, 0x92, 0xe0, 0x82, 0x6b, 0xdf, 0xf8, 0x48, 0x6c, 0x94, 0x82, 0x44, 0xa7, 0x9e, 0xb1, - 0xcc, 0x1a, 0xce, 0xb0, 0xf1, 0x44, 0x64, 0x97, 0xd5, 0x48, 0x6e, 0x47, 0x7b, 0x12, 0x44, 0xa1, - 0xf5, 0x54, 0x24, 0x81, 0xd9, 0x9a, 0xfb, 0xcc, 0x25, 0x37, 0xd4, 0x0d, 0x1b, 0xfb, 0x51, 0xf7, - 0x1c, 0xad, 0xe4, 0x6f, 0x60, 0x3d, 0xba, 0x08, 0xa8, 0x0c, 0x6b, 0x2a, 0xc6, 0x06, 0x96, 0x1e, - 0xa1, 0x0a, 0x24, 0xb7, 0x42, 0xca, 0x89, 0xaf, 0x5f, 0x2a, 0xbe, 0x54, 0x71, 0x5f, 0x69, 0xbe, - 0x92, 0xf2, 0x48, 0x82, 0x6a, 0x4b, 0x6d, 0x6b, 0x97, 0x2a, 0xbe, 0x16, 0x90, 0x02, 0x2a, 0x41, - 0x11, 0xab, 0x4a, 0x2b, 0x1a, 0xe7, 0x74, 0xda, 0xca, 0xb5, 0xda, 0x92, 0xd6, 0xe4, 0x7f, 0x28, - 0x43, 0x29, 0xb1, 0x00, 0x97, 0xd8, 0xd3, 0x5f, 0xe9, 0xc6, 0x95, 0x2e, 0x3d, 0x4a, 0x0d, 0x17, - 0x85, 0xf4, 0xa6, 0xd6, 0x39, 0x57, 0xb1, 0xa9, 0x7e, 0x63, 0x4a, 0x79, 0x54, 0x87, 0xca, 0x69, - 0xcf, 0xec, 0x61, 0xb5, 0x83, 0x0d, 0xe3, 0x54, 0x2a, 0xa0, 0xa7, 0xb0, 0xa7, 0x1b, 0x7a, 0xff, - 0x52, 0xc5, 0xda, 0xa9, 0xa6, 0xb6, 0xfa, 0x26, 0x56, 0xf4, 0xae, 0x66, 0x6a, 0x86, 0x2e, 0x15, - 0xd1, 0x47, 0xb0, 0xdb, 0xd3, 0x57, 0xa1, 0xd6, 0xd0, 0x1e, 0x6c, 0xaf, 0x42, 0xac, 0xa3, 0x06, - 0xec, 0xcc, 0x10, 0x6d, 0xe3, 0xaa, 0x9f, 0xe8, 0xb5, 0x81, 0xb6, 0x60, 0x73, 0x86, 0x39, 0xd7, - 0xce, 0xce, 0xa5, 0x12, 0xda, 0x87, 0xc6, 0x0c, 0xa4, 0xe9, 0x9a, 0xa9, 0x29, 0xed, 0x19, 0x43, - 0x39, 0x23, 0x2a, 0xc1, 0xb6, 0x8d, 0x2b, 0x09, 0xb8, 0x62, 0x4b, 0x18, 0x21, 0xb2, 0x82, 0x9e, - 0xc1, 0x27, 0x2b, 0x14, 0xeb, 0x2b, 0xfa, 0x75, 0xdf, 0x34, 0xfa, 0x62, 0xc4, 0x5c, 0x7d, 0x0b, - 0x91, 0x90, 0xb4, 0x79, 0x1f, 0x11, 0xc7, 0x72, 0x2a, 0xae, 0x49, 0x0d, 0xfd, 0x14, 0x9e, 0x3d, - 0x44, 0x94, 0x1c, 0xa6, 0x8e, 0x3e, 0x05, 0x79, 0x15, 0x61, 0x4c, 0x90, 0x08, 0x94, 0xee, 0xa3, - 0xe3, 0xa6, 0x4c, 0xc9, 0xdb, 0xba, 0x4f, 0x3b, 0x7e, 0xc0, 0x44, 0x18, 0xba, 0x4f, 0xbb, 0x84, - 0x28, 0x91, 0xb6, 0xcd, 0x6f, 0xdd, 0x19, 0x36, 0x7a, 0x9d, 0x7e, 0x13, 0xab, 0x8a, 0xa9, 0x4a, - 0x3b, 0xdc, 0xf8, 0x31, 0xe4, 0x5c, 0xd1, 0xcf, 0xd4, 0x7e, 0xb7, 0x77, 0xf2, 0x52, 0x6d, 0x9a, - 0xd2, 0x2e, 0xda, 0x85, 0xad, 0x0c, 0x46, 0x6b, 0x1a, 0xba, 0xf4, 0x98, 0xfb, 0x32, 0x0b, 0xd6, - 0x2f, 0x35, 0x53, 0xed, 0xb7, 0x35, 0xfd, 0x95, 0xb4, 0xb7, 0x84, 0x6d, 0xa9, 0xdd, 0x26, 0xd6, - 0x3a, 0xe2, 0xd2, 0x34, 0xb8, 0x3f, 0x33, 0x58, 0xac, 0x76, 0x4d, 0xac, 0x35, 0x4d, 0xe9, 0xa3, - 0x25, 0x94, 0xa2, 0xeb, 0x46, 0x4f, 0x6f, 0xaa, 0xd2, 0x93, 0x39, 0xaa, 0xa3, 0x60, 0x53, 0x6b, - 0x6a, 0x1d, 0x45, 0x37, 0xfb, 0x4a, 0xab, 0x25, 0x3d, 0x9d, 0x6f, 0x97, 0x46, 0x61, 0xf5, 0xc2, - 0xb8, 0x54, 0xa5, 0x7d, 0xf4, 0x23, 0xf8, 0x68, 0x19, 0xdb, 0xc1, 0xc6, 0x85, 0x61, 0xaa, 0xd2, - 0x8f, 0x56, 0x33, 0xb7, 0x54, 0x81, 0xfd, 0x78, 0x35, 0x36, 0x3a, 0xac, 0xf4, 0x09, 0x8f, 0xa7, - 0x65, 0x6c, 0x5b, 0x55, 0x2e, 0x55, 0xe9, 0x80, 0xfb, 0x6c, 0x19, 0x19, 0x9f, 0x4b, 0xef, 0x5d, - 0x9c, 0xa8, 0x58, 0xfa, 0x31, 0xda, 0x01, 0xe9, 0x04, 0x1b, 0x4a, 0xab, 0xa9, 0x74, 0xcd, 0xc4, - 0x1d, 0x72, 0xf4, 0xd1, 0x3b, 0x81, 0xf2, 0x33, 0x3e, 0xcb, 0x12, 0xc6, 0x67, 0xfb, 0x89, 0xf0, - 0x9b, 0xaa, 0xab, 0x58, 0x6b, 0xf6, 0x75, 0xc3, 0xd4, 0x4e, 0xb5, 0xa6, 0x22, 0x8c, 0xfc, 0x5b, - 0x1c, 0xa3, 0x1e, 0xab, 0x7d, 0xad, 0xa5, 0xea, 0xa6, 0x66, 0x5e, 0xc7, 0x1b, 0xb7, 0xa4, 0x4f, - 0xb9, 0x70, 0x8e, 0x51, 0xf5, 0x26, 0xbe, 0xee, 0x98, 0x6a, 0x4b, 0xfa, 0x29, 0x77, 0x72, 0x53, - 0x69, 0xb7, 0xfb, 0x17, 0x5a, 0xb7, 0xab, 0xb6, 0xfa, 0x97, 0x86, 0xd6, 0x54, 0xa5, 0xc3, 0x25, - 0xb0, 0xd6, 0x52, 0x0d, 0xe9, 0x67, 0xdc, 0x26, 0x9a, 0xde, 0xd2, 0x2e, 0xb5, 0x56, 0x4f, 0x69, - 0x2f, 0x9c, 0xe8, 0xb3, 0xf9, 0xe5, 0x6a, 0xa9, 0x6d, 0xd5, 0x54, 0xa5, 0xdf, 0x96, 0xff, 0x29, - 0x07, 0x3b, 0x57, 0xf4, 0x46, 0xf7, 0x99, 0x73, 0xeb, 0x44, 0xf5, 0x44, 0x28, 0xde, 0xf5, 0xcc, - 0x08, 0x39, 0x1a, 0xa5, 0xcd, 0x01, 0xfc, 0xed, 0x9c, 0x78, 0x01, 0x25, 0x36, 0xef, 0xb0, 0x92, - 0x11, 0x54, 0x1a, 0x84, 0x8e, 0x00, 0x79, 0x5c, 0x68, 0xd2, 0xed, 0x44, 0x1f, 0xd4, 0xa3, 0x89, - 0xfe, 0x0a, 0x0c, 0xfa, 0x12, 0x6a, 0x19, 0x68, 0xd8, 0x58, 0x5b, 0x59, 0xb3, 0x2e, 0x50, 0xc9, - 0x7f, 0x97, 0x83, 0xbd, 0xb4, 0xf6, 0x2b, 0x6b, 0x93, 0xdc, 0x07, 0xaf, 0x4d, 0xde, 0xfe, 0xff, - 0x73, 0xff, 0x9c, 0x83, 0x3d, 0x93, 0xdc, 0xb8, 0x94, 0xfd, 0xdf, 0x1b, 0xff, 0x05, 0x6c, 0x66, - 0xa0, 0xf7, 0xd8, 0x3e, 0x4b, 0x24, 0xff, 0xfb, 0x1a, 0x54, 0xae, 0xe8, 0xcd, 0x29, 0x25, 0xbc, - 0xf9, 0x0c, 0xd1, 0xd7, 0xb0, 0x19, 0x3d, 0xb6, 0xad, 0xe8, 0xcb, 0x58, 0xfc, 0xcd, 0x68, 0x6f, - 0x5e, 0x34, 0x24, 0xa4, 0x47, 0xa7, 0x6d, 0xe5, 0x0c, 0x67, 0xa9, 0x91, 0x01, 0x8f, 0xef, 0x7c, - 0x67, 0xac, 0x79, 0xb6, 0x73, 0xe7, 0xd8, 0x13, 0xe2, 0x1a, 0x13, 0x36, 0xf0, 0x1d, 0x6f, 0x10, - 0x7f, 0xd5, 0xbb, 0x57, 0xce, 0x3d, 0x6c, 0xe8, 0x0b, 0x28, 0x89, 0xff, 0x38, 0x0c, 0x2f, 0xbf, - 0x10, 0x46, 0x7a, 0x40, 0xc4, 0x8c, 0x10, 0xfd, 0x01, 0xd4, 0x92, 0xdf, 0xcd, 0x80, 0x12, 0x46, - 0xe3, 0xe2, 0xf2, 0x5e, 0xd6, 0x05, 0x72, 0x2e, 0xc0, 0x1a, 0x12, 0x6f, 0x10, 0x8f, 0x35, 0x2f, - 0x8f, 0x45, 0x65, 0xf9, 0x90, 0x80, 0x2c, 0x39, 0xb7, 0xc3, 0xb7, 0x13, 0x1a, 0x4c, 0xbb, 0xa2, - 0x4c, 0xbd, 0xfc, 0x62, 0x3e, 0xa4, 0x5b, 0x7f, 0x8b, 0x1d, 0x56, 0xb3, 0x09, 0xbf, 0xa4, 0x3a, - 0xd6, 0x30, 0xfe, 0x1a, 0xf6, 0x80, 0x5f, 0xd2, 0xd4, 0xe8, 0x2b, 0x00, 0x21, 0xf8, 0xd2, 0x4b, - 0xfe, 0xb3, 0xe5, 0x01, 0xde, 0x14, 0xe9, 0xb2, 0x43, 0x35, 0xcf, 0xf2, 0x47, 0xdc, 0xa1, 0xe5, - 0xef, 0xe5, 0xd0, 0x84, 0x0d, 0xa9, 0xb0, 0xf5, 0xed, 0xc4, 0xb1, 0x5e, 0x63, 0x3a, 0x76, 0x1d, - 0x1a, 0xfe, 0x92, 0x6f, 0x25, 0x46, 0x42, 0x0f, 0xc8, 0x5a, 0xe6, 0x90, 0x7f, 0x01, 0x45, 0x8e, - 0x8a, 0xfe, 0xa7, 0xc9, 0xec, 0x6b, 0x17, 0x9d, 0xb6, 0x7a, 0xa1, 0xea, 0x3c, 0xdd, 0x3e, 0xe2, - 0x75, 0x59, 0x1a, 0x90, 0x43, 0x55, 0x28, 0x19, 0xe2, 0x75, 0x54, 0xda, 0x52, 0xfe, 0xbf, 0x03, - 0x00, 0x00, 0xff, 0xff, 0x11, 0x17, 0x9b, 0xf6, 0x8b, 0x2c, 0x00, 0x00, + proto.RegisterType((*TabletNotificationsInfo)(nil), "proto.TabletNotificationsInfo") + proto.RegisterType((*NotificationMessageInfo)(nil), "proto.NotificationMessageInfo") + proto.RegisterType((*WebNotificationsInfo)(nil), "proto.WebNotificationsInfo") + proto.RegisterType((*PaymentInfo)(nil), "proto.PaymentInfo") + proto.RegisterType((*WebMessageInfo)(nil), "proto.WebMessageInfo") +} + +func init() { proto.RegisterFile("def.proto", fileDescriptor_76fb0470a3b910d8) } + +var fileDescriptor_76fb0470a3b910d8 = []byte{ + // 5683 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3b, 0x4b, 0x6f, 0x23, 0x47, + 0x7a, 0xa2, 0x44, 0x49, 0xe4, 0x47, 0x3d, 0x5a, 0xa5, 0xd1, 0x88, 0xf3, 0xf0, 0x58, 0xee, 0xf1, + 0x7a, 0xb5, 0x13, 0x5b, 0x1e, 0xcb, 0x5e, 0x3f, 0x62, 0xef, 0xee, 0xb4, 0xc8, 0x92, 0xd4, 0x1e, + 0xb2, 0x9b, 0x2e, 0x36, 0xa5, 0x91, 0xb1, 0x08, 0xd1, 0xea, 0x2e, 0x49, 0x9d, 0xa1, 0xba, 0xe9, + 0xee, 0xe6, 0x78, 0xb4, 0x87, 0x04, 0xc8, 0x26, 0x48, 0xb0, 0xc8, 0x21, 0xa7, 0xbc, 0x80, 0x1c, + 0x02, 0x24, 0x7f, 0x21, 0x97, 0x0d, 0x90, 0x43, 0x10, 0x20, 0x40, 0x82, 0x0d, 0x90, 0x9c, 0x92, + 0x3f, 0x90, 0x6b, 0xce, 0xc9, 0x25, 0xa8, 0xea, 0x6a, 0xb2, 0x1f, 0xa4, 0x86, 0x33, 0xde, 0x47, + 0x90, 0x93, 0x58, 0xdf, 0xab, 0xab, 0xbe, 0x57, 0x7d, 0xf5, 0x55, 0x09, 0xca, 0x36, 0x3d, 0xdb, + 0xe9, 0xfb, 0x5e, 0xe8, 0xa1, 0x79, 0xfe, 0x47, 0x7e, 0x02, 0xd5, 0xc3, 0x2b, 0xdb, 0x37, 0x43, + 0x6a, 0x7f, 0x31, 0x70, 0xac, 0xa7, 0x84, 0xf6, 0x7b, 0x57, 0x7b, 0x83, 0x30, 0xf4, 0x5c, 0xb4, + 0x05, 0x15, 0xdb, 0x09, 0xfa, 0x3d, 0xf3, 0xca, 0xa0, 0xcf, 0xc3, 0x6a, 0x61, 0xab, 0xb0, 0x5d, + 0x26, 0x49, 0x10, 0xba, 0x0d, 0xa5, 0x53, 0x4e, 0xab, 0xda, 0xd5, 0x59, 0x8e, 0x1e, 0x8e, 0xe5, + 0x03, 0x58, 0x8b, 0x25, 0x77, 0x48, 0x63, 0x6a, 0x91, 0x12, 0xcc, 0x0d, 0xfc, 0x9e, 0x90, 0xc6, + 0x7e, 0xca, 0x4f, 0x00, 0xc5, 0x82, 0x6a, 0x66, 0xaf, 0x37, 0xb5, 0xa4, 0x2d, 0xa8, 0xf4, 0x2f, + 0x3c, 0x97, 0x6a, 0x83, 0xcb, 0x53, 0xea, 0x0b, 0x89, 0x49, 0x90, 0xfc, 0x5f, 0x05, 0xb8, 0x19, + 0x8b, 0x36, 0xe8, 0x65, 0xbf, 0x67, 0x86, 0x54, 0x88, 0x6f, 0x82, 0xf4, 0x55, 0x46, 0x1f, 0xfc, + 0x1b, 0x95, 0xdd, 0xd7, 0x23, 0x05, 0xee, 0x4c, 0x52, 0xdb, 0xe1, 0x0c, 0xc9, 0xb1, 0xa2, 0x8f, + 0xa1, 0x3c, 0xf0, 0xc5, 0xd4, 0xf9, 0x4c, 0x2a, 0xbb, 0xd5, 0x8c, 0x9c, 0xa1, 0x92, 0x0e, 0x67, + 0xc8, 0x88, 0x18, 0x7d, 0x0a, 0x60, 0x0d, 0x57, 0x5d, 0x9d, 0xe3, 0xac, 0xb7, 0x32, 0xac, 0x23, + 0xb5, 0x1c, 0xce, 0x90, 0x04, 0xf9, 0x9e, 0x04, 0x2b, 0x17, 0x82, 0x26, 0x82, 0xc8, 0x7d, 0x90, + 0x72, 0x76, 0x7e, 0x94, 0x57, 0x65, 0x65, 0xf7, 0x5e, 0xfc, 0x0d, 0xe7, 0xfc, 0xa2, 0x77, 0xd5, + 0x0e, 0xfd, 0x81, 0x15, 0x0e, 0x7c, 0x6a, 0x37, 0x69, 0x10, 0x98, 0xe7, 0x74, 0x7a, 0x3f, 0xf8, + 0x6d, 0x28, 0x8f, 0xec, 0xff, 0xcd, 0x3f, 0xf5, 0x70, 0xe4, 0x1f, 0x2f, 0xe6, 0xe4, 0xfe, 0xf3, + 0x47, 0x05, 0x80, 0x84, 0xe3, 0x7c, 0xf3, 0x29, 0x3c, 0xca, 0x3b, 0xd6, 0x14, 0x12, 0x92, 0x8e, + 0xf7, 0x8f, 0x05, 0x58, 0xc9, 0x38, 0x1c, 0x9e, 0xe8, 0x70, 0x9b, 0x42, 0xf2, 0x54, 0x8e, 0xf6, + 0x30, 0xef, 0x68, 0x92, 0xe0, 0x9f, 0xe0, 0x60, 0xef, 0x8f, 0x71, 0xb0, 0x35, 0xc1, 0x32, 0xd1, + 0xb1, 0x4a, 0xb0, 0x10, 0x19, 0x58, 0x0e, 0xa1, 0xd4, 0xf0, 0x2c, 0x33, 0x74, 0x3c, 0x17, 0x6d, + 0xc3, 0xaa, 0x4d, 0xcf, 0x7d, 0x4a, 0x83, 0x86, 0x19, 0x3a, 0xe1, 0xc0, 0xa6, 0x7c, 0x09, 0x05, + 0x92, 0x05, 0xa3, 0x07, 0x20, 0xc5, 0x20, 0xcf, 0x3d, 0x8f, 0x48, 0x67, 0x39, 0x69, 0x0e, 0x8e, + 0x10, 0x14, 0x5d, 0xf3, 0x92, 0xf2, 0xa9, 0x95, 0x09, 0xff, 0x2d, 0xdf, 0x87, 0xf9, 0x96, 0xe7, + 0xb8, 0x21, 0x5a, 0x82, 0xc2, 0x73, 0x8e, 0x29, 0x90, 0xc2, 0x73, 0x36, 0xba, 0xaa, 0x16, 0xa3, + 0xd1, 0x95, 0xfc, 0x07, 0x05, 0xd8, 0x50, 0xdd, 0x90, 0xfa, 0xa6, 0x15, 0x3a, 0xcf, 0xa8, 0xe2, + 0xba, 0x5e, 0x18, 0x4d, 0xf4, 0x43, 0x58, 0xed, 0x7b, 0xbd, 0xab, 0x73, 0xcf, 0x3d, 0xa2, 0x7e, + 0xe8, 0x58, 0x34, 0xa8, 0x16, 0xb6, 0xe6, 0xb6, 0x2b, 0xbb, 0x4b, 0x62, 0xe1, 0x5c, 0x38, 0xc9, + 0x12, 0xa1, 0x77, 0xa0, 0xd4, 0x13, 0x8b, 0x15, 0xca, 0x5d, 0x15, 0x0c, 0xb1, 0x0e, 0x0e, 0x67, + 0xc8, 0x90, 0x84, 0x69, 0x89, 0x7d, 0xda, 0x73, 0xe5, 0xff, 0x2e, 0x40, 0x45, 0xb1, 0xb9, 0xa1, + 0x54, 0xf7, 0xcc, 0x43, 0x6f, 0xc1, 0x8a, 0x69, 0x3f, 0x63, 0x62, 0x03, 0xea, 0x6b, 0x6c, 0x75, + 0x51, 0x02, 0xcb, 0x40, 0xd1, 0x21, 0x94, 0x2f, 0xa9, 0xed, 0x98, 0xc6, 0x55, 0x3f, 0x52, 0xd0, + 0xca, 0xee, 0x03, 0xf1, 0xc5, 0x84, 0xb8, 0x1d, 0xa5, 0xde, 0x25, 0xb8, 0xd5, 0x38, 0xe9, 0xaa, + 0xda, 0xbe, 0xde, 0x6d, 0xe2, 0xba, 0xaa, 0x18, 0x27, 0x2d, 0x4c, 0x46, 0xcc, 0xe8, 0x4d, 0x58, + 0xfe, 0xcd, 0x3e, 0x3d, 0x37, 0x2e, 0x06, 0x97, 0xa7, 0xae, 0xe9, 0xf4, 0xaa, 0xd2, 0x56, 0x61, + 0x7b, 0x89, 0xa4, 0x81, 0xa8, 0x0a, 0x8b, 0x96, 0xd9, 0xe7, 0xeb, 0x5b, 0xe3, 0x13, 0x8a, 0x87, + 0xf2, 0x27, 0xb0, 0x39, 0xe1, 0x2b, 0xa8, 0x04, 0x45, 0x4d, 0xd7, 0xb0, 0x34, 0x83, 0xca, 0x30, + 0xaf, 0x36, 0x95, 0x03, 0x2c, 0x15, 0xd8, 0xcf, 0x23, 0xb5, 0x8e, 0x75, 0x69, 0x56, 0xfe, 0xa7, + 0x39, 0xa8, 0xd4, 0x3c, 0x37, 0xa4, 0xcf, 0x43, 0xbe, 0xf8, 0xdb, 0x50, 0x0a, 0x42, 0xd3, 0xfd, + 0x91, 0xa9, 0xda, 0x62, 0xd9, 0xc3, 0x31, 0x4f, 0xda, 0x26, 0xd3, 0xb6, 0xd3, 0x37, 0xdd, 0x70, + 0x98, 0xb4, 0x47, 0x20, 0xf4, 0x01, 0x2c, 0x7f, 0x35, 0xf0, 0xc2, 0x61, 0x64, 0x09, 0x97, 0x5d, + 0x11, 0x6a, 0x89, 0xe3, 0x2d, 0x4d, 0x84, 0xee, 0x42, 0xd9, 0xa7, 0x97, 0x5e, 0x48, 0x3f, 0x77, + 0x6c, 0xee, 0x21, 0x65, 0x32, 0x02, 0x20, 0x19, 0x96, 0x2e, 0xa9, 0xcb, 0xd6, 0x49, 0x6d, 0x46, + 0xb0, 0xba, 0x35, 0xb7, 0x5d, 0x26, 0x29, 0x18, 0x73, 0x59, 0xcb, 0x73, 0x9f, 0x51, 0x3f, 0x70, + 0x3c, 0xb7, 0xed, 0x0d, 0x7c, 0x8b, 0x56, 0x11, 0x17, 0x94, 0x83, 0x33, 0xf3, 0x8e, 0x60, 0x75, + 0x33, 0x34, 0xab, 0xeb, 0x5c, 0xdb, 0x19, 0x28, 0xfa, 0x10, 0x6e, 0x26, 0x20, 0xb4, 0x67, 0x5e, + 0xb5, 0xa9, 0xe5, 0xb9, 0x76, 0x50, 0xbd, 0xb1, 0x55, 0xd8, 0x5e, 0x26, 0x13, 0xb0, 0x2c, 0xd0, + 0xce, 0x3c, 0xff, 0x6b, 0xd3, 0xb7, 0x1d, 0xf7, 0xbc, 0x6d, 0x79, 0x3e, 0xad, 0x6e, 0x70, 0x86, + 0x2c, 0x98, 0xe9, 0xd3, 0x09, 0xf6, 0x23, 0x20, 0xb5, 0xab, 0x37, 0xb7, 0x0a, 0xdb, 0x25, 0x92, + 0x04, 0xa1, 0x1d, 0x28, 0x45, 0xaa, 0x52, 0xec, 0xea, 0x26, 0x57, 0x25, 0xca, 0x7b, 0x18, 0x19, + 0xd2, 0xc8, 0x3f, 0x29, 0xc0, 0xdd, 0x36, 0x75, 0x6d, 0xea, 0x3f, 0xa6, 0x57, 0x75, 0x27, 0x08, + 0x7d, 0xe7, 0x74, 0xc0, 0xd4, 0x14, 0xab, 0xba, 0x0a, 0x8b, 0xe7, 0xbe, 0x37, 0xe8, 0x0f, 0xad, + 0x1b, 0x0f, 0x51, 0x0b, 0xee, 0x9b, 0xcf, 0xbd, 0x9e, 0x17, 0xf6, 0xae, 0x13, 0xc0, 0x8d, 0xbe, + 0x44, 0xa6, 0x21, 0x95, 0x7f, 0x32, 0x0f, 0x4b, 0xea, 0xa5, 0x79, 0x4e, 0xe3, 0x8f, 0x8b, 0xf2, + 0xa1, 0x30, 0x2c, 0x1f, 0x98, 0xb7, 0x5d, 0x3a, 0x97, 0x34, 0x8c, 0x23, 0xa8, 0x4c, 0x86, 0xe3, + 0xa4, 0xbb, 0xcf, 0xa5, 0xdc, 0x1d, 0xdd, 0x03, 0x38, 0x73, 0x7a, 0xb4, 0x7d, 0x61, 0xee, 0x7e, + 0xf7, 0x43, 0xee, 0x30, 0x4b, 0x24, 0x01, 0x89, 0xf1, 0x0d, 0xea, 0x9e, 0x87, 0x17, 0xd5, 0xf9, + 0xad, 0xc2, 0x76, 0x91, 0x24, 0x20, 0xe8, 0x26, 0x2c, 0x5c, 0x50, 0xe7, 0xfc, 0x22, 0xac, 0x2e, + 0x70, 0xc3, 0x88, 0x11, 0xba, 0x01, 0xf3, 0x5f, 0x3b, 0x76, 0x78, 0x51, 0x5d, 0xe4, 0xe0, 0x68, + 0xc0, 0xe7, 0xc8, 0x22, 0xf5, 0x31, 0xbd, 0xaa, 0x96, 0xf8, 0xb7, 0x86, 0x63, 0x16, 0xb8, 0x4c, + 0x2e, 0x76, 0x2d, 0x31, 0x99, 0x72, 0x14, 0xb8, 0x29, 0x20, 0x32, 0xe0, 0xa6, 0x33, 0x2e, 0xd5, + 0x05, 0x55, 0xe0, 0x89, 0xed, 0xae, 0xb0, 0xe9, 0xd8, 0x7c, 0x48, 0x26, 0xf0, 0xb2, 0x55, 0xda, + 0x8e, 0x4f, 0xad, 0xb0, 0x65, 0x86, 0x17, 0xd5, 0x0a, 0x57, 0x51, 0x02, 0x82, 0xde, 0x86, 0xb5, + 0x78, 0x9e, 0x86, 0x73, 0x49, 0x83, 0xd0, 0xbc, 0xec, 0x57, 0x97, 0xb6, 0x0a, 0xdb, 0x73, 0x24, + 0x8f, 0x98, 0x32, 0x05, 0x7d, 0x00, 0x15, 0x6b, 0x94, 0x2c, 0x78, 0x1a, 0x1a, 0xb9, 0x64, 0x22, + 0x8d, 0x90, 0x24, 0x19, 0x8b, 0xce, 0x33, 0xc7, 0x0f, 0xc2, 0xb6, 0x65, 0xba, 0x6d, 0xc7, 0xa6, + 0x96, 0xe9, 0xf3, 0xe8, 0x5c, 0x22, 0x39, 0x38, 0x8f, 0x9e, 0x18, 0x26, 0x0c, 0xb8, 0x2e, 0xa2, + 0x27, 0x0d, 0x66, 0xeb, 0xa3, 0xcf, 0xfb, 0xd4, 0x77, 0x58, 0x26, 0x38, 0x10, 0x4e, 0x1d, 0x85, + 0x66, 0x1e, 0x21, 0xff, 0x16, 0xac, 0xb0, 0xf9, 0x99, 0x56, 0x18, 0x7b, 0xe3, 0xa8, 0x48, 0x4d, + 0xe4, 0xf8, 0x24, 0x88, 0xf9, 0xc3, 0x33, 0xcb, 0xf4, 0x6d, 0xae, 0x8b, 0x32, 0x89, 0x06, 0xaf, + 0xa6, 0x03, 0xf9, 0xc7, 0xb3, 0xb0, 0x1a, 0xef, 0x43, 0xf1, 0x0c, 0x7e, 0x69, 0x5b, 0x32, 0x8b, + 0x25, 0xd3, 0xb6, 0x7d, 0x1a, 0x04, 0x22, 0xbf, 0xc6, 0xc3, 0x38, 0x26, 0xe7, 0x47, 0x31, 0xf9, + 0x0b, 0xf4, 0x04, 0xf9, 0xef, 0xe6, 0x61, 0x1d, 0x3f, 0x0f, 0x59, 0xd6, 0xb0, 0x59, 0xb9, 0x16, + 0x6b, 0x02, 0x41, 0x31, 0x1c, 0x9d, 0x14, 0xf8, 0x6f, 0x66, 0x9f, 0x4b, 0x33, 0xb4, 0x2e, 0x22, + 0xca, 0x78, 0xb7, 0x49, 0x80, 0xd8, 0xce, 0x60, 0x99, 0xae, 0xe7, 0x3a, 0x96, 0xd9, 0xeb, 0xf8, + 0x3d, 0xb1, 0xb4, 0x14, 0x8c, 0x5b, 0x99, 0x06, 0x96, 0xef, 0x44, 0x99, 0x64, 0x5e, 0x58, 0x79, + 0x04, 0x62, 0x56, 0x0e, 0x9d, 0xb0, 0x47, 0x79, 0x32, 0x28, 0x93, 0x68, 0xc0, 0xa2, 0x9e, 0xcd, + 0x42, 0xf1, 0xcf, 0x4f, 0x79, 0x3a, 0x58, 0x24, 0xc3, 0x31, 0xdb, 0x41, 0x4e, 0x4d, 0xeb, 0x29, + 0xcb, 0x9c, 0xae, 0xcd, 0x29, 0x4a, 0x9c, 0x22, 0x03, 0x45, 0x4d, 0x28, 0x9e, 0x79, 0x6e, 0xc8, + 0x93, 0xc2, 0xca, 0xee, 0x27, 0x42, 0x39, 0x63, 0xd6, 0xbf, 0x83, 0x9f, 0x18, 0x58, 0xab, 0xe3, + 0x7a, 0xd7, 0xc0, 0x4f, 0x8c, 0x6e, 0x13, 0xb7, 0xdb, 0xca, 0x01, 0xee, 0xee, 0xeb, 0x9a, 0xc1, + 0x4b, 0x05, 0x2e, 0x06, 0xfd, 0x06, 0x54, 0xfa, 0x3e, 0x7d, 0xe6, 0xd0, 0xaf, 0x79, 0xc5, 0x01, + 0x5c, 0xea, 0x67, 0x2f, 0x2d, 0xb5, 0x45, 0xf0, 0x91, 0x8a, 0x8f, 0xb9, 0xe0, 0xa4, 0xc0, 0x5f, + 0xa8, 0xe1, 0xff, 0xb0, 0x00, 0xf7, 0xae, 0x5f, 0x24, 0x5a, 0x01, 0x68, 0x2b, 0x5a, 0xbb, 0xdb, + 0xc6, 0x44, 0xdd, 0x8f, 0xea, 0x95, 0xe8, 0x67, 0x01, 0xad, 0xc3, 0xaa, 0xa6, 0x13, 0xb5, 0xa6, + 0x68, 0x5d, 0x82, 0x0f, 0x3a, 0x0d, 0x85, 0x48, 0xb3, 0x68, 0x0d, 0x96, 0xf7, 0xc8, 0x89, 0x56, + 0x57, 0xb4, 0xee, 0x31, 0x51, 0x0d, 0x2c, 0xcd, 0xa1, 0x0d, 0x58, 0xdb, 0xc3, 0x7b, 0x4a, 0x5b, + 0xc3, 0x1d, 0x3c, 0xa4, 0x2c, 0x22, 0x09, 0x96, 0xf4, 0xf6, 0xb1, 0xd2, 0xa8, 0x77, 0x0f, 0xb1, + 0x72, 0x74, 0x22, 0xcd, 0xcb, 0x1f, 0xc3, 0x1b, 0x2f, 0x54, 0x4e, 0xba, 0x74, 0x8a, 0xea, 0xa5, + 0x82, 0xfc, 0xd3, 0x39, 0x58, 0xad, 0x7b, 0xd6, 0x80, 0xe5, 0x96, 0x57, 0xdb, 0xd7, 0x86, 0xfe, + 0x36, 0x97, 0xf4, 0xb7, 0x6f, 0xba, 0xa7, 0xdd, 0x85, 0x72, 0xdf, 0x3c, 0xa7, 0x35, 0x6f, 0xe0, + 0xc6, 0xdb, 0xda, 0x08, 0x90, 0xda, 0xc3, 0x16, 0x33, 0x7b, 0xd8, 0x6d, 0x28, 0x31, 0x39, 0x3c, + 0x09, 0x96, 0xa2, 0xb9, 0xc6, 0xe3, 0x29, 0xf7, 0xb7, 0xf4, 0x4e, 0x04, 0xd3, 0xed, 0x44, 0x95, + 0x5f, 0xc1, 0x4e, 0x24, 0xff, 0xf9, 0x1c, 0x2c, 0x29, 0x03, 0xdb, 0xf1, 0x5e, 0xcd, 0x74, 0x69, + 0x23, 0xcd, 0xbd, 0xc0, 0x48, 0xc5, 0x9c, 0x91, 0xaa, 0xb0, 0x18, 0x88, 0x1a, 0x72, 0x9e, 0x9b, + 0x28, 0x1e, 0xb2, 0x79, 0xf4, 0xc3, 0xc8, 0x70, 0x25, 0xc2, 0x7e, 0x5e, 0x6b, 0xb2, 0x9c, 0x59, + 0x4a, 0x2f, 0x36, 0x4b, 0x79, 0x3a, 0xb3, 0xc0, 0x24, 0xb3, 0xbc, 0xf2, 0xd6, 0x1f, 0x84, 0x3e, + 0x35, 0x2f, 0x59, 0xd1, 0x9b, 0xde, 0xfa, 0xb3, 0x70, 0xf9, 0x77, 0x16, 0x60, 0xe9, 0xc8, 0xb1, + 0xe9, 0xff, 0x39, 0xe3, 0x24, 0x4d, 0xb1, 0x90, 0x31, 0x45, 0xa2, 0x4a, 0x5d, 0x4c, 0x57, 0xa9, + 0x5b, 0x50, 0x39, 0x77, 0xce, 0x5a, 0x3d, 0xf3, 0x8a, 0x6d, 0x0b, 0xdc, 0x44, 0x25, 0x92, 0x04, + 0x25, 0xea, 0xd0, 0xf2, 0xf8, 0x3a, 0x14, 0x92, 0x75, 0x68, 0xce, 0xe8, 0x95, 0x97, 0xab, 0x35, + 0x97, 0x7e, 0x6e, 0xb5, 0xe6, 0xf2, 0x74, 0xae, 0xb4, 0xf2, 0x2b, 0xaa, 0x35, 0xa7, 0x75, 0x38, + 0xd4, 0x81, 0x95, 0x73, 0xe7, 0x4c, 0x09, 0x87, 0x27, 0x17, 0x5e, 0x6a, 0xae, 0xec, 0xbe, 0x23, + 0x3e, 0x92, 0x74, 0xc6, 0x1d, 0xbe, 0x01, 0x0c, 0xf7, 0x09, 0xc5, 0x30, 0x88, 0xba, 0xd7, 0x31, + 0x54, 0x5d, 0x23, 0x19, 0x21, 0xf2, 0xa7, 0x70, 0x6b, 0x22, 0x71, 0x7a, 0x53, 0x39, 0x50, 0x5b, + 0x87, 0x27, 0xd1, 0x79, 0xdc, 0xc0, 0x9a, 0x4e, 0xa4, 0x59, 0x79, 0x0b, 0x8a, 0x35, 0xb3, 0x27, + 0x0e, 0xfb, 0xbd, 0x1e, 0x73, 0xb9, 0x02, 0x9f, 0x7e, 0x3c, 0x94, 0x3f, 0x86, 0x62, 0xed, 0xc2, + 0x0c, 0xa7, 0xa8, 0x5f, 0x57, 0x60, 0xd6, 0x89, 0x7b, 0x7e, 0xb3, 0x8e, 0x2d, 0xff, 0x45, 0x01, + 0x56, 0x5b, 0x6c, 0x65, 0x96, 0xd7, 0x8b, 0x63, 0xec, 0x3e, 0xcc, 0x3d, 0x15, 0xdf, 0x18, 0xb5, + 0x96, 0x04, 0xf2, 0x31, 0xbd, 0x22, 0x0c, 0x8b, 0x1e, 0x41, 0x31, 0x1c, 0x35, 0x39, 0xde, 0x8e, + 0xfb, 0x30, 0x69, 0x51, 0x3b, 0x2d, 0xa2, 0x1b, 0x7a, 0x4d, 0x6f, 0x0c, 0xd7, 0x1d, 0xd5, 0x2e, + 0x8c, 0x53, 0xbe, 0x0f, 0x1b, 0x63, 0xd1, 0x08, 0x60, 0x81, 0xe0, 0x23, 0xfd, 0x31, 0x96, 0x66, + 0xe4, 0xbf, 0x2c, 0xc0, 0x0d, 0x51, 0xa4, 0x07, 0x8a, 0xef, 0x9b, 0x57, 0xd3, 0x97, 0xea, 0xef, + 0x41, 0xc9, 0x12, 0x9c, 0xd5, 0x59, 0xee, 0xe8, 0x1b, 0x09, 0x4f, 0x19, 0x55, 0xfd, 0x64, 0x48, + 0xf6, 0x8a, 0x3b, 0xc8, 0x17, 0x50, 0x39, 0x6c, 0x37, 0x6b, 0x03, 0xdf, 0xa7, 0xae, 0x75, 0xc5, + 0x4b, 0x50, 0xf1, 0xbb, 0xe6, 0xd9, 0xf1, 0xd4, 0x52, 0x30, 0x16, 0x3c, 0xe6, 0x25, 0xdb, 0x86, + 0xdf, 0x7b, 0xf8, 0xf0, 0x21, 0xd7, 0xe1, 0x1c, 0x49, 0x40, 0xe4, 0x3f, 0x2b, 0xc2, 0x8d, 0xc3, + 0x76, 0xb3, 0x6e, 0x86, 0x94, 0xc5, 0x48, 0xcd, 0xbb, 0xec, 0x7b, 0x2e, 0x75, 0x43, 0xd4, 0x85, + 0xb2, 0x6d, 0x5e, 0xe9, 0x67, 0xc7, 0x94, 0x3e, 0xe5, 0x92, 0x57, 0x76, 0x95, 0xb8, 0x93, 0x39, + 0x86, 0x9e, 0x01, 0xbb, 0x75, 0xc5, 0xc0, 0x5d, 0x43, 0x6d, 0xe2, 0x6e, 0x4d, 0x6f, 0xb6, 0x74, + 0x0d, 0x6b, 0x46, 0xb7, 0xae, 0x9c, 0xe8, 0xfb, 0xc7, 0x18, 0x3f, 0x8e, 0xfa, 0x4e, 0x43, 0x99, + 0xac, 0xec, 0xbe, 0xa2, 0x66, 0xd4, 0x25, 0x5d, 0x26, 0xfc, 0x37, 0x4b, 0x3e, 0x97, 0x9e, 0x1b, + 0x5e, 0xf0, 0x0c, 0xba, 0x4c, 0xa2, 0x01, 0x4f, 0x00, 0x8c, 0xad, 0xc9, 0x51, 0x45, 0x8e, 0x4a, + 0x40, 0x98, 0xa4, 0x0b, 0x6f, 0xe0, 0x8b, 0xcc, 0xc9, 0x7f, 0xb3, 0xf4, 0x76, 0xe9, 0xb8, 0x83, + 0x90, 0xc6, 0xc7, 0xec, 0x68, 0x84, 0x7e, 0x08, 0x25, 0xcb, 0xec, 0x51, 0xd7, 0x36, 0x7d, 0x9e, + 0x33, 0x57, 0x76, 0x1f, 0xbd, 0xca, 0xaa, 0x6a, 0x4a, 0x03, 0x6b, 0x75, 0x85, 0xf0, 0x45, 0x0d, + 0x25, 0xca, 0x3f, 0x2e, 0xc0, 0xb7, 0xa6, 0x52, 0x04, 0x73, 0xbd, 0xa6, 0xae, 0xd5, 0x15, 0x16, + 0x81, 0x15, 0x58, 0x34, 0x3a, 0xb8, 0xcd, 0x06, 0xb3, 0x68, 0x19, 0xca, 0xc7, 0xb8, 0xae, 0x45, + 0xc3, 0x39, 0xb4, 0x04, 0x25, 0xe3, 0xb0, 0x43, 0xf8, 0xa8, 0xc8, 0xb8, 0xf6, 0x89, 0xca, 0x7e, + 0xcf, 0x33, 0x4c, 0x5b, 0x31, 0x3a, 0x84, 0x8d, 0x16, 0x18, 0xa6, 0xdd, 0xe1, 0xf2, 0x16, 0xe5, + 0x7d, 0x78, 0x73, 0x9a, 0x79, 0xb3, 0x4f, 0x1d, 0x10, 0x7c, 0xa0, 0x13, 0x55, 0xd1, 0xa4, 0x02, + 0x5a, 0x85, 0x4a, 0x5b, 0x6f, 0x28, 0xa4, 0x7b, 0xa8, 0x7e, 0x4e, 0x54, 0x69, 0x56, 0xfe, 0x20, + 0xe5, 0x1a, 0x1d, 0xd7, 0x79, 0x8e, 0xfb, 0x9e, 0xc5, 0xcb, 0xbd, 0x70, 0x98, 0x68, 0x0b, 0xdc, + 0xa5, 0x46, 0x00, 0xf9, 0x4f, 0x0b, 0xdc, 0x4b, 0x63, 0x36, 0xf4, 0x29, 0x94, 0xad, 0x58, 0x9f, + 0x22, 0xd4, 0xef, 0x5c, 0xa3, 0xf2, 0xc3, 0x19, 0x32, 0xa2, 0x67, 0xcc, 0x83, 0xf8, 0xbb, 0xa2, + 0xb1, 0x3a, 0x86, 0x79, 0x38, 0x35, 0xde, 0xc0, 0x8e, 0x07, 0x7b, 0xab, 0xb0, 0x6c, 0x9b, 0x21, + 0x65, 0x53, 0xd3, 0x5d, 0xea, 0x9d, 0xc9, 0x7f, 0x5d, 0x80, 0xcd, 0xc3, 0x76, 0x93, 0x1d, 0x85, + 0x7b, 0xce, 0x8f, 0xcc, 0xd3, 0x1e, 0x6d, 0x99, 0xbe, 0x79, 0x49, 0x43, 0xea, 0xb3, 0x9c, 0x67, + 0xd3, 0x33, 0x73, 0xd0, 0x8b, 0x0f, 0x82, 0xf1, 0x10, 0x3d, 0x84, 0x52, 0x1c, 0x52, 0x62, 0x0a, + 0x68, 0x34, 0x85, 0x38, 0x18, 0x0f, 0x67, 0xc8, 0x90, 0x8a, 0x71, 0xd8, 0x62, 0x6a, 0xa2, 0x09, + 0x89, 0xf2, 0x93, 0x66, 0x1c, 0x31, 0xd5, 0xde, 0x12, 0x40, 0x9f, 0x4d, 0x25, 0x9a, 0xe7, 0xbf, + 0xcd, 0xc2, 0xe6, 0x84, 0xeb, 0x02, 0xa6, 0x7c, 0x76, 0xaa, 0x0e, 0xfa, 0xa6, 0x15, 0x47, 0xfc, + 0x08, 0xc0, 0x92, 0x15, 0xed, 0x51, 0x76, 0x3e, 0xe0, 0xc9, 0x4a, 0x9c, 0x5b, 0x13, 0x20, 0x16, + 0x18, 0xfc, 0x4b, 0x41, 0x75, 0x8e, 0xf7, 0x32, 0xc5, 0x88, 0x57, 0x28, 0x66, 0xaf, 0xc7, 0x6a, + 0x83, 0xc6, 0xb9, 0x38, 0xcd, 0x26, 0x20, 0x29, 0xbc, 0x25, 0x8e, 0xb2, 0x09, 0x08, 0x6a, 0xc0, + 0x5a, 0x2f, 0xa3, 0xd7, 0xa0, 0xba, 0xc0, 0xb3, 0xe1, 0xbd, 0xd1, 0xe2, 0xc7, 0xa9, 0x9e, 0xe4, + 0x19, 0xa3, 0xee, 0x44, 0x48, 0xfd, 0x4b, 0xc7, 0x75, 0x82, 0xd0, 0xb1, 0x1a, 0xe7, 0xa2, 0xc2, + 0xc9, 0x82, 0xf3, 0x94, 0x96, 0x38, 0x48, 0x64, 0xc1, 0xf2, 0xef, 0x17, 0x00, 0xb5, 0xa9, 0x6b, + 0xb7, 0xcc, 0xab, 0xe4, 0x01, 0xea, 0x21, 0x54, 0x5c, 0x2f, 0xa4, 0xc9, 0x1e, 0x63, 0xbe, 0x69, + 0x9c, 0x24, 0x41, 0x3f, 0x80, 0x35, 0x9f, 0x7e, 0x35, 0xa0, 0x41, 0x38, 0xda, 0xab, 0x32, 0xf7, + 0x23, 0x89, 0x4d, 0x2c, 0x4f, 0x2b, 0xff, 0x67, 0x01, 0x36, 0x48, 0x04, 0xbd, 0x7e, 0x32, 0xc5, + 0x17, 0x4f, 0xe6, 0x21, 0xac, 0x27, 0x13, 0xbe, 0x1a, 0x78, 0x1f, 0xec, 0xbe, 0xf7, 0x91, 0xf0, + 0x8c, 0x71, 0xa8, 0x31, 0x5b, 0x42, 0x31, 0xb9, 0x25, 0x30, 0x1f, 0x12, 0x53, 0xde, 0xf7, 0xbd, + 0x4b, 0x71, 0x52, 0x4c, 0x82, 0x98, 0xce, 0xe9, 0xf3, 0xbe, 0xe3, 0x27, 0xea, 0xad, 0x79, 0x9e, + 0x06, 0xb2, 0x60, 0xb9, 0x06, 0x77, 0xeb, 0xd4, 0xea, 0x39, 0x2e, 0x15, 0x0b, 0x25, 0x29, 0x65, + 0x4c, 0x55, 0x01, 0xc8, 0x7b, 0x70, 0xa7, 0x66, 0xba, 0x16, 0xed, 0x7d, 0x03, 0x19, 0x7f, 0x3f, + 0x07, 0xeb, 0x0d, 0xe7, 0x19, 0xfd, 0xe5, 0xb4, 0xc1, 0x1e, 0x80, 0x64, 0x5a, 0xd6, 0xc0, 0x37, + 0xad, 0x2b, 0xd5, 0x6d, 0x32, 0x3f, 0x0c, 0xc4, 0x96, 0x96, 0x83, 0x33, 0x73, 0x04, 0x7d, 0x4a, + 0x6d, 0xd5, 0x6d, 0xf6, 0xa3, 0x0e, 0xd9, 0x2c, 0x49, 0x40, 0x50, 0x03, 0xde, 0x10, 0xf2, 0x6b, + 0x3d, 0xcf, 0x7a, 0xfa, 0xb5, 0x13, 0x50, 0x66, 0x84, 0xa6, 0x79, 0xee, 0xd2, 0xd0, 0xb1, 0x34, + 0xcf, 0x17, 0x67, 0xf2, 0x65, 0xf2, 0x62, 0xc2, 0xe4, 0x91, 0x61, 0x21, 0x7d, 0x64, 0x78, 0x0b, + 0x56, 0x02, 0xa6, 0x58, 0xd7, 0x8a, 0xef, 0x2f, 0x17, 0xb9, 0x4d, 0x33, 0x50, 0x36, 0x5f, 0x9e, + 0x51, 0xcf, 0xce, 0x02, 0x1a, 0xf2, 0x58, 0x5b, 0x26, 0x09, 0xc8, 0x2f, 0xf4, 0x08, 0xfd, 0xc7, + 0x73, 0xb0, 0xd2, 0x0e, 0x1d, 0xeb, 0x29, 0xf5, 0x27, 0x9f, 0xd3, 0xd2, 0x67, 0xb1, 0xd9, 0xdc, + 0x59, 0x2c, 0x77, 0x96, 0x99, 0x1b, 0x77, 0x96, 0x49, 0x9e, 0xbb, 0x8a, 0xf9, 0xae, 0xc5, 0xf0, + 0x24, 0x38, 0x9f, 0x39, 0x09, 0xbe, 0x5c, 0x7f, 0x3f, 0x7d, 0xb6, 0x29, 0xe5, 0xce, 0x36, 0xe9, + 0x73, 0x63, 0x39, 0x77, 0x6e, 0x7c, 0xb9, 0x63, 0xb4, 0x0c, 0x4b, 0x7d, 0x37, 0x67, 0x99, 0x14, + 0xec, 0x15, 0x0d, 0xf3, 0x27, 0x45, 0x58, 0xdd, 0xf7, 0x06, 0x3e, 0xf1, 0xbe, 0x8e, 0xaf, 0xaf, + 0xd1, 0xc7, 0xb0, 0xc8, 0x49, 0x44, 0x4f, 0xe8, 0xc5, 0x37, 0xe1, 0x31, 0x39, 0xfa, 0x10, 0x16, + 0xce, 0x3c, 0x2f, 0x14, 0x2e, 0xf8, 0x62, 0x46, 0x41, 0x8d, 0xde, 0x85, 0xc5, 0xe8, 0xf2, 0x39, + 0xa8, 0x96, 0x52, 0x75, 0x78, 0xfa, 0x4a, 0x9d, 0xc4, 0x54, 0x68, 0x0f, 0x56, 0xed, 0x74, 0x3f, + 0x4d, 0xa4, 0x91, 0x9b, 0x82, 0x31, 0xd3, 0x6d, 0x3b, 0x9c, 0x21, 0x59, 0x06, 0xf4, 0x25, 0x6c, + 0x5e, 0x8c, 0x9f, 0xd7, 0x74, 0x0f, 0x00, 0x0e, 0x67, 0xc8, 0x24, 0x01, 0xe8, 0x13, 0x58, 0x72, + 0x12, 0x97, 0x58, 0x62, 0x93, 0x59, 0x8f, 0x8f, 0xd1, 0x09, 0xd4, 0xe1, 0x0c, 0x49, 0x91, 0x32, + 0xd6, 0x67, 0x89, 0x23, 0xa4, 0xd8, 0x4a, 0xd6, 0xc7, 0x9c, 0x2e, 0x19, 0x6b, 0x92, 0x94, 0x69, + 0xa5, 0x97, 0x4e, 0x93, 0xdc, 0xcb, 0x47, 0x5a, 0xc9, 0x24, 0x51, 0xa6, 0x95, 0x0c, 0xc3, 0xde, + 0xa2, 0x68, 0x34, 0xca, 0xff, 0x33, 0x07, 0x9b, 0xf1, 0x73, 0x94, 0xac, 0x87, 0x3c, 0x84, 0xf5, + 0xf8, 0x15, 0x4a, 0x2d, 0x32, 0x3d, 0xef, 0xb6, 0x47, 0x89, 0x69, 0x1c, 0x0a, 0xed, 0x00, 0xba, + 0x18, 0x0a, 0x63, 0x36, 0xe7, 0x0c, 0x51, 0x69, 0x30, 0x06, 0x83, 0x0e, 0x60, 0x35, 0xfd, 0xce, + 0x25, 0xa8, 0x96, 0xb9, 0x67, 0xbc, 0x96, 0x79, 0x29, 0x93, 0xf1, 0x90, 0x2c, 0xd7, 0xcf, 0xc5, + 0x53, 0x76, 0x60, 0x2d, 0x16, 0x6b, 0x30, 0xdd, 0x8c, 0xae, 0x16, 0x0e, 0x67, 0x48, 0x1e, 0xf5, + 0xff, 0xc1, 0xfa, 0x3f, 0x2d, 0xc0, 0x6a, 0xac, 0xda, 0xc4, 0x07, 0xce, 0xd2, 0x8e, 0x90, 0x51, + 0x65, 0xc6, 0x4d, 0xd8, 0x07, 0x32, 0x0c, 0x3c, 0xe8, 0xc6, 0x3b, 0x55, 0x36, 0xe8, 0xc6, 0x53, + 0xf1, 0xa0, 0x1b, 0x8f, 0xda, 0x2b, 0xb1, 0xec, 0xe3, 0x5f, 0x9a, 0xa1, 0xfc, 0xb7, 0x05, 0xb8, + 0x9d, 0x71, 0x0c, 0xda, 0xef, 0x0d, 0x3b, 0x03, 0x0f, 0x40, 0x0a, 0x68, 0x8f, 0x5a, 0x43, 0x37, + 0x19, 0x5e, 0x6c, 0xe7, 0xe0, 0xe8, 0x33, 0xb8, 0x95, 0x86, 0xd5, 0x13, 0x4f, 0x8d, 0x66, 0x79, + 0x25, 0x3e, 0x99, 0x20, 0x9b, 0x94, 0xe7, 0xa6, 0x4b, 0xca, 0x3f, 0x9b, 0xe5, 0x2d, 0x17, 0x7b, + 0x60, 0x85, 0x6d, 0xd7, 0xec, 0x07, 0x17, 0x5e, 0x88, 0x3e, 0x82, 0xa5, 0x7e, 0x04, 0xe2, 0xfe, + 0x23, 0x34, 0x3f, 0xce, 0xa7, 0x48, 0x8a, 0x90, 0xf7, 0xf8, 0xc5, 0x38, 0x6e, 0xeb, 0x8c, 0x00, + 0x13, 0xee, 0x15, 0x32, 0xf7, 0x5f, 0xc5, 0xfc, 0xfd, 0x57, 0xb6, 0x85, 0x31, 0x3f, 0xa6, 0x85, + 0xb1, 0x0d, 0xab, 0x7d, 0xdf, 0xb1, 0xa8, 0x32, 0x2a, 0x5a, 0x17, 0xa2, 0x6a, 0x33, 0x03, 0x66, + 0xbb, 0xa5, 0x4f, 0x43, 0xd3, 0xe9, 0x51, 0x5f, 0xb5, 0x45, 0x56, 0x48, 0x40, 0xe2, 0x5a, 0xa1, + 0x34, 0xaa, 0x15, 0xde, 0x86, 0xb5, 0xe4, 0x2a, 0xa3, 0x1b, 0x8c, 0xa8, 0x21, 0x9a, 0x47, 0xc8, + 0x7f, 0x55, 0x80, 0x15, 0xa1, 0xd0, 0x51, 0xf9, 0xbd, 0x28, 0xe8, 0x32, 0x4e, 0x9c, 0x51, 0x3c, + 0x89, 0xc9, 0x98, 0xd7, 0x9c, 0x0e, 0x02, 0xc7, 0xa5, 0x41, 0xa0, 0x7f, 0xed, 0x52, 0xff, 0xf3, + 0x61, 0x9b, 0x2c, 0x07, 0x7f, 0xc5, 0xcd, 0xf8, 0x3f, 0x0a, 0x80, 0xa2, 0xab, 0x67, 0xf7, 0x99, + 0x33, 0x8a, 0xbb, 0xdb, 0x50, 0xe2, 0xef, 0x2d, 0xd8, 0x07, 0xc5, 0xeb, 0x9a, 0x78, 0xcc, 0x34, + 0xe7, 0x70, 0x62, 0x6e, 0x85, 0x68, 0x3a, 0x09, 0x08, 0x9b, 0x74, 0x34, 0xc2, 0xac, 0xc0, 0x37, + 0x87, 0x0f, 0x23, 0xe6, 0x48, 0x0e, 0xce, 0x3c, 0x85, 0xcb, 0xe5, 0x27, 0x50, 0xf1, 0xa2, 0x66, + 0x08, 0xc8, 0x97, 0x87, 0xf3, 0x2f, 0x78, 0x6e, 0x94, 0x2e, 0x53, 0xe5, 0x9f, 0x2d, 0xc3, 0x62, + 0xbc, 0x22, 0xe6, 0x3d, 0xd1, 0x3b, 0x98, 0x68, 0x46, 0x71, 0x03, 0x2c, 0x01, 0x43, 0xe7, 0x70, + 0x37, 0x78, 0xd1, 0x9b, 0x92, 0xca, 0xee, 0x7d, 0xa1, 0xd3, 0xeb, 0xde, 0x94, 0x90, 0x6b, 0x05, + 0xb1, 0xc8, 0x9a, 0x32, 0x5b, 0x67, 0x72, 0xf5, 0xf7, 0xf8, 0x9b, 0xa0, 0x44, 0x9f, 0x50, 0x64, + 0xeb, 0x09, 0x4d, 0xc4, 0x0c, 0x31, 0x7a, 0xf4, 0x92, 0xf9, 0x3a, 0x97, 0xad, 0x51, 0x03, 0xd6, + 0x69, 0xfe, 0x06, 0x57, 0x14, 0x6d, 0xb7, 0x27, 0xdf, 0xf1, 0x92, 0x71, 0x6c, 0x6c, 0x3e, 0xd9, + 0x9d, 0x72, 0xf1, 0xba, 0x9d, 0x32, 0xbf, 0x4f, 0x7e, 0x04, 0x4b, 0x66, 0xe2, 0x9e, 0x8c, 0xc7, + 0xeb, 0x48, 0x93, 0xc9, 0x2b, 0x34, 0x92, 0x22, 0x64, 0x8c, 0xa9, 0x5d, 0xaf, 0x3c, 0x71, 0xd7, + 0xcb, 0xec, 0x79, 0xaf, 0x43, 0xd1, 0x32, 0x7b, 0x3d, 0x5e, 0x39, 0x57, 0x76, 0x2b, 0x89, 0x47, + 0x8e, 0x84, 0x23, 0x38, 0xc1, 0x85, 0x19, 0xf2, 0x6b, 0x8f, 0x04, 0xc1, 0x85, 0x19, 0x12, 0x8e, + 0x60, 0xab, 0xee, 0xa7, 0x5b, 0xd2, 0xfc, 0xb9, 0x4b, 0x2a, 0x1f, 0x24, 0xb1, 0x24, 0x4b, 0x8e, + 0x74, 0xb8, 0x61, 0x8d, 0xe9, 0x3f, 0xf3, 0x0b, 0x8f, 0x51, 0xd7, 0x6b, 0x5c, 0x8b, 0x9a, 0x8c, + 0x65, 0x44, 0x4f, 0x26, 0x17, 0xa6, 0x2b, 0x53, 0x95, 0xd5, 0x13, 0xcb, 0xd2, 0x1f, 0x17, 0xe0, + 0xc1, 0x99, 0x19, 0x84, 0x84, 0xbf, 0x87, 0x08, 0x1f, 0xd3, 0xab, 0x6b, 0x9f, 0x6d, 0xad, 0x4e, + 0x1f, 0x62, 0x2f, 0x21, 0x16, 0xa9, 0x80, 0x82, 0x5c, 0x3b, 0x87, 0x9f, 0x69, 0x46, 0x0f, 0xa1, + 0xf3, 0xfd, 0x1e, 0x32, 0x86, 0x89, 0x45, 0x40, 0x2f, 0xdf, 0x1c, 0xe0, 0x77, 0x37, 0xa3, 0x08, + 0x18, 0xd3, 0x3e, 0x20, 0xe3, 0xd8, 0x10, 0x81, 0x0d, 0x7f, 0x5c, 0x77, 0x87, 0x3f, 0xb2, 0x1b, + 0xdd, 0x82, 0x8d, 0xed, 0x00, 0x91, 0xf1, 0xac, 0x2c, 0x8d, 0xd9, 0xd7, 0x34, 0x52, 0xc4, 0x03, + 0xbd, 0x58, 0xc7, 0xd7, 0xf5, 0x5c, 0xc8, 0xb5, 0x82, 0x90, 0x0d, 0x77, 0xac, 0xc9, 0xcd, 0x96, + 0x6a, 0x95, 0x7f, 0x47, 0x1e, 0x46, 0xc8, 0x44, 0x4a, 0x72, 0x9d, 0x18, 0x16, 0x2e, 0x61, 0xba, + 0x2c, 0xac, 0xde, 0x4a, 0x85, 0x4b, 0xa6, 0x68, 0x24, 0x59, 0x72, 0x96, 0x35, 0x83, 0x54, 0x27, + 0xa0, 0x7a, 0x3b, 0x95, 0x35, 0xd3, 0x6d, 0x02, 0x92, 0x21, 0x66, 0xec, 0xfd, 0xd4, 0x4e, 0x5e, + 0xbd, 0x93, 0x62, 0x4f, 0x6f, 0xf3, 0x24, 0x43, 0xcc, 0x7c, 0xef, 0x3c, 0xb7, 0xc3, 0x56, 0xef, + 0xa6, 0x7c, 0x2f, 0xbf, 0x05, 0x93, 0x31, 0x4c, 0x72, 0x08, 0x30, 0x6a, 0x56, 0xa5, 0x9f, 0xa3, + 0x16, 0xb2, 0xcf, 0x51, 0x6f, 0xc2, 0xc2, 0x99, 0xef, 0x5d, 0x36, 0xa3, 0x6d, 0xab, 0x44, 0xc4, + 0x48, 0x5c, 0xb6, 0xcd, 0xc5, 0x97, 0x6d, 0xd9, 0xc7, 0xb2, 0xc5, 0xdc, 0x63, 0x59, 0xf9, 0x5f, + 0x57, 0xa0, 0x72, 0x4c, 0x4f, 0xf7, 0xa9, 0xc9, 0x22, 0x3b, 0x40, 0x9f, 0xc3, 0x72, 0xcf, 0x3c, + 0xa5, 0xbd, 0x40, 0x94, 0x9d, 0xe2, 0xca, 0xe7, 0x4d, 0xb1, 0x96, 0x04, 0xe9, 0xce, 0x31, 0xde, + 0xeb, 0xee, 0x63, 0xc5, 0xe8, 0x10, 0xdc, 0xee, 0xee, 0x37, 0x94, 0x03, 0x92, 0x66, 0x45, 0x3f, + 0x84, 0x9b, 0xcf, 0x3c, 0xa7, 0xaf, 0xba, 0xb6, 0xf3, 0xcc, 0xb1, 0x07, 0x66, 0x4f, 0x1f, 0x84, + 0xe7, 0x9e, 0xe3, 0x9e, 0x8b, 0x3b, 0xbc, 0xe9, 0x84, 0x4e, 0x90, 0x81, 0x1e, 0x89, 0x32, 0x26, + 0x38, 0x7a, 0x9f, 0xaf, 0x78, 0x5a, 0x79, 0x43, 0x2e, 0xd4, 0x80, 0x95, 0xf8, 0x77, 0xcd, 0xa7, + 0xec, 0xcc, 0x50, 0x7c, 0x09, 0x39, 0x19, 0x5e, 0x26, 0xcd, 0xba, 0x30, 0xdd, 0x73, 0xd1, 0x1f, + 0x3b, 0xda, 0xe5, 0xdb, 0xef, 0xd4, 0xd2, 0xd2, 0xbc, 0x4c, 0x77, 0x5f, 0x0d, 0xa8, 0x7f, 0xd5, + 0x0e, 0xcd, 0x70, 0x10, 0x1c, 0xbd, 0x3f, 0xaa, 0x93, 0x16, 0x5e, 0x46, 0x77, 0xe3, 0x65, 0x70, + 0x2b, 0x27, 0x12, 0x56, 0x20, 0xae, 0xc0, 0xa6, 0xb5, 0x72, 0x92, 0x15, 0xd5, 0x01, 0xf8, 0x57, + 0x8e, 0xdc, 0xf8, 0xf1, 0xce, 0xb4, 0x82, 0x12, 0x7c, 0x79, 0x5f, 0x51, 0x5d, 0xcb, 0xbb, 0x64, + 0xbe, 0x52, 0x7e, 0x75, 0x5f, 0x89, 0x65, 0x20, 0x02, 0x6b, 0xc3, 0x7f, 0x84, 0x70, 0x68, 0xf0, + 0x05, 0xfb, 0xae, 0x78, 0xbb, 0x36, 0x9d, 0xe0, 0x3c, 0x3b, 0xf3, 0xbf, 0x7e, 0x94, 0xd3, 0x02, + 0x5e, 0x0e, 0x4c, 0xed, 0x7f, 0x31, 0x17, 0x6a, 0x81, 0x24, 0xb2, 0x51, 0xcb, 0xb4, 0x9e, 0x46, + 0x93, 0x5a, 0x7a, 0x09, 0x49, 0x39, 0x6e, 0x64, 0x00, 0x4a, 0x19, 0x67, 0xdf, 0x71, 0xcd, 0x1e, + 0xaf, 0x1c, 0xa6, 0x95, 0x39, 0x86, 0x9f, 0x59, 0x38, 0x0a, 0x6c, 0x6c, 0x3b, 0x21, 0xaf, 0x19, + 0xa6, 0xb6, 0xf0, 0x88, 0x0f, 0xed, 0x43, 0x85, 0x77, 0x22, 0x3b, 0xfd, 0x9e, 0x67, 0xda, 0xbc, + 0x18, 0x98, 0x56, 0x4c, 0x92, 0x11, 0x9d, 0xc1, 0x9d, 0xc4, 0x90, 0x38, 0xd6, 0xc5, 0x17, 0x09, + 0xdb, 0xf0, 0xbd, 0x7a, 0x5a, 0xb9, 0xd7, 0x09, 0x42, 0xdf, 0x87, 0xc5, 0x67, 0xcc, 0x35, 0x8f, + 0x76, 0xc5, 0x8b, 0x8c, 0xe9, 0x64, 0xc6, 0x4c, 0xcc, 0xba, 0xbc, 0xb6, 0x8c, 0x5f, 0xda, 0x74, + 0xfc, 0x1e, 0x7f, 0x19, 0x3c, 0xb5, 0x75, 0xb3, 0xdc, 0x2c, 0x6a, 0x03, 0x1e, 0xca, 0xc4, 0x74, + 0x9f, 0xb2, 0xd0, 0xd8, 0x78, 0x99, 0xa8, 0x4d, 0xb1, 0xa2, 0x23, 0x58, 0x4f, 0xc7, 0x0a, 0xaf, + 0x8a, 0x79, 0x65, 0x32, 0xad, 0xc4, 0x71, 0x02, 0x98, 0x07, 0x86, 0x17, 0x8e, 0x6f, 0xb7, 0x4c, + 0x3f, 0xbc, 0x12, 0x7b, 0x6f, 0xc0, 0xab, 0x92, 0xa9, 0x3d, 0x30, 0xcf, 0x8f, 0x6c, 0xb8, 0x7d, + 0xc6, 0xeb, 0x21, 0x37, 0xec, 0x5d, 0x0d, 0xff, 0x33, 0xa1, 0x4d, 0xc3, 0x90, 0xa9, 0xa1, 0xfa, + 0x12, 0xd2, 0xaf, 0x91, 0x23, 0x1f, 0xc0, 0x5a, 0x8e, 0x21, 0x7a, 0xf6, 0x69, 0x74, 0xd5, 0x66, + 0xab, 0x81, 0x9b, 0x58, 0x33, 0x70, 0x5d, 0x9a, 0x41, 0xab, 0x50, 0x49, 0x02, 0x0a, 0x68, 0x09, + 0x4a, 0x7a, 0xcb, 0x50, 0x75, 0x4d, 0x69, 0x48, 0xb3, 0xf2, 0xbf, 0x14, 0x60, 0xd3, 0x30, 0x4f, + 0x7b, 0x34, 0xd4, 0xbc, 0xd0, 0x39, 0x73, 0x44, 0x34, 0xf1, 0xb7, 0x41, 0xa9, 0x4b, 0xf3, 0xe8, + 0xd2, 0x6d, 0x04, 0x60, 0x1b, 0xf6, 0xc0, 0xf5, 0xa9, 0x69, 0xb3, 0x23, 0x45, 0x7c, 0x57, 0x94, + 0x04, 0xa1, 0x1d, 0x40, 0x2e, 0x13, 0x1a, 0x97, 0xf7, 0x51, 0xab, 0x22, 0x7a, 0x0c, 0x31, 0x06, + 0x83, 0xea, 0xb0, 0x9c, 0x82, 0x56, 0xe7, 0x53, 0x77, 0xb1, 0xc9, 0x09, 0x0a, 0x0a, 0xde, 0x48, + 0x48, 0x33, 0xc9, 0x7f, 0x53, 0x80, 0xcd, 0x09, 0xa4, 0xd3, 0xbd, 0xde, 0xd9, 0x86, 0xc5, 0xcb, + 0x6b, 0x6f, 0x56, 0x63, 0x34, 0x7a, 0x00, 0x92, 0xf8, 0x39, 0xba, 0xc9, 0x98, 0xe3, 0x7a, 0xca, + 0xc1, 0xa7, 0xa8, 0x6f, 0xfe, 0xa1, 0x00, 0x37, 0x8e, 0xe9, 0xe9, 0xaf, 0xde, 0x0e, 0xdf, 0x83, + 0x95, 0x14, 0x34, 0x10, 0x86, 0xd8, 0x18, 0xb9, 0x6d, 0x52, 0xff, 0x19, 0x62, 0xf9, 0x9f, 0x8b, + 0x50, 0x11, 0x25, 0x34, 0x9f, 0xfe, 0x54, 0x97, 0xb7, 0x16, 0x75, 0x9e, 0x45, 0x8d, 0xa5, 0xe1, + 0xe5, 0xed, 0x10, 0x84, 0xbe, 0x0f, 0x0b, 0x51, 0x4a, 0x10, 0x55, 0xcf, 0x5b, 0x71, 0xc5, 0x3b, + 0xfa, 0xca, 0x4e, 0x4b, 0x39, 0x61, 0x2e, 0x1e, 0xfd, 0x3f, 0x57, 0xdb, 0x50, 0x8c, 0x4e, 0x9b, + 0x08, 0x2e, 0xb4, 0x0b, 0x37, 0x42, 0xdf, 0x74, 0x83, 0xe8, 0x1f, 0xd8, 0xd2, 0x37, 0xc0, 0x45, + 0x32, 0x16, 0x37, 0xfe, 0xc6, 0x7c, 0x61, 0xfa, 0x1b, 0xf3, 0x71, 0x37, 0xce, 0x8b, 0xfc, 0x7b, + 0x59, 0x30, 0xbf, 0xdd, 0x1b, 0xb0, 0x2c, 0xd0, 0xf7, 0x3d, 0xef, 0x8c, 0xda, 0xe2, 0xed, 0x63, + 0x1a, 0x88, 0x6e, 0x27, 0xde, 0x74, 0x44, 0x8f, 0x53, 0x87, 0x63, 0xf9, 0xdf, 0x0b, 0xb0, 0x3e, + 0x46, 0x01, 0x08, 0xc1, 0x4a, 0x47, 0x7b, 0xac, 0xe9, 0xc7, 0x9a, 0x80, 0x48, 0x33, 0x68, 0x05, + 0xa0, 0x45, 0xf4, 0x1a, 0x6e, 0xb7, 0x55, 0xed, 0x40, 0x2a, 0xa0, 0x12, 0x14, 0xdb, 0x58, 0x33, + 0xa4, 0x59, 0x46, 0xad, 0x61, 0x5c, 0xef, 0x1a, 0x7a, 0x57, 0xa9, 0xd5, 0x70, 0xcb, 0x88, 0x1e, + 0xf3, 0xd4, 0x74, 0x96, 0x3f, 0x0c, 0x2c, 0x15, 0xd1, 0x4d, 0x40, 0x35, 0xbd, 0xd3, 0xa8, 0x77, + 0x59, 0x9e, 0x19, 0xc2, 0xf9, 0xc3, 0x1e, 0x82, 0xf7, 0x3b, 0x5a, 0x1d, 0xd7, 0xa5, 0x05, 0x54, + 0x81, 0x45, 0xfc, 0xa4, 0xa5, 0x12, 0x5c, 0x97, 0x16, 0x23, 0xd4, 0xe7, 0xb8, 0xc6, 0x92, 0x4f, + 0x09, 0x2d, 0x43, 0xb9, 0xa6, 0x68, 0x35, 0xdc, 0x68, 0xe0, 0xba, 0x54, 0x46, 0x1b, 0xb0, 0x76, + 0xac, 0xa8, 0x86, 0xaa, 0x1d, 0x74, 0xf7, 0x75, 0xd2, 0x6d, 0x29, 0x27, 0x98, 0x48, 0xc0, 0x04, + 0x08, 0xb0, 0x54, 0x91, 0x7f, 0xef, 0x16, 0xac, 0xa4, 0x3d, 0x6e, 0x14, 0xc6, 0xb3, 0xbf, 0xf4, + 0x30, 0xc6, 0x19, 0x57, 0x7c, 0x67, 0x6c, 0x4c, 0xf0, 0x6c, 0x1e, 0xbf, 0xdb, 0x1b, 0xe7, 0x91, + 0x99, 0x6c, 0x30, 0x9f, 0xff, 0xd7, 0xc0, 0x9b, 0xb0, 0xe0, 0x9c, 0xbb, 0x9e, 0x1f, 0xb5, 0x07, + 0x4a, 0x44, 0x8c, 0xf8, 0xb3, 0xdb, 0xd0, 0xf4, 0x7d, 0x6a, 0xf3, 0xde, 0x6a, 0x89, 0xc4, 0x43, + 0x96, 0x26, 0x4e, 0x7d, 0xcf, 0xb4, 0x2d, 0x33, 0x08, 0x79, 0x6d, 0x51, 0x22, 0x23, 0x00, 0x73, + 0x9f, 0xfe, 0x20, 0xb8, 0xe0, 0x1d, 0xce, 0xf5, 0xc8, 0x7d, 0xe2, 0x31, 0xfa, 0x00, 0x36, 0x78, + 0x79, 0x51, 0x73, 0xfa, 0x17, 0xd4, 0x0f, 0xe9, 0xf3, 0x50, 0x5c, 0x33, 0xdf, 0xe0, 0x8d, 0xce, + 0xf1, 0x48, 0xf6, 0xbd, 0xcb, 0x41, 0x2f, 0x74, 0xf8, 0xf7, 0x36, 0xa2, 0xef, 0x0d, 0x01, 0x6c, + 0x9e, 0x03, 0xbf, 0xc7, 0xef, 0x0a, 0xa2, 0x7f, 0xd4, 0x8b, 0x87, 0x8c, 0x6f, 0xe0, 0xf7, 0xc4, + 0x85, 0xfd, 0x66, 0xc4, 0x37, 0x04, 0xa0, 0x13, 0x58, 0x15, 0x4a, 0x6f, 0x87, 0x83, 0x53, 0xfe, + 0x9f, 0x1b, 0xd1, 0xa6, 0xf9, 0xee, 0xd4, 0x9a, 0xee, 0xec, 0xf1, 0x37, 0x6e, 0x59, 0x39, 0x2c, + 0x11, 0x59, 0x3d, 0x6a, 0xfa, 0x4d, 0xb6, 0x1c, 0x7e, 0x78, 0x2f, 0x91, 0x04, 0x24, 0x52, 0xc3, + 0x90, 0x65, 0xf8, 0xd8, 0x27, 0xa8, 0xde, 0xe6, 0x97, 0x1d, 0xe3, 0x91, 0x4c, 0xb1, 0xf6, 0x40, + 0xf4, 0x97, 0xef, 0xf0, 0x9c, 0x3a, 0x1c, 0x33, 0x23, 0x46, 0x65, 0x65, 0xf5, 0x6e, 0xf4, 0x72, + 0x29, 0x1a, 0xa1, 0x0f, 0x98, 0xf9, 0x87, 0xb9, 0xab, 0xfa, 0x5a, 0xaa, 0x49, 0x9e, 0xc8, 0x6a, + 0x24, 0x49, 0x86, 0x0e, 0x61, 0xed, 0x8c, 0x55, 0xb9, 0xc9, 0xae, 0x4e, 0xf5, 0xde, 0x0b, 0x1b, + 0x3e, 0x79, 0x26, 0xf4, 0x88, 0x1d, 0x32, 0xbc, 0x90, 0xda, 0x89, 0x6f, 0x55, 0x5f, 0x9f, 0x38, + 0x8b, 0x3c, 0xb1, 0xec, 0xc0, 0xe6, 0x04, 0x1f, 0x47, 0x65, 0x98, 0xc7, 0x84, 0xe8, 0x44, 0x9a, + 0x61, 0x81, 0xdc, 0xc2, 0x5a, 0x3d, 0x4a, 0x34, 0x2b, 0x00, 0x6d, 0x4c, 0x8e, 0x30, 0xe9, 0x2a, + 0xb5, 0xc7, 0xd2, 0x2c, 0x92, 0x60, 0xa9, 0x8e, 0x1b, 0xea, 0x11, 0x26, 0x27, 0x1c, 0x32, 0xc7, + 0x52, 0x11, 0xc1, 0x4a, 0x3d, 0x7a, 0x35, 0xd8, 0x6a, 0x28, 0x27, 0xb8, 0x2e, 0xcd, 0xcb, 0xbf, + 0xbb, 0x06, 0xb7, 0x26, 0x5a, 0x99, 0x7d, 0x42, 0xa4, 0x38, 0x69, 0x26, 0xf1, 0x3a, 0x96, 0x7f, + 0xae, 0xa6, 0xb6, 0x0e, 0x31, 0x31, 0xf0, 0x13, 0x96, 0xdd, 0x56, 0xa1, 0xb2, 0xdf, 0x61, 0xd5, + 0x52, 0x8b, 0xe8, 0xfa, 0xbe, 0x34, 0x87, 0xee, 0xc0, 0xa6, 0xa6, 0x6b, 0xdd, 0x23, 0x4c, 0xd4, + 0x7d, 0x95, 0xa5, 0x3d, 0xa2, 0x68, 0x6d, 0x95, 0x55, 0x46, 0x52, 0x11, 0xdd, 0x82, 0x8d, 0x8e, + 0x36, 0x0e, 0x35, 0x8f, 0x36, 0x61, 0x7d, 0x1c, 0x62, 0x01, 0x55, 0xe1, 0xc6, 0x10, 0xd1, 0xd0, + 0x8f, 0xbb, 0xf1, 0xbc, 0x16, 0xd1, 0x1a, 0x2c, 0x0f, 0x31, 0x87, 0xea, 0xc1, 0xa1, 0x54, 0x42, + 0x77, 0xa1, 0x3a, 0x04, 0xa9, 0x9a, 0x6a, 0xa8, 0x4a, 0x63, 0xc8, 0x50, 0x4e, 0x89, 0x8a, 0xb1, + 0x0d, 0xfd, 0x58, 0x02, 0x36, 0xb1, 0x1c, 0x86, 0x8b, 0xac, 0xa0, 0xfb, 0xf0, 0xfa, 0x98, 0x89, + 0x75, 0x15, 0xed, 0x84, 0xa5, 0x74, 0xfe, 0x8c, 0x7a, 0xe9, 0x05, 0x44, 0x5c, 0xd2, 0xf2, 0x24, + 0x22, 0x86, 0x65, 0x54, 0x6c, 0x26, 0x2b, 0xe8, 0xdb, 0x70, 0xff, 0x3a, 0xa2, 0x78, 0x31, 0xab, + 0xe8, 0x2d, 0x90, 0xc7, 0x11, 0xc6, 0x3b, 0x93, 0x10, 0x28, 0x4d, 0xa2, 0x63, 0xaa, 0x4c, 0xc8, + 0x5b, 0x9b, 0x34, 0x3b, 0xb6, 0xc0, 0x58, 0x18, 0x9a, 0x34, 0xbb, 0x98, 0x28, 0x96, 0xb6, 0xce, + 0xdc, 0xf0, 0x80, 0xe8, 0x9d, 0x56, 0xb7, 0x46, 0xb0, 0x62, 0x60, 0xe9, 0x06, 0x53, 0xbe, 0x80, + 0x1c, 0x2a, 0xda, 0x01, 0xee, 0xb6, 0x3b, 0x7b, 0x6c, 0x03, 0x93, 0x36, 0xd8, 0x7e, 0x95, 0xc2, + 0xa8, 0x35, 0x5d, 0x93, 0x6e, 0x32, 0x5b, 0xa6, 0xc1, 0xda, 0x91, 0x6a, 0xe0, 0x6e, 0x43, 0xd5, + 0x1e, 0x4b, 0x9b, 0x39, 0x6c, 0x1d, 0xb7, 0x6b, 0x44, 0xe5, 0x25, 0xb8, 0x54, 0x65, 0xf6, 0x4c, + 0x61, 0x09, 0x6e, 0x1b, 0x44, 0xad, 0x19, 0xd2, 0xad, 0x1c, 0x4a, 0xd1, 0x34, 0xbd, 0xa3, 0xd5, + 0xb0, 0x74, 0x7b, 0x84, 0x6a, 0x29, 0xc4, 0x50, 0x6b, 0x6a, 0x4b, 0xd1, 0x8c, 0xae, 0x52, 0xaf, + 0x4b, 0x77, 0x46, 0x9f, 0x4b, 0xa2, 0x08, 0x6e, 0xea, 0x47, 0x58, 0xba, 0x8b, 0x5e, 0x83, 0x5b, + 0x79, 0x6c, 0x8b, 0xe8, 0x4d, 0xdd, 0xc0, 0xd2, 0x6b, 0xe3, 0x99, 0xeb, 0x98, 0x63, 0xef, 0x8d, + 0xc7, 0x46, 0x8b, 0x95, 0x5e, 0x67, 0xf1, 0x94, 0xc7, 0x36, 0xb0, 0x72, 0x84, 0xa5, 0x2d, 0x66, + 0xb3, 0x3c, 0x52, 0xac, 0x4b, 0xeb, 0x34, 0xf7, 0x30, 0x91, 0xde, 0x40, 0x37, 0x40, 0xda, 0x23, + 0xba, 0x52, 0xaf, 0x29, 0x6d, 0x23, 0x36, 0x87, 0x1c, 0xfd, 0xe3, 0x5a, 0x0c, 0x65, 0x6b, 0xbc, + 0x9f, 0x26, 0x14, 0x6b, 0x7b, 0x93, 0xdb, 0x0d, 0x6b, 0x98, 0xa8, 0x35, 0x56, 0x9f, 0xa8, 0xfb, + 0x6a, 0x4d, 0xe1, 0x4a, 0xfe, 0x16, 0xc3, 0xe0, 0x5d, 0xdc, 0x55, 0xeb, 0x58, 0x33, 0x54, 0xe3, + 0x44, 0x7c, 0xb8, 0x2e, 0xbd, 0xc5, 0x84, 0x33, 0x0c, 0xd6, 0x6a, 0xe4, 0xa4, 0xc5, 0x6a, 0x94, + 0x6f, 0x33, 0x23, 0xd7, 0x94, 0x46, 0xa3, 0xdb, 0x54, 0xdb, 0x6d, 0x5c, 0xef, 0x1e, 0xe9, 0x6a, + 0x0d, 0x4b, 0xdb, 0x39, 0x30, 0xff, 0x07, 0xb7, 0xef, 0x30, 0x9d, 0xa8, 0x5a, 0x5d, 0x3d, 0x52, + 0xeb, 0x1d, 0xa5, 0x91, 0x59, 0xd1, 0x83, 0x91, 0x73, 0xd5, 0x31, 0x2f, 0x95, 0x7e, 0x8d, 0x39, + 0x79, 0x04, 0x89, 0xad, 0xd9, 0x6d, 0xea, 0x75, 0x3c, 0x4c, 0x6e, 0x7b, 0x91, 0x85, 0xdf, 0x66, + 0xda, 0x4c, 0x7e, 0x2e, 0xe2, 0x89, 0xe6, 0xf2, 0xce, 0x04, 0x24, 0x9f, 0xd1, 0x0e, 0x2b, 0xd2, + 0xe2, 0x5a, 0x30, 0x91, 0x00, 0xdf, 0x65, 0x79, 0x2b, 0x86, 0x27, 0x13, 0xe1, 0x43, 0xf4, 0x36, + 0x6c, 0xc7, 0x08, 0x1e, 0x29, 0x4a, 0x8d, 0x87, 0x4a, 0x94, 0xce, 0xbb, 0x9d, 0x16, 0x7f, 0x95, + 0xbd, 0xaf, 0xa8, 0xac, 0x66, 0x7b, 0x0f, 0xed, 0xc0, 0x83, 0x17, 0x53, 0x0f, 0xab, 0xc1, 0x5d, + 0xf4, 0x3e, 0xbc, 0x3b, 0x2d, 0x7d, 0xfc, 0x91, 0xf7, 0xd1, 0x77, 0xe1, 0xbd, 0x6b, 0x98, 0x08, + 0xae, 0x61, 0xb6, 0x6f, 0x74, 0xc5, 0xe6, 0xd2, 0x6d, 0x63, 0xa3, 0xd3, 0x92, 0x3e, 0x40, 0x9f, + 0xc1, 0xc7, 0xd3, 0xb0, 0xb5, 0x3b, 0x35, 0x56, 0xff, 0x76, 0x95, 0x7d, 0x03, 0x93, 0xee, 0xa1, + 0x5a, 0xab, 0x75, 0x5a, 0xd2, 0x77, 0xd1, 0x77, 0xe0, 0x5b, 0x31, 0xb7, 0x60, 0x54, 0x6a, 0x35, + 0xbd, 0xa3, 0x19, 0x91, 0x7c, 0xe6, 0x68, 0xaa, 0x56, 0xc7, 0x44, 0xfa, 0x10, 0x6d, 0xc3, 0x9b, + 0x19, 0xd2, 0x36, 0xd6, 0xea, 0xdd, 0x18, 0x36, 0xa4, 0xfc, 0x08, 0x3d, 0x80, 0xb7, 0xae, 0xa3, + 0xe4, 0xd1, 0x13, 0xb9, 0xe9, 0xc7, 0x2c, 0x48, 0x32, 0xb4, 0x04, 0x7f, 0xd1, 0xc1, 0x6d, 0x16, + 0x82, 0xb5, 0x86, 0xaa, 0xe1, 0xba, 0xf4, 0x09, 0x92, 0xe1, 0xde, 0x04, 0xa2, 0xb8, 0xe8, 0xfe, + 0x75, 0xf4, 0x26, 0x6c, 0x4d, 0xa0, 0x19, 0x55, 0xdf, 0x9f, 0xb2, 0xf5, 0xee, 0xa9, 0x5f, 0x8e, + 0xdb, 0x00, 0xbb, 0x86, 0xde, 0x62, 0x59, 0x72, 0x4f, 0x37, 0x0c, 0xbd, 0x29, 0x7d, 0x76, 0x1d, + 0x69, 0x44, 0xc3, 0xa8, 0x0d, 0xbd, 0x25, 0x7d, 0x8f, 0x87, 0xab, 0xfa, 0x65, 0x57, 0xd5, 0x0c, + 0x12, 0x81, 0xbe, 0xcf, 0xc3, 0x75, 0x08, 0x12, 0x32, 0x7f, 0x80, 0xd6, 0x61, 0x95, 0x41, 0x35, + 0xa5, 0x89, 0x45, 0xdc, 0x48, 0x8f, 0x58, 0x38, 0x31, 0x20, 0x8b, 0x68, 0x26, 0xb2, 0xa6, 0x6b, + 0xed, 0x4e, 0x93, 0x95, 0x0c, 0xad, 0x96, 0xa4, 0xa0, 0x7b, 0x70, 0x9b, 0x61, 0x8d, 0x63, 0xbd, + 0x6b, 0xa8, 0x98, 0x74, 0x9b, 0xea, 0x01, 0x51, 0xe2, 0x09, 0x4b, 0x7b, 0xe8, 0x0d, 0x78, 0x6d, + 0x02, 0x5e, 0x7c, 0xb5, 0xc6, 0x4e, 0x20, 0xfa, 0x11, 0x26, 0x6d, 0xf5, 0x4b, 0x5c, 0x97, 0xea, + 0xcc, 0x90, 0xa9, 0x1c, 0xab, 0xe9, 0xdd, 0x7d, 0xae, 0x2b, 0xcd, 0x68, 0x9c, 0xb0, 0x43, 0xc9, + 0xb1, 0x42, 0x98, 0x1f, 0xe3, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x2d, 0xd8, 0x08, 0x69, 0x70, + 0x4a, 0x00, 0x00, } diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto index a885973d..d5f70cc1 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto +++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto @@ -1,22 +1,94 @@ syntax = "proto2"; package proto; -message FingerprintData { - optional string publicKey = 1; - optional string identifier = 2; +message HydratedQuickReplyButton { + optional string displayText = 1; + optional string buttonId = 2; } -message CombinedFingerprint { - optional uint32 version = 1; - optional FingerprintData localFingerprint = 2; - optional FingerprintData remoteFingerprint = 3; +message HydratedURLButton { + optional string displayText = 1; + optional string url = 2; } -message MessageKey { - optional string remoteJid = 1; - optional bool fromMe = 2; - optional string id = 3; - optional string participant = 4; +message HydratedCallButton { + optional string displayText = 1; + optional string phoneNumber = 2; +} + +message HydratedTemplateButton { + oneof hydratedButton { + HydratedQuickReplyButton quickReplyButton = 1; + HydratedURLButton urlButton = 2; + HydratedCallButton callButton = 3; + } +} + +message QuickReplyButton { + optional HighlyStructuredMessage displayText = 1; + optional string buttonId = 2; +} + +message URLButton { + optional HighlyStructuredMessage displayText = 1; + optional HighlyStructuredMessage url = 2; +} + +message CallButton { + optional HighlyStructuredMessage displayText = 1; + optional HighlyStructuredMessage phoneNumber = 2; +} + +message TemplateButton { + oneof button { + QuickReplyButton quickReplyButton = 1; + URLButton urlButton = 2; + CallButton callButton = 3; + } +} + +message Location { + optional double degreesLatitude = 1; + optional double degreesLongitude = 2; + optional string name = 3; +} + +message Point { + optional double x = 3; + optional double y = 4; +} + +message InteractiveAnnotation { + repeated Point polygonVertices = 1; + oneof action { + Location location = 2; + } +} + +message AdReplyInfo { + optional string advertiserName = 1; + enum AD_REPLY_INFO_MEDIATYPE { + NONE = 0; + IMAGE = 1; + VIDEO = 2; + } + optional AD_REPLY_INFO_MEDIATYPE mediaType = 2; + optional bytes jpegThumbnail = 16; + optional string caption = 17; +} + +message ContextInfo { + optional string stanzaId = 1; + optional string participant = 2; + optional Message quotedMessage = 3; + optional string remoteJid = 4; + repeated string mentionedJid = 15; + optional string conversionSource = 18; + optional bytes conversionData = 19; + optional uint32 conversionDelaySeconds = 20; + optional uint32 forwardingScore = 21; + optional bool isForwarded = 22; + optional AdReplyInfo quotedAd = 23; } message SenderKeyDistributionMessage { @@ -36,10 +108,12 @@ message ImageMessage { optional bytes fileEncSha256 = 9; repeated InteractiveAnnotation interactiveAnnotations = 10; optional string directPath = 11; + optional int64 mediaKeyTimestamp = 12; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; optional bytes firstScanSidecar = 18; optional uint32 firstScanLength = 19; + optional uint32 experimentGroupId = 20; } message ContactMessage { @@ -66,7 +140,7 @@ message ExtendedTextMessage { optional string title = 6; optional fixed32 textArgb = 7; optional fixed32 backgroundArgb = 8; - enum FONTTYPE { + enum EXTENDED_TEXT_MESSAGE_FONTTYPE { SANS_SERIF = 0; SERIF = 1; NORICAN_REGULAR = 2; @@ -74,7 +148,12 @@ message ExtendedTextMessage { BEBASNEUE_REGULAR = 4; OSWALD_HEAVY = 5; } - optional FONTTYPE font = 9; + optional EXTENDED_TEXT_MESSAGE_FONTTYPE font = 9; + enum EXTENDED_TEXT_MESSAGE_PREVIEWTYPE { + NONE = 0; + VIDEO = 1; + } + optional EXTENDED_TEXT_MESSAGE_PREVIEWTYPE previewType = 10; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } @@ -90,6 +169,7 @@ message DocumentMessage { optional string fileName = 8; optional bytes fileEncSha256 = 9; optional string directPath = 10; + optional int64 mediaKeyTimestamp = 11; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } @@ -104,6 +184,7 @@ message AudioMessage { optional bytes mediaKey = 7; optional bytes fileEncSha256 = 8; optional string directPath = 9; + optional int64 mediaKeyTimestamp = 10; optional ContextInfo contextInfo = 17; optional bytes streamingSidecar = 18; } @@ -122,15 +203,16 @@ message VideoMessage { optional bytes fileEncSha256 = 11; repeated InteractiveAnnotation interactiveAnnotations = 12; optional string directPath = 13; + optional int64 mediaKeyTimestamp = 14; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; optional bytes streamingSidecar = 18; - enum ATTRIBUTION { + enum VIDEO_MESSAGE_ATTRIBUTION { NONE = 0; GIPHY = 1; TENOR = 2; } - optional ATTRIBUTION gifAttribution = 19; + optional VIDEO_MESSAGE_ATTRIBUTION gifAttribution = 19; } message Call { @@ -144,10 +226,10 @@ message Chat { message ProtocolMessage { optional MessageKey key = 1; - enum TYPE { + enum PROTOCOL_MESSAGE_TYPE { REVOKE = 0; } - optional TYPE type = 2; + optional PROTOCOL_MESSAGE_TYPE type = 2; } message ContactsArrayMessage { @@ -162,7 +244,7 @@ message HSMCurrency { } message HSMDateTimeComponent { - enum DAYOFWEEKTYPE { + enum HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE { MONDAY = 1; TUESDAY = 2; WEDNESDAY = 3; @@ -171,17 +253,17 @@ message HSMDateTimeComponent { SATURDAY = 6; SUNDAY = 7; } - optional DAYOFWEEKTYPE dayOfWeek = 1; + optional HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE dayOfWeek = 1; optional uint32 year = 2; optional uint32 month = 3; optional uint32 dayOfMonth = 4; optional uint32 hour = 5; optional uint32 minute = 6; - enum CALENDARTYPE { + enum HSM_DATE_TIME_COMPONENT_CALENDARTYPE { GREGORIAN = 1; SOLAR_HIJRI = 2; } - optional CALENDARTYPE calendar = 7; + optional HSM_DATE_TIME_COMPONENT_CALENDARTYPE calendar = 7; } message HSMDateTimeUnixEpoch { @@ -210,17 +292,29 @@ message HighlyStructuredMessage { optional string fallbackLg = 4; optional string fallbackLc = 5; repeated HSMLocalizableParameter localizableParams = 6; + optional string deterministicLg = 7; + optional string deterministicLc = 8; } message SendPaymentMessage { optional Message noteMessage = 2; + optional MessageKey requestMessageKey = 3; } message RequestPaymentMessage { + optional Message noteMessage = 4; optional string currencyCodeIso4217 = 1; optional uint64 amount1000 = 2; optional string requestFrom = 3; - optional Message noteMessage = 4; + optional int64 expiryTimestamp = 5; +} + +message DeclinePaymentRequestMessage { + optional MessageKey key = 1; +} + +message CancelPaymentRequestMessage { + optional MessageKey key = 1; } message LiveLocationMessage { @@ -231,6 +325,7 @@ message LiveLocationMessage { optional uint32 degreesClockwiseFromMagneticNorth = 5; optional string caption = 6; optional int64 sequenceNumber = 7; + optional uint32 timeOffset = 8; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } @@ -245,10 +340,77 @@ message StickerMessage { optional uint32 width = 7; optional string directPath = 8; optional uint64 fileLength = 9; + optional int64 mediaKeyTimestamp = 10; optional bytes pngThumbnail = 16; optional ContextInfo contextInfo = 17; } +message FourRowTemplate { + optional HighlyStructuredMessage content = 6; + optional HighlyStructuredMessage footer = 7; + repeated TemplateButton buttons = 8; + oneof title { + DocumentMessage documentMessage = 1; + HighlyStructuredMessage highlyStructuredMessage = 2; + ImageMessage imageMessage = 3; + VideoMessage videoMessage = 4; + LocationMessage locationMessage = 5; + } +} + +message HydratedFourRowTemplate { + optional string hydratedContentText = 6; + optional string hydratedFooterText = 7; + repeated HydratedTemplateButton hydratedButtons = 9; + oneof title { + DocumentMessage documentMessage = 1; + string hydratedTitleText = 2; + ImageMessage imageMessage = 3; + VideoMessage videoMessage = 4; + LocationMessage locationMessage = 5; + } +} + +message TemplateMessage { + oneof format { + FourRowTemplate fourRowTemplate = 1; + HydratedFourRowTemplate hydratedFourRowTemplate = 2; + } +} + +message TemplateButtonReplyMessage { + optional string selectedButtonId = 1; + repeated string selectedButtonDisplayText = 2; + optional ContextInfo contextInfo = 3; +} + +message ProductSnapshot { + optional ImageMessage productImage = 1; + optional string productId = 2; + optional string title = 3; + optional string description = 4; + optional string currencyCode = 5; + optional int64 priceAmount1000 = 6; + optional string retailerId = 7; + optional string url = 8; + optional uint32 productImageCount = 9; +} + +message ProductMessage { + optional ProductSnapshot product = 1; + optional string businessOwnerJid = 2; + optional ContextInfo contextInfo = 17; +} + +message GroupInviteMessage { + optional string groupJid = 1; + optional string inviteCode = 2; + optional int64 inviteExpiration = 3; + optional string groupName = 4; + optional bytes jpegThumbnail = 5; + optional string caption = 6; +} + message Message { optional string conversation = 1; optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2; @@ -266,47 +428,104 @@ message Message { optional HighlyStructuredMessage highlyStructuredMessage = 14; optional SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15; optional SendPaymentMessage sendPaymentMessage = 16; - optional RequestPaymentMessage requestPaymentMessage = 17; optional LiveLocationMessage liveLocationMessage = 18; - optional StickerMessage stickerMessage = 20; + optional RequestPaymentMessage requestPaymentMessage = 22; + optional DeclinePaymentRequestMessage declinePaymentRequestMessage = 23; + optional CancelPaymentRequestMessage cancelPaymentRequestMessage = 24; + optional TemplateMessage templateMessage = 25; + optional StickerMessage stickerMessage = 26; + optional ProductMessage productMessage = 27; + optional GroupInviteMessage groupInviteMessage = 28; } -message ContextInfo { - optional string stanzaId = 1; - optional string participant = 2; - repeated Message quotedMessage = 3; - optional string remoteJid = 4; - repeated string mentionedJid = 15; - optional string conversionSource = 18; - optional bytes conversionData = 19; - optional uint32 conversionDelaySeconds = 20; - optional bool isForwarded = 22; - reserved 16, 17; +message MessageKey { + optional string remoteJid = 1; + optional bool fromMe = 2; + optional string id = 3; + optional string participant = 4; } -message InteractiveAnnotation { - repeated Point polygonVertices = 1; - oneof action { - Location location = 2; +message WebFeatures { + enum WEB_FEATURES_FLAG { + NOT_IMPLEMENTED = 0; + IMPLEMENTED = 1; + OPTIONAL = 2; } + optional WEB_FEATURES_FLAG labelsDisplay = 1; + optional WEB_FEATURES_FLAG voipIndividualOutgoing = 2; + optional WEB_FEATURES_FLAG groupsV3 = 3; + optional WEB_FEATURES_FLAG groupsV3Create = 4; + optional WEB_FEATURES_FLAG changeNumberV2 = 5; + optional WEB_FEATURES_FLAG queryStatusV3Thumbnail = 6; + optional WEB_FEATURES_FLAG liveLocations = 7; + optional WEB_FEATURES_FLAG queryVname = 8; + optional WEB_FEATURES_FLAG voipIndividualIncoming = 9; + optional WEB_FEATURES_FLAG quickRepliesQuery = 10; + optional WEB_FEATURES_FLAG payments = 11; + optional WEB_FEATURES_FLAG stickerPackQuery = 12; + optional WEB_FEATURES_FLAG liveLocationsFinal = 13; + optional WEB_FEATURES_FLAG labelsEdit = 14; + optional WEB_FEATURES_FLAG mediaUpload = 15; + optional WEB_FEATURES_FLAG mediaUploadRichQuickReplies = 18; + optional WEB_FEATURES_FLAG vnameV2 = 19; + optional WEB_FEATURES_FLAG videoPlaybackUrl = 20; + optional WEB_FEATURES_FLAG statusRanking = 21; + optional WEB_FEATURES_FLAG voipIndividualVideo = 22; + optional WEB_FEATURES_FLAG thirdPartyStickers = 23; + optional WEB_FEATURES_FLAG frequentlyForwardedSetting = 24; } -message Point { - optional double x = 3; - optional double y = 4; +message TabletNotificationsInfo { + optional uint64 timestamp = 2; + optional uint32 unreadChats = 3; + optional uint32 notifyMessageCount = 4; + repeated NotificationMessageInfo notifyMessage = 5; } -message Location { - optional double degreesLatitude = 1; - optional double degreesLongitude = 2; - optional string name = 3; +message NotificationMessageInfo { + optional MessageKey key = 1; + optional Message message = 2; + optional uint64 messageTimestamp = 3; + optional string participant = 4; +} + +message WebNotificationsInfo { + optional uint64 timestamp = 2; + optional uint32 unreadChats = 3; + optional uint32 notifyMessageCount = 4; + repeated WebMessageInfo notifyMessages = 5; +} + +message PaymentInfo { + optional uint64 amount1000 = 2; + optional string receiverJid = 3; + enum PAYMENT_INFO_STATUS { + UNKNOWN_STATUS = 0; + PROCESSING = 1; + SENT = 2; + NEED_TO_ACCEPT = 3; + COMPLETE = 4; + COULD_NOT_COMPLETE = 5; + REFUNDED = 6; + EXPIRED = 7; + REJECTED = 8; + CANCELLED = 9; + WAITING_FOR_PAYER = 10; + WAITING = 11; + } + optional PAYMENT_INFO_STATUS status = 4; + optional uint64 transactionTimestamp = 5; + optional MessageKey requestMessageKey = 6; + optional uint64 expiryTimestamp = 7; + optional bool futureproofed = 8; + optional string currency = 9; } message WebMessageInfo { required MessageKey key = 1; optional Message message = 2; optional uint64 messageTimestamp = 3; - enum STATUS { + enum WEB_MESSAGE_INFO_STATUS { ERROR = 0; PENDING = 1; SERVER_ACK = 2; @@ -314,7 +533,7 @@ message WebMessageInfo { READ = 4; PLAYED = 5; } - optional STATUS status = 4 [default=PENDING]; + optional WEB_MESSAGE_INFO_STATUS status = 4; optional string participant = 5; optional bool ignore = 16; optional bool starred = 17; @@ -324,7 +543,7 @@ message WebMessageInfo { optional bool multicast = 21; optional bool urlText = 22; optional bool urlNumber = 23; - enum STUBTYPE { + enum WEB_MESSAGE_INFO_STUBTYPE { UNKNOWN = 0; REVOKE = 1; CIPHERTEXT = 2; @@ -369,49 +588,39 @@ message WebMessageInfo { CALL_MISSED_VIDEO = 41; INDIVIDUAL_CHANGE_NUMBER = 42; GROUP_DELETE = 43; + GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE = 44; + CALL_MISSED_GROUP_VOICE = 45; + CALL_MISSED_GROUP_VIDEO = 46; + PAYMENT_CIPHERTEXT = 47; + PAYMENT_FUTUREPROOF = 48; + PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED = 49; + PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED = 50; + PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED = 51; + PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP = 52; + PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP = 53; + PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER = 54; + PAYMENT_ACTION_SEND_PAYMENT_REMINDER = 55; + PAYMENT_ACTION_SEND_PAYMENT_INVITATION = 56; + PAYMENT_ACTION_REQUEST_DECLINED = 57; + PAYMENT_ACTION_REQUEST_EXPIRED = 58; + PAYMENT_ACTION_REQUEST_CANCELLED = 59; + BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM = 60; + BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP = 61; + BIZ_INTRO_TOP = 62; + BIZ_INTRO_BOTTOM = 63; + BIZ_NAME_CHANGE = 64; + BIZ_MOVE_TO_CONSUMER_APP = 65; + BIZ_TWO_TIER_MIGRATION_TOP = 66; + BIZ_TWO_TIER_MIGRATION_BOTTOM = 67; + OVERSIZED = 68; + GROUP_CHANGE_NO_FREQUENTLY_FORWARDED = 69; } - optional STUBTYPE messageStubType = 24; + optional WEB_MESSAGE_INFO_STUBTYPE messageStubType = 24; optional bool clearMedia = 25; repeated string messageStubParameters = 26; optional uint32 duration = 27; repeated string labels = 28; -} - -message WebNotificationsInfo { - optional uint64 timestamp = 2; - optional uint32 unreadChats = 3; - optional uint32 notifyMessageCount = 4; - repeated Message notifyMessages = 5; -} - -message NotificationMessageInfo { - optional MessageKey key = 1; - optional Message message = 2; - optional uint64 messageTimestamp = 3; - optional string participant = 4; -} - -message TabletNotificationsInfo { - optional uint64 timestamp = 2; - optional uint32 unreadChats = 3; - optional uint32 notifyMessageCount = 4; - repeated Message notifyMessage = 5; -} - -message WebFeatures { - enum FLAG { - NOT_IMPLEMENTED = 0; - IMPLEMENTED = 1; - OPTIONAL = 2; - } - optional FLAG labelsDisplay = 1; - optional FLAG voipIndividualOutgoing = 2; - optional FLAG groupsV3 = 3; - optional FLAG groupsV3Create = 4; - optional FLAG changeNumberV2 = 5; - optional FLAG queryStatusV3Thumbnail = 6; - optional FLAG liveLocations = 7; - optional FLAG queryVname = 8; - optional FLAG voipIndividualIncoming = 9; - optional FLAG quickRepliesQuery = 10; + optional PaymentInfo paymentInfo = 29; + optional LiveLocationMessage finalLiveLocation = 30; + optional PaymentInfo quotedPaymentInfo = 31; } diff --git a/vendor/github.com/Rhymen/go-whatsapp/conn.go b/vendor/github.com/Rhymen/go-whatsapp/conn.go index 2bdeb118..915ad4d9 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/conn.go +++ b/vendor/github.com/Rhymen/go-whatsapp/conn.go @@ -4,6 +4,7 @@ package whatsapp import ( "math/rand" "net/http" + "net/url" "sync" "time" @@ -91,6 +92,7 @@ type Conn struct { shortClientName string loginSessionLock sync.RWMutex + Proxy func(*http.Request) (*url.URL, error) } type websocketWrapper struct { @@ -121,6 +123,21 @@ func NewConn(timeout time.Duration) (*Conn, error) { return wac, wac.connect() } +// NewConnWithProxy Create a new connect with a given timeout and a http proxy. +func NewConnWithProxy(timeout time.Duration, proxy func(*http.Request) (*url.URL, error)) (*Conn, error) { + wac := &Conn{ + handler: make([]Handler, 0), + msgCount: 0, + msgTimeout: timeout, + Store: newStore(), + + longClientName: "github.com/rhymen/go-whatsapp", + shortClientName: "go-whatsapp", + Proxy: proxy, + } + return wac, wac.connect() +} + // connect should be guarded with wsWriteMutex func (wac *Conn) connect() (err error) { if wac.connected { @@ -137,6 +154,7 @@ func (wac *Conn) connect() (err error) { ReadBufferSize: 25 * 1024 * 1024, WriteBufferSize: 10 * 1024 * 1024, HandshakeTimeout: wac.msgTimeout, + Proxy: wac.Proxy, } headers := http.Header{"Origin": []string{"https://web.whatsapp.com"}} @@ -202,7 +220,7 @@ func (wac *Conn) AdminTest() (bool, error) { return false, ErrInvalidSession } - result, err := wac.sendAdminTest() + result, err := wac.sendAdminTest() return result, err } diff --git a/vendor/github.com/Rhymen/go-whatsapp/contact.go b/vendor/github.com/Rhymen/go-whatsapp/contact.go index 9faaf5cc..bcaf8734 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/contact.go +++ b/vendor/github.com/Rhymen/go-whatsapp/contact.go @@ -51,6 +51,10 @@ func (wac *Conn) LoadMessagesAfter(jid, messageId string, count int) (*binary.No return wac.query("message", jid, messageId, "after", "true", "", count, 0) } +func (wac *Conn) LoadMediaInfo(jid, messageId, owner string) (*binary.Node, error) { + return wac.query("media", jid, messageId, "", owner, "", 0, 0) +} + func (wac *Conn) Presence(jid string, presence Presence) (<-chan string, error) { ts := time.Now().Unix() tag := fmt.Sprintf("%d.--%d", ts, wac.msgCount) @@ -163,7 +167,12 @@ func (wac *Conn) query(t, jid, messageId, kind, owner, search string, count, pag n.Attributes["page"] = strconv.Itoa(page) } - ch, err := wac.writeBinary(n, group, ignore, tag) + metric := group + if t == "media" { + metric = queryMedia + } + + ch, err := wac.writeBinary(n, metric, ignore, tag) if err != nil { return nil, err } diff --git a/vendor/github.com/Rhymen/go-whatsapp/errors.go b/vendor/github.com/Rhymen/go-whatsapp/errors.go index b505a3c4..b49960f8 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/errors.go +++ b/vendor/github.com/Rhymen/go-whatsapp/errors.go @@ -6,18 +6,20 @@ import ( ) var ( - ErrAlreadyConnected = errors.New("already connected") - ErrAlreadyLoggedIn = errors.New("already logged in") - ErrInvalidSession = errors.New("invalid session") - ErrLoginInProgress = errors.New("login or restore already running") - ErrNotConnected = errors.New("not connected") - ErrInvalidWsData = errors.New("received invalid data") - ErrInvalidWsState = errors.New("can't handle binary data when not logged in") - ErrConnectionTimeout = errors.New("connection timed out") - ErrMissingMessageTag = errors.New("no messageTag specified or to short") - ErrInvalidHmac = errors.New("invalid hmac") - ErrInvalidServerResponse = errors.New("invalid response received from server") - ErrServerRespondedWith404 = errors.New("server responded with status 404") + ErrAlreadyConnected = errors.New("already connected") + ErrAlreadyLoggedIn = errors.New("already logged in") + ErrInvalidSession = errors.New("invalid session") + ErrLoginInProgress = errors.New("login or restore already running") + ErrNotConnected = errors.New("not connected") + ErrInvalidWsData = errors.New("received invalid data") + ErrInvalidWsState = errors.New("can't handle binary data when not logged in") + ErrConnectionTimeout = errors.New("connection timed out") + ErrMissingMessageTag = errors.New("no messageTag specified or to short") + ErrInvalidHmac = errors.New("invalid hmac") + ErrInvalidServerResponse = errors.New("invalid response received from server") + ErrServerRespondedWith404 = errors.New("server responded with status 404") + ErrMediaDownloadFailedWith404 = errors.New("download failed with status code 404") + ErrMediaDownloadFailedWith410 = errors.New("download failed with status code 410") ) type ErrConnectionFailed struct { diff --git a/vendor/github.com/Rhymen/go-whatsapp/handler.go b/vendor/github.com/Rhymen/go-whatsapp/handler.go index 8d4b6bee..a70d15bf 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/handler.go +++ b/vendor/github.com/Rhymen/go-whatsapp/handler.go @@ -81,6 +81,14 @@ type LocationMessageHandler interface { HandleLocationMessage(message LocationMessage) } +/* +The StickerMessageHandler interface needs to be implemented to receive location messages dispatched by the dispatcher. +*/ +type StickerMessageHandler interface { + Handler + HandleStickerMessage(message StickerMessage) +} + /* The JsonMessageHandler interface needs to be implemented to receive json messages dispatched by the dispatcher. These json messages contain status updates of every kind sent by WhatsAppWeb servers. WhatsAppWeb uses these messages @@ -247,6 +255,18 @@ func (wac *Conn) handleWithCustomHandlers(message interface{}, handlers []Handle } } } + + case StickerMessage: + for _, h := range handlers { + if x, ok := h.(StickerMessageHandler); ok { + if wac.shouldCallSynchronously(h) { + x.HandleStickerMessage(m) + } else { + go x.HandleStickerMessage(m) + } + } + } + case *proto.WebMessageInfo: for _, h := range handlers { if x, ok := h.(RawMessageHandler); ok { diff --git a/vendor/github.com/Rhymen/go-whatsapp/media.go b/vendor/github.com/Rhymen/go-whatsapp/media.go index 1bf729bb..b15b9ae2 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/media.go +++ b/vendor/github.com/Rhymen/go-whatsapp/media.go @@ -74,6 +74,12 @@ func downloadMedia(url string) (file []byte, mac []byte, err error) { return nil, nil, err } if resp.StatusCode != 200 { + if resp.StatusCode == 404 { + return nil, nil, ErrMediaDownloadFailedWith404 + } + if resp.StatusCode == 410 { + return nil, nil, ErrMediaDownloadFailedWith410 + } return nil, nil, fmt.Errorf("download failed with status code %d", resp.StatusCode) } defer resp.Body.Close() diff --git a/vendor/github.com/Rhymen/go-whatsapp/message.go b/vendor/github.com/Rhymen/go-whatsapp/message.go index 84ef15fd..5f69f83e 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/message.go +++ b/vendor/github.com/Rhymen/go-whatsapp/message.go @@ -4,13 +4,14 @@ import ( "encoding/hex" "encoding/json" "fmt" - "github.com/Rhymen/go-whatsapp/binary" - "github.com/Rhymen/go-whatsapp/binary/proto" "io" "math/rand" "strconv" "strings" "time" + + "github.com/Rhymen/go-whatsapp/binary" + "github.com/Rhymen/go-whatsapp/binary/proto" ) type MediaType string @@ -131,6 +132,7 @@ type MessageInfo struct { PushName string Status MessageStatus QuotedMessageID string + QuotedMessage proto.Message Source *proto.WebMessageInfo } @@ -170,7 +172,7 @@ func getInfoProto(info *MessageInfo) *proto.WebMessageInfo { } info.FromMe = true - status := proto.WebMessageInfo_STATUS(info.Status) + status := proto.WebMessageInfo_WEB_MESSAGE_INFO_STATUS(info.Status) return &proto.WebMessageInfo{ Key: &proto.MessageKey{ @@ -183,6 +185,22 @@ func getInfoProto(info *MessageInfo) *proto.WebMessageInfo { } } +func getContextInfoProto(info *MessageInfo) *proto.ContextInfo { + if len(info.QuotedMessageID) > 0 { + contextInfo := &proto.ContextInfo{ + StanzaId: &info.QuotedMessageID, + } + + if &info.QuotedMessage != nil { + contextInfo.QuotedMessage = &info.QuotedMessage + } + + return contextInfo + } + + return nil +} + /* TextMessage represents a text message. */ @@ -204,9 +222,21 @@ func getTextMessage(msg *proto.WebMessageInfo) TextMessage { func getTextProto(msg TextMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) - p.Message = &proto.Message{ - Conversation: &msg.Text, + contextInfo := getContextInfoProto(&msg.Info) + + if contextInfo == nil { + p.Message = &proto.Message{ + Conversation: &msg.Text, + } + } else { + p.Message = &proto.Message{ + ExtendedTextMessage: &proto.ExtendedTextMessage{ + Text: &msg.Text, + ContextInfo: contextInfo, + }, + } } + return p } @@ -229,7 +259,8 @@ type ImageMessage struct { func getImageMessage(msg *proto.WebMessageInfo) ImageMessage { image := msg.GetMessage().GetImageMessage() - return ImageMessage{ + + imageMessage := ImageMessage{ Info: getMessageInfo(msg), Caption: image.GetCaption(), Thumbnail: image.GetJpegThumbnail(), @@ -240,10 +271,18 @@ func getImageMessage(msg *proto.WebMessageInfo) ImageMessage { fileSha256: image.GetFileSha256(), fileLength: image.GetFileLength(), } + + if contextInfo := image.GetContextInfo(); contextInfo != nil { + imageMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return imageMessage } func getImageProto(msg ImageMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) + p.Message = &proto.Message{ ImageMessage: &proto.ImageMessage{ Caption: &msg.Caption, @@ -254,6 +293,7 @@ func getImageProto(msg ImageMessage) *proto.WebMessageInfo { FileEncSha256: msg.fileEncSha256, FileSha256: msg.fileSha256, FileLength: &msg.fileLength, + ContextInfo: contextInfo, }, } return p @@ -287,7 +327,8 @@ type VideoMessage struct { func getVideoMessage(msg *proto.WebMessageInfo) VideoMessage { vid := msg.GetMessage().GetVideoMessage() - return VideoMessage{ + + videoMessage := VideoMessage{ Info: getMessageInfo(msg), Caption: vid.GetCaption(), Thumbnail: vid.GetJpegThumbnail(), @@ -300,10 +341,18 @@ func getVideoMessage(msg *proto.WebMessageInfo) VideoMessage { fileSha256: vid.GetFileSha256(), fileLength: vid.GetFileLength(), } + + if contextInfo := vid.GetContextInfo(); contextInfo != nil { + videoMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return videoMessage } func getVideoProto(msg VideoMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) + p.Message = &proto.Message{ VideoMessage: &proto.VideoMessage{ Caption: &msg.Caption, @@ -316,6 +365,7 @@ func getVideoProto(msg VideoMessage) *proto.WebMessageInfo { FileSha256: msg.fileSha256, FileLength: &msg.fileLength, Mimetype: &msg.Type, + ContextInfo: contextInfo, }, } return p @@ -337,6 +387,7 @@ type AudioMessage struct { Length uint32 Type string Content io.Reader + Ptt bool url string mediaKey []byte fileEncSha256 []byte @@ -346,7 +397,8 @@ type AudioMessage struct { func getAudioMessage(msg *proto.WebMessageInfo) AudioMessage { aud := msg.GetMessage().GetAudioMessage() - return AudioMessage{ + + audioMessage := AudioMessage{ Info: getMessageInfo(msg), url: aud.GetUrl(), mediaKey: aud.GetMediaKey(), @@ -356,10 +408,17 @@ func getAudioMessage(msg *proto.WebMessageInfo) AudioMessage { fileSha256: aud.GetFileSha256(), fileLength: aud.GetFileLength(), } + + if contextInfo := aud.GetContextInfo(); contextInfo != nil { + audioMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return audioMessage } func getAudioProto(msg AudioMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) p.Message = &proto.Message{ AudioMessage: &proto.AudioMessage{ Url: &msg.url, @@ -369,6 +428,8 @@ func getAudioProto(msg AudioMessage) *proto.WebMessageInfo { FileSha256: msg.fileSha256, FileLength: &msg.fileLength, Mimetype: &msg.Type, + ContextInfo: contextInfo, + Ptt: &msg.Ptt, }, } return p @@ -402,7 +463,8 @@ type DocumentMessage struct { func getDocumentMessage(msg *proto.WebMessageInfo) DocumentMessage { doc := msg.GetMessage().GetDocumentMessage() - return DocumentMessage{ + + documentMessage := DocumentMessage{ Info: getMessageInfo(msg), Title: doc.GetTitle(), PageCount: doc.GetPageCount(), @@ -415,10 +477,17 @@ func getDocumentMessage(msg *proto.WebMessageInfo) DocumentMessage { fileSha256: doc.GetFileSha256(), fileLength: doc.GetFileLength(), } + + if contextInfo := doc.GetContextInfo(); contextInfo != nil { + documentMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return documentMessage } func getDocumentProto(msg DocumentMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) p.Message = &proto.Message{ DocumentMessage: &proto.DocumentMessage{ JpegThumbnail: msg.Thumbnail, @@ -430,6 +499,7 @@ func getDocumentProto(msg DocumentMessage) *proto.WebMessageInfo { PageCount: &msg.PageCount, Title: &msg.Title, Mimetype: &msg.Type, + ContextInfo: contextInfo, }, } return p @@ -457,7 +527,8 @@ type LocationMessage struct { func GetLocationMessage(msg *proto.WebMessageInfo) LocationMessage { loc := msg.GetMessage().GetLocationMessage() - return LocationMessage{ + + locationMessage := LocationMessage{ Info: getMessageInfo(msg), DegreesLatitude: loc.GetDegreesLatitude(), DegreesLongitude: loc.GetDegreesLongitude(), @@ -466,10 +537,18 @@ func GetLocationMessage(msg *proto.WebMessageInfo) LocationMessage { Url: loc.GetUrl(), JpegThumbnail: loc.GetJpegThumbnail(), } + + if contextInfo := loc.GetContextInfo(); contextInfo != nil { + locationMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return locationMessage } func GetLocationProto(msg LocationMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) + p.Message = &proto.Message{ LocationMessage: &proto.LocationMessage{ DegreesLatitude: &msg.DegreesLatitude, @@ -478,6 +557,7 @@ func GetLocationProto(msg LocationMessage) *proto.WebMessageInfo { Address: &msg.Address, Url: &msg.Url, JpegThumbnail: msg.JpegThumbnail, + ContextInfo: contextInfo, }, } return p @@ -500,7 +580,8 @@ type LiveLocationMessage struct { func GetLiveLocationMessage(msg *proto.WebMessageInfo) LiveLocationMessage { loc := msg.GetMessage().GetLiveLocationMessage() - return LiveLocationMessage{ + + liveLocationMessage := LiveLocationMessage{ Info: getMessageInfo(msg), DegreesLatitude: loc.GetDegreesLatitude(), DegreesLongitude: loc.GetDegreesLongitude(), @@ -511,10 +592,17 @@ func GetLiveLocationMessage(msg *proto.WebMessageInfo) LiveLocationMessage { SequenceNumber: loc.GetSequenceNumber(), JpegThumbnail: loc.GetJpegThumbnail(), } + + if contextInfo := loc.GetContextInfo(); contextInfo != nil { + liveLocationMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return liveLocationMessage } func GetLiveLocationProto(msg LiveLocationMessage) *proto.WebMessageInfo { p := getInfoProto(&msg.Info) + contextInfo := getContextInfoProto(&msg.Info) p.Message = &proto.Message{ LiveLocationMessage: &proto.LiveLocationMessage{ DegreesLatitude: &msg.DegreesLatitude, @@ -525,11 +613,49 @@ func GetLiveLocationProto(msg LiveLocationMessage) *proto.WebMessageInfo { Caption: &msg.Caption, SequenceNumber: &msg.SequenceNumber, JpegThumbnail: msg.JpegThumbnail, + ContextInfo: contextInfo, }, } return p } +/* +StickerMessage represents a sticker message. +*/ +type StickerMessage struct { + Info MessageInfo + + Thumbnail []byte + Type string + Content io.Reader + url string + mediaKey []byte + fileEncSha256 []byte + fileSha256 []byte + fileLength uint64 +} + +func getStickerMessage(msg *proto.WebMessageInfo) StickerMessage { + sticker := msg.GetMessage().GetStickerMessage() + + StickerMessage := StickerMessage{ + Info: getMessageInfo(msg), + Thumbnail: sticker.GetPngThumbnail(), + url: sticker.GetUrl(), + mediaKey: sticker.GetMediaKey(), + Type: sticker.GetMimetype(), + fileEncSha256: sticker.GetFileEncSha256(), + fileSha256: sticker.GetFileSha256(), + fileLength: sticker.GetFileLength(), + } + + if contextInfo := sticker.GetContextInfo(); contextInfo != nil { + StickerMessage.Info.QuotedMessageID = contextInfo.GetStanzaId() + } + + return StickerMessage +} + func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} { switch { @@ -557,6 +683,9 @@ func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} { case msg.GetMessage().GetLiveLocationMessage() != nil: return GetLiveLocationMessage(msg) + case msg.GetMessage().GetStickerMessage() != nil: + return getStickerMessage(msg) + default: //cannot match message } diff --git a/vendor/github.com/Rhymen/go-whatsapp/session.go b/vendor/github.com/Rhymen/go-whatsapp/session.go index 11307fab..e13c4504 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/session.go +++ b/vendor/github.com/Rhymen/go-whatsapp/session.go @@ -7,6 +7,8 @@ import ( "encoding/base64" "encoding/json" "fmt" + "strconv" + "strings" "sync/atomic" "time" @@ -88,6 +90,53 @@ func newInfoFromReq(info map[string]interface{}) *Info { return ret } +/* +CheckCurrentServerVersion is based on the login method logic in order to establish the websocket connection and get +the current version from the server with the `admin init` command. This can be very useful for automations in which +you need to quickly perceive new versions (mostly patches) and update your application so it suddenly stops working. +*/ +func CheckCurrentServerVersion() ([]int, error) { + wac, err := NewConn(5 * time.Second) + if err != nil { + return nil, fmt.Errorf("fail to create connection") + } + + clientId := make([]byte, 16) + if _, err = rand.Read(clientId); err != nil { + return nil, fmt.Errorf("error creating random ClientId: %v", err) + } + + b64ClientId := base64.StdEncoding.EncodeToString(clientId) + login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName}, b64ClientId, true} + loginChan, err := wac.writeJson(login) + if err != nil { + return nil, fmt.Errorf("error writing login", err) + } + + // Retrieve an answer from the websocket + var r string + select { + case r = <-loginChan: + case <-time.After(wac.msgTimeout): + return nil, fmt.Errorf("login connection timed out") + } + + var resp map[string]interface{} + if err = json.Unmarshal([]byte(r), &resp); err != nil { + return nil, fmt.Errorf("error decoding login", err) + } + + // Take the curr property as X.Y.Z and split it into as int slice + curr := resp["curr"].(string) + currArray := strings.Split(curr, ".") + version := make([]int, len(currArray)) + for i := range version { + version[i], _ = strconv.Atoi(currArray[i]) + } + + return version, nil +} + /* SetClientName sets the long and short client names that are sent to WhatsApp when logging in and displayed in the WhatsApp Web device list. As the values are only sent when logging in, changing them after logging in is not possible. @@ -108,6 +157,11 @@ func (wac *Conn) SetClientVersion(major int, minor int, patch int) { waVersion = []int{major, minor, patch} } +// GetClientVersion returns WhatsApp client version +func (wac *Conn) GetClientVersion() []int { + return waVersion +} + /* Login is the function that creates a new whatsapp session and logs you in. If you do not want to scan the qr code every time, you should save the returned session and use RestoreWithSession the next time. Login takes a writable channel diff --git a/vendor/github.com/Rhymen/go-whatsapp/write.go b/vendor/github.com/Rhymen/go-whatsapp/write.go index 2b07ca6b..b3704e4a 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/write.go +++ b/vendor/github.com/Rhymen/go-whatsapp/write.go @@ -78,13 +78,13 @@ func (wac *Conn) sendKeepAlive() error { return nil } -/* +/* When phone is unreachable, WhatsAppWeb sends ["admin","test"] time after time to try a successful contact. Tested with Airplane mode and no connection at all. */ func (wac *Conn) sendAdminTest() (bool, error) { data := []interface{}{"admin", "test"} - + r, err := wac.writeJson(data) if err != nil { return false, errors.Wrap(err, "error sending admin test") @@ -103,9 +103,9 @@ func (wac *Conn) sendAdminTest() (bool, error) { if len(response) == 2 && response[0].(string) == "Pong" && response[1].(bool) == true { return true, nil - } else{ + } else { return false, nil - } + } } func (wac *Conn) write(messageType int, answerMessageTag string, data []byte) (<-chan string, error) { diff --git a/vendor/github.com/bwmarrin/discordgo/README.md b/vendor/github.com/bwmarrin/discordgo/README.md index cb5a6659..7a83b9e2 100644 --- a/vendor/github.com/bwmarrin/discordgo/README.md +++ b/vendor/github.com/bwmarrin/discordgo/README.md @@ -1,6 +1,6 @@ # DiscordGo -[![GoDoc](https://godoc.org/github.com/bwmarrin/discordgo?status.svg)](https://godoc.org/github.com/bwmarrin/discordgo) [![Go report](http://goreportcard.com/badge/bwmarrin/discordgo)](http://goreportcard.com/report/bwmarrin/discordgo) [![Build Status](https://travis-ci.org/bwmarrin/discordgo.svg?branch=master)](https://travis-ci.org/bwmarrin/discordgo) [![Discord Gophers](https://img.shields.io/badge/Discord%20Gophers-%23discordgo-blue.svg)](https://discord.gg/0f1SbxBZjYoCtNPP) [![Discord API](https://img.shields.io/badge/Discord%20API-%23go_discordgo-blue.svg)](https://discord.gg/0SBTUU1wZTWT6sqd) +[![GoDoc](https://godoc.org/github.com/bwmarrin/discordgo?status.svg)](https://godoc.org/github.com/bwmarrin/discordgo) [![Go report](http://goreportcard.com/badge/bwmarrin/discordgo)](http://goreportcard.com/report/bwmarrin/discordgo) [![Build Status](https://travis-ci.org/bwmarrin/discordgo.svg?branch=master)](https://travis-ci.org/bwmarrin/discordgo) [![Discord Gophers](https://img.shields.io/badge/Discord%20Gophers-%23discordgo-blue.svg)](https://discord.gg/0f1SbxBZjYoCtNPP) [![Discord API](https://img.shields.io/badge/Discord%20API-%23go_discordgo-blue.svg)](https://discordapp.com/invite/discord-api) diff --git a/vendor/github.com/bwmarrin/discordgo/discord.go b/vendor/github.com/bwmarrin/discordgo/discord.go index cdac67fe..76f1ad94 100644 --- a/vendor/github.com/bwmarrin/discordgo/discord.go +++ b/vendor/github.com/bwmarrin/discordgo/discord.go @@ -21,7 +21,7 @@ import ( ) // VERSION of DiscordGo, follows Semantic Versioning. (http://semver.org/) -const VERSION = "0.19.0" +const VERSION = "0.20.1" // ErrMFA will be risen by New when the user has 2FA. var ErrMFA = errors.New("account has 2FA enabled") @@ -58,6 +58,7 @@ func New(args ...interface{}) (s *Session, err error) { ShardCount: 1, MaxRestRetries: 3, Client: &http.Client{Timeout: (20 * time.Second)}, + UserAgent: "DiscordBot (https://github.com/bwmarrin/discordgo, v" + VERSION + ")", sequence: new(int64), LastHeartbeatAck: time.Now().UTC(), } diff --git a/vendor/github.com/bwmarrin/discordgo/endpoints.go b/vendor/github.com/bwmarrin/discordgo/endpoints.go index b9619089..6f86b67f 100644 --- a/vendor/github.com/bwmarrin/discordgo/endpoints.go +++ b/vendor/github.com/bwmarrin/discordgo/endpoints.go @@ -38,6 +38,7 @@ var ( EndpointCDNIcons = EndpointCDN + "icons/" EndpointCDNSplashes = EndpointCDN + "splashes/" EndpointCDNChannelIcons = EndpointCDN + "channel-icons/" + EndpointCDNBanners = EndpointCDN + "banners/" EndpointAuth = EndpointAPI + "auth/" EndpointLogin = EndpointAuth + "login" @@ -92,11 +93,13 @@ var ( EndpointGuildEmbed = func(gID string) string { return EndpointGuilds + gID + "/embed" } EndpointGuildPrune = func(gID string) string { return EndpointGuilds + gID + "/prune" } EndpointGuildIcon = func(gID, hash string) string { return EndpointCDNIcons + gID + "/" + hash + ".png" } + EndpointGuildIconAnimated = func(gID, hash string) string { return EndpointCDNIcons + gID + "/" + hash + ".gif" } EndpointGuildSplash = func(gID, hash string) string { return EndpointCDNSplashes + gID + "/" + hash + ".png" } EndpointGuildWebhooks = func(gID string) string { return EndpointGuilds + gID + "/webhooks" } EndpointGuildAuditLogs = func(gID string) string { return EndpointGuilds + gID + "/audit-logs" } EndpointGuildEmojis = func(gID string) string { return EndpointGuilds + gID + "/emojis" } EndpointGuildEmoji = func(gID, eID string) string { return EndpointGuilds + gID + "/emojis/" + eID } + EndpointGuildBanner = func(gID, hash string) string { return EndpointCDNBanners + gID + "/" + hash + ".png" } EndpointChannel = func(cID string) string { return EndpointChannels + cID } EndpointChannelPermissions = func(cID string) string { return EndpointChannels + cID + "/permissions" } @@ -139,8 +142,9 @@ var ( EndpointEmoji = func(eID string) string { return EndpointAPI + "emojis/" + eID + ".png" } EndpointEmojiAnimated = func(eID string) string { return EndpointAPI + "emojis/" + eID + ".gif" } - EndpointOauth2 = EndpointAPI + "oauth2/" - EndpointApplications = EndpointOauth2 + "applications" - EndpointApplication = func(aID string) string { return EndpointApplications + "/" + aID } - EndpointApplicationsBot = func(aID string) string { return EndpointApplications + "/" + aID + "/bot" } + EndpointOauth2 = EndpointAPI + "oauth2/" + EndpointApplications = EndpointOauth2 + "applications" + EndpointApplication = func(aID string) string { return EndpointApplications + "/" + aID } + EndpointApplicationsBot = func(aID string) string { return EndpointApplications + "/" + aID + "/bot" } + EndpointApplicationAssets = func(aID string) string { return EndpointApplications + "/" + aID + "/assets" } ) diff --git a/vendor/github.com/bwmarrin/discordgo/events.go b/vendor/github.com/bwmarrin/discordgo/events.go index c4fb5205..c416813c 100644 --- a/vendor/github.com/bwmarrin/discordgo/events.go +++ b/vendor/github.com/bwmarrin/discordgo/events.go @@ -10,15 +10,15 @@ import ( //go:generate go run tools/cmd/eventhandlers/main.go // Connect is the data for a Connect event. -// This is a sythetic event and is not dispatched by Discord. +// This is a synthetic event and is not dispatched by Discord. type Connect struct{} // Disconnect is the data for a Disconnect event. -// This is a sythetic event and is not dispatched by Discord. +// This is a synthetic event and is not dispatched by Discord. type Disconnect struct{} // RateLimit is the data for a RateLimit event. -// This is a sythetic event and is not dispatched by Discord. +// This is a synthetic event and is not dispatched by Discord. type RateLimit struct { *TooManyRequests URL string @@ -162,6 +162,8 @@ type MessageCreate struct { // MessageUpdate is the data for a MessageUpdate event. type MessageUpdate struct { *Message + // BeforeUpdate will be nil if the Message was not previously cached in the state cache. + BeforeUpdate *Message `json:"-"` } // MessageDelete is the data for a MessageDelete event. diff --git a/vendor/github.com/bwmarrin/discordgo/message.go b/vendor/github.com/bwmarrin/discordgo/message.go index 2b609920..cc874295 100644 --- a/vendor/github.com/bwmarrin/discordgo/message.go +++ b/vendor/github.com/bwmarrin/discordgo/message.go @@ -28,6 +28,11 @@ const ( MessageTypeChannelIconChange MessageTypeChannelPinnedMessage MessageTypeGuildMemberJoin + MessageTypeUserPremiumGuildSubscription + MessageTypeUserPremiumGuildSubscriptionTierOne + MessageTypeUserPremiumGuildSubscriptionTierTwo + MessageTypeUserPremiumGuildSubscriptionTierThree + MessageTypeChannelFollowAdd ) // A Message stores all data related to a specific Discord message. @@ -80,11 +85,39 @@ type Message struct { // A list of reactions to the message. Reactions []*MessageReactions `json:"reactions"` + // Whether the message is pinned or not. + Pinned bool `json:"pinned"` + // The type of the message. Type MessageType `json:"type"` // The webhook ID of the message, if it was generated by a webhook WebhookID string `json:"webhook_id"` + + // Member properties for this message's author, + // contains only partial information + Member *Member `json:"member"` + + // Channels specifically mentioned in this message + // Not all channel mentions in a message will appear in mention_channels. + // Only textual channels that are visible to everyone in a lurkable guild will ever be included. + // Only crossposted messages (via Channel Following) currently include mention_channels at all. + // If no mentions in the message meet these requirements, this field will not be sent. + MentionChannels []*Channel `json:"mention_channels"` + + // Is sent with Rich Presence-related chat embeds + Activity *MessageActivity `json:"activity"` + + // Is sent with Rich Presence-related chat embeds + Application *MessageApplication `json:"application"` + + // MessageReference contains reference data sent with crossposted messages + MessageReference *MessageReference `json:"message_reference"` + + // The flags of the message, which describe extra features of a message. + // This is a combination of bit masks; the presence of a certain permission can + // be checked by performing a bitwise AND between this int and the flag. + Flags int `json:"flags"` } // File stores info about files you e.g. send in messages. @@ -225,6 +258,52 @@ type MessageReactions struct { Emoji *Emoji `json:"emoji"` } +// MessageActivity is sent with Rich Presence-related chat embeds +type MessageActivity struct { + Type MessageActivityType `json:"type"` + PartyID string `json:"party_id"` +} + +// MessageActivityType is the type of message activity +type MessageActivityType int + +// Constants for the different types of Message Activity +const ( + MessageActivityTypeJoin = iota + 1 + MessageActivityTypeSpectate + MessageActivityTypeListen + MessageActivityTypeJoinRequest +) + +// MessageFlag describes an extra feature of the message +type MessageFlag int + +// Constants for the different bit offsets of Message Flags +const ( + // This message has been published to subscribed channels (via Channel Following) + MessageFlagCrossposted = 1 << iota + // This message originated from a message in another channel (via Channel Following) + MessageFlagIsCrosspost + // Do not include any embeds when serializing this message + MessageFlagSuppressEmbeds +) + +// MessageApplication is sent with Rich Presence-related chat embeds +type MessageApplication struct { + ID string `json:"id"` + CoverImage string `json:"cover_image"` + Description string `json:"description"` + Icon string `json:"icon"` + Name string `json:"name"` +} + +// MessageReference contains reference data sent with crossposted messages +type MessageReference struct { + MessageID string `json:"message_id"` + ChannelID string `json:"channel_id"` + GuildID string `json:"guild_id"` +} + // ContentWithMentionsReplaced will replace all @ mentions with the // username of the mention. func (m *Message) ContentWithMentionsReplaced() (content string) { diff --git a/vendor/github.com/bwmarrin/discordgo/oauth2.go b/vendor/github.com/bwmarrin/discordgo/oauth2.go index 108b32fe..4a52120b 100644 --- a/vendor/github.com/bwmarrin/discordgo/oauth2.go +++ b/vendor/github.com/bwmarrin/discordgo/oauth2.go @@ -105,6 +105,25 @@ func (s *Session) ApplicationDelete(appID string) (err error) { return } +// Asset struct stores values for an asset of an application +type Asset struct { + Type int `json:"type"` + ID string `json:"id"` + Name string `json:"name"` +} + +// ApplicationAssets returns an application's assets +func (s *Session) ApplicationAssets(appID string) (ass []*Asset, err error) { + + body, err := s.RequestWithBucketID("GET", EndpointApplicationAssets(appID), nil, EndpointApplicationAssets("")) + if err != nil { + return + } + + err = unmarshal(body, &ass) + return +} + // ------------------------------------------------------------------------------------------------ // Code specific to Discord OAuth2 Application Bots // ------------------------------------------------------------------------------------------------ diff --git a/vendor/github.com/bwmarrin/discordgo/restapi.go b/vendor/github.com/bwmarrin/discordgo/restapi.go index ebeea876..63b4e076 100644 --- a/vendor/github.com/bwmarrin/discordgo/restapi.go +++ b/vendor/github.com/bwmarrin/discordgo/restapi.go @@ -90,7 +90,7 @@ func (s *Session) RequestWithLockedBucket(method, urlStr, contentType string, b req.Header.Set("Content-Type", contentType) // TODO: Make a configurable static variable. - req.Header.Set("User-Agent", "DiscordBot (https://github.com/bwmarrin/discordgo, v"+VERSION+")") + req.Header.Set("User-Agent", s.UserAgent) if s.Debug { for k, v := range req.Header { @@ -617,10 +617,10 @@ func (s *Session) GuildCreate(name string) (st *Guild, err error) { // g : A GuildParams struct with the values Name, Region and VerificationLevel defined. func (s *Session) GuildEdit(guildID string, g GuildParams) (st *Guild, err error) { - // Bounds checking for VerificationLevel, interval: [0, 3] + // Bounds checking for VerificationLevel, interval: [0, 4] if g.VerificationLevel != nil { val := *g.VerificationLevel - if val < 0 || val > 3 { + if val < 0 || val > 4 { err = ErrVerificationLevelBounds return } @@ -2067,7 +2067,7 @@ func (s *Session) WebhookDeleteWithToken(webhookID, token string) (st *Webhook, // WebhookExecute executes a webhook. // webhookID: The ID of a webhook. // token : The auth token for the webhook -// wait : Wait for server to confirm the message arrival +// wait : Waits for server confirmation of message send and ensures that the return struct is populated (it is nil otherwise) // // If `wait` is `false`, the returned *Message is always empty, because server // does not provide the response data. @@ -2150,6 +2150,8 @@ func (s *Session) WebhookExecute(webhookID, token string, wait bool, data *Webho // emojiID : Either the unicode emoji for the reaction, or a guild emoji identifier. func (s *Session) MessageReactionAdd(channelID, messageID, emojiID string) error { + // emoji such as #⃣ need to have # escaped + emojiID = strings.Replace(emojiID, "#", "%23", -1) _, err := s.RequestWithBucketID("PUT", EndpointMessageReaction(channelID, messageID, emojiID, "@me"), nil, EndpointMessageReaction(channelID, "", "", "")) return err @@ -2162,6 +2164,8 @@ func (s *Session) MessageReactionAdd(channelID, messageID, emojiID string) error // userID : @me or ID of the user to delete the reaction for. func (s *Session) MessageReactionRemove(channelID, messageID, emojiID, userID string) error { + // emoji such as #⃣ need to have # escaped + emojiID = strings.Replace(emojiID, "#", "%23", -1) _, err := s.RequestWithBucketID("DELETE", EndpointMessageReaction(channelID, messageID, emojiID, userID), nil, EndpointMessageReaction(channelID, "", "", "")) return err @@ -2183,6 +2187,8 @@ func (s *Session) MessageReactionsRemoveAll(channelID, messageID string) error { // emojiID : Either the unicode emoji for the reaction, or a guild emoji identifier. // limit : max number of users to return (max 100) func (s *Session) MessageReactions(channelID, messageID, emojiID string, limit int) (st []*User, err error) { + // emoji such as #⃣ need to have # escaped + emojiID = strings.Replace(emojiID, "#", "%23", -1) uri := EndpointMessageReactions(channelID, messageID, emojiID) v := url.Values{} diff --git a/vendor/github.com/bwmarrin/discordgo/state.go b/vendor/github.com/bwmarrin/discordgo/state.go index e6f08c73..7babc115 100644 --- a/vendor/github.com/bwmarrin/discordgo/state.go +++ b/vendor/github.com/bwmarrin/discordgo/state.go @@ -882,6 +882,13 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) { } case *MessageUpdate: if s.MaxMessageCount != 0 { + var old *Message + old, err = s.Message(t.ChannelID, t.ID) + if err == nil { + oldCopy := *old + t.BeforeUpdate = &oldCopy + } + err = s.MessageAdd(t.Message) } case *MessageDelete: diff --git a/vendor/github.com/bwmarrin/discordgo/structs.go b/vendor/github.com/bwmarrin/discordgo/structs.go index 29468a71..b19d3a67 100644 --- a/vendor/github.com/bwmarrin/discordgo/structs.go +++ b/vendor/github.com/bwmarrin/discordgo/structs.go @@ -15,6 +15,7 @@ import ( "encoding/json" "fmt" "net/http" + "strings" "sync" "time" @@ -82,6 +83,9 @@ type Session struct { // The http client used for REST requests Client *http.Client + // The user agent used for REST APIs + UserAgent string + // Stores the last HeartbeatAck that was recieved (in UTC) LastHeartbeatAck time.Time @@ -196,6 +200,8 @@ const ( ChannelTypeGuildVoice ChannelTypeGroupDM ChannelTypeGuildCategory + ChannelTypeGuildNews + ChannelTypeGuildStore ) // A Channel holds all data related to an individual Discord channel. @@ -220,6 +226,10 @@ type Channel struct { // guaranteed to be an ID of a valid message. LastMessageID string `json:"last_message_id"` + // The timestamp of the last pinned message in the channel. + // Empty if the channel has no pinned messages. + LastPinTimestamp Timestamp `json:"last_pin_timestamp"` + // Whether the channel is marked as NSFW. NSFW bool `json:"nsfw"` @@ -247,6 +257,10 @@ type Channel struct { // The ID of the parent channel, if the channel is under a category ParentID string `json:"parent_id"` + + // Amount of seconds a user has to wait before sending another message (0-21600) + // bots, as well as users with the permission manage_messages or manage_channel, are unaffected + RateLimitPerUser int `json:"rate_limit_per_user"` } // Mention returns a string which mentions the channel @@ -283,6 +297,7 @@ type Emoji struct { Managed bool `json:"managed"` RequireColons bool `json:"require_colons"` Animated bool `json:"animated"` + Available bool `json:"available"` } // MessageFormat returns a correctly formatted Emoji for use in Message content and embeds @@ -312,12 +327,13 @@ func (e *Emoji) APIName() string { // VerificationLevel type definition type VerificationLevel int -// Constants for VerificationLevel levels from 0 to 3 inclusive +// Constants for VerificationLevel levels from 0 to 4 inclusive const ( VerificationLevelNone VerificationLevel = iota VerificationLevelLow VerificationLevelMedium VerificationLevelHigh + VerificationLevelVeryHigh ) // ExplicitContentFilterLevel type definition @@ -339,6 +355,17 @@ const ( MfaLevelElevated ) +// PremiumTier type definition +type PremiumTier int + +// Constants for PremiumTier levels from 0 to 3 inclusive +const ( + PremiumTierNone PremiumTier = iota + PremiumTier1 + PremiumTier2 + PremiumTier3 +) + // A Guild holds all data related to a specific Discord Guild. Guilds are also // sometimes referred to as Servers in the Discord client. type Guild struct { @@ -443,6 +470,34 @@ type Guild struct { // The Channel ID to which system messages are sent (eg join and leave messages) SystemChannelID string `json:"system_channel_id"` + + // the vanity url code for the guild + VanityURLCode string `json:"vanity_url_code"` + + // the description for the guild + Description string `json:"description"` + + // The hash of the guild's banner + Banner string `json:"banner"` + + // The premium tier of the guild + PremiumTier PremiumTier `json:"premium_tier"` + + // The total number of users currently boosting this server + PremiumSubscriptionCount int `json:"premium_subscription_count"` +} + +// IconURL returns a URL to the guild's icon. +func (g *Guild) IconURL() string { + if g.Icon == "" { + return "" + } + + if strings.HasPrefix(g.Icon, "a_") { + return EndpointGuildIconAnimated(g.ID, g.Icon) + } + + return EndpointGuildIcon(g.ID, g.Icon) } // A UserGuild holds a brief version of a Guild @@ -617,6 +672,9 @@ type Member struct { // A list of IDs of the roles which are possessed by the member. Roles []string `json:"roles"` + + // When the user used their Nitro boost on the server + PremiumSince Timestamp `json:"premium_since"` } // Mention creates a member mention @@ -872,6 +930,7 @@ const ( PermissionVoiceDeafenMembers PermissionVoiceMoveMembers PermissionVoiceUseVAD + PermissionVoicePrioritySpeaker = 1 << (iota + 2) ) // Constants for general management. @@ -907,7 +966,8 @@ const ( PermissionVoiceMuteMembers | PermissionVoiceDeafenMembers | PermissionVoiceMoveMembers | - PermissionVoiceUseVAD + PermissionVoiceUseVAD | + PermissionVoicePrioritySpeaker PermissionAllChannel = PermissionAllText | PermissionAllVoice | PermissionCreateInstantInvite | @@ -956,7 +1016,7 @@ const ( ErrCodeMissingAccess = 50001 ErrCodeInvalidAccountType = 50002 ErrCodeCannotExecuteActionOnDMChannel = 50003 - ErrCodeEmbedCisabled = 50004 + ErrCodeEmbedDisabled = 50004 ErrCodeCannotEditFromAnotherUser = 50005 ErrCodeCannotSendEmptyMessage = 50006 ErrCodeCannotSendMessagesToThisUser = 50007 diff --git a/vendor/github.com/bwmarrin/discordgo/util.go b/vendor/github.com/bwmarrin/discordgo/util.go new file mode 100644 index 00000000..02443ca1 --- /dev/null +++ b/vendor/github.com/bwmarrin/discordgo/util.go @@ -0,0 +1,17 @@ +package discordgo + +import ( + "strconv" + "time" +) + +// SnowflakeTimestamp returns the creation time of a Snowflake ID relative to the creation of Discord. +func SnowflakeTimestamp(ID string) (t time.Time, err error) { + i, err := strconv.ParseInt(ID, 10, 64) + if err != nil { + return + } + timestamp := (i >> 22) + 1420070400000 + t = time.Unix(timestamp/1000, 0) + return +} diff --git a/vendor/github.com/bwmarrin/discordgo/voice.go b/vendor/github.com/bwmarrin/discordgo/voice.go index aa630b12..51ac16c8 100644 --- a/vendor/github.com/bwmarrin/discordgo/voice.go +++ b/vendor/github.com/bwmarrin/discordgo/voice.go @@ -243,6 +243,7 @@ type voiceOP2 struct { Port int `json:"port"` Modes []string `json:"modes"` HeartbeatInterval time.Duration `json:"heartbeat_interval"` + IP string `json:"ip"` } // WaitUntilConnected waits for the Voice Connection to @@ -542,7 +543,7 @@ func (v *VoiceConnection) udpOpen() (err error) { return fmt.Errorf("empty endpoint") } - host := strings.TrimSuffix(v.endpoint, ":80") + ":" + strconv.Itoa(v.op2.Port) + host := v.op2.IP + ":" + strconv.Itoa(v.op2.Port) addr, err := net.ResolveUDPAddr("udp", host) if err != nil { v.log(LogWarning, "error resolving udp host %s, %s", host, err) @@ -593,7 +594,7 @@ func (v *VoiceConnection) udpOpen() (err error) { } // Grab port from position 68 and 69 - port := binary.LittleEndian.Uint16(rb[68:70]) + port := binary.BigEndian.Uint16(rb[68:70]) // Take the data from above and send it back to Discord to finalize // the UDP connection handshake. diff --git a/vendor/github.com/bwmarrin/discordgo/wsapi.go b/vendor/github.com/bwmarrin/discordgo/wsapi.go index 8ecaaa77..eccbb9f4 100644 --- a/vendor/github.com/bwmarrin/discordgo/wsapi.go +++ b/vendor/github.com/bwmarrin/discordgo/wsapi.go @@ -261,7 +261,6 @@ type heartbeatOp struct { type helloOp struct { HeartbeatInterval time.Duration `json:"heartbeat_interval"` - Trace []string `json:"_trace"` } // FailedHeartbeatAcks is the Number of heartbeat intervals to wait until forcing a connection restart. @@ -615,11 +614,7 @@ func (s *Session) ChannelVoiceJoin(gID, cID string, mute, deaf bool) (voice *Voi voice.session = s voice.Unlock() - // Send the request to Discord that we want to join the voice channel - data := voiceChannelJoinOp{4, voiceChannelJoinData{&gID, &cID, mute, deaf}} - s.wsMutex.Lock() - err = s.wsConn.WriteJSON(data) - s.wsMutex.Unlock() + err = s.ChannelVoiceJoinManual(gID, cID, mute, deaf) if err != nil { return } @@ -640,22 +635,25 @@ func (s *Session) ChannelVoiceJoin(gID, cID string, mute, deaf bool) (voice *Voi // This should only be used when the VoiceServerUpdate will be intercepted and used elsewhere. // // gID : Guild ID of the channel to join. -// cID : Channel ID of the channel to join. +// cID : Channel ID of the channel to join, leave empty to disconnect. // mute : If true, you will be set to muted upon joining. // deaf : If true, you will be set to deafened upon joining. func (s *Session) ChannelVoiceJoinManual(gID, cID string, mute, deaf bool) (err error) { s.log(LogInformational, "called") + var channelID *string + if cID == "" { + channelID = nil + } else { + channelID = &cID + } + // Send the request to Discord that we want to join the voice channel - data := voiceChannelJoinOp{4, voiceChannelJoinData{&gID, &cID, mute, deaf}} + data := voiceChannelJoinOp{4, voiceChannelJoinData{&gID, channelID, mute, deaf}} s.wsMutex.Lock() err = s.wsConn.WriteJSON(data) s.wsMutex.Unlock() - if err != nil { - return - } - return } diff --git a/vendor/github.com/d5/tengo/.goreleaser.yml b/vendor/github.com/d5/tengo/.goreleaser.yml index f7e2bd0e..9b1dffec 100644 --- a/vendor/github.com/d5/tengo/.goreleaser.yml +++ b/vendor/github.com/d5/tengo/.goreleaser.yml @@ -1,3 +1,8 @@ +env: + - GO111MODULE=on +before: + hooks: + - go mod tidy builds: - env: - CGO_ENABLED=0 @@ -9,6 +14,7 @@ builds: - env: - CGO_ENABLED=0 main: ./cmd/tengomin/main.go + id: tengomin binary: tengomin goos: - darwin diff --git a/vendor/github.com/d5/tengo/go.sum b/vendor/github.com/d5/tengo/go.sum new file mode 100644 index 00000000..e69de29b diff --git a/vendor/github.com/d5/tengo/objects/immautable_array.go b/vendor/github.com/d5/tengo/objects/immautable_array.go deleted file mode 100644 index f3621e29..00000000 --- a/vendor/github.com/d5/tengo/objects/immautable_array.go +++ /dev/null @@ -1,109 +0,0 @@ -package objects - -import ( - "fmt" - "strings" - - "github.com/d5/tengo/compiler/token" -) - -// ImmutableArray represents an immutable array of objects. -type ImmutableArray struct { - Value []Object -} - -// TypeName returns the name of the type. -func (o *ImmutableArray) TypeName() string { - return "immutable-array" -} - -func (o *ImmutableArray) String() string { - var elements []string - for _, e := range o.Value { - elements = append(elements, e.String()) - } - - return fmt.Sprintf("[%s]", strings.Join(elements, ", ")) -} - -// BinaryOp returns another object that is the result of -// a given binary operator and a right-hand side object. -func (o *ImmutableArray) BinaryOp(op token.Token, rhs Object) (Object, error) { - if rhs, ok := rhs.(*ImmutableArray); ok { - switch op { - case token.Add: - return &Array{Value: append(o.Value, rhs.Value...)}, nil - } - } - - return nil, ErrInvalidOperator -} - -// Copy returns a copy of the type. -func (o *ImmutableArray) Copy() Object { - var c []Object - for _, elem := range o.Value { - c = append(c, elem.Copy()) - } - - return &Array{Value: c} -} - -// IsFalsy returns true if the value of the type is falsy. -func (o *ImmutableArray) IsFalsy() bool { - return len(o.Value) == 0 -} - -// Equals returns true if the value of the type -// is equal to the value of another object. -func (o *ImmutableArray) Equals(x Object) bool { - var xVal []Object - switch x := x.(type) { - case *Array: - xVal = x.Value - case *ImmutableArray: - xVal = x.Value - default: - return false - } - - if len(o.Value) != len(xVal) { - return false - } - - for i, e := range o.Value { - if !e.Equals(xVal[i]) { - return false - } - } - - return true -} - -// IndexGet returns an element at a given index. -func (o *ImmutableArray) IndexGet(index Object) (res Object, err error) { - intIdx, ok := index.(*Int) - if !ok { - err = ErrInvalidIndexType - return - } - - idxVal := int(intIdx.Value) - - if idxVal < 0 || idxVal >= len(o.Value) { - res = UndefinedValue - return - } - - res = o.Value[idxVal] - - return -} - -// Iterate creates an array iterator. -func (o *ImmutableArray) Iterate() Iterator { - return &ArrayIterator{ - v: o.Value, - l: len(o.Value), - } -} diff --git a/vendor/github.com/d5/tengo/objects/immutable_array.go b/vendor/github.com/d5/tengo/objects/immutable_array.go new file mode 100644 index 00000000..f3621e29 --- /dev/null +++ b/vendor/github.com/d5/tengo/objects/immutable_array.go @@ -0,0 +1,109 @@ +package objects + +import ( + "fmt" + "strings" + + "github.com/d5/tengo/compiler/token" +) + +// ImmutableArray represents an immutable array of objects. +type ImmutableArray struct { + Value []Object +} + +// TypeName returns the name of the type. +func (o *ImmutableArray) TypeName() string { + return "immutable-array" +} + +func (o *ImmutableArray) String() string { + var elements []string + for _, e := range o.Value { + elements = append(elements, e.String()) + } + + return fmt.Sprintf("[%s]", strings.Join(elements, ", ")) +} + +// BinaryOp returns another object that is the result of +// a given binary operator and a right-hand side object. +func (o *ImmutableArray) BinaryOp(op token.Token, rhs Object) (Object, error) { + if rhs, ok := rhs.(*ImmutableArray); ok { + switch op { + case token.Add: + return &Array{Value: append(o.Value, rhs.Value...)}, nil + } + } + + return nil, ErrInvalidOperator +} + +// Copy returns a copy of the type. +func (o *ImmutableArray) Copy() Object { + var c []Object + for _, elem := range o.Value { + c = append(c, elem.Copy()) + } + + return &Array{Value: c} +} + +// IsFalsy returns true if the value of the type is falsy. +func (o *ImmutableArray) IsFalsy() bool { + return len(o.Value) == 0 +} + +// Equals returns true if the value of the type +// is equal to the value of another object. +func (o *ImmutableArray) Equals(x Object) bool { + var xVal []Object + switch x := x.(type) { + case *Array: + xVal = x.Value + case *ImmutableArray: + xVal = x.Value + default: + return false + } + + if len(o.Value) != len(xVal) { + return false + } + + for i, e := range o.Value { + if !e.Equals(xVal[i]) { + return false + } + } + + return true +} + +// IndexGet returns an element at a given index. +func (o *ImmutableArray) IndexGet(index Object) (res Object, err error) { + intIdx, ok := index.(*Int) + if !ok { + err = ErrInvalidIndexType + return + } + + idxVal := int(intIdx.Value) + + if idxVal < 0 || idxVal >= len(o.Value) { + res = UndefinedValue + return + } + + res = o.Value[idxVal] + + return +} + +// Iterate creates an array iterator. +func (o *ImmutableArray) Iterate() Iterator { + return &ArrayIterator{ + v: o.Value, + l: len(o.Value), + } +} diff --git a/vendor/github.com/d5/tengo/stdlib/base64.go b/vendor/github.com/d5/tengo/stdlib/base64.go new file mode 100644 index 00000000..40a746ce --- /dev/null +++ b/vendor/github.com/d5/tengo/stdlib/base64.go @@ -0,0 +1,20 @@ +package stdlib + +import ( + "encoding/base64" + "github.com/d5/tengo/objects" +) + +var base64Module = map[string]objects.Object{ + "encode": &objects.UserFunction{Value: FuncAYRS(base64.StdEncoding.EncodeToString)}, + "decode": &objects.UserFunction{Value: FuncASRYE(base64.StdEncoding.DecodeString)}, + + "raw_encode": &objects.UserFunction{Value: FuncAYRS(base64.RawStdEncoding.EncodeToString)}, + "raw_decode": &objects.UserFunction{Value: FuncASRYE(base64.RawStdEncoding.DecodeString)}, + + "url_encode": &objects.UserFunction{Value: FuncAYRS(base64.URLEncoding.EncodeToString)}, + "url_decode": &objects.UserFunction{Value: FuncASRYE(base64.URLEncoding.DecodeString)}, + + "raw_url_encode": &objects.UserFunction{Value: FuncAYRS(base64.RawURLEncoding.EncodeToString)}, + "raw_url_decode": &objects.UserFunction{Value: FuncASRYE(base64.RawURLEncoding.DecodeString)}, +} diff --git a/vendor/github.com/d5/tengo/stdlib/builtin_modules.go b/vendor/github.com/d5/tengo/stdlib/builtin_modules.go index cc2796f9..722461b2 100644 --- a/vendor/github.com/d5/tengo/stdlib/builtin_modules.go +++ b/vendor/github.com/d5/tengo/stdlib/builtin_modules.go @@ -11,4 +11,6 @@ var BuiltinModules = map[string]map[string]objects.Object{ "rand": randModule, "fmt": fmtModule, "json": jsonModule, + "base64": base64Module, + "hex": hexModule, } diff --git a/vendor/github.com/d5/tengo/stdlib/func_typedefs.go b/vendor/github.com/d5/tengo/stdlib/func_typedefs.go index 26c7ddd9..c7bd11fa 100644 --- a/vendor/github.com/d5/tengo/stdlib/func_typedefs.go +++ b/vendor/github.com/d5/tengo/stdlib/func_typedefs.go @@ -1036,6 +1036,29 @@ func FuncAYRIE(fn func([]byte) (int, error)) objects.CallableFunc { } } +// FuncAYRS transform a function of 'func([]byte) string' signature +// into CallableFunc type. +func FuncAYRS(fn func([]byte) string) objects.CallableFunc { + return func(args ...objects.Object) (ret objects.Object, err error) { + if len(args) != 1 { + return nil, objects.ErrWrongNumArguments + } + + y1, ok := objects.ToByteSlice(args[0]) + if !ok { + return nil, objects.ErrInvalidArgumentType{ + Name: "first", + Expected: "bytes(compatible)", + Found: args[0].TypeName(), + } + } + + res := fn(y1) + + return &objects.String{Value: res}, nil + } +} + // FuncASRIE transform a function of 'func(string) (int, error)' signature // into CallableFunc type. func FuncASRIE(fn func(string) (int, error)) objects.CallableFunc { @@ -1062,6 +1085,36 @@ func FuncASRIE(fn func(string) (int, error)) objects.CallableFunc { } } +// FuncASRYE transform a function of 'func(string) ([]byte, error)' signature +// into CallableFunc type. +func FuncASRYE(fn func(string) ([]byte, error)) objects.CallableFunc { + return func(args ...objects.Object) (ret objects.Object, err error) { + if len(args) != 1 { + return nil, objects.ErrWrongNumArguments + } + + s1, ok := objects.ToString(args[0]) + if !ok { + return nil, objects.ErrInvalidArgumentType{ + Name: "first", + Expected: "string(compatible)", + Found: args[0].TypeName(), + } + } + + res, err := fn(s1) + if err != nil { + return wrapError(err), nil + } + + if len(res) > tengo.MaxBytesLen { + return nil, objects.ErrBytesLimit + } + + return &objects.Bytes{Value: res}, nil + } +} + // FuncAIRSsE transform a function of 'func(int) ([]string, error)' signature // into CallableFunc type. func FuncAIRSsE(fn func(int) ([]string, error)) objects.CallableFunc { diff --git a/vendor/github.com/d5/tengo/stdlib/hex.go b/vendor/github.com/d5/tengo/stdlib/hex.go new file mode 100644 index 00000000..acc29e6a --- /dev/null +++ b/vendor/github.com/d5/tengo/stdlib/hex.go @@ -0,0 +1,11 @@ +package stdlib + +import ( + "encoding/hex" + "github.com/d5/tengo/objects" +) + +var hexModule = map[string]objects.Object{ + "encode": &objects.UserFunction{Value: FuncAYRS(hex.EncodeToString)}, + "decode": &objects.UserFunction{Value: FuncASRYE(hex.DecodeString)}, +} diff --git a/vendor/modules.txt b/vendor/modules.txt index bade586e..ee645b61 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -15,7 +15,7 @@ github.com/Philipp15b/go-steam/protocol/steamlang github.com/Philipp15b/go-steam/rwu github.com/Philipp15b/go-steam/socialcache github.com/Philipp15b/go-steam/steamid -# github.com/Rhymen/go-whatsapp v0.0.3-0.20190729104911-5c79b2cf277a +# github.com/Rhymen/go-whatsapp v0.0.3-0.20191003184814-fc3f792c814c github.com/Rhymen/go-whatsapp github.com/Rhymen/go-whatsapp/binary github.com/Rhymen/go-whatsapp/binary/proto @@ -23,9 +23,9 @@ github.com/Rhymen/go-whatsapp/binary/token github.com/Rhymen/go-whatsapp/crypto/cbc github.com/Rhymen/go-whatsapp/crypto/curve25519 github.com/Rhymen/go-whatsapp/crypto/hkdf -# github.com/bwmarrin/discordgo v0.19.0 => github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40 +# github.com/bwmarrin/discordgo v0.19.0 => github.com/matterbridge/discordgo v0.0.0-20191026232317-01823f4ebba4 github.com/bwmarrin/discordgo -# github.com/d5/tengo v1.24.3 +# github.com/d5/tengo v1.24.8 github.com/d5/tengo github.com/d5/tengo/compiler github.com/d5/tengo/compiler/ast -- cgit v1.2.3