From 3719dd93ab9b877c9d46381ac8a250cc48051af3 Mon Sep 17 00:00:00 2001 From: Wim Date: Sat, 23 Jan 2021 18:08:37 +0100 Subject: [PATCH] Use tulir/go-whatsapp fork --- go.mod | 3 + go.sum | 19 +- .../Rhymen/go-whatsapp/binary/proto/def.pb.go | 14636 +++++++++++----- .../Rhymen/go-whatsapp/binary/proto/def.proto | 402 +- vendor/github.com/Rhymen/go-whatsapp/conn.go | 26 +- .../github.com/Rhymen/go-whatsapp/contact.go | 43 +- .../github.com/Rhymen/go-whatsapp/errors.go | 79 +- vendor/github.com/Rhymen/go-whatsapp/go.mod | 16 +- vendor/github.com/Rhymen/go-whatsapp/go.sum | 99 +- vendor/github.com/Rhymen/go-whatsapp/group.go | 82 +- .../github.com/Rhymen/go-whatsapp/handler.go | 66 + vendor/github.com/Rhymen/go-whatsapp/media.go | 16 +- .../github.com/Rhymen/go-whatsapp/message.go | 99 +- vendor/github.com/Rhymen/go-whatsapp/read.go | 18 +- .../github.com/Rhymen/go-whatsapp/session.go | 133 +- vendor/github.com/Rhymen/go-whatsapp/write.go | 34 +- vendor/github.com/skip2/go-qrcode/README.md | 30 +- vendor/github.com/skip2/go-qrcode/encoder.go | 35 +- vendor/github.com/skip2/go-qrcode/go.mod | 3 + vendor/github.com/skip2/go-qrcode/qrcode.go | 67 +- .../skip2/go-qrcode/regular_symbol.go | 10 +- vendor/modules.txt | 6 +- 22 files changed, 11179 insertions(+), 4743 deletions(-) create mode 100644 vendor/github.com/skip2/go-qrcode/go.mod diff --git a/go.mod b/go.mod index a4c9cd92..42a39e6c 100644 --- a/go.mod +++ b/go.mod @@ -40,6 +40,7 @@ require ( github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca github.com/shazow/ssh-chat v1.10.1 github.com/sirupsen/logrus v1.7.0 + github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/slack-go/slack v0.7.4 github.com/spf13/afero v1.3.4 // indirect github.com/spf13/cast v1.3.1 // indirect @@ -58,4 +59,6 @@ require ( layeh.com/gumble v0.0.0-20200818122324-146f9205029b ) +replace github.com/Rhymen/go-whatsapp => github.com/tulir/go-whatsapp v0.3.16 + go 1.15 diff --git a/go.sum b/go.sum index 3a240988..66e11ec4 100644 --- a/go.sum +++ b/go.sum @@ -76,13 +76,6 @@ github.com/Philipp15b/go-steam v1.0.1-0.20200727090957-6ae9b3c0a560 h1:ItnC9PEEM github.com/Philipp15b/go-steam v1.0.1-0.20200727090957-6ae9b3c0a560/go.mod h1:o38AwUFFS4gzbjSoyIgrZ1h9UeDrKwcci1Pj6baifvI= github.com/PuerkitoBio/goquery v1.4.1/go.mod h1:T9ezsOHcCrDCgA8aF1Cqr3sSYbO/xgdy8/R/XiIMAhA= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= -github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA= -github.com/Rhymen/go-whatsapp v0.1.2-0.20201226125722-8029c28f5c5a h1:xE1ogaIgFJQbEDoIkiAkMH9wVEAmlKOy/M+kf1xmtCY= -github.com/Rhymen/go-whatsapp v0.1.2-0.20201226125722-8029c28f5c5a/go.mod h1:o7jjkvKnigfu432dMbQ/w4PH0Yp5u4Y6ysCNjUlcYCk= -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= -github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:suwzklatySS3Q0+NCxCDh5hYfgXdQUWU1DNcxwAxStM= github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= github.com/RoaringBitmap/roaring v0.5.1/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= github.com/RocketChat/Rocket.Chat.Go.SDK v0.0.0-20200922220614-e4a51dfb52e4 h1:u7UvmSK6McEMXFZB310/YZ6uvfDaSFrSoqWoy/qaOW0= @@ -306,7 +299,6 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -382,7 +374,6 @@ github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -570,7 +561,6 @@ github.com/mattermost/mattermost-server/v5 v5.30.1 h1:vsTTMyQcsZGevgsvR1EbQM4/RA github.com/mattermost/mattermost-server/v5 v5.30.1/go.mod h1:+6oGzqA4hEsoYpmFHT9j+3BtAscj7LJa/qNDxbGvrp4= github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0/go.mod h1:nV5bfVpT//+B1RPD2JvRnxbkLmJEYXmRaaVl15fsXjs= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= @@ -579,7 +569,6 @@ github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= @@ -840,8 +829,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE= -github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo= +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= github.com/slack-go/slack v0.7.4 h1:Z+7CmUDV+ym4lYLA4NNLFIpr3+nDgViHrx8xsuXgrYs= github.com/slack-go/slack v0.7.4/go.mod h1:FGqNzJBmxIsZURAxh2a8D21AnOVvvXZvGligs4npPUM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -912,6 +901,8 @@ github.com/tinylib/msgp v1.1.2 h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ= github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tulir/go-whatsapp v0.3.16 h1:NfcXC2DQXwls3qkAjbFqSeoMX+rUbbpBBGGvCXI3RUw= +github.com/tulir/go-whatsapp v0.3.16/go.mod h1:U5+sm33vrv3wz62YyRM/VS7q2ObXkxU4Xqj/3KOmN9o= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tylerb/graceful v1.2.15/go.mod h1:LPYTbOYmUTdabwRt0TGhLllQ0MUNbs0Y5q1WXJOI9II= github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= @@ -1020,7 +1011,6 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1029,6 +1019,7 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 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 05e6b259..9726c7e3 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 @@ -1,4915 +1,7744 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0-devel +// protoc v3.12.3 // source: def.proto package proto import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// 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.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -type AdReplyInfo_AD_REPLY_INFO_MEDIATYPE int32 +type AdReplyInfo_AdReplyInfoMediaType 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 + AdReplyInfo_NONE AdReplyInfo_AdReplyInfoMediaType = 0 + AdReplyInfo_IMAGE AdReplyInfo_AdReplyInfoMediaType = 1 + AdReplyInfo_VIDEO AdReplyInfo_AdReplyInfoMediaType = 2 +) + +// Enum value maps for AdReplyInfo_AdReplyInfoMediaType. +var ( + AdReplyInfo_AdReplyInfoMediaType_name = map[int32]string{ + 0: "NONE", + 1: "IMAGE", + 2: "VIDEO", + } + AdReplyInfo_AdReplyInfoMediaType_value = map[string]int32{ + "NONE": 0, + "IMAGE": 1, + "VIDEO": 2, + } ) -var AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_name = map[int32]string{ - 0: "NONE", - 1: "IMAGE", - 2: "VIDEO", +func (x AdReplyInfo_AdReplyInfoMediaType) Enum() *AdReplyInfo_AdReplyInfoMediaType { + p := new(AdReplyInfo_AdReplyInfoMediaType) + *p = x + return p +} + +func (x AdReplyInfo_AdReplyInfoMediaType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -var AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_value = map[string]int32{ - "NONE": 0, - "IMAGE": 1, - "VIDEO": 2, +func (AdReplyInfo_AdReplyInfoMediaType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[0].Descriptor() } -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 (AdReplyInfo_AdReplyInfoMediaType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[0] } -func (x AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) String() string { - return proto.EnumName(AdReplyInfo_AD_REPLY_INFO_MEDIATYPE_name, int32(x)) +func (x AdReplyInfo_AdReplyInfoMediaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(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") +// Deprecated: Do not use. +func (x *AdReplyInfo_AdReplyInfoMediaType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = AdReplyInfo_AD_REPLY_INFO_MEDIATYPE(value) + *x = AdReplyInfo_AdReplyInfoMediaType(num) return nil } -func (AdReplyInfo_AD_REPLY_INFO_MEDIATYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{11, 0} +// Deprecated: Use AdReplyInfo_AdReplyInfoMediaType.Descriptor instead. +func (AdReplyInfo_AdReplyInfoMediaType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{13, 0} } -type ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE int32 +type ExternalAdReplyInfo_ExternalAdReplyInfoMediaType int32 const ( - 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 + ExternalAdReplyInfo_NONE ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 0 + ExternalAdReplyInfo_IMAGE ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 1 + ExternalAdReplyInfo_VIDEO ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 2 +) + +// Enum value maps for ExternalAdReplyInfo_ExternalAdReplyInfoMediaType. +var ( + ExternalAdReplyInfo_ExternalAdReplyInfoMediaType_name = map[int32]string{ + 0: "NONE", + 1: "IMAGE", + 2: "VIDEO", + } + ExternalAdReplyInfo_ExternalAdReplyInfoMediaType_value = map[string]int32{ + "NONE": 0, + "IMAGE": 1, + "VIDEO": 2, + } ) -var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_name = map[int32]string{ - 0: "SANS_SERIF", - 1: "SERIF", - 2: "NORICAN_REGULAR", - 3: "BRYNDAN_WRITE", - 4: "BEBASNEUE_REGULAR", - 5: "OSWALD_HEAVY", +func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Enum() *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType { + p := new(ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) + *p = x + return p } -var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_value = map[string]int32{ - "SANS_SERIF": 0, - "SERIF": 1, - "NORICAN_REGULAR": 2, - "BRYNDAN_WRITE": 3, - "BEBASNEUE_REGULAR": 4, - "OSWALD_HEAVY": 5, +func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -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 (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[1].Descriptor() +} + +func (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[1] } -func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) String() string { - return proto.EnumName(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE_name, int32(x)) +func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(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") +// Deprecated: Do not use. +func (x *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE(value) + *x = ExternalAdReplyInfo_ExternalAdReplyInfoMediaType(num) return nil } -func (ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{17, 0} +// Deprecated: Use ExternalAdReplyInfo_ExternalAdReplyInfoMediaType.Descriptor instead. +func (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{14, 0} } -type ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE int32 +type InvoiceMessage_InvoiceMessageAttachmentType int32 const ( - ExtendedTextMessage_NONE ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE = 0 - ExtendedTextMessage_VIDEO ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE = 1 + InvoiceMessage_IMAGE InvoiceMessage_InvoiceMessageAttachmentType = 0 + InvoiceMessage_PDF InvoiceMessage_InvoiceMessageAttachmentType = 1 +) + +// Enum value maps for InvoiceMessage_InvoiceMessageAttachmentType. +var ( + InvoiceMessage_InvoiceMessageAttachmentType_name = map[int32]string{ + 0: "IMAGE", + 1: "PDF", + } + InvoiceMessage_InvoiceMessageAttachmentType_value = map[string]int32{ + "IMAGE": 0, + "PDF": 1, + } ) -var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_name = map[int32]string{ - 0: "NONE", - 1: "VIDEO", +func (x InvoiceMessage_InvoiceMessageAttachmentType) Enum() *InvoiceMessage_InvoiceMessageAttachmentType { + p := new(InvoiceMessage_InvoiceMessageAttachmentType) + *p = x + return p } -var ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_value = map[string]int32{ - "NONE": 0, - "VIDEO": 1, +func (x InvoiceMessage_InvoiceMessageAttachmentType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -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 (InvoiceMessage_InvoiceMessageAttachmentType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[2].Descriptor() +} + +func (InvoiceMessage_InvoiceMessageAttachmentType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[2] } -func (x ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) String() string { - return proto.EnumName(ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE_name, int32(x)) +func (x InvoiceMessage_InvoiceMessageAttachmentType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -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") +// Deprecated: Do not use. +func (x *InvoiceMessage_InvoiceMessageAttachmentType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE(value) + *x = InvoiceMessage_InvoiceMessageAttachmentType(num) return nil } -func (ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{17, 1} +// Deprecated: Use InvoiceMessage_InvoiceMessageAttachmentType.Descriptor instead. +func (InvoiceMessage_InvoiceMessageAttachmentType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{18, 0} } -type VideoMessage_VIDEO_MESSAGE_ATTRIBUTION int32 +type ExtendedTextMessage_ExtendedTextMessageFontType int32 const ( - VideoMessage_NONE VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 0 - VideoMessage_GIPHY VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 1 - VideoMessage_TENOR VideoMessage_VIDEO_MESSAGE_ATTRIBUTION = 2 + ExtendedTextMessage_SANS_SERIF ExtendedTextMessage_ExtendedTextMessageFontType = 0 + ExtendedTextMessage_SERIF ExtendedTextMessage_ExtendedTextMessageFontType = 1 + ExtendedTextMessage_NORICAN_REGULAR ExtendedTextMessage_ExtendedTextMessageFontType = 2 + ExtendedTextMessage_BRYNDAN_WRITE ExtendedTextMessage_ExtendedTextMessageFontType = 3 + ExtendedTextMessage_BEBASNEUE_REGULAR ExtendedTextMessage_ExtendedTextMessageFontType = 4 + ExtendedTextMessage_OSWALD_HEAVY ExtendedTextMessage_ExtendedTextMessageFontType = 5 +) + +// Enum value maps for ExtendedTextMessage_ExtendedTextMessageFontType. +var ( + ExtendedTextMessage_ExtendedTextMessageFontType_name = map[int32]string{ + 0: "SANS_SERIF", + 1: "SERIF", + 2: "NORICAN_REGULAR", + 3: "BRYNDAN_WRITE", + 4: "BEBASNEUE_REGULAR", + 5: "OSWALD_HEAVY", + } + ExtendedTextMessage_ExtendedTextMessageFontType_value = map[string]int32{ + "SANS_SERIF": 0, + "SERIF": 1, + "NORICAN_REGULAR": 2, + "BRYNDAN_WRITE": 3, + "BEBASNEUE_REGULAR": 4, + "OSWALD_HEAVY": 5, + } ) -var VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_name = map[int32]string{ - 0: "NONE", - 1: "GIPHY", - 2: "TENOR", +func (x ExtendedTextMessage_ExtendedTextMessageFontType) Enum() *ExtendedTextMessage_ExtendedTextMessageFontType { + p := new(ExtendedTextMessage_ExtendedTextMessageFontType) + *p = x + return p } -var VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_value = map[string]int32{ - "NONE": 0, - "GIPHY": 1, - "TENOR": 2, +func (x ExtendedTextMessage_ExtendedTextMessageFontType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) Enum() *VideoMessage_VIDEO_MESSAGE_ATTRIBUTION { - p := new(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) - *p = x - return p +func (ExtendedTextMessage_ExtendedTextMessageFontType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[3].Descriptor() } -func (x VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) String() string { - return proto.EnumName(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_name, int32(x)) +func (ExtendedTextMessage_ExtendedTextMessageFontType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[3] } -func (x *VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(VideoMessage_VIDEO_MESSAGE_ATTRIBUTION_value, data, "VideoMessage_VIDEO_MESSAGE_ATTRIBUTION") +func (x ExtendedTextMessage_ExtendedTextMessageFontType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ExtendedTextMessage_ExtendedTextMessageFontType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = VideoMessage_VIDEO_MESSAGE_ATTRIBUTION(value) + *x = ExtendedTextMessage_ExtendedTextMessageFontType(num) return nil } -func (VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{20, 0} +// Deprecated: Use ExtendedTextMessage_ExtendedTextMessageFontType.Descriptor instead. +func (ExtendedTextMessage_ExtendedTextMessageFontType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{21, 0} } -type ProtocolMessage_PROTOCOL_MESSAGE_TYPE int32 +type ExtendedTextMessage_ExtendedTextMessagePreviewType int32 const ( - ProtocolMessage_REVOKE ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 0 - ProtocolMessage_EPHEMERAL_SETTING ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 3 - ProtocolMessage_EPHEMERAL_SYNC_RESPONSE ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 4 - ProtocolMessage_HISTORY_SYNC_NOTIFICATION ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 5 + ExtendedTextMessage_NONE ExtendedTextMessage_ExtendedTextMessagePreviewType = 0 + ExtendedTextMessage_VIDEO ExtendedTextMessage_ExtendedTextMessagePreviewType = 1 +) + +// Enum value maps for ExtendedTextMessage_ExtendedTextMessagePreviewType. +var ( + ExtendedTextMessage_ExtendedTextMessagePreviewType_name = map[int32]string{ + 0: "NONE", + 1: "VIDEO", + } + ExtendedTextMessage_ExtendedTextMessagePreviewType_value = map[string]int32{ + "NONE": 0, + "VIDEO": 1, + } ) -var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name = map[int32]string{ - 0: "REVOKE", - 3: "EPHEMERAL_SETTING", - 4: "EPHEMERAL_SYNC_RESPONSE", - 5: "HISTORY_SYNC_NOTIFICATION", +func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) Enum() *ExtendedTextMessage_ExtendedTextMessagePreviewType { + p := new(ExtendedTextMessage_ExtendedTextMessagePreviewType) + *p = x + return p +} + +func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value = map[string]int32{ - "REVOKE": 0, - "EPHEMERAL_SETTING": 3, - "EPHEMERAL_SYNC_RESPONSE": 4, - "HISTORY_SYNC_NOTIFICATION": 5, +func (ExtendedTextMessage_ExtendedTextMessagePreviewType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[4].Descriptor() } -func (x ProtocolMessage_PROTOCOL_MESSAGE_TYPE) Enum() *ProtocolMessage_PROTOCOL_MESSAGE_TYPE { - p := new(ProtocolMessage_PROTOCOL_MESSAGE_TYPE) - *p = x - return p +func (ExtendedTextMessage_ExtendedTextMessagePreviewType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[4] } -func (x ProtocolMessage_PROTOCOL_MESSAGE_TYPE) String() string { - return proto.EnumName(ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name, int32(x)) +func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *ProtocolMessage_PROTOCOL_MESSAGE_TYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value, data, "ProtocolMessage_PROTOCOL_MESSAGE_TYPE") +// Deprecated: Do not use. +func (x *ExtendedTextMessage_ExtendedTextMessagePreviewType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = ProtocolMessage_PROTOCOL_MESSAGE_TYPE(value) + *x = ExtendedTextMessage_ExtendedTextMessagePreviewType(num) return nil } -func (ProtocolMessage_PROTOCOL_MESSAGE_TYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{23, 0} +// Deprecated: Use ExtendedTextMessage_ExtendedTextMessagePreviewType.Descriptor instead. +func (ExtendedTextMessage_ExtendedTextMessagePreviewType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{21, 1} } -type HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE int32 +type VideoMessage_VideoMessageAttribution int32 const ( - HistorySyncNotification_INITIAL_BOOTSTRAP HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE = 0 - HistorySyncNotification_INITIAL_STATUS_V3 HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE = 1 - HistorySyncNotification_FULL HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE = 2 - HistorySyncNotification_RECENT HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE = 3 + VideoMessage_NONE VideoMessage_VideoMessageAttribution = 0 + VideoMessage_GIPHY VideoMessage_VideoMessageAttribution = 1 + VideoMessage_TENOR VideoMessage_VideoMessageAttribution = 2 +) + +// Enum value maps for VideoMessage_VideoMessageAttribution. +var ( + VideoMessage_VideoMessageAttribution_name = map[int32]string{ + 0: "NONE", + 1: "GIPHY", + 2: "TENOR", + } + VideoMessage_VideoMessageAttribution_value = map[string]int32{ + "NONE": 0, + "GIPHY": 1, + "TENOR": 2, + } ) -var HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_name = map[int32]string{ - 0: "INITIAL_BOOTSTRAP", - 1: "INITIAL_STATUS_V3", - 2: "FULL", - 3: "RECENT", +func (x VideoMessage_VideoMessageAttribution) Enum() *VideoMessage_VideoMessageAttribution { + p := new(VideoMessage_VideoMessageAttribution) + *p = x + return p } -var HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_value = map[string]int32{ - "INITIAL_BOOTSTRAP": 0, - "INITIAL_STATUS_V3": 1, - "FULL": 2, - "RECENT": 3, +func (x VideoMessage_VideoMessageAttribution) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) Enum() *HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE { - p := new(HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) - *p = x - return p +func (VideoMessage_VideoMessageAttribution) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[5].Descriptor() } -func (x HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) String() string { - return proto.EnumName(HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_name, int32(x)) +func (VideoMessage_VideoMessageAttribution) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[5] } -func (x *HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_value, data, "HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE") +func (x VideoMessage_VideoMessageAttribution) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *VideoMessage_VideoMessageAttribution) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE(value) + *x = VideoMessage_VideoMessageAttribution(num) return nil } -func (HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{24, 0} +// Deprecated: Use VideoMessage_VideoMessageAttribution.Descriptor instead. +func (VideoMessage_VideoMessageAttribution) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{24, 0} } -type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE int32 +type ProtocolMessage_ProtocolMessageType int32 const ( - 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 + ProtocolMessage_REVOKE ProtocolMessage_ProtocolMessageType = 0 + ProtocolMessage_EPHEMERAL_SETTING ProtocolMessage_ProtocolMessageType = 3 + ProtocolMessage_EPHEMERAL_SYNC_RESPONSE ProtocolMessage_ProtocolMessageType = 4 + ProtocolMessage_HISTORY_SYNC_NOTIFICATION ProtocolMessage_ProtocolMessageType = 5 + ProtocolMessage_APP_STATE_SYNC_KEY_SHARE ProtocolMessage_ProtocolMessageType = 6 + ProtocolMessage_APP_STATE_SYNC_KEY_REQUEST ProtocolMessage_ProtocolMessageType = 7 + ProtocolMessage_MSG_FANOUT_BACKFILL_REQUEST ProtocolMessage_ProtocolMessageType = 8 + ProtocolMessage_INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC ProtocolMessage_ProtocolMessageType = 9 +) + +// Enum value maps for ProtocolMessage_ProtocolMessageType. +var ( + ProtocolMessage_ProtocolMessageType_name = map[int32]string{ + 0: "REVOKE", + 3: "EPHEMERAL_SETTING", + 4: "EPHEMERAL_SYNC_RESPONSE", + 5: "HISTORY_SYNC_NOTIFICATION", + 6: "APP_STATE_SYNC_KEY_SHARE", + 7: "APP_STATE_SYNC_KEY_REQUEST", + 8: "MSG_FANOUT_BACKFILL_REQUEST", + 9: "INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC", + } + ProtocolMessage_ProtocolMessageType_value = map[string]int32{ + "REVOKE": 0, + "EPHEMERAL_SETTING": 3, + "EPHEMERAL_SYNC_RESPONSE": 4, + "HISTORY_SYNC_NOTIFICATION": 5, + "APP_STATE_SYNC_KEY_SHARE": 6, + "APP_STATE_SYNC_KEY_REQUEST": 7, + "MSG_FANOUT_BACKFILL_REQUEST": 8, + "INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC": 9, + } ) -var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_name = map[int32]string{ - 1: "MONDAY", - 2: "TUESDAY", - 3: "WEDNESDAY", - 4: "THURSDAY", - 5: "FRIDAY", - 6: "SATURDAY", - 7: "SUNDAY", +func (x ProtocolMessage_ProtocolMessageType) Enum() *ProtocolMessage_ProtocolMessageType { + p := new(ProtocolMessage_ProtocolMessageType) + *p = x + return p } -var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_value = map[string]int32{ - "MONDAY": 1, - "TUESDAY": 2, - "WEDNESDAY": 3, - "THURSDAY": 4, - "FRIDAY": 5, - "SATURDAY": 6, - "SUNDAY": 7, +func (x ProtocolMessage_ProtocolMessageType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -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 (ProtocolMessage_ProtocolMessageType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[6].Descriptor() +} + +func (ProtocolMessage_ProtocolMessageType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[6] } -func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) String() string { - return proto.EnumName(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE_name, int32(x)) +func (x ProtocolMessage_ProtocolMessageType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -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") +// Deprecated: Do not use. +func (x *ProtocolMessage_ProtocolMessageType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE(value) + *x = ProtocolMessage_ProtocolMessageType(num) return nil } -func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{27, 0} +// Deprecated: Use ProtocolMessage_ProtocolMessageType.Descriptor instead. +func (ProtocolMessage_ProtocolMessageType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{27, 0} } -type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE int32 +type HistorySyncNotification_HistorySyncNotificationHistorySyncType int32 const ( - HSMDateTimeComponent_GREGORIAN HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE = 1 - HSMDateTimeComponent_SOLAR_HIJRI HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE = 2 + HistorySyncNotification_INITIAL_BOOTSTRAP HistorySyncNotification_HistorySyncNotificationHistorySyncType = 0 + HistorySyncNotification_INITIAL_STATUS_V3 HistorySyncNotification_HistorySyncNotificationHistorySyncType = 1 + HistorySyncNotification_FULL HistorySyncNotification_HistorySyncNotificationHistorySyncType = 2 + HistorySyncNotification_RECENT HistorySyncNotification_HistorySyncNotificationHistorySyncType = 3 + HistorySyncNotification_PUSH_NAME HistorySyncNotification_HistorySyncNotificationHistorySyncType = 4 +) + +// Enum value maps for HistorySyncNotification_HistorySyncNotificationHistorySyncType. +var ( + HistorySyncNotification_HistorySyncNotificationHistorySyncType_name = map[int32]string{ + 0: "INITIAL_BOOTSTRAP", + 1: "INITIAL_STATUS_V3", + 2: "FULL", + 3: "RECENT", + 4: "PUSH_NAME", + } + HistorySyncNotification_HistorySyncNotificationHistorySyncType_value = map[string]int32{ + "INITIAL_BOOTSTRAP": 0, + "INITIAL_STATUS_V3": 1, + "FULL": 2, + "RECENT": 3, + "PUSH_NAME": 4, + } ) -var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_name = map[int32]string{ - 1: "GREGORIAN", - 2: "SOLAR_HIJRI", +func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) Enum() *HistorySyncNotification_HistorySyncNotificationHistorySyncType { + p := new(HistorySyncNotification_HistorySyncNotificationHistorySyncType) + *p = x + return p +} + +func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -var HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_value = map[string]int32{ - "GREGORIAN": 1, - "SOLAR_HIJRI": 2, +func (HistorySyncNotification_HistorySyncNotificationHistorySyncType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[7].Descriptor() } -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 (HistorySyncNotification_HistorySyncNotificationHistorySyncType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[7] } -func (x HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) String() string { - return proto.EnumName(HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE_name, int32(x)) +func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(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") +// Deprecated: Do not use. +func (x *HistorySyncNotification_HistorySyncNotificationHistorySyncType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE(value) + *x = HistorySyncNotification_HistorySyncNotificationHistorySyncType(num) return nil } -func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{27, 1} +// Deprecated: Use HistorySyncNotification_HistorySyncNotificationHistorySyncType.Descriptor instead. +func (HistorySyncNotification_HistorySyncNotificationHistorySyncType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{28, 0} } -type WebFeatures_WEB_FEATURES_FLAG int32 +type HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType int32 const ( - WebFeatures_NOT_STARTED WebFeatures_WEB_FEATURES_FLAG = 0 - WebFeatures_FORCE_UPGRADE WebFeatures_WEB_FEATURES_FLAG = 1 - WebFeatures_DEVELOPMENT WebFeatures_WEB_FEATURES_FLAG = 2 - WebFeatures_PRODUCTION WebFeatures_WEB_FEATURES_FLAG = 3 + HSMDateTimeComponent_MONDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 1 + HSMDateTimeComponent_TUESDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 2 + HSMDateTimeComponent_WEDNESDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 3 + HSMDateTimeComponent_THURSDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 4 + HSMDateTimeComponent_FRIDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 5 + HSMDateTimeComponent_SATURDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 6 + HSMDateTimeComponent_SUNDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 7 ) -var WebFeatures_WEB_FEATURES_FLAG_name = map[int32]string{ - 0: "NOT_STARTED", - 1: "FORCE_UPGRADE", - 2: "DEVELOPMENT", - 3: "PRODUCTION", +// Enum value maps for HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType. +var ( + HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType_name = map[int32]string{ + 1: "MONDAY", + 2: "TUESDAY", + 3: "WEDNESDAY", + 4: "THURSDAY", + 5: "FRIDAY", + 6: "SATURDAY", + 7: "SUNDAY", + } + HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType_value = map[string]int32{ + "MONDAY": 1, + "TUESDAY": 2, + "WEDNESDAY": 3, + "THURSDAY": 4, + "FRIDAY": 5, + "SATURDAY": 6, + "SUNDAY": 7, + } +) + +func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Enum() *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType { + p := new(HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) + *p = x + return p } -var WebFeatures_WEB_FEATURES_FLAG_value = map[string]int32{ - "NOT_STARTED": 0, - "FORCE_UPGRADE": 1, - "DEVELOPMENT": 2, - "PRODUCTION": 3, +func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x WebFeatures_WEB_FEATURES_FLAG) Enum() *WebFeatures_WEB_FEATURES_FLAG { - p := new(WebFeatures_WEB_FEATURES_FLAG) - *p = x - return p +func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[8].Descriptor() +} + +func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[8] } -func (x WebFeatures_WEB_FEATURES_FLAG) String() string { - return proto.EnumName(WebFeatures_WEB_FEATURES_FLAG_name, int32(x)) +func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(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") +// Deprecated: Do not use. +func (x *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = WebFeatures_WEB_FEATURES_FLAG(value) + *x = HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType(num) return nil } -func (WebFeatures_WEB_FEATURES_FLAG) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{50, 0} +// Deprecated: Use HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType.Descriptor instead. +func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{38, 0} } -type PaymentInfo_PAYMENT_INFO_CURRENCY int32 +type HSMDateTimeComponent_HSMDateTimeComponentCalendarType int32 const ( - PaymentInfo_UNKNOWN_CURRENCY PaymentInfo_PAYMENT_INFO_CURRENCY = 0 - PaymentInfo_INR PaymentInfo_PAYMENT_INFO_CURRENCY = 1 + HSMDateTimeComponent_GREGORIAN HSMDateTimeComponent_HSMDateTimeComponentCalendarType = 1 + HSMDateTimeComponent_SOLAR_HIJRI HSMDateTimeComponent_HSMDateTimeComponentCalendarType = 2 +) + +// Enum value maps for HSMDateTimeComponent_HSMDateTimeComponentCalendarType. +var ( + HSMDateTimeComponent_HSMDateTimeComponentCalendarType_name = map[int32]string{ + 1: "GREGORIAN", + 2: "SOLAR_HIJRI", + } + HSMDateTimeComponent_HSMDateTimeComponentCalendarType_value = map[string]int32{ + "GREGORIAN": 1, + "SOLAR_HIJRI": 2, + } ) -var PaymentInfo_PAYMENT_INFO_CURRENCY_name = map[int32]string{ - 0: "UNKNOWN_CURRENCY", - 1: "INR", +func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Enum() *HSMDateTimeComponent_HSMDateTimeComponentCalendarType { + p := new(HSMDateTimeComponent_HSMDateTimeComponentCalendarType) + *p = x + return p } -var PaymentInfo_PAYMENT_INFO_CURRENCY_value = map[string]int32{ - "UNKNOWN_CURRENCY": 0, - "INR": 1, +func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x PaymentInfo_PAYMENT_INFO_CURRENCY) Enum() *PaymentInfo_PAYMENT_INFO_CURRENCY { - p := new(PaymentInfo_PAYMENT_INFO_CURRENCY) - *p = x - return p +func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[9].Descriptor() +} + +func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[9] } -func (x PaymentInfo_PAYMENT_INFO_CURRENCY) String() string { - return proto.EnumName(PaymentInfo_PAYMENT_INFO_CURRENCY_name, int32(x)) +func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *PaymentInfo_PAYMENT_INFO_CURRENCY) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(PaymentInfo_PAYMENT_INFO_CURRENCY_value, data, "PaymentInfo_PAYMENT_INFO_CURRENCY") +// Deprecated: Do not use. +func (x *HSMDateTimeComponent_HSMDateTimeComponentCalendarType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = PaymentInfo_PAYMENT_INFO_CURRENCY(value) + *x = HSMDateTimeComponent_HSMDateTimeComponentCalendarType(num) return nil } -func (PaymentInfo_PAYMENT_INFO_CURRENCY) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{54, 0} +// Deprecated: Use HSMDateTimeComponent_HSMDateTimeComponentCalendarType.Descriptor instead. +func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{38, 1} } -type PaymentInfo_PAYMENT_INFO_STATUS int32 +type OrderMessage_OrderMessageOrderStatus 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 + OrderMessage_INQUIRY OrderMessage_OrderMessageOrderStatus = 1 +) + +// Enum value maps for OrderMessage_OrderMessageOrderStatus. +var ( + OrderMessage_OrderMessageOrderStatus_name = map[int32]string{ + 1: "INQUIRY", + } + OrderMessage_OrderMessageOrderStatus_value = map[string]int32{ + "INQUIRY": 1, + } ) -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) +func (x OrderMessage_OrderMessageOrderStatus) Enum() *OrderMessage_OrderMessageOrderStatus { + p := new(OrderMessage_OrderMessageOrderStatus) *p = x return p } -func (x PaymentInfo_PAYMENT_INFO_STATUS) String() string { - return proto.EnumName(PaymentInfo_PAYMENT_INFO_STATUS_name, int32(x)) +func (x OrderMessage_OrderMessageOrderStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OrderMessage_OrderMessageOrderStatus) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[10].Descriptor() +} + +func (OrderMessage_OrderMessageOrderStatus) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[10] +} + +func (x OrderMessage_OrderMessageOrderStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *PaymentInfo_PAYMENT_INFO_STATUS) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(PaymentInfo_PAYMENT_INFO_STATUS_value, data, "PaymentInfo_PAYMENT_INFO_STATUS") +// Deprecated: Do not use. +func (x *OrderMessage_OrderMessageOrderStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = PaymentInfo_PAYMENT_INFO_STATUS(value) + *x = OrderMessage_OrderMessageOrderStatus(num) return nil } -func (PaymentInfo_PAYMENT_INFO_STATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{54, 1} +// Deprecated: Use OrderMessage_OrderMessageOrderStatus.Descriptor instead. +func (OrderMessage_OrderMessageOrderStatus) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{57, 0} } -type PaymentInfo_PAYMENT_INFO_TXNSTATUS int32 +type OrderMessage_OrderMessageOrderSurface int32 const ( - PaymentInfo_UNKNOWN PaymentInfo_PAYMENT_INFO_TXNSTATUS = 0 - PaymentInfo_PENDING_SETUP PaymentInfo_PAYMENT_INFO_TXNSTATUS = 1 - PaymentInfo_PENDING_RECEIVER_SETUP PaymentInfo_PAYMENT_INFO_TXNSTATUS = 2 - PaymentInfo_INIT PaymentInfo_PAYMENT_INFO_TXNSTATUS = 3 - PaymentInfo_SUCCESS PaymentInfo_PAYMENT_INFO_TXNSTATUS = 4 - PaymentInfo_COMPLETED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 5 - PaymentInfo_FAILED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 6 - PaymentInfo_FAILED_RISK PaymentInfo_PAYMENT_INFO_TXNSTATUS = 7 - PaymentInfo_FAILED_PROCESSING PaymentInfo_PAYMENT_INFO_TXNSTATUS = 8 - PaymentInfo_FAILED_RECEIVER_PROCESSING PaymentInfo_PAYMENT_INFO_TXNSTATUS = 9 - PaymentInfo_FAILED_DA PaymentInfo_PAYMENT_INFO_TXNSTATUS = 10 - PaymentInfo_FAILED_DA_FINAL PaymentInfo_PAYMENT_INFO_TXNSTATUS = 11 - PaymentInfo_REFUNDED_TXN PaymentInfo_PAYMENT_INFO_TXNSTATUS = 12 - PaymentInfo_REFUND_FAILED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 13 - PaymentInfo_REFUND_FAILED_PROCESSING PaymentInfo_PAYMENT_INFO_TXNSTATUS = 14 - PaymentInfo_REFUND_FAILED_DA PaymentInfo_PAYMENT_INFO_TXNSTATUS = 15 - PaymentInfo_EXPIRED_TXN PaymentInfo_PAYMENT_INFO_TXNSTATUS = 16 - PaymentInfo_AUTH_CANCELED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 17 - PaymentInfo_AUTH_CANCEL_FAILED_PROCESSING PaymentInfo_PAYMENT_INFO_TXNSTATUS = 18 - PaymentInfo_AUTH_CANCEL_FAILED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 19 - PaymentInfo_COLLECT_INIT PaymentInfo_PAYMENT_INFO_TXNSTATUS = 20 - PaymentInfo_COLLECT_SUCCESS PaymentInfo_PAYMENT_INFO_TXNSTATUS = 21 - PaymentInfo_COLLECT_FAILED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 22 - PaymentInfo_COLLECT_FAILED_RISK PaymentInfo_PAYMENT_INFO_TXNSTATUS = 23 - PaymentInfo_COLLECT_REJECTED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 24 - PaymentInfo_COLLECT_EXPIRED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 25 - PaymentInfo_COLLECT_CANCELED PaymentInfo_PAYMENT_INFO_TXNSTATUS = 26 - PaymentInfo_COLLECT_CANCELLING PaymentInfo_PAYMENT_INFO_TXNSTATUS = 27 + OrderMessage_CATALOG OrderMessage_OrderMessageOrderSurface = 1 +) + +// Enum value maps for OrderMessage_OrderMessageOrderSurface. +var ( + OrderMessage_OrderMessageOrderSurface_name = map[int32]string{ + 1: "CATALOG", + } + OrderMessage_OrderMessageOrderSurface_value = map[string]int32{ + "CATALOG": 1, + } ) -var PaymentInfo_PAYMENT_INFO_TXNSTATUS_name = map[int32]string{ - 0: "UNKNOWN", - 1: "PENDING_SETUP", - 2: "PENDING_RECEIVER_SETUP", - 3: "INIT", - 4: "SUCCESS", - 5: "COMPLETED", - 6: "FAILED", - 7: "FAILED_RISK", - 8: "FAILED_PROCESSING", - 9: "FAILED_RECEIVER_PROCESSING", - 10: "FAILED_DA", - 11: "FAILED_DA_FINAL", - 12: "REFUNDED_TXN", - 13: "REFUND_FAILED", - 14: "REFUND_FAILED_PROCESSING", - 15: "REFUND_FAILED_DA", - 16: "EXPIRED_TXN", - 17: "AUTH_CANCELED", - 18: "AUTH_CANCEL_FAILED_PROCESSING", - 19: "AUTH_CANCEL_FAILED", - 20: "COLLECT_INIT", - 21: "COLLECT_SUCCESS", - 22: "COLLECT_FAILED", - 23: "COLLECT_FAILED_RISK", - 24: "COLLECT_REJECTED", - 25: "COLLECT_EXPIRED", - 26: "COLLECT_CANCELED", - 27: "COLLECT_CANCELLING", -} - -var PaymentInfo_PAYMENT_INFO_TXNSTATUS_value = map[string]int32{ - "UNKNOWN": 0, - "PENDING_SETUP": 1, - "PENDING_RECEIVER_SETUP": 2, - "INIT": 3, - "SUCCESS": 4, - "COMPLETED": 5, - "FAILED": 6, - "FAILED_RISK": 7, - "FAILED_PROCESSING": 8, - "FAILED_RECEIVER_PROCESSING": 9, - "FAILED_DA": 10, - "FAILED_DA_FINAL": 11, - "REFUNDED_TXN": 12, - "REFUND_FAILED": 13, - "REFUND_FAILED_PROCESSING": 14, - "REFUND_FAILED_DA": 15, - "EXPIRED_TXN": 16, - "AUTH_CANCELED": 17, - "AUTH_CANCEL_FAILED_PROCESSING": 18, - "AUTH_CANCEL_FAILED": 19, - "COLLECT_INIT": 20, - "COLLECT_SUCCESS": 21, - "COLLECT_FAILED": 22, - "COLLECT_FAILED_RISK": 23, - "COLLECT_REJECTED": 24, - "COLLECT_EXPIRED": 25, - "COLLECT_CANCELED": 26, - "COLLECT_CANCELLING": 27, -} - -func (x PaymentInfo_PAYMENT_INFO_TXNSTATUS) Enum() *PaymentInfo_PAYMENT_INFO_TXNSTATUS { - p := new(PaymentInfo_PAYMENT_INFO_TXNSTATUS) +func (x OrderMessage_OrderMessageOrderSurface) Enum() *OrderMessage_OrderMessageOrderSurface { + p := new(OrderMessage_OrderMessageOrderSurface) *p = x return p } -func (x PaymentInfo_PAYMENT_INFO_TXNSTATUS) String() string { - return proto.EnumName(PaymentInfo_PAYMENT_INFO_TXNSTATUS_name, int32(x)) +func (x OrderMessage_OrderMessageOrderSurface) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OrderMessage_OrderMessageOrderSurface) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[11].Descriptor() +} + +func (OrderMessage_OrderMessageOrderSurface) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[11] +} + +func (x OrderMessage_OrderMessageOrderSurface) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *PaymentInfo_PAYMENT_INFO_TXNSTATUS) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(PaymentInfo_PAYMENT_INFO_TXNSTATUS_value, data, "PaymentInfo_PAYMENT_INFO_TXNSTATUS") +// Deprecated: Do not use. +func (x *OrderMessage_OrderMessageOrderSurface) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = PaymentInfo_PAYMENT_INFO_TXNSTATUS(value) + *x = OrderMessage_OrderMessageOrderSurface(num) return nil } -func (PaymentInfo_PAYMENT_INFO_TXNSTATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{54, 2} +// Deprecated: Use OrderMessage_OrderMessageOrderSurface.Descriptor instead. +func (OrderMessage_OrderMessageOrderSurface) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{57, 1} } -type WebMessageInfo_WEB_MESSAGE_INFO_STATUS int32 +type ListMessage_ListMessageListType int32 const ( - 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 + ListMessage_UNKNOWN ListMessage_ListMessageListType = 0 + ListMessage_SINGLE_SELECT ListMessage_ListMessageListType = 1 +) + +// Enum value maps for ListMessage_ListMessageListType. +var ( + ListMessage_ListMessageListType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_SELECT", + } + ListMessage_ListMessageListType_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_SELECT": 1, + } ) -var WebMessageInfo_WEB_MESSAGE_INFO_STATUS_name = map[int32]string{ - 0: "ERROR", - 1: "PENDING", - 2: "SERVER_ACK", - 3: "DELIVERY_ACK", - 4: "READ", - 5: "PLAYED", +func (x ListMessage_ListMessageListType) Enum() *ListMessage_ListMessageListType { + p := new(ListMessage_ListMessageListType) + *p = x + return p } -var WebMessageInfo_WEB_MESSAGE_INFO_STATUS_value = map[string]int32{ - "ERROR": 0, - "PENDING": 1, - "SERVER_ACK": 2, - "DELIVERY_ACK": 3, - "READ": 4, - "PLAYED": 5, +func (x ListMessage_ListMessageListType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -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 (ListMessage_ListMessageListType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[12].Descriptor() +} + +func (ListMessage_ListMessageListType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[12] } -func (x WebMessageInfo_WEB_MESSAGE_INFO_STATUS) String() string { - return proto.EnumName(WebMessageInfo_WEB_MESSAGE_INFO_STATUS_name, int32(x)) +func (x ListMessage_ListMessageListType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -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") +// Deprecated: Do not use. +func (x *ListMessage_ListMessageListType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = WebMessageInfo_WEB_MESSAGE_INFO_STATUS(value) + *x = ListMessage_ListMessageListType(num) return nil } -func (WebMessageInfo_WEB_MESSAGE_INFO_STATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{55, 0} +// Deprecated: Use ListMessage_ListMessageListType.Descriptor instead. +func (ListMessage_ListMessageListType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{60, 0} } -type WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE int32 +type ListResponseMessage_ListResponseMessageListType int32 const ( - 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 - WebMessageInfo_GROUP_V4_ADD_INVITE_SENT WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 70 - WebMessageInfo_GROUP_PARTICIPANT_ADD_REQUEST_JOIN WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 71 - WebMessageInfo_CHANGE_EPHEMERAL_SETTING WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE = 72 + ListResponseMessage_UNKNOWN ListResponseMessage_ListResponseMessageListType = 0 + ListResponseMessage_SINGLE_SELECT ListResponseMessage_ListResponseMessageListType = 1 +) + +// Enum value maps for ListResponseMessage_ListResponseMessageListType. +var ( + ListResponseMessage_ListResponseMessageListType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_SELECT", + } + ListResponseMessage_ListResponseMessageListType_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_SELECT": 1, + } ) -var WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_name = map[int32]string{ - 0: "UNKNOWN", - 1: "REVOKE", - 2: "CIPHERTEXT", - 3: "FUTUREPROOF", - 4: "NON_VERIFIED_TRANSITION", - 5: "UNVERIFIED_TRANSITION", - 6: "VERIFIED_TRANSITION", - 7: "VERIFIED_LOW_UNKNOWN", - 8: "VERIFIED_HIGH", - 9: "VERIFIED_INITIAL_UNKNOWN", - 10: "VERIFIED_INITIAL_LOW", - 11: "VERIFIED_INITIAL_HIGH", - 12: "VERIFIED_TRANSITION_ANY_TO_NONE", - 13: "VERIFIED_TRANSITION_ANY_TO_HIGH", - 14: "VERIFIED_TRANSITION_HIGH_TO_LOW", - 15: "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN", - 16: "VERIFIED_TRANSITION_UNKNOWN_TO_LOW", - 17: "VERIFIED_TRANSITION_LOW_TO_UNKNOWN", - 18: "VERIFIED_TRANSITION_NONE_TO_LOW", - 19: "VERIFIED_TRANSITION_NONE_TO_UNKNOWN", - 20: "GROUP_CREATE", - 21: "GROUP_CHANGE_SUBJECT", - 22: "GROUP_CHANGE_ICON", - 23: "GROUP_CHANGE_INVITE_LINK", - 24: "GROUP_CHANGE_DESCRIPTION", - 25: "GROUP_CHANGE_RESTRICT", - 26: "GROUP_CHANGE_ANNOUNCE", - 27: "GROUP_PARTICIPANT_ADD", - 28: "GROUP_PARTICIPANT_REMOVE", - 29: "GROUP_PARTICIPANT_PROMOTE", - 30: "GROUP_PARTICIPANT_DEMOTE", - 31: "GROUP_PARTICIPANT_INVITE", - 32: "GROUP_PARTICIPANT_LEAVE", - 33: "GROUP_PARTICIPANT_CHANGE_NUMBER", - 34: "BROADCAST_CREATE", - 35: "BROADCAST_ADD", - 36: "BROADCAST_REMOVE", - 37: "GENERIC_NOTIFICATION", - 38: "E2E_IDENTITY_CHANGED", - 39: "E2E_ENCRYPTED", - 40: "CALL_MISSED_VOICE", - 41: "CALL_MISSED_VIDEO", - 42: "INDIVIDUAL_CHANGE_NUMBER", - 43: "GROUP_DELETE", - 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", - 70: "GROUP_V4_ADD_INVITE_SENT", - 71: "GROUP_PARTICIPANT_ADD_REQUEST_JOIN", - 72: "CHANGE_EPHEMERAL_SETTING", -} - -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, - "GROUP_V4_ADD_INVITE_SENT": 70, - "GROUP_PARTICIPANT_ADD_REQUEST_JOIN": 71, - "CHANGE_EPHEMERAL_SETTING": 72, -} - -func (x WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) Enum() *WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE { - p := new(WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) +func (x ListResponseMessage_ListResponseMessageListType) Enum() *ListResponseMessage_ListResponseMessageListType { + p := new(ListResponseMessage_ListResponseMessageListType) *p = x return p } -func (x WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) String() string { - return proto.EnumName(WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE_name, int32(x)) +func (x ListResponseMessage_ListResponseMessageListType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListResponseMessage_ListResponseMessageListType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[13].Descriptor() +} + +func (ListResponseMessage_ListResponseMessageListType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[13] +} + +func (x ListResponseMessage_ListResponseMessageListType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -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") +// Deprecated: Do not use. +func (x *ListResponseMessage_ListResponseMessageListType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } - *x = WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE(value) + *x = ListResponseMessage_ListResponseMessageListType(num) return nil } -func (WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{55, 1} +// Deprecated: Use ListResponseMessage_ListResponseMessageListType.Descriptor instead. +func (ListResponseMessage_ListResponseMessageListType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{62, 0} } -type HydratedQuickReplyButton struct { - DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,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 WebFeatures_WebFeaturesFlag int32 + +const ( + WebFeatures_NOT_STARTED WebFeatures_WebFeaturesFlag = 0 + WebFeatures_FORCE_UPGRADE WebFeatures_WebFeaturesFlag = 1 + WebFeatures_DEVELOPMENT WebFeatures_WebFeaturesFlag = 2 + WebFeatures_PRODUCTION WebFeatures_WebFeaturesFlag = 3 +) + +// Enum value maps for WebFeatures_WebFeaturesFlag. +var ( + WebFeatures_WebFeaturesFlag_name = map[int32]string{ + 0: "NOT_STARTED", + 1: "FORCE_UPGRADE", + 2: "DEVELOPMENT", + 3: "PRODUCTION", + } + WebFeatures_WebFeaturesFlag_value = map[string]int32{ + "NOT_STARTED": 0, + "FORCE_UPGRADE": 1, + "DEVELOPMENT": 2, + "PRODUCTION": 3, + } +) + +func (x WebFeatures_WebFeaturesFlag) Enum() *WebFeatures_WebFeaturesFlag { + p := new(WebFeatures_WebFeaturesFlag) + *p = x + return p } -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} +func (x WebFeatures_WebFeaturesFlag) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (m *HydratedQuickReplyButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HydratedQuickReplyButton.Unmarshal(m, b) +func (WebFeatures_WebFeaturesFlag) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[14].Descriptor() } -func (m *HydratedQuickReplyButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HydratedQuickReplyButton.Marshal(b, m, deterministic) + +func (WebFeatures_WebFeaturesFlag) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[14] } -func (m *HydratedQuickReplyButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_HydratedQuickReplyButton.Merge(m, src) + +func (x WebFeatures_WebFeaturesFlag) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (m *HydratedQuickReplyButton) XXX_Size() int { - return xxx_messageInfo_HydratedQuickReplyButton.Size(m) + +// Deprecated: Do not use. +func (x *WebFeatures_WebFeaturesFlag) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WebFeatures_WebFeaturesFlag(num) + return nil } -func (m *HydratedQuickReplyButton) XXX_DiscardUnknown() { - xxx_messageInfo_HydratedQuickReplyButton.DiscardUnknown(m) + +// Deprecated: Use WebFeatures_WebFeaturesFlag.Descriptor instead. +func (WebFeatures_WebFeaturesFlag) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{73, 0} } -var xxx_messageInfo_HydratedQuickReplyButton proto.InternalMessageInfo +type PaymentInfo_PaymentInfoCurrency int32 -func (m *HydratedQuickReplyButton) GetDisplayText() string { - if m != nil && m.DisplayText != nil { - return *m.DisplayText - } - return "" -} +const ( + PaymentInfo_UNKNOWN_CURRENCY PaymentInfo_PaymentInfoCurrency = 0 + PaymentInfo_INR PaymentInfo_PaymentInfoCurrency = 1 +) -func (m *HydratedQuickReplyButton) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +// Enum value maps for PaymentInfo_PaymentInfoCurrency. +var ( + PaymentInfo_PaymentInfoCurrency_name = map[int32]string{ + 0: "UNKNOWN_CURRENCY", + 1: "INR", } - return "" -} + PaymentInfo_PaymentInfoCurrency_value = map[string]int32{ + "UNKNOWN_CURRENCY": 0, + "INR": 1, + } +) -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 (x PaymentInfo_PaymentInfoCurrency) Enum() *PaymentInfo_PaymentInfoCurrency { + p := new(PaymentInfo_PaymentInfoCurrency) + *p = x + return p } -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 (x PaymentInfo_PaymentInfoCurrency) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (m *HydratedURLButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HydratedURLButton.Unmarshal(m, b) +func (PaymentInfo_PaymentInfoCurrency) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[15].Descriptor() } -func (m *HydratedURLButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HydratedURLButton.Marshal(b, m, deterministic) + +func (PaymentInfo_PaymentInfoCurrency) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[15] } -func (m *HydratedURLButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_HydratedURLButton.Merge(m, src) + +func (x PaymentInfo_PaymentInfoCurrency) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (m *HydratedURLButton) XXX_Size() int { - return xxx_messageInfo_HydratedURLButton.Size(m) + +// Deprecated: Do not use. +func (x *PaymentInfo_PaymentInfoCurrency) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PaymentInfo_PaymentInfoCurrency(num) + return nil } -func (m *HydratedURLButton) XXX_DiscardUnknown() { - xxx_messageInfo_HydratedURLButton.DiscardUnknown(m) + +// Deprecated: Use PaymentInfo_PaymentInfoCurrency.Descriptor instead. +func (PaymentInfo_PaymentInfoCurrency) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{76, 0} } -var xxx_messageInfo_HydratedURLButton proto.InternalMessageInfo +type PaymentInfo_PaymentInfoStatus int32 -func (m *HydratedURLButton) GetDisplayText() string { - if m != nil && m.DisplayText != nil { - return *m.DisplayText - } - return "" -} +const ( + PaymentInfo_UNKNOWN_STATUS PaymentInfo_PaymentInfoStatus = 0 + PaymentInfo_PROCESSING PaymentInfo_PaymentInfoStatus = 1 + PaymentInfo_SENT PaymentInfo_PaymentInfoStatus = 2 + PaymentInfo_NEED_TO_ACCEPT PaymentInfo_PaymentInfoStatus = 3 + PaymentInfo_COMPLETE PaymentInfo_PaymentInfoStatus = 4 + PaymentInfo_COULD_NOT_COMPLETE PaymentInfo_PaymentInfoStatus = 5 + PaymentInfo_REFUNDED PaymentInfo_PaymentInfoStatus = 6 + PaymentInfo_EXPIRED PaymentInfo_PaymentInfoStatus = 7 + PaymentInfo_REJECTED PaymentInfo_PaymentInfoStatus = 8 + PaymentInfo_CANCELLED PaymentInfo_PaymentInfoStatus = 9 + PaymentInfo_WAITING_FOR_PAYER PaymentInfo_PaymentInfoStatus = 10 + PaymentInfo_WAITING PaymentInfo_PaymentInfoStatus = 11 +) -func (m *HydratedURLButton) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +// Enum value maps for PaymentInfo_PaymentInfoStatus. +var ( + PaymentInfo_PaymentInfoStatus_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", + } + PaymentInfo_PaymentInfoStatus_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, } - return "" -} +) -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 (x PaymentInfo_PaymentInfoStatus) Enum() *PaymentInfo_PaymentInfoStatus { + p := new(PaymentInfo_PaymentInfoStatus) + *p = x + return p } -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 (x PaymentInfo_PaymentInfoStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (m *HydratedCallButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HydratedCallButton.Unmarshal(m, b) +func (PaymentInfo_PaymentInfoStatus) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[16].Descriptor() } -func (m *HydratedCallButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HydratedCallButton.Marshal(b, m, deterministic) + +func (PaymentInfo_PaymentInfoStatus) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[16] } -func (m *HydratedCallButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_HydratedCallButton.Merge(m, src) + +func (x PaymentInfo_PaymentInfoStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (m *HydratedCallButton) XXX_Size() int { - return xxx_messageInfo_HydratedCallButton.Size(m) + +// Deprecated: Do not use. +func (x *PaymentInfo_PaymentInfoStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PaymentInfo_PaymentInfoStatus(num) + return nil } -func (m *HydratedCallButton) XXX_DiscardUnknown() { - xxx_messageInfo_HydratedCallButton.DiscardUnknown(m) + +// Deprecated: Use PaymentInfo_PaymentInfoStatus.Descriptor instead. +func (PaymentInfo_PaymentInfoStatus) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{76, 1} } -var xxx_messageInfo_HydratedCallButton proto.InternalMessageInfo +type PaymentInfo_PaymentInfoTxnStatus int32 -func (m *HydratedCallButton) GetDisplayText() string { - if m != nil && m.DisplayText != nil { - return *m.DisplayText - } - return "" -} +const ( + PaymentInfo_UNKNOWN PaymentInfo_PaymentInfoTxnStatus = 0 + PaymentInfo_PENDING_SETUP PaymentInfo_PaymentInfoTxnStatus = 1 + PaymentInfo_PENDING_RECEIVER_SETUP PaymentInfo_PaymentInfoTxnStatus = 2 + PaymentInfo_INIT PaymentInfo_PaymentInfoTxnStatus = 3 + PaymentInfo_SUCCESS PaymentInfo_PaymentInfoTxnStatus = 4 + PaymentInfo_COMPLETED PaymentInfo_PaymentInfoTxnStatus = 5 + PaymentInfo_FAILED PaymentInfo_PaymentInfoTxnStatus = 6 + PaymentInfo_FAILED_RISK PaymentInfo_PaymentInfoTxnStatus = 7 + PaymentInfo_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 8 + PaymentInfo_FAILED_RECEIVER_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 9 + PaymentInfo_FAILED_DA PaymentInfo_PaymentInfoTxnStatus = 10 + PaymentInfo_FAILED_DA_FINAL PaymentInfo_PaymentInfoTxnStatus = 11 + PaymentInfo_REFUNDED_TXN PaymentInfo_PaymentInfoTxnStatus = 12 + PaymentInfo_REFUND_FAILED PaymentInfo_PaymentInfoTxnStatus = 13 + PaymentInfo_REFUND_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 14 + PaymentInfo_REFUND_FAILED_DA PaymentInfo_PaymentInfoTxnStatus = 15 + PaymentInfo_EXPIRED_TXN PaymentInfo_PaymentInfoTxnStatus = 16 + PaymentInfo_AUTH_CANCELED PaymentInfo_PaymentInfoTxnStatus = 17 + PaymentInfo_AUTH_CANCEL_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 18 + PaymentInfo_AUTH_CANCEL_FAILED PaymentInfo_PaymentInfoTxnStatus = 19 + PaymentInfo_COLLECT_INIT PaymentInfo_PaymentInfoTxnStatus = 20 + PaymentInfo_COLLECT_SUCCESS PaymentInfo_PaymentInfoTxnStatus = 21 + PaymentInfo_COLLECT_FAILED PaymentInfo_PaymentInfoTxnStatus = 22 + PaymentInfo_COLLECT_FAILED_RISK PaymentInfo_PaymentInfoTxnStatus = 23 + PaymentInfo_COLLECT_REJECTED PaymentInfo_PaymentInfoTxnStatus = 24 + PaymentInfo_COLLECT_EXPIRED PaymentInfo_PaymentInfoTxnStatus = 25 + PaymentInfo_COLLECT_CANCELED PaymentInfo_PaymentInfoTxnStatus = 26 + PaymentInfo_COLLECT_CANCELLING PaymentInfo_PaymentInfoTxnStatus = 27 +) -func (m *HydratedCallButton) GetPhoneNumber() string { - if m != nil && m.PhoneNumber != nil { - return *m.PhoneNumber +// Enum value maps for PaymentInfo_PaymentInfoTxnStatus. +var ( + PaymentInfo_PaymentInfoTxnStatus_name = map[int32]string{ + 0: "UNKNOWN", + 1: "PENDING_SETUP", + 2: "PENDING_RECEIVER_SETUP", + 3: "INIT", + 4: "SUCCESS", + 5: "COMPLETED", + 6: "FAILED", + 7: "FAILED_RISK", + 8: "FAILED_PROCESSING", + 9: "FAILED_RECEIVER_PROCESSING", + 10: "FAILED_DA", + 11: "FAILED_DA_FINAL", + 12: "REFUNDED_TXN", + 13: "REFUND_FAILED", + 14: "REFUND_FAILED_PROCESSING", + 15: "REFUND_FAILED_DA", + 16: "EXPIRED_TXN", + 17: "AUTH_CANCELED", + 18: "AUTH_CANCEL_FAILED_PROCESSING", + 19: "AUTH_CANCEL_FAILED", + 20: "COLLECT_INIT", + 21: "COLLECT_SUCCESS", + 22: "COLLECT_FAILED", + 23: "COLLECT_FAILED_RISK", + 24: "COLLECT_REJECTED", + 25: "COLLECT_EXPIRED", + 26: "COLLECT_CANCELED", + 27: "COLLECT_CANCELLING", + } + PaymentInfo_PaymentInfoTxnStatus_value = map[string]int32{ + "UNKNOWN": 0, + "PENDING_SETUP": 1, + "PENDING_RECEIVER_SETUP": 2, + "INIT": 3, + "SUCCESS": 4, + "COMPLETED": 5, + "FAILED": 6, + "FAILED_RISK": 7, + "FAILED_PROCESSING": 8, + "FAILED_RECEIVER_PROCESSING": 9, + "FAILED_DA": 10, + "FAILED_DA_FINAL": 11, + "REFUNDED_TXN": 12, + "REFUND_FAILED": 13, + "REFUND_FAILED_PROCESSING": 14, + "REFUND_FAILED_DA": 15, + "EXPIRED_TXN": 16, + "AUTH_CANCELED": 17, + "AUTH_CANCEL_FAILED_PROCESSING": 18, + "AUTH_CANCEL_FAILED": 19, + "COLLECT_INIT": 20, + "COLLECT_SUCCESS": 21, + "COLLECT_FAILED": 22, + "COLLECT_FAILED_RISK": 23, + "COLLECT_REJECTED": 24, + "COLLECT_EXPIRED": 25, + "COLLECT_CANCELED": 26, + "COLLECT_CANCELLING": 27, } - return "" -} +) -type HydratedTemplateButton struct { - Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"` - // 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:"-"` +func (x PaymentInfo_PaymentInfoTxnStatus) Enum() *PaymentInfo_PaymentInfoTxnStatus { + p := new(PaymentInfo_PaymentInfoTxnStatus) + *p = x + return p } -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 (x PaymentInfo_PaymentInfoTxnStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (m *HydratedTemplateButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HydratedTemplateButton.Unmarshal(m, b) +func (PaymentInfo_PaymentInfoTxnStatus) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[17].Descriptor() } -func (m *HydratedTemplateButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HydratedTemplateButton.Marshal(b, m, deterministic) + +func (PaymentInfo_PaymentInfoTxnStatus) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[17] } -func (m *HydratedTemplateButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_HydratedTemplateButton.Merge(m, src) + +func (x PaymentInfo_PaymentInfoTxnStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (m *HydratedTemplateButton) XXX_Size() int { - return xxx_messageInfo_HydratedTemplateButton.Size(m) + +// Deprecated: Do not use. +func (x *PaymentInfo_PaymentInfoTxnStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PaymentInfo_PaymentInfoTxnStatus(num) + return nil } -func (m *HydratedTemplateButton) XXX_DiscardUnknown() { - xxx_messageInfo_HydratedTemplateButton.DiscardUnknown(m) + +// Deprecated: Use PaymentInfo_PaymentInfoTxnStatus.Descriptor instead. +func (PaymentInfo_PaymentInfoTxnStatus) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{76, 2} } -var xxx_messageInfo_HydratedTemplateButton proto.InternalMessageInfo +type WebMessageInfo_WebMessageInfoStatus int32 -func (m *HydratedTemplateButton) GetIndex() uint32 { - if m != nil && m.Index != nil { - return *m.Index +const ( + WebMessageInfo_ERROR WebMessageInfo_WebMessageInfoStatus = 0 + WebMessageInfo_PENDING WebMessageInfo_WebMessageInfoStatus = 1 + WebMessageInfo_SERVER_ACK WebMessageInfo_WebMessageInfoStatus = 2 + WebMessageInfo_DELIVERY_ACK WebMessageInfo_WebMessageInfoStatus = 3 + WebMessageInfo_READ WebMessageInfo_WebMessageInfoStatus = 4 + WebMessageInfo_PLAYED WebMessageInfo_WebMessageInfoStatus = 5 +) + +// Enum value maps for WebMessageInfo_WebMessageInfoStatus. +var ( + WebMessageInfo_WebMessageInfoStatus_name = map[int32]string{ + 0: "ERROR", + 1: "PENDING", + 2: "SERVER_ACK", + 3: "DELIVERY_ACK", + 4: "READ", + 5: "PLAYED", + } + WebMessageInfo_WebMessageInfoStatus_value = map[string]int32{ + "ERROR": 0, + "PENDING": 1, + "SERVER_ACK": 2, + "DELIVERY_ACK": 3, + "READ": 4, + "PLAYED": 5, } - return 0 -} +) -type isHydratedTemplateButton_HydratedButton interface { - isHydratedTemplateButton_HydratedButton() +func (x WebMessageInfo_WebMessageInfoStatus) Enum() *WebMessageInfo_WebMessageInfoStatus { + p := new(WebMessageInfo_WebMessageInfoStatus) + *p = x + return p } -type HydratedTemplateButton_QuickReplyButton struct { - QuickReplyButton *HydratedQuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +func (x WebMessageInfo_WebMessageInfoStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -type HydratedTemplateButton_UrlButton struct { - UrlButton *HydratedURLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"` +func (WebMessageInfo_WebMessageInfoStatus) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[18].Descriptor() } -type HydratedTemplateButton_CallButton struct { - CallButton *HydratedCallButton `protobuf:"bytes,3,opt,name=callButton,oneof"` +func (WebMessageInfo_WebMessageInfoStatus) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[18] } -func (*HydratedTemplateButton_QuickReplyButton) isHydratedTemplateButton_HydratedButton() {} - -func (*HydratedTemplateButton_UrlButton) isHydratedTemplateButton_HydratedButton() {} - -func (*HydratedTemplateButton_CallButton) isHydratedTemplateButton_HydratedButton() {} +func (x WebMessageInfo_WebMessageInfoStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} -func (m *HydratedTemplateButton) GetHydratedButton() isHydratedTemplateButton_HydratedButton { - if m != nil { - return m.HydratedButton +// Deprecated: Do not use. +func (x *WebMessageInfo_WebMessageInfoStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err } + *x = WebMessageInfo_WebMessageInfoStatus(num) return nil } -func (m *HydratedTemplateButton) GetQuickReplyButton() *HydratedQuickReplyButton { - if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_QuickReplyButton); ok { - return x.QuickReplyButton - } - return nil +// Deprecated: Use WebMessageInfo_WebMessageInfoStatus.Descriptor instead. +func (WebMessageInfo_WebMessageInfoStatus) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{77, 0} } -func (m *HydratedTemplateButton) GetUrlButton() *HydratedURLButton { - if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_UrlButton); ok { - return x.UrlButton - } +type WebMessageInfo_WebMessageInfoStubType int32 + +const ( + WebMessageInfo_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 0 + WebMessageInfo_REVOKE WebMessageInfo_WebMessageInfoStubType = 1 + WebMessageInfo_CIPHERTEXT WebMessageInfo_WebMessageInfoStubType = 2 + WebMessageInfo_FUTUREPROOF WebMessageInfo_WebMessageInfoStubType = 3 + WebMessageInfo_NON_VERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 4 + WebMessageInfo_UNVERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 5 + WebMessageInfo_VERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 6 + WebMessageInfo_VERIFIED_LOW_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 7 + WebMessageInfo_VERIFIED_HIGH WebMessageInfo_WebMessageInfoStubType = 8 + WebMessageInfo_VERIFIED_INITIAL_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 9 + WebMessageInfo_VERIFIED_INITIAL_LOW WebMessageInfo_WebMessageInfoStubType = 10 + WebMessageInfo_VERIFIED_INITIAL_HIGH WebMessageInfo_WebMessageInfoStubType = 11 + WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_NONE WebMessageInfo_WebMessageInfoStubType = 12 + WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_HIGH WebMessageInfo_WebMessageInfoStubType = 13 + WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_LOW WebMessageInfo_WebMessageInfoStubType = 14 + WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 15 + WebMessageInfo_VERIFIED_TRANSITION_UNKNOWN_TO_LOW WebMessageInfo_WebMessageInfoStubType = 16 + WebMessageInfo_VERIFIED_TRANSITION_LOW_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 17 + WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_LOW WebMessageInfo_WebMessageInfoStubType = 18 + WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 19 + WebMessageInfo_GROUP_CREATE WebMessageInfo_WebMessageInfoStubType = 20 + WebMessageInfo_GROUP_CHANGE_SUBJECT WebMessageInfo_WebMessageInfoStubType = 21 + WebMessageInfo_GROUP_CHANGE_ICON WebMessageInfo_WebMessageInfoStubType = 22 + WebMessageInfo_GROUP_CHANGE_INVITE_LINK WebMessageInfo_WebMessageInfoStubType = 23 + WebMessageInfo_GROUP_CHANGE_DESCRIPTION WebMessageInfo_WebMessageInfoStubType = 24 + WebMessageInfo_GROUP_CHANGE_RESTRICT WebMessageInfo_WebMessageInfoStubType = 25 + WebMessageInfo_GROUP_CHANGE_ANNOUNCE WebMessageInfo_WebMessageInfoStubType = 26 + WebMessageInfo_GROUP_PARTICIPANT_ADD WebMessageInfo_WebMessageInfoStubType = 27 + WebMessageInfo_GROUP_PARTICIPANT_REMOVE WebMessageInfo_WebMessageInfoStubType = 28 + WebMessageInfo_GROUP_PARTICIPANT_PROMOTE WebMessageInfo_WebMessageInfoStubType = 29 + WebMessageInfo_GROUP_PARTICIPANT_DEMOTE WebMessageInfo_WebMessageInfoStubType = 30 + WebMessageInfo_GROUP_PARTICIPANT_INVITE WebMessageInfo_WebMessageInfoStubType = 31 + WebMessageInfo_GROUP_PARTICIPANT_LEAVE WebMessageInfo_WebMessageInfoStubType = 32 + WebMessageInfo_GROUP_PARTICIPANT_CHANGE_NUMBER WebMessageInfo_WebMessageInfoStubType = 33 + WebMessageInfo_BROADCAST_CREATE WebMessageInfo_WebMessageInfoStubType = 34 + WebMessageInfo_BROADCAST_ADD WebMessageInfo_WebMessageInfoStubType = 35 + WebMessageInfo_BROADCAST_REMOVE WebMessageInfo_WebMessageInfoStubType = 36 + WebMessageInfo_GENERIC_NOTIFICATION WebMessageInfo_WebMessageInfoStubType = 37 + WebMessageInfo_E2E_IDENTITY_CHANGED WebMessageInfo_WebMessageInfoStubType = 38 + WebMessageInfo_E2E_ENCRYPTED WebMessageInfo_WebMessageInfoStubType = 39 + WebMessageInfo_CALL_MISSED_VOICE WebMessageInfo_WebMessageInfoStubType = 40 + WebMessageInfo_CALL_MISSED_VIDEO WebMessageInfo_WebMessageInfoStubType = 41 + WebMessageInfo_INDIVIDUAL_CHANGE_NUMBER WebMessageInfo_WebMessageInfoStubType = 42 + WebMessageInfo_GROUP_DELETE WebMessageInfo_WebMessageInfoStubType = 43 + WebMessageInfo_GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE WebMessageInfo_WebMessageInfoStubType = 44 + WebMessageInfo_CALL_MISSED_GROUP_VOICE WebMessageInfo_WebMessageInfoStubType = 45 + WebMessageInfo_CALL_MISSED_GROUP_VIDEO WebMessageInfo_WebMessageInfoStubType = 46 + WebMessageInfo_PAYMENT_CIPHERTEXT WebMessageInfo_WebMessageInfoStubType = 47 + WebMessageInfo_PAYMENT_FUTUREPROOF WebMessageInfo_WebMessageInfoStubType = 48 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED WebMessageInfo_WebMessageInfoStubType = 49 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED WebMessageInfo_WebMessageInfoStubType = 50 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED WebMessageInfo_WebMessageInfoStubType = 51 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP WebMessageInfo_WebMessageInfoStubType = 52 + WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP WebMessageInfo_WebMessageInfoStubType = 53 + WebMessageInfo_PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER WebMessageInfo_WebMessageInfoStubType = 54 + WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_REMINDER WebMessageInfo_WebMessageInfoStubType = 55 + WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_INVITATION WebMessageInfo_WebMessageInfoStubType = 56 + WebMessageInfo_PAYMENT_ACTION_REQUEST_DECLINED WebMessageInfo_WebMessageInfoStubType = 57 + WebMessageInfo_PAYMENT_ACTION_REQUEST_EXPIRED WebMessageInfo_WebMessageInfoStubType = 58 + WebMessageInfo_PAYMENT_ACTION_REQUEST_CANCELLED WebMessageInfo_WebMessageInfoStubType = 59 + WebMessageInfo_BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM WebMessageInfo_WebMessageInfoStubType = 60 + WebMessageInfo_BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP WebMessageInfo_WebMessageInfoStubType = 61 + WebMessageInfo_BIZ_INTRO_TOP WebMessageInfo_WebMessageInfoStubType = 62 + WebMessageInfo_BIZ_INTRO_BOTTOM WebMessageInfo_WebMessageInfoStubType = 63 + WebMessageInfo_BIZ_NAME_CHANGE WebMessageInfo_WebMessageInfoStubType = 64 + WebMessageInfo_BIZ_MOVE_TO_CONSUMER_APP WebMessageInfo_WebMessageInfoStubType = 65 + WebMessageInfo_BIZ_TWO_TIER_MIGRATION_TOP WebMessageInfo_WebMessageInfoStubType = 66 + WebMessageInfo_BIZ_TWO_TIER_MIGRATION_BOTTOM WebMessageInfo_WebMessageInfoStubType = 67 + WebMessageInfo_OVERSIZED WebMessageInfo_WebMessageInfoStubType = 68 + WebMessageInfo_GROUP_CHANGE_NO_FREQUENTLY_FORWARDED WebMessageInfo_WebMessageInfoStubType = 69 + WebMessageInfo_GROUP_V4_ADD_INVITE_SENT WebMessageInfo_WebMessageInfoStubType = 70 + WebMessageInfo_GROUP_PARTICIPANT_ADD_REQUEST_JOIN WebMessageInfo_WebMessageInfoStubType = 71 + WebMessageInfo_CHANGE_EPHEMERAL_SETTING WebMessageInfo_WebMessageInfoStubType = 72 + WebMessageInfo_E2E_DEVICE_CHANGED WebMessageInfo_WebMessageInfoStubType = 73 + WebMessageInfo_VIEWED_ONCE WebMessageInfo_WebMessageInfoStubType = 74 + WebMessageInfo_E2E_ENCRYPTED_NOW WebMessageInfo_WebMessageInfoStubType = 75 + WebMessageInfo_BLUE_MSG_BSP_FB_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 76 + WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_FB WebMessageInfo_WebMessageInfoStubType = 77 + WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 78 + WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 79 + WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 80 + WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 81 + WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 82 + WebMessageInfo_BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 83 + WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 84 + WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 85 + WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 86 + WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 87 + WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 88 + WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 89 + WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 90 + WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 91 + WebMessageInfo_BLUE_MSG_SELF_FB_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 92 + WebMessageInfo_BLUE_MSG_SELF_FB_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 93 + WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 94 + WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 95 + WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 96 + WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 97 + WebMessageInfo_BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 98 + WebMessageInfo_BLUE_MSG_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 99 + WebMessageInfo_BLUE_MSG_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 100 + WebMessageInfo_BLUE_MSG_TO_BSP_FB WebMessageInfo_WebMessageInfoStubType = 101 + WebMessageInfo_BLUE_MSG_TO_CONSUMER WebMessageInfo_WebMessageInfoStubType = 102 + WebMessageInfo_BLUE_MSG_TO_SELF_FB WebMessageInfo_WebMessageInfoStubType = 103 + WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 104 + WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 105 + WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 106 + WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_VERIFIED WebMessageInfo_WebMessageInfoStubType = 107 + WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 108 + WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 109 + WebMessageInfo_BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 110 + WebMessageInfo_BLUE_MSG_VERIFIED_TO_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 111 + WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 112 + WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 113 + WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 114 + WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 115 + WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 116 + WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 117 + WebMessageInfo_E2E_IDENTITY_UNAVAILABLE WebMessageInfo_WebMessageInfoStubType = 118 +) + +// Enum value maps for WebMessageInfo_WebMessageInfoStubType. +var ( + WebMessageInfo_WebMessageInfoStubType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "REVOKE", + 2: "CIPHERTEXT", + 3: "FUTUREPROOF", + 4: "NON_VERIFIED_TRANSITION", + 5: "UNVERIFIED_TRANSITION", + 6: "VERIFIED_TRANSITION", + 7: "VERIFIED_LOW_UNKNOWN", + 8: "VERIFIED_HIGH", + 9: "VERIFIED_INITIAL_UNKNOWN", + 10: "VERIFIED_INITIAL_LOW", + 11: "VERIFIED_INITIAL_HIGH", + 12: "VERIFIED_TRANSITION_ANY_TO_NONE", + 13: "VERIFIED_TRANSITION_ANY_TO_HIGH", + 14: "VERIFIED_TRANSITION_HIGH_TO_LOW", + 15: "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN", + 16: "VERIFIED_TRANSITION_UNKNOWN_TO_LOW", + 17: "VERIFIED_TRANSITION_LOW_TO_UNKNOWN", + 18: "VERIFIED_TRANSITION_NONE_TO_LOW", + 19: "VERIFIED_TRANSITION_NONE_TO_UNKNOWN", + 20: "GROUP_CREATE", + 21: "GROUP_CHANGE_SUBJECT", + 22: "GROUP_CHANGE_ICON", + 23: "GROUP_CHANGE_INVITE_LINK", + 24: "GROUP_CHANGE_DESCRIPTION", + 25: "GROUP_CHANGE_RESTRICT", + 26: "GROUP_CHANGE_ANNOUNCE", + 27: "GROUP_PARTICIPANT_ADD", + 28: "GROUP_PARTICIPANT_REMOVE", + 29: "GROUP_PARTICIPANT_PROMOTE", + 30: "GROUP_PARTICIPANT_DEMOTE", + 31: "GROUP_PARTICIPANT_INVITE", + 32: "GROUP_PARTICIPANT_LEAVE", + 33: "GROUP_PARTICIPANT_CHANGE_NUMBER", + 34: "BROADCAST_CREATE", + 35: "BROADCAST_ADD", + 36: "BROADCAST_REMOVE", + 37: "GENERIC_NOTIFICATION", + 38: "E2E_IDENTITY_CHANGED", + 39: "E2E_ENCRYPTED", + 40: "CALL_MISSED_VOICE", + 41: "CALL_MISSED_VIDEO", + 42: "INDIVIDUAL_CHANGE_NUMBER", + 43: "GROUP_DELETE", + 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", + 70: "GROUP_V4_ADD_INVITE_SENT", + 71: "GROUP_PARTICIPANT_ADD_REQUEST_JOIN", + 72: "CHANGE_EPHEMERAL_SETTING", + 73: "E2E_DEVICE_CHANGED", + 74: "VIEWED_ONCE", + 75: "E2E_ENCRYPTED_NOW", + 76: "BLUE_MSG_BSP_FB_TO_BSP_PREMISE", + 77: "BLUE_MSG_BSP_FB_TO_SELF_FB", + 78: "BLUE_MSG_BSP_FB_TO_SELF_PREMISE", + 79: "BLUE_MSG_BSP_FB_UNVERIFIED", + 80: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED", + 81: "BLUE_MSG_BSP_FB_VERIFIED", + 82: "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED", + 83: "BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE", + 84: "BLUE_MSG_BSP_PREMISE_UNVERIFIED", + 85: "BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED", + 86: "BLUE_MSG_BSP_PREMISE_VERIFIED", + 87: "BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED", + 88: "BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED", + 89: "BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED", + 90: "BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED", + 91: "BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED", + 92: "BLUE_MSG_SELF_FB_TO_BSP_PREMISE", + 93: "BLUE_MSG_SELF_FB_TO_SELF_PREMISE", + 94: "BLUE_MSG_SELF_FB_UNVERIFIED", + 95: "BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED", + 96: "BLUE_MSG_SELF_FB_VERIFIED", + 97: "BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED", + 98: "BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE", + 99: "BLUE_MSG_SELF_PREMISE_UNVERIFIED", + 100: "BLUE_MSG_SELF_PREMISE_VERIFIED", + 101: "BLUE_MSG_TO_BSP_FB", + 102: "BLUE_MSG_TO_CONSUMER", + 103: "BLUE_MSG_TO_SELF_FB", + 104: "BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED", + 105: "BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED", + 106: "BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED", + 107: "BLUE_MSG_UNVERIFIED_TO_VERIFIED", + 108: "BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED", + 109: "BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED", + 110: "BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED", + 111: "BLUE_MSG_VERIFIED_TO_UNVERIFIED", + 112: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED", + 113: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED", + 114: "BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED", + 115: "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED", + 116: "BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED", + 117: "BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED", + 118: "E2E_IDENTITY_UNAVAILABLE", + } + WebMessageInfo_WebMessageInfoStubType_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, + "GROUP_V4_ADD_INVITE_SENT": 70, + "GROUP_PARTICIPANT_ADD_REQUEST_JOIN": 71, + "CHANGE_EPHEMERAL_SETTING": 72, + "E2E_DEVICE_CHANGED": 73, + "VIEWED_ONCE": 74, + "E2E_ENCRYPTED_NOW": 75, + "BLUE_MSG_BSP_FB_TO_BSP_PREMISE": 76, + "BLUE_MSG_BSP_FB_TO_SELF_FB": 77, + "BLUE_MSG_BSP_FB_TO_SELF_PREMISE": 78, + "BLUE_MSG_BSP_FB_UNVERIFIED": 79, + "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 80, + "BLUE_MSG_BSP_FB_VERIFIED": 81, + "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 82, + "BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE": 83, + "BLUE_MSG_BSP_PREMISE_UNVERIFIED": 84, + "BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 85, + "BLUE_MSG_BSP_PREMISE_VERIFIED": 86, + "BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 87, + "BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED": 88, + "BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED": 89, + "BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED": 90, + "BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED": 91, + "BLUE_MSG_SELF_FB_TO_BSP_PREMISE": 92, + "BLUE_MSG_SELF_FB_TO_SELF_PREMISE": 93, + "BLUE_MSG_SELF_FB_UNVERIFIED": 94, + "BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 95, + "BLUE_MSG_SELF_FB_VERIFIED": 96, + "BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 97, + "BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE": 98, + "BLUE_MSG_SELF_PREMISE_UNVERIFIED": 99, + "BLUE_MSG_SELF_PREMISE_VERIFIED": 100, + "BLUE_MSG_TO_BSP_FB": 101, + "BLUE_MSG_TO_CONSUMER": 102, + "BLUE_MSG_TO_SELF_FB": 103, + "BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED": 104, + "BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 105, + "BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED": 106, + "BLUE_MSG_UNVERIFIED_TO_VERIFIED": 107, + "BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED": 108, + "BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 109, + "BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED": 110, + "BLUE_MSG_VERIFIED_TO_UNVERIFIED": 111, + "BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 112, + "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED": 113, + "BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 114, + "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED": 115, + "BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 116, + "BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 117, + "E2E_IDENTITY_UNAVAILABLE": 118, + } +) + +func (x WebMessageInfo_WebMessageInfoStubType) Enum() *WebMessageInfo_WebMessageInfoStubType { + p := new(WebMessageInfo_WebMessageInfoStubType) + *p = x + return p +} + +func (x WebMessageInfo_WebMessageInfoStubType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebMessageInfo_WebMessageInfoStubType) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[19].Descriptor() +} + +func (WebMessageInfo_WebMessageInfoStubType) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[19] +} + +func (x WebMessageInfo_WebMessageInfoStubType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WebMessageInfo_WebMessageInfoStubType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WebMessageInfo_WebMessageInfoStubType(num) return nil } -func (m *HydratedTemplateButton) GetCallButton() *HydratedCallButton { - if x, ok := m.GetHydratedButton().(*HydratedTemplateButton_CallButton); ok { - return x.CallButton +// Deprecated: Use WebMessageInfo_WebMessageInfoStubType.Descriptor instead. +func (WebMessageInfo_WebMessageInfoStubType) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{77, 1} +} + +type WebMessageInfo_WebMessageInfoBizPrivacyStatus int32 + +const ( + WebMessageInfo_E2EE WebMessageInfo_WebMessageInfoBizPrivacyStatus = 0 + WebMessageInfo_FB WebMessageInfo_WebMessageInfoBizPrivacyStatus = 2 + WebMessageInfo_BSP WebMessageInfo_WebMessageInfoBizPrivacyStatus = 1 + WebMessageInfo_BSP_AND_FB WebMessageInfo_WebMessageInfoBizPrivacyStatus = 3 +) + +// Enum value maps for WebMessageInfo_WebMessageInfoBizPrivacyStatus. +var ( + WebMessageInfo_WebMessageInfoBizPrivacyStatus_name = map[int32]string{ + 0: "E2EE", + 2: "FB", + 1: "BSP", + 3: "BSP_AND_FB", + } + WebMessageInfo_WebMessageInfoBizPrivacyStatus_value = map[string]int32{ + "E2EE": 0, + "FB": 2, + "BSP": 1, + "BSP_AND_FB": 3, + } +) + +func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) Enum() *WebMessageInfo_WebMessageInfoBizPrivacyStatus { + p := new(WebMessageInfo_WebMessageInfoBizPrivacyStatus) + *p = x + return p +} + +func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) Descriptor() protoreflect.EnumDescriptor { + return file_def_proto_enumTypes[20].Descriptor() +} + +func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) Type() protoreflect.EnumType { + return &file_def_proto_enumTypes[20] +} + +func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WebMessageInfo_WebMessageInfoBizPrivacyStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err } + *x = WebMessageInfo_WebMessageInfoBizPrivacyStatus(num) return nil } -// 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), +// Deprecated: Use WebMessageInfo_WebMessageInfoBizPrivacyStatus.Descriptor instead. +func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) EnumDescriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{77, 2} +} + +type HydratedQuickReplyButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` +} + +func (x *HydratedQuickReplyButton) Reset() { + *x = HydratedQuickReplyButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } } -type QuickReplyButton struct { - DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,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 (x *HydratedQuickReplyButton) String() string { + return protoimpl.X.MessageStringOf(x) } -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 (*HydratedQuickReplyButton) ProtoMessage() {} + +func (x *HydratedQuickReplyButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HydratedQuickReplyButton.ProtoReflect.Descriptor instead. +func (*HydratedQuickReplyButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{0} +} + +func (x *HydratedQuickReplyButton) GetDisplayText() string { + if x != nil && x.DisplayText != nil { + return *x.DisplayText + } + return "" +} + +func (x *HydratedQuickReplyButton) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +type HydratedURLButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` +} + +func (x *HydratedURLButton) Reset() { + *x = HydratedURLButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HydratedURLButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HydratedURLButton) ProtoMessage() {} + +func (x *HydratedURLButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HydratedURLButton.ProtoReflect.Descriptor instead. +func (*HydratedURLButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{1} +} + +func (x *HydratedURLButton) GetDisplayText() string { + if x != nil && x.DisplayText != nil { + return *x.DisplayText + } + return "" +} + +func (x *HydratedURLButton) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +type HydratedCallButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + PhoneNumber *string `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"` +} + +func (x *HydratedCallButton) Reset() { + *x = HydratedCallButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HydratedCallButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HydratedCallButton) ProtoMessage() {} + +func (x *HydratedCallButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HydratedCallButton.ProtoReflect.Descriptor instead. +func (*HydratedCallButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{2} +} + +func (x *HydratedCallButton) GetDisplayText() string { + if x != nil && x.DisplayText != nil { + return *x.DisplayText + } + return "" +} + +func (x *HydratedCallButton) GetPhoneNumber() string { + if x != nil && x.PhoneNumber != nil { + return *x.PhoneNumber + } + return "" } -func (m *QuickReplyButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuickReplyButton.Unmarshal(m, b) +type HydratedTemplateButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"` + // Types that are assignable to HydratedButton: + // *HydratedTemplateButton_QuickReplyButton + // *HydratedTemplateButton_UrlButton + // *HydratedTemplateButton_CallButton + HydratedButton isHydratedTemplateButton_HydratedButton `protobuf_oneof:"hydratedButton"` } -func (m *QuickReplyButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuickReplyButton.Marshal(b, m, deterministic) + +func (x *HydratedTemplateButton) Reset() { + *x = HydratedTemplateButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *QuickReplyButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuickReplyButton.Merge(m, src) + +func (x *HydratedTemplateButton) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *QuickReplyButton) XXX_Size() int { - return xxx_messageInfo_QuickReplyButton.Size(m) + +func (*HydratedTemplateButton) ProtoMessage() {} + +func (x *HydratedTemplateButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *QuickReplyButton) XXX_DiscardUnknown() { - xxx_messageInfo_QuickReplyButton.DiscardUnknown(m) + +// Deprecated: Use HydratedTemplateButton.ProtoReflect.Descriptor instead. +func (*HydratedTemplateButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{3} } -var xxx_messageInfo_QuickReplyButton proto.InternalMessageInfo +func (x *HydratedTemplateButton) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 +} -func (m *QuickReplyButton) GetDisplayText() *HighlyStructuredMessage { +func (m *HydratedTemplateButton) GetHydratedButton() isHydratedTemplateButton_HydratedButton { if m != nil { - return m.DisplayText + return m.HydratedButton + } + return nil +} + +func (x *HydratedTemplateButton) GetQuickReplyButton() *HydratedQuickReplyButton { + if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_QuickReplyButton); ok { + return x.QuickReplyButton + } + return nil +} + +func (x *HydratedTemplateButton) GetUrlButton() *HydratedURLButton { + if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_UrlButton); ok { + return x.UrlButton + } + return nil +} + +func (x *HydratedTemplateButton) GetCallButton() *HydratedCallButton { + if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_CallButton); ok { + return x.CallButton + } + return nil +} + +type isHydratedTemplateButton_HydratedButton interface { + isHydratedTemplateButton_HydratedButton() +} + +type HydratedTemplateButton_QuickReplyButton struct { + QuickReplyButton *HydratedQuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +} + +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() {} + +type QuickReplyButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` +} + +func (x *QuickReplyButton) Reset() { + *x = QuickReplyButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuickReplyButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuickReplyButton) ProtoMessage() {} + +func (x *QuickReplyButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuickReplyButton.ProtoReflect.Descriptor instead. +func (*QuickReplyButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{4} +} + +func (x *QuickReplyButton) GetDisplayText() *HighlyStructuredMessage { + if x != nil { + return x.DisplayText } return nil } -func (m *QuickReplyButton) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +func (x *QuickReplyButton) GetId() string { + if x != nil && x.Id != nil { + return *x.Id } return "" } 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:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + Url *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` +} + +func (x *URLButton) Reset() { + *x = URLButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *URLButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*URLButton) ProtoMessage() {} + +func (x *URLButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *URLButton) Reset() { *m = URLButton{} } -func (m *URLButton) String() string { return proto.CompactTextString(m) } -func (*URLButton) ProtoMessage() {} +// Deprecated: Use URLButton.ProtoReflect.Descriptor instead. func (*URLButton) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{5} + return file_def_proto_rawDescGZIP(), []int{5} +} + +func (x *URLButton) GetDisplayText() *HighlyStructuredMessage { + if x != nil { + return x.DisplayText + } + return nil } -func (m *URLButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLButton.Unmarshal(m, b) +func (x *URLButton) GetUrl() *HighlyStructuredMessage { + if x != nil { + return x.Url + } + return nil } -func (m *URLButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLButton.Marshal(b, m, deterministic) + +type CallButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` + PhoneNumber *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"` } -func (m *URLButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLButton.Merge(m, src) + +func (x *CallButton) Reset() { + *x = CallButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *URLButton) XXX_Size() int { - return xxx_messageInfo_URLButton.Size(m) + +func (x *CallButton) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *URLButton) XXX_DiscardUnknown() { - xxx_messageInfo_URLButton.DiscardUnknown(m) + +func (*CallButton) ProtoMessage() {} + +func (x *CallButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_URLButton proto.InternalMessageInfo +// Deprecated: Use CallButton.ProtoReflect.Descriptor instead. +func (*CallButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{6} +} -func (m *URLButton) GetDisplayText() *HighlyStructuredMessage { - if m != nil { - return m.DisplayText +func (x *CallButton) GetDisplayText() *HighlyStructuredMessage { + if x != nil { + return x.DisplayText } return nil } -func (m *URLButton) GetUrl() *HighlyStructuredMessage { - if m != nil { - return m.Url +func (x *CallButton) GetPhoneNumber() *HighlyStructuredMessage { + if x != nil { + return x.PhoneNumber } return nil } -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:"-"` +type TemplateButton struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"` + // Types that are assignable to Button: + // *TemplateButton_QuickReplyButton + // *TemplateButton_UrlButton + // *TemplateButton_CallButton + Button isTemplateButton_Button `protobuf_oneof:"button"` } -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 (x *TemplateButton) Reset() { + *x = TemplateButton{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TemplateButton) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TemplateButton) ProtoMessage() {} + +func (x *TemplateButton) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *CallButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CallButton.Unmarshal(m, b) +// Deprecated: Use TemplateButton.ProtoReflect.Descriptor instead. +func (*TemplateButton) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{7} } -func (m *CallButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CallButton.Marshal(b, m, deterministic) + +func (x *TemplateButton) GetIndex() uint32 { + if x != nil && x.Index != nil { + return *x.Index + } + return 0 } -func (m *CallButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_CallButton.Merge(m, src) + +func (m *TemplateButton) GetButton() isTemplateButton_Button { + if m != nil { + return m.Button + } + return nil } -func (m *CallButton) XXX_Size() int { - return xxx_messageInfo_CallButton.Size(m) + +func (x *TemplateButton) GetQuickReplyButton() *QuickReplyButton { + if x, ok := x.GetButton().(*TemplateButton_QuickReplyButton); ok { + return x.QuickReplyButton + } + return nil } -func (m *CallButton) XXX_DiscardUnknown() { - xxx_messageInfo_CallButton.DiscardUnknown(m) + +func (x *TemplateButton) GetUrlButton() *URLButton { + if x, ok := x.GetButton().(*TemplateButton_UrlButton); ok { + return x.UrlButton + } + return nil +} + +func (x *TemplateButton) GetCallButton() *CallButton { + if x, ok := x.GetButton().(*TemplateButton_CallButton); ok { + return x.CallButton + } + return nil +} + +type isTemplateButton_Button interface { + isTemplateButton_Button() +} + +type TemplateButton_QuickReplyButton struct { + QuickReplyButton *QuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +} + +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() {} + +type Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` +} + +func (x *Location) Reset() { + *x = Location{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Location) ProtoMessage() {} + +func (x *Location) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Location.ProtoReflect.Descriptor instead. +func (*Location) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{8} +} + +func (x *Location) GetDegreesLatitude() float64 { + if x != nil && x.DegreesLatitude != nil { + return *x.DegreesLatitude + } + return 0 +} + +func (x *Location) GetDegreesLongitude() float64 { + if x != nil && x.DegreesLongitude != nil { + return *x.DegreesLongitude + } + return 0 +} + +func (x *Location) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +type Point struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + XDeprecated *int32 `protobuf:"varint,1,opt,name=xDeprecated" json:"xDeprecated,omitempty"` + YDeprecated *int32 `protobuf:"varint,2,opt,name=yDeprecated" json:"yDeprecated,omitempty"` + X *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"` + Y *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"` +} + +func (x *Point) Reset() { + *x = Point{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Point) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Point) ProtoMessage() {} + +func (x *Point) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Point.ProtoReflect.Descriptor instead. +func (*Point) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{9} +} + +func (x *Point) GetXDeprecated() int32 { + if x != nil && x.XDeprecated != nil { + return *x.XDeprecated + } + return 0 +} + +func (x *Point) GetYDeprecated() int32 { + if x != nil && x.YDeprecated != nil { + return *x.YDeprecated + } + return 0 +} + +func (x *Point) GetX() float64 { + if x != nil && x.X != nil { + return *x.X + } + return 0 +} + +func (x *Point) GetY() float64 { + if x != nil && x.Y != nil { + return *x.Y + } + return 0 +} + +type InteractiveAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PolygonVertices []*Point `protobuf:"bytes,1,rep,name=polygonVertices" json:"polygonVertices,omitempty"` + // Types that are assignable to Action: + // *InteractiveAnnotation_Location + Action isInteractiveAnnotation_Action `protobuf_oneof:"action"` +} + +func (x *InteractiveAnnotation) Reset() { + *x = InteractiveAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InteractiveAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InteractiveAnnotation) ProtoMessage() {} + +func (x *InteractiveAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InteractiveAnnotation.ProtoReflect.Descriptor instead. +func (*InteractiveAnnotation) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{10} +} + +func (x *InteractiveAnnotation) GetPolygonVertices() []*Point { + if x != nil { + return x.PolygonVertices + } + return nil +} + +func (m *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action { + if m != nil { + return m.Action + } + return nil +} + +func (x *InteractiveAnnotation) GetLocation() *Location { + if x, ok := x.GetAction().(*InteractiveAnnotation_Location); ok { + return x.Location + } + return nil +} + +type isInteractiveAnnotation_Action interface { + isInteractiveAnnotation_Action() +} + +type InteractiveAnnotation_Location struct { + Location *Location `protobuf:"bytes,2,opt,name=location,oneof"` +} + +func (*InteractiveAnnotation_Location) isInteractiveAnnotation_Action() {} + +type DeviceListMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SenderKeyHash []byte `protobuf:"bytes,1,opt,name=senderKeyHash" json:"senderKeyHash,omitempty"` + SenderTimestamp *uint64 `protobuf:"varint,2,opt,name=senderTimestamp" json:"senderTimestamp,omitempty"` + RecipientKeyHash []byte `protobuf:"bytes,8,opt,name=recipientKeyHash" json:"recipientKeyHash,omitempty"` + RecipientTimestamp *uint64 `protobuf:"varint,9,opt,name=recipientTimestamp" json:"recipientTimestamp,omitempty"` +} + +func (x *DeviceListMetadata) Reset() { + *x = DeviceListMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeviceListMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceListMetadata) ProtoMessage() {} + +func (x *DeviceListMetadata) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceListMetadata.ProtoReflect.Descriptor instead. +func (*DeviceListMetadata) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{11} +} + +func (x *DeviceListMetadata) GetSenderKeyHash() []byte { + if x != nil { + return x.SenderKeyHash + } + return nil +} + +func (x *DeviceListMetadata) GetSenderTimestamp() uint64 { + if x != nil && x.SenderTimestamp != nil { + return *x.SenderTimestamp + } + return 0 +} + +func (x *DeviceListMetadata) GetRecipientKeyHash() []byte { + if x != nil { + return x.RecipientKeyHash + } + return nil +} + +func (x *DeviceListMetadata) GetRecipientTimestamp() uint64 { + if x != nil && x.RecipientTimestamp != nil { + return *x.RecipientTimestamp + } + return 0 +} + +type MessageContextInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceListMetadata *DeviceListMetadata `protobuf:"bytes,1,opt,name=deviceListMetadata" json:"deviceListMetadata,omitempty"` +} + +func (x *MessageContextInfo) Reset() { + *x = MessageContextInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageContextInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageContextInfo) ProtoMessage() {} + +func (x *MessageContextInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageContextInfo.ProtoReflect.Descriptor instead. +func (*MessageContextInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{12} +} + +func (x *MessageContextInfo) GetDeviceListMetadata() *DeviceListMetadata { + if x != nil { + return x.DeviceListMetadata + } + return nil +} + +type AdReplyInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AdvertiserName *string `protobuf:"bytes,1,opt,name=advertiserName" json:"advertiserName,omitempty"` + MediaType *AdReplyInfo_AdReplyInfoMediaType `protobuf:"varint,2,opt,name=mediaType,enum=proto.AdReplyInfo_AdReplyInfoMediaType" 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"` +} + +func (x *AdReplyInfo) Reset() { + *x = AdReplyInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdReplyInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdReplyInfo) ProtoMessage() {} + +func (x *AdReplyInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdReplyInfo.ProtoReflect.Descriptor instead. +func (*AdReplyInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{13} +} + +func (x *AdReplyInfo) GetAdvertiserName() string { + if x != nil && x.AdvertiserName != nil { + return *x.AdvertiserName + } + return "" +} + +func (x *AdReplyInfo) GetMediaType() AdReplyInfo_AdReplyInfoMediaType { + if x != nil && x.MediaType != nil { + return *x.MediaType + } + return AdReplyInfo_NONE +} + +func (x *AdReplyInfo) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail + } + return nil +} + +func (x *AdReplyInfo) GetCaption() string { + if x != nil && x.Caption != nil { + return *x.Caption + } + return "" +} + +type ExternalAdReplyInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Body *string `protobuf:"bytes,2,opt,name=body" json:"body,omitempty"` + MediaType *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType `protobuf:"varint,3,opt,name=mediaType,enum=proto.ExternalAdReplyInfo_ExternalAdReplyInfoMediaType" json:"mediaType,omitempty"` + ThumbnailUrl *string `protobuf:"bytes,4,opt,name=thumbnailUrl" json:"thumbnailUrl,omitempty"` + MediaUrl *string `protobuf:"bytes,5,opt,name=mediaUrl" json:"mediaUrl,omitempty"` + Thumbnail []byte `protobuf:"bytes,6,opt,name=thumbnail" json:"thumbnail,omitempty"` + SourceType *string `protobuf:"bytes,7,opt,name=sourceType" json:"sourceType,omitempty"` + SourceId *string `protobuf:"bytes,8,opt,name=sourceId" json:"sourceId,omitempty"` + SourceUrl *string `protobuf:"bytes,9,opt,name=sourceUrl" json:"sourceUrl,omitempty"` +} + +func (x *ExternalAdReplyInfo) Reset() { + *x = ExternalAdReplyInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalAdReplyInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalAdReplyInfo) ProtoMessage() {} + +func (x *ExternalAdReplyInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalAdReplyInfo.ProtoReflect.Descriptor instead. +func (*ExternalAdReplyInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{14} +} + +func (x *ExternalAdReplyInfo) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *ExternalAdReplyInfo) GetBody() string { + if x != nil && x.Body != nil { + return *x.Body + } + return "" +} + +func (x *ExternalAdReplyInfo) GetMediaType() ExternalAdReplyInfo_ExternalAdReplyInfoMediaType { + if x != nil && x.MediaType != nil { + return *x.MediaType + } + return ExternalAdReplyInfo_NONE +} + +func (x *ExternalAdReplyInfo) GetThumbnailUrl() string { + if x != nil && x.ThumbnailUrl != nil { + return *x.ThumbnailUrl + } + return "" +} + +func (x *ExternalAdReplyInfo) GetMediaUrl() string { + if x != nil && x.MediaUrl != nil { + return *x.MediaUrl + } + return "" +} + +func (x *ExternalAdReplyInfo) GetThumbnail() []byte { + if x != nil { + return x.Thumbnail + } + return nil +} + +func (x *ExternalAdReplyInfo) GetSourceType() string { + if x != nil && x.SourceType != nil { + return *x.SourceType + } + return "" +} + +func (x *ExternalAdReplyInfo) GetSourceId() string { + if x != nil && x.SourceId != nil { + return *x.SourceId + } + return "" +} + +func (x *ExternalAdReplyInfo) GetSourceUrl() string { + if x != nil && x.SourceUrl != nil { + return *x.SourceUrl + } + return "" +} + +type ContextInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` + PlaceholderKey *MessageKey `protobuf:"bytes,24,opt,name=placeholderKey" json:"placeholderKey,omitempty"` + Expiration *uint32 `protobuf:"varint,25,opt,name=expiration" json:"expiration,omitempty"` + EphemeralSettingTimestamp *int64 `protobuf:"varint,26,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"` + EphemeralSharedSecret []byte `protobuf:"bytes,27,opt,name=ephemeralSharedSecret" json:"ephemeralSharedSecret,omitempty"` + ExternalAdReply *ExternalAdReplyInfo `protobuf:"bytes,28,opt,name=externalAdReply" json:"externalAdReply,omitempty"` +} + +func (x *ContextInfo) Reset() { + *x = ContextInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContextInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContextInfo) ProtoMessage() {} + +func (x *ContextInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContextInfo.ProtoReflect.Descriptor instead. +func (*ContextInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{15} +} + +func (x *ContextInfo) GetStanzaId() string { + if x != nil && x.StanzaId != nil { + return *x.StanzaId + } + return "" +} + +func (x *ContextInfo) GetParticipant() string { + if x != nil && x.Participant != nil { + return *x.Participant + } + return "" +} + +func (x *ContextInfo) GetQuotedMessage() *Message { + if x != nil { + return x.QuotedMessage + } + return nil +} + +func (x *ContextInfo) GetRemoteJid() string { + if x != nil && x.RemoteJid != nil { + return *x.RemoteJid + } + return "" +} + +func (x *ContextInfo) GetMentionedJid() []string { + if x != nil { + return x.MentionedJid + } + return nil +} + +func (x *ContextInfo) GetConversionSource() string { + if x != nil && x.ConversionSource != nil { + return *x.ConversionSource + } + return "" +} + +func (x *ContextInfo) GetConversionData() []byte { + if x != nil { + return x.ConversionData + } + return nil +} + +func (x *ContextInfo) GetConversionDelaySeconds() uint32 { + if x != nil && x.ConversionDelaySeconds != nil { + return *x.ConversionDelaySeconds + } + return 0 +} + +func (x *ContextInfo) GetForwardingScore() uint32 { + if x != nil && x.ForwardingScore != nil { + return *x.ForwardingScore + } + return 0 +} + +func (x *ContextInfo) GetIsForwarded() bool { + if x != nil && x.IsForwarded != nil { + return *x.IsForwarded + } + return false +} + +func (x *ContextInfo) GetQuotedAd() *AdReplyInfo { + if x != nil { + return x.QuotedAd + } + return nil +} + +func (x *ContextInfo) GetPlaceholderKey() *MessageKey { + if x != nil { + return x.PlaceholderKey + } + return nil +} + +func (x *ContextInfo) GetExpiration() uint32 { + if x != nil && x.Expiration != nil { + return *x.Expiration + } + return 0 +} + +func (x *ContextInfo) GetEphemeralSettingTimestamp() int64 { + if x != nil && x.EphemeralSettingTimestamp != nil { + return *x.EphemeralSettingTimestamp + } + return 0 +} + +func (x *ContextInfo) GetEphemeralSharedSecret() []byte { + if x != nil { + return x.EphemeralSharedSecret + } + return nil +} + +func (x *ContextInfo) GetExternalAdReply() *ExternalAdReplyInfo { + if x != nil { + return x.ExternalAdReply + } + return nil +} + +type SenderKeyDistributionMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` + AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"` +} + +func (x *SenderKeyDistributionMessage) Reset() { + *x = SenderKeyDistributionMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SenderKeyDistributionMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SenderKeyDistributionMessage) ProtoMessage() {} + +func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SenderKeyDistributionMessage.ProtoReflect.Descriptor instead. +func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{16} +} + +func (x *SenderKeyDistributionMessage) GetGroupId() string { + if x != nil && x.GroupId != nil { + return *x.GroupId + } + return "" +} + +func (x *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte { + if x != nil { + return x.AxolotlSenderKeyDistributionMessage + } + return nil +} + +type ImageMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + 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"` + ScansSidecar []byte `protobuf:"bytes,21,opt,name=scansSidecar" json:"scansSidecar,omitempty"` + ScanLengths []uint32 `protobuf:"varint,22,rep,name=scanLengths" json:"scanLengths,omitempty"` + MidQualityFileSha256 []byte `protobuf:"bytes,23,opt,name=midQualityFileSha256" json:"midQualityFileSha256,omitempty"` + MidQualityFileEncSha256 []byte `protobuf:"bytes,24,opt,name=midQualityFileEncSha256" json:"midQualityFileEncSha256,omitempty"` + ViewOnce *bool `protobuf:"varint,25,opt,name=viewOnce" json:"viewOnce,omitempty"` +} + +func (x *ImageMessage) Reset() { + *x = ImageMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageMessage) ProtoMessage() {} + +func (x *ImageMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImageMessage.ProtoReflect.Descriptor instead. +func (*ImageMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{17} +} + +func (x *ImageMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *ImageMessage) GetMimetype() string { + if x != nil && x.Mimetype != nil { + return *x.Mimetype + } + return "" +} + +func (x *ImageMessage) GetCaption() string { + if x != nil && x.Caption != nil { + return *x.Caption + } + return "" +} + +func (x *ImageMessage) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 + } + return nil +} + +func (x *ImageMessage) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength + } + return 0 +} + +func (x *ImageMessage) GetHeight() uint32 { + if x != nil && x.Height != nil { + return *x.Height + } + return 0 +} + +func (x *ImageMessage) GetWidth() uint32 { + if x != nil && x.Width != nil { + return *x.Width + } + return 0 +} + +func (x *ImageMessage) GetMediaKey() []byte { + if x != nil { + return x.MediaKey + } + return nil +} + +func (x *ImageMessage) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 + } + return nil +} + +func (x *ImageMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { + if x != nil { + return x.InteractiveAnnotations + } + return nil +} + +func (x *ImageMessage) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath + } + return "" +} + +func (x *ImageMessage) GetMediaKeyTimestamp() int64 { + if x != nil && x.MediaKeyTimestamp != nil { + return *x.MediaKeyTimestamp + } + return 0 +} + +func (x *ImageMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail + } + return nil +} + +func (x *ImageMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +func (x *ImageMessage) GetFirstScanSidecar() []byte { + if x != nil { + return x.FirstScanSidecar + } + return nil +} + +func (x *ImageMessage) GetFirstScanLength() uint32 { + if x != nil && x.FirstScanLength != nil { + return *x.FirstScanLength + } + return 0 +} + +func (x *ImageMessage) GetExperimentGroupId() uint32 { + if x != nil && x.ExperimentGroupId != nil { + return *x.ExperimentGroupId + } + return 0 +} + +func (x *ImageMessage) GetScansSidecar() []byte { + if x != nil { + return x.ScansSidecar + } + return nil +} + +func (x *ImageMessage) GetScanLengths() []uint32 { + if x != nil { + return x.ScanLengths + } + return nil +} + +func (x *ImageMessage) GetMidQualityFileSha256() []byte { + if x != nil { + return x.MidQualityFileSha256 + } + return nil +} + +func (x *ImageMessage) GetMidQualityFileEncSha256() []byte { + if x != nil { + return x.MidQualityFileEncSha256 + } + return nil +} + +func (x *ImageMessage) GetViewOnce() bool { + if x != nil && x.ViewOnce != nil { + return *x.ViewOnce + } + return false +} + +type InvoiceMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Note *string `protobuf:"bytes,1,opt,name=note" json:"note,omitempty"` + Token *string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + AttachmentType *InvoiceMessage_InvoiceMessageAttachmentType `protobuf:"varint,3,opt,name=attachmentType,enum=proto.InvoiceMessage_InvoiceMessageAttachmentType" json:"attachmentType,omitempty"` + AttachmentMimetype *string `protobuf:"bytes,4,opt,name=attachmentMimetype" json:"attachmentMimetype,omitempty"` + AttachmentMediaKey []byte `protobuf:"bytes,5,opt,name=attachmentMediaKey" json:"attachmentMediaKey,omitempty"` + AttachmentMediaKeyTimestamp *int64 `protobuf:"varint,6,opt,name=attachmentMediaKeyTimestamp" json:"attachmentMediaKeyTimestamp,omitempty"` + AttachmentFileSha256 []byte `protobuf:"bytes,7,opt,name=attachmentFileSha256" json:"attachmentFileSha256,omitempty"` + AttachmentFileEncSha256 []byte `protobuf:"bytes,8,opt,name=attachmentFileEncSha256" json:"attachmentFileEncSha256,omitempty"` + AttachmentDirectPath *string `protobuf:"bytes,9,opt,name=attachmentDirectPath" json:"attachmentDirectPath,omitempty"` + AttachmentJpegThumbnail []byte `protobuf:"bytes,10,opt,name=attachmentJpegThumbnail" json:"attachmentJpegThumbnail,omitempty"` +} + +func (x *InvoiceMessage) Reset() { + *x = InvoiceMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvoiceMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvoiceMessage) ProtoMessage() {} + +func (x *InvoiceMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvoiceMessage.ProtoReflect.Descriptor instead. +func (*InvoiceMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{18} +} + +func (x *InvoiceMessage) GetNote() string { + if x != nil && x.Note != nil { + return *x.Note + } + return "" +} + +func (x *InvoiceMessage) GetToken() string { + if x != nil && x.Token != nil { + return *x.Token + } + return "" +} + +func (x *InvoiceMessage) GetAttachmentType() InvoiceMessage_InvoiceMessageAttachmentType { + if x != nil && x.AttachmentType != nil { + return *x.AttachmentType + } + return InvoiceMessage_IMAGE +} + +func (x *InvoiceMessage) GetAttachmentMimetype() string { + if x != nil && x.AttachmentMimetype != nil { + return *x.AttachmentMimetype + } + return "" +} + +func (x *InvoiceMessage) GetAttachmentMediaKey() []byte { + if x != nil { + return x.AttachmentMediaKey + } + return nil +} + +func (x *InvoiceMessage) GetAttachmentMediaKeyTimestamp() int64 { + if x != nil && x.AttachmentMediaKeyTimestamp != nil { + return *x.AttachmentMediaKeyTimestamp + } + return 0 +} + +func (x *InvoiceMessage) GetAttachmentFileSha256() []byte { + if x != nil { + return x.AttachmentFileSha256 + } + return nil +} + +func (x *InvoiceMessage) GetAttachmentFileEncSha256() []byte { + if x != nil { + return x.AttachmentFileEncSha256 + } + return nil +} + +func (x *InvoiceMessage) GetAttachmentDirectPath() string { + if x != nil && x.AttachmentDirectPath != nil { + return *x.AttachmentDirectPath + } + return "" +} + +func (x *InvoiceMessage) GetAttachmentJpegThumbnail() []byte { + if x != nil { + return x.AttachmentJpegThumbnail + } + return nil +} + +type ContactMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` +} + +func (x *ContactMessage) Reset() { + *x = ContactMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContactMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContactMessage) ProtoMessage() {} + +func (x *ContactMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContactMessage.ProtoReflect.Descriptor instead. +func (*ContactMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{19} +} + +func (x *ContactMessage) GetDisplayName() string { + if x != nil && x.DisplayName != nil { + return *x.DisplayName + } + return "" +} + +func (x *ContactMessage) GetVcard() string { + if x != nil && x.Vcard != nil { + return *x.Vcard + } + return "" +} + +func (x *ContactMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +type LocationMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` + IsLive *bool `protobuf:"varint,6,opt,name=isLive" json:"isLive,omitempty"` + AccuracyInMeters *uint32 `protobuf:"varint,7,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"` + SpeedInMps *float32 `protobuf:"fixed32,8,opt,name=speedInMps" json:"speedInMps,omitempty"` + DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,9,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"` + Comment *string `protobuf:"bytes,11,opt,name=comment" json:"comment,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` +} + +func (x *LocationMessage) Reset() { + *x = LocationMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LocationMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LocationMessage) ProtoMessage() {} + +func (x *LocationMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LocationMessage.ProtoReflect.Descriptor instead. +func (*LocationMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{20} +} + +func (x *LocationMessage) GetDegreesLatitude() float64 { + if x != nil && x.DegreesLatitude != nil { + return *x.DegreesLatitude + } + return 0 +} + +func (x *LocationMessage) GetDegreesLongitude() float64 { + if x != nil && x.DegreesLongitude != nil { + return *x.DegreesLongitude + } + return 0 +} + +func (x *LocationMessage) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *LocationMessage) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *LocationMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *LocationMessage) GetIsLive() bool { + if x != nil && x.IsLive != nil { + return *x.IsLive + } + return false +} + +func (x *LocationMessage) GetAccuracyInMeters() uint32 { + if x != nil && x.AccuracyInMeters != nil { + return *x.AccuracyInMeters + } + return 0 +} + +func (x *LocationMessage) GetSpeedInMps() float32 { + if x != nil && x.SpeedInMps != nil { + return *x.SpeedInMps + } + return 0 +} + +func (x *LocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { + if x != nil && x.DegreesClockwiseFromMagneticNorth != nil { + return *x.DegreesClockwiseFromMagneticNorth + } + return 0 +} + +func (x *LocationMessage) GetComment() string { + if x != nil && x.Comment != nil { + return *x.Comment + } + return "" +} + +func (x *LocationMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail + } + return nil +} + +func (x *LocationMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +type ExtendedTextMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` + MatchedText *string `protobuf:"bytes,2,opt,name=matchedText" json:"matchedText,omitempty"` + CanonicalUrl *string `protobuf:"bytes,4,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"` + Description *string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` + Title *string `protobuf:"bytes,6,opt,name=title" json:"title,omitempty"` + TextArgb *uint32 `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"` + BackgroundArgb *uint32 `protobuf:"fixed32,8,opt,name=backgroundArgb" json:"backgroundArgb,omitempty"` + Font *ExtendedTextMessage_ExtendedTextMessageFontType `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_ExtendedTextMessageFontType" json:"font,omitempty"` + PreviewType *ExtendedTextMessage_ExtendedTextMessagePreviewType `protobuf:"varint,10,opt,name=previewType,enum=proto.ExtendedTextMessage_ExtendedTextMessagePreviewType" json:"previewType,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + DoNotPlayInline *bool `protobuf:"varint,18,opt,name=doNotPlayInline" json:"doNotPlayInline,omitempty"` +} + +func (x *ExtendedTextMessage) Reset() { + *x = ExtendedTextMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtendedTextMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtendedTextMessage) ProtoMessage() {} + +func (x *ExtendedTextMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtendedTextMessage.ProtoReflect.Descriptor instead. +func (*ExtendedTextMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{21} +} + +func (x *ExtendedTextMessage) GetText() string { + if x != nil && x.Text != nil { + return *x.Text + } + return "" +} + +func (x *ExtendedTextMessage) GetMatchedText() string { + if x != nil && x.MatchedText != nil { + return *x.MatchedText + } + return "" +} + +func (x *ExtendedTextMessage) GetCanonicalUrl() string { + if x != nil && x.CanonicalUrl != nil { + return *x.CanonicalUrl + } + return "" +} + +func (x *ExtendedTextMessage) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ExtendedTextMessage) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *ExtendedTextMessage) GetTextArgb() uint32 { + if x != nil && x.TextArgb != nil { + return *x.TextArgb + } + return 0 +} + +func (x *ExtendedTextMessage) GetBackgroundArgb() uint32 { + if x != nil && x.BackgroundArgb != nil { + return *x.BackgroundArgb + } + return 0 +} + +func (x *ExtendedTextMessage) GetFont() ExtendedTextMessage_ExtendedTextMessageFontType { + if x != nil && x.Font != nil { + return *x.Font + } + return ExtendedTextMessage_SANS_SERIF +} + +func (x *ExtendedTextMessage) GetPreviewType() ExtendedTextMessage_ExtendedTextMessagePreviewType { + if x != nil && x.PreviewType != nil { + return *x.PreviewType + } + return ExtendedTextMessage_NONE +} + +func (x *ExtendedTextMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail + } + return nil +} + +func (x *ExtendedTextMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +func (x *ExtendedTextMessage) GetDoNotPlayInline() bool { + if x != nil && x.DoNotPlayInline != nil { + return *x.DoNotPlayInline + } + return false +} + +type DocumentMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + 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"` + ContactVcard *bool `protobuf:"varint,12,opt,name=contactVcard" json:"contactVcard,omitempty"` + ThumbnailDirectPath *string `protobuf:"bytes,13,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"` + ThumbnailSha256 []byte `protobuf:"bytes,14,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"` + ThumbnailEncSha256 []byte `protobuf:"bytes,15,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + ThumbnailHeight *uint32 `protobuf:"varint,18,opt,name=thumbnailHeight" json:"thumbnailHeight,omitempty"` + ThumbnailWidth *uint32 `protobuf:"varint,19,opt,name=thumbnailWidth" json:"thumbnailWidth,omitempty"` +} + +func (x *DocumentMessage) Reset() { + *x = DocumentMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DocumentMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DocumentMessage) ProtoMessage() {} + +func (x *DocumentMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DocumentMessage.ProtoReflect.Descriptor instead. +func (*DocumentMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{22} +} + +func (x *DocumentMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *DocumentMessage) GetMimetype() string { + if x != nil && x.Mimetype != nil { + return *x.Mimetype + } + return "" +} + +func (x *DocumentMessage) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *DocumentMessage) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 + } + return nil +} + +func (x *DocumentMessage) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength + } + return 0 +} + +func (x *DocumentMessage) GetPageCount() uint32 { + if x != nil && x.PageCount != nil { + return *x.PageCount + } + return 0 +} + +func (x *DocumentMessage) GetMediaKey() []byte { + if x != nil { + return x.MediaKey + } + return nil +} + +func (x *DocumentMessage) GetFileName() string { + if x != nil && x.FileName != nil { + return *x.FileName + } + return "" +} + +func (x *DocumentMessage) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 + } + return nil +} + +func (x *DocumentMessage) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath + } + return "" +} + +func (x *DocumentMessage) GetMediaKeyTimestamp() int64 { + if x != nil && x.MediaKeyTimestamp != nil { + return *x.MediaKeyTimestamp + } + return 0 +} + +func (x *DocumentMessage) GetContactVcard() bool { + if x != nil && x.ContactVcard != nil { + return *x.ContactVcard + } + return false +} + +func (x *DocumentMessage) GetThumbnailDirectPath() string { + if x != nil && x.ThumbnailDirectPath != nil { + return *x.ThumbnailDirectPath + } + return "" +} + +func (x *DocumentMessage) GetThumbnailSha256() []byte { + if x != nil { + return x.ThumbnailSha256 + } + return nil +} + +func (x *DocumentMessage) GetThumbnailEncSha256() []byte { + if x != nil { + return x.ThumbnailEncSha256 + } + return nil +} + +func (x *DocumentMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail + } + return nil +} + +func (x *DocumentMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +func (x *DocumentMessage) GetThumbnailHeight() uint32 { + if x != nil && x.ThumbnailHeight != nil { + return *x.ThumbnailHeight + } + return 0 +} + +func (x *DocumentMessage) GetThumbnailWidth() uint32 { + if x != nil && x.ThumbnailWidth != nil { + return *x.ThumbnailWidth + } + return 0 +} + +type AudioMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + FileSha256 []byte `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileLength *uint64 `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"` + Seconds *uint32 `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"` + 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"` +} + +func (x *AudioMessage) Reset() { + *x = AudioMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AudioMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AudioMessage) ProtoMessage() {} + +func (x *AudioMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AudioMessage.ProtoReflect.Descriptor instead. +func (*AudioMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{23} +} + +func (x *AudioMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *AudioMessage) GetMimetype() string { + if x != nil && x.Mimetype != nil { + return *x.Mimetype + } + return "" +} + +func (x *AudioMessage) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 + } + return nil +} + +func (x *AudioMessage) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength + } + return 0 +} + +func (x *AudioMessage) GetSeconds() uint32 { + if x != nil && x.Seconds != nil { + return *x.Seconds + } + return 0 +} + +func (x *AudioMessage) GetPtt() bool { + if x != nil && x.Ptt != nil { + return *x.Ptt + } + return false +} + +func (x *AudioMessage) GetMediaKey() []byte { + if x != nil { + return x.MediaKey + } + return nil +} + +func (x *AudioMessage) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 + } + return nil +} + +func (x *AudioMessage) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath + } + return "" +} + +func (x *AudioMessage) GetMediaKeyTimestamp() int64 { + if x != nil && x.MediaKeyTimestamp != nil { + return *x.MediaKeyTimestamp + } + return 0 +} + +func (x *AudioMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil +} + +func (x *AudioMessage) GetStreamingSidecar() []byte { + if x != nil { + return x.StreamingSidecar + } + return nil +} + +type VideoMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"` + FileSha256 []byte `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileLength *uint64 `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"` + Seconds *uint32 `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"` + MediaKey []byte `protobuf:"bytes,6,opt,name=mediaKey" json:"mediaKey,omitempty"` + Caption *string `protobuf:"bytes,7,opt,name=caption" json:"caption,omitempty"` + GifPlayback *bool `protobuf:"varint,8,opt,name=gifPlayback" json:"gifPlayback,omitempty"` + Height *uint32 `protobuf:"varint,9,opt,name=height" json:"height,omitempty"` + Width *uint32 `protobuf:"varint,10,opt,name=width" json:"width,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,11,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + InteractiveAnnotations []*InteractiveAnnotation `protobuf:"bytes,12,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"` + DirectPath *string `protobuf:"bytes,13,opt,name=directPath" json:"directPath,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,14,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` + JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` + StreamingSidecar []byte `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"` + GifAttribution *VideoMessage_VideoMessageAttribution `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_VideoMessageAttribution" json:"gifAttribution,omitempty"` + ViewOnce *bool `protobuf:"varint,20,opt,name=viewOnce" json:"viewOnce,omitempty"` +} + +func (x *VideoMessage) Reset() { + *x = VideoMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoMessage) ProtoMessage() {} + +func (x *VideoMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VideoMessage.ProtoReflect.Descriptor instead. +func (*VideoMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{24} +} + +func (x *VideoMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *VideoMessage) GetMimetype() string { + if x != nil && x.Mimetype != nil { + return *x.Mimetype + } + return "" +} + +func (x *VideoMessage) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 + } + return nil +} + +func (x *VideoMessage) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength + } + return 0 } -var xxx_messageInfo_CallButton proto.InternalMessageInfo - -func (m *CallButton) GetDisplayText() *HighlyStructuredMessage { - if m != nil { - return m.DisplayText +func (x *VideoMessage) GetSeconds() uint32 { + if x != nil && x.Seconds != nil { + return *x.Seconds } - return nil + return 0 } -func (m *CallButton) GetPhoneNumber() *HighlyStructuredMessage { - if m != nil { - return m.PhoneNumber +func (x *VideoMessage) GetMediaKey() []byte { + if x != nil { + return x.MediaKey } return nil } -type TemplateButton struct { - Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"` - // 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:"-"` +func (x *VideoMessage) GetCaption() string { + if x != nil && x.Caption != nil { + return *x.Caption + } + return "" } -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 (x *VideoMessage) GetGifPlayback() bool { + if x != nil && x.GifPlayback != nil { + return *x.GifPlayback + } + return false } -func (m *TemplateButton) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TemplateButton.Unmarshal(m, b) -} -func (m *TemplateButton) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TemplateButton.Marshal(b, m, deterministic) -} -func (m *TemplateButton) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateButton.Merge(m, src) -} -func (m *TemplateButton) XXX_Size() int { - return xxx_messageInfo_TemplateButton.Size(m) -} -func (m *TemplateButton) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateButton.DiscardUnknown(m) +func (x *VideoMessage) GetHeight() uint32 { + if x != nil && x.Height != nil { + return *x.Height + } + return 0 } -var xxx_messageInfo_TemplateButton proto.InternalMessageInfo - -func (m *TemplateButton) GetIndex() uint32 { - if m != nil && m.Index != nil { - return *m.Index +func (x *VideoMessage) GetWidth() uint32 { + if x != nil && x.Width != nil { + return *x.Width } return 0 } -type isTemplateButton_Button interface { - isTemplateButton_Button() +func (x *VideoMessage) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 + } + return nil } -type TemplateButton_QuickReplyButton struct { - QuickReplyButton *QuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"` +func (x *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { + if x != nil { + return x.InteractiveAnnotations + } + return nil } -type TemplateButton_UrlButton struct { - UrlButton *URLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"` +func (x *VideoMessage) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath + } + return "" } -type TemplateButton_CallButton struct { - CallButton *CallButton `protobuf:"bytes,3,opt,name=callButton,oneof"` +func (x *VideoMessage) GetMediaKeyTimestamp() int64 { + if x != nil && x.MediaKeyTimestamp != nil { + return *x.MediaKeyTimestamp + } + return 0 } -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 +func (x *VideoMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail } return nil } -func (m *TemplateButton) GetQuickReplyButton() *QuickReplyButton { - if x, ok := m.GetButton().(*TemplateButton_QuickReplyButton); ok { - return x.QuickReplyButton +func (x *VideoMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } return nil } -func (m *TemplateButton) GetUrlButton() *URLButton { - if x, ok := m.GetButton().(*TemplateButton_UrlButton); ok { - return x.UrlButton +func (x *VideoMessage) GetStreamingSidecar() []byte { + if x != nil { + return x.StreamingSidecar } return nil } -func (m *TemplateButton) GetCallButton() *CallButton { - if x, ok := m.GetButton().(*TemplateButton_CallButton); ok { - return x.CallButton +func (x *VideoMessage) GetGifAttribution() VideoMessage_VideoMessageAttribution { + if x != nil && x.GifAttribution != nil { + return *x.GifAttribution } - return nil + return VideoMessage_NONE } -// 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 (x *VideoMessage) GetViewOnce() bool { + if x != nil && x.ViewOnce != nil { + return *x.ViewOnce } + return false } -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:"-"` -} +type Call struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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} + CallKey []byte `protobuf:"bytes,1,opt,name=callKey" json:"callKey,omitempty"` } -func (m *Location) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Location.Unmarshal(m, b) -} -func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Location.Marshal(b, m, deterministic) -} -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 (x *Call) Reset() { + *x = Call{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Location) XXX_DiscardUnknown() { - xxx_messageInfo_Location.DiscardUnknown(m) + +func (x *Call) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_Location proto.InternalMessageInfo +func (*Call) ProtoMessage() {} -func (m *Location) GetDegreesLatitude() float64 { - if m != nil && m.DegreesLatitude != nil { - return *m.DegreesLatitude +func (x *Call) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *Location) GetDegreesLongitude() float64 { - if m != nil && m.DegreesLongitude != nil { - return *m.DegreesLongitude - } - return 0 +// Deprecated: Use Call.ProtoReflect.Descriptor instead. +func (*Call) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{25} } -func (m *Location) GetName() string { - if m != nil && m.Name != nil { - return *m.Name +func (x *Call) GetCallKey() []byte { + if x != nil { + return x.CallKey } - return "" + return nil } -type Point struct { - XDeprecated *int32 `protobuf:"varint,1,opt,name=xDeprecated" json:"xDeprecated,omitempty"` - YDeprecated *int32 `protobuf:"varint,2,opt,name=yDeprecated" json:"yDeprecated,omitempty"` - X *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"` - Y *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"` - 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_76fb0470a3b910d8, []int{9} -} +type Chat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *Point) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Point.Unmarshal(m, b) + DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` } -func (m *Point) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Point.Marshal(b, m, deterministic) -} -func (m *Point) XXX_Merge(src proto.Message) { - xxx_messageInfo_Point.Merge(m, src) -} -func (m *Point) XXX_Size() int { - return xxx_messageInfo_Point.Size(m) + +func (x *Chat) Reset() { + *x = Chat{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Point) XXX_DiscardUnknown() { - xxx_messageInfo_Point.DiscardUnknown(m) + +func (x *Chat) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_Point proto.InternalMessageInfo +func (*Chat) ProtoMessage() {} -func (m *Point) GetXDeprecated() int32 { - if m != nil && m.XDeprecated != nil { - return *m.XDeprecated +func (x *Chat) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *Point) GetYDeprecated() int32 { - if m != nil && m.YDeprecated != nil { - return *m.YDeprecated - } - return 0 +// Deprecated: Use Chat.ProtoReflect.Descriptor instead. +func (*Chat) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{26} } -func (m *Point) GetX() float64 { - if m != nil && m.X != nil { - return *m.X +func (x *Chat) GetDisplayName() string { + if x != nil && x.DisplayName != nil { + return *x.DisplayName } - return 0 + return "" } -func (m *Point) GetY() float64 { - if m != nil && m.Y != nil { - return *m.Y +func (x *Chat) GetId() string { + if x != nil && x.Id != nil { + return *x.Id } - return 0 + return "" } -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 ProtocolMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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} + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + Type *ProtocolMessage_ProtocolMessageType `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_ProtocolMessageType" json:"type,omitempty"` + EphemeralExpiration *uint32 `protobuf:"varint,4,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"` + EphemeralSettingTimestamp *int64 `protobuf:"varint,5,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"` + HistorySyncNotification *HistorySyncNotification `protobuf:"bytes,6,opt,name=historySyncNotification" json:"historySyncNotification,omitempty"` + AppStateSyncKeyShare *AppStateSyncKeyShare `protobuf:"bytes,7,opt,name=appStateSyncKeyShare" json:"appStateSyncKeyShare,omitempty"` + AppStateSyncKeyRequest *AppStateSyncKeyRequest `protobuf:"bytes,8,opt,name=appStateSyncKeyRequest" json:"appStateSyncKeyRequest,omitempty"` + InitialSecurityNotificationSettingSync *InitialSecurityNotificationSettingSync `protobuf:"bytes,9,opt,name=initialSecurityNotificationSettingSync" json:"initialSecurityNotificationSettingSync,omitempty"` } -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 (x *ProtocolMessage) Reset() { + *x = ProtocolMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *InteractiveAnnotation) XXX_DiscardUnknown() { - xxx_messageInfo_InteractiveAnnotation.DiscardUnknown(m) + +func (x *ProtocolMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_InteractiveAnnotation proto.InternalMessageInfo +func (*ProtocolMessage) ProtoMessage() {} -func (m *InteractiveAnnotation) GetPolygonVertices() []*Point { - if m != nil { - return m.PolygonVertices +func (x *ProtocolMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil -} - -type isInteractiveAnnotation_Action interface { - isInteractiveAnnotation_Action() + return mi.MessageOf(x) } -type InteractiveAnnotation_Location struct { - Location *Location `protobuf:"bytes,2,opt,name=location,oneof"` +// Deprecated: Use ProtocolMessage.ProtoReflect.Descriptor instead. +func (*ProtocolMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{27} } -func (*InteractiveAnnotation_Location) isInteractiveAnnotation_Action() {} - -func (m *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action { - if m != nil { - return m.Action +func (x *ProtocolMessage) GetKey() *MessageKey { + if x != nil { + return x.Key } return nil } -func (m *InteractiveAnnotation) GetLocation() *Location { - if x, ok := m.GetAction().(*InteractiveAnnotation_Location); ok { - return x.Location +func (x *ProtocolMessage) GetType() ProtocolMessage_ProtocolMessageType { + if x != nil && x.Type != nil { + return *x.Type } - return nil + return ProtocolMessage_REVOKE } -// XXX_OneofWrappers is for the internal use of the proto package. -func (*InteractiveAnnotation) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*InteractiveAnnotation_Location)(nil), +func (x *ProtocolMessage) GetEphemeralExpiration() uint32 { + if x != nil && x.EphemeralExpiration != nil { + return *x.EphemeralExpiration } + return 0 } -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) +func (x *ProtocolMessage) GetEphemeralSettingTimestamp() int64 { + if x != nil && x.EphemeralSettingTimestamp != nil { + return *x.EphemeralSettingTimestamp + } + return 0 } -var xxx_messageInfo_AdReplyInfo proto.InternalMessageInfo - -func (m *AdReplyInfo) GetAdvertiserName() string { - if m != nil && m.AdvertiserName != nil { - return *m.AdvertiserName +func (x *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification { + if x != nil { + return x.HistorySyncNotification } - return "" + return nil } -func (m *AdReplyInfo) GetMediaType() AdReplyInfo_AD_REPLY_INFO_MEDIATYPE { - if m != nil && m.MediaType != nil { - return *m.MediaType +func (x *ProtocolMessage) GetAppStateSyncKeyShare() *AppStateSyncKeyShare { + if x != nil { + return x.AppStateSyncKeyShare } - return AdReplyInfo_NONE + return nil } -func (m *AdReplyInfo) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (x *ProtocolMessage) GetAppStateSyncKeyRequest() *AppStateSyncKeyRequest { + if x != nil { + return x.AppStateSyncKeyRequest } return nil } -func (m *AdReplyInfo) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (x *ProtocolMessage) GetInitialSecurityNotificationSettingSync() *InitialSecurityNotificationSettingSync { + if x != nil { + return x.InitialSecurityNotificationSettingSync } - return "" + 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,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"` - PlaceholderKey *MessageKey `protobuf:"bytes,24,opt,name=placeholderKey" json:"placeholderKey,omitempty"` - Expiration *uint32 `protobuf:"varint,25,opt,name=expiration" json:"expiration,omitempty"` - EphemeralSettingTimestamp *int64 `protobuf:"varint,26,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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} -} +type HistorySyncNotification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ContextInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContextInfo.Unmarshal(m, b) -} -func (m *ContextInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContextInfo.Marshal(b, m, deterministic) + FileSha256 []byte `protobuf:"bytes,1,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileLength *uint64 `protobuf:"varint,2,opt,name=fileLength" json:"fileLength,omitempty"` + MediaKey []byte `protobuf:"bytes,3,opt,name=mediaKey" json:"mediaKey,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,4,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + DirectPath *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"` + SyncType *HistorySyncNotification_HistorySyncNotificationHistorySyncType `protobuf:"varint,6,opt,name=syncType,enum=proto.HistorySyncNotification_HistorySyncNotificationHistorySyncType" json:"syncType,omitempty"` + ChunkOrder *uint32 `protobuf:"varint,7,opt,name=chunkOrder" json:"chunkOrder,omitempty"` + OriginalMessageId *string `protobuf:"bytes,8,opt,name=originalMessageId" json:"originalMessageId,omitempty"` } -func (m *ContextInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContextInfo.Merge(m, src) -} -func (m *ContextInfo) XXX_Size() int { - return xxx_messageInfo_ContextInfo.Size(m) + +func (x *HistorySyncNotification) Reset() { + *x = HistorySyncNotification{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ContextInfo) XXX_DiscardUnknown() { - xxx_messageInfo_ContextInfo.DiscardUnknown(m) + +func (x *HistorySyncNotification) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ContextInfo proto.InternalMessageInfo +func (*HistorySyncNotification) ProtoMessage() {} -func (m *ContextInfo) GetStanzaId() string { - if m != nil && m.StanzaId != nil { - return *m.StanzaId +func (x *HistorySyncNotification) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *ContextInfo) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant - } - return "" +// Deprecated: Use HistorySyncNotification.ProtoReflect.Descriptor instead. +func (*HistorySyncNotification) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{28} } -func (m *ContextInfo) GetQuotedMessage() *Message { - if m != nil { - return m.QuotedMessage +func (x *HistorySyncNotification) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 } return nil } -func (m *ContextInfo) GetRemoteJid() string { - if m != nil && m.RemoteJid != nil { - return *m.RemoteJid +func (x *HistorySyncNotification) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength } - return "" + return 0 } -func (m *ContextInfo) GetMentionedJid() []string { - if m != nil { - return m.MentionedJid +func (x *HistorySyncNotification) GetMediaKey() []byte { + if x != nil { + return x.MediaKey } return nil } -func (m *ContextInfo) GetConversionSource() string { - if m != nil && m.ConversionSource != nil { - return *m.ConversionSource +func (x *HistorySyncNotification) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 } - return "" + return nil } -func (m *ContextInfo) GetConversionData() []byte { - if m != nil { - return m.ConversionData +func (x *HistorySyncNotification) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath } - return nil + return "" } -func (m *ContextInfo) GetConversionDelaySeconds() uint32 { - if m != nil && m.ConversionDelaySeconds != nil { - return *m.ConversionDelaySeconds +func (x *HistorySyncNotification) GetSyncType() HistorySyncNotification_HistorySyncNotificationHistorySyncType { + if x != nil && x.SyncType != nil { + return *x.SyncType } - return 0 + return HistorySyncNotification_INITIAL_BOOTSTRAP } -func (m *ContextInfo) GetForwardingScore() uint32 { - if m != nil && m.ForwardingScore != nil { - return *m.ForwardingScore +func (x *HistorySyncNotification) GetChunkOrder() uint32 { + if x != nil && x.ChunkOrder != nil { + return *x.ChunkOrder } return 0 } -func (m *ContextInfo) GetIsForwarded() bool { - if m != nil && m.IsForwarded != nil { - return *m.IsForwarded +func (x *HistorySyncNotification) GetOriginalMessageId() string { + if x != nil && x.OriginalMessageId != nil { + return *x.OriginalMessageId } - return false + return "" } -func (m *ContextInfo) GetQuotedAd() *AdReplyInfo { - if m != nil { - return m.QuotedAd - } - return nil +type AppStateSyncKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyId *AppStateSyncKeyId `protobuf:"bytes,1,opt,name=keyId" json:"keyId,omitempty"` + KeyData *AppStateSyncKeyData `protobuf:"bytes,2,opt,name=keyData" json:"keyData,omitempty"` } -func (m *ContextInfo) GetPlaceholderKey() *MessageKey { - if m != nil { - return m.PlaceholderKey +func (x *AppStateSyncKey) Reset() { + *x = AppStateSyncKey{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *ContextInfo) GetExpiration() uint32 { - if m != nil && m.Expiration != nil { - return *m.Expiration - } - return 0 +func (x *AppStateSyncKey) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ContextInfo) GetEphemeralSettingTimestamp() int64 { - if m != nil && m.EphemeralSettingTimestamp != nil { - return *m.EphemeralSettingTimestamp +func (*AppStateSyncKey) ProtoMessage() {} + +func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -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:"-"` +// Deprecated: Use AppStateSyncKey.ProtoReflect.Descriptor instead. +func (*AppStateSyncKey) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{29} } -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 (x *AppStateSyncKey) GetKeyId() *AppStateSyncKeyId { + if x != nil { + return x.KeyId + } + return nil } -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 (x *AppStateSyncKey) GetKeyData() *AppStateSyncKeyData { + if x != nil { + return x.KeyData + } + return nil } -func (m *SenderKeyDistributionMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_SenderKeyDistributionMessage.Merge(m, src) + +type AppStateSyncKeyId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyId []byte `protobuf:"bytes,1,opt,name=keyId" json:"keyId,omitempty"` } -func (m *SenderKeyDistributionMessage) XXX_Size() int { - return xxx_messageInfo_SenderKeyDistributionMessage.Size(m) + +func (x *AppStateSyncKeyId) Reset() { + *x = AppStateSyncKeyId{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SenderKeyDistributionMessage) XXX_DiscardUnknown() { - xxx_messageInfo_SenderKeyDistributionMessage.DiscardUnknown(m) + +func (x *AppStateSyncKeyId) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_SenderKeyDistributionMessage proto.InternalMessageInfo +func (*AppStateSyncKeyId) ProtoMessage() {} -func (m *SenderKeyDistributionMessage) GetGroupId() string { - if m != nil && m.GroupId != nil { - return *m.GroupId +func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte { - if m != nil { - return m.AxolotlSenderKeyDistributionMessage +// Deprecated: Use AppStateSyncKeyId.ProtoReflect.Descriptor instead. +func (*AppStateSyncKeyId) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{30} +} + +func (x *AppStateSyncKeyId) GetKeyId() []byte { + if x != nil { + return x.KeyId } 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"` - ScansSidecar []byte `protobuf:"bytes,21,opt,name=scansSidecar" json:"scansSidecar,omitempty"` - ScanLengths []uint32 `protobuf:"varint,22,rep,name=scanLengths" json:"scanLengths,omitempty"` - MidQualityFileSha256 []byte `protobuf:"bytes,23,opt,name=midQualityFileSha256" json:"midQualityFileSha256,omitempty"` - MidQualityFileEncSha256 []byte `protobuf:"bytes,24,opt,name=midQualityFileEncSha256" json:"midQualityFileEncSha256,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type AppStateSyncKeyFingerprint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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} + RawId *uint32 `protobuf:"varint,1,opt,name=rawId" json:"rawId,omitempty"` + CurrentIndex *uint32 `protobuf:"varint,2,opt,name=currentIndex" json:"currentIndex,omitempty"` + DeviceIndexes []uint32 `protobuf:"varint,3,rep,packed,name=deviceIndexes" json:"deviceIndexes,omitempty"` } -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 (x *AppStateSyncKeyFingerprint) Reset() { + *x = AppStateSyncKeyFingerprint{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImageMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ImageMessage.DiscardUnknown(m) + +func (x *AppStateSyncKeyFingerprint) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ImageMessage proto.InternalMessageInfo +func (*AppStateSyncKeyFingerprint) ProtoMessage() {} -func (m *ImageMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use AppStateSyncKeyFingerprint.ProtoReflect.Descriptor instead. +func (*AppStateSyncKeyFingerprint) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{31} } -func (m *ImageMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype +func (x *AppStateSyncKeyFingerprint) GetRawId() uint32 { + if x != nil && x.RawId != nil { + return *x.RawId } - return "" + return 0 } -func (m *ImageMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (x *AppStateSyncKeyFingerprint) GetCurrentIndex() uint32 { + if x != nil && x.CurrentIndex != nil { + return *x.CurrentIndex } - return "" + return 0 } -func (m *ImageMessage) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 +func (x *AppStateSyncKeyFingerprint) GetDeviceIndexes() []uint32 { + if x != nil { + return x.DeviceIndexes } return nil } -func (m *ImageMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength - } - return 0 +type AppStateSyncKeyData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyData []byte `protobuf:"bytes,1,opt,name=keyData" json:"keyData,omitempty"` + Fingerprint *AppStateSyncKeyFingerprint `protobuf:"bytes,2,opt,name=fingerprint" json:"fingerprint,omitempty"` + Timestamp *int64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"` } -func (m *ImageMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height +func (x *AppStateSyncKeyData) Reset() { + *x = AppStateSyncKeyData{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *ImageMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width - } - return 0 +func (x *AppStateSyncKeyData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey +func (*AppStateSyncKeyData) ProtoMessage() {} + +func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ImageMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +// Deprecated: Use AppStateSyncKeyData.ProtoReflect.Descriptor instead. +func (*AppStateSyncKeyData) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{32} +} + +func (x *AppStateSyncKeyData) GetKeyData() []byte { + if x != nil { + return x.KeyData } return nil } -func (m *ImageMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { - if m != nil { - return m.InteractiveAnnotations +func (x *AppStateSyncKeyData) GetFingerprint() *AppStateSyncKeyFingerprint { + if x != nil { + return x.Fingerprint } return nil } -func (m *ImageMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath +func (x *AppStateSyncKeyData) GetTimestamp() int64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp } - return "" + return 0 +} + +type AppStateSyncKeyShare struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []*AppStateSyncKey `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"` } -func (m *ImageMessage) GetMediaKeyTimestamp() int64 { - if m != nil && m.MediaKeyTimestamp != nil { - return *m.MediaKeyTimestamp +func (x *AppStateSyncKeyShare) Reset() { + *x = AppStateSyncKeyShare{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *ImageMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (x *AppStateSyncKeyShare) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppStateSyncKeyShare) ProtoMessage() {} + +func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ImageMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +// Deprecated: Use AppStateSyncKeyShare.ProtoReflect.Descriptor instead. +func (*AppStateSyncKeyShare) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{33} +} + +func (x *AppStateSyncKeyShare) GetKeys() []*AppStateSyncKey { + if x != nil { + return x.Keys } return nil } -func (m *ImageMessage) GetFirstScanSidecar() []byte { - if m != nil { - return m.FirstScanSidecar +type AppStateSyncKeyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyIds []*AppStateSyncKeyId `protobuf:"bytes,1,rep,name=keyIds" json:"keyIds,omitempty"` +} + +func (x *AppStateSyncKeyRequest) Reset() { + *x = AppStateSyncKeyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *ImageMessage) GetFirstScanLength() uint32 { - if m != nil && m.FirstScanLength != nil { - return *m.FirstScanLength - } - return 0 +func (x *AppStateSyncKeyRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImageMessage) GetExperimentGroupId() uint32 { - if m != nil && m.ExperimentGroupId != nil { - return *m.ExperimentGroupId +func (*AppStateSyncKeyRequest) ProtoMessage() {} + +func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *ImageMessage) GetScansSidecar() []byte { - if m != nil { - return m.ScansSidecar - } - return nil +// Deprecated: Use AppStateSyncKeyRequest.ProtoReflect.Descriptor instead. +func (*AppStateSyncKeyRequest) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{34} } -func (m *ImageMessage) GetScanLengths() []uint32 { - if m != nil { - return m.ScanLengths +func (x *AppStateSyncKeyRequest) GetKeyIds() []*AppStateSyncKeyId { + if x != nil { + return x.KeyIds } return nil } -func (m *ImageMessage) GetMidQualityFileSha256() []byte { - if m != nil { - return m.MidQualityFileSha256 - } - return nil +type InitialSecurityNotificationSettingSync struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecurityNotificationEnabled *bool `protobuf:"varint,1,opt,name=securityNotificationEnabled" json:"securityNotificationEnabled,omitempty"` } -func (m *ImageMessage) GetMidQualityFileEncSha256() []byte { - if m != nil { - return m.MidQualityFileEncSha256 +func (x *InitialSecurityNotificationSettingSync) Reset() { + *x = InitialSecurityNotificationSettingSync{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -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 (x *InitialSecurityNotificationSettingSync) String() string { + return protoimpl.X.MessageStringOf(x) } -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 (*InitialSecurityNotificationSettingSync) ProtoMessage() {} + +func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *ContactMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ContactMessage.Unmarshal(m, b) +// Deprecated: Use InitialSecurityNotificationSettingSync.ProtoReflect.Descriptor instead. +func (*InitialSecurityNotificationSettingSync) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{35} } -func (m *ContactMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ContactMessage.Marshal(b, m, deterministic) + +func (x *InitialSecurityNotificationSettingSync) GetSecurityNotificationEnabled() bool { + if x != nil && x.SecurityNotificationEnabled != nil { + return *x.SecurityNotificationEnabled + } + return false } -func (m *ContactMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ContactMessage.Merge(m, src) + +type ContactsArrayMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` } -func (m *ContactMessage) XXX_Size() int { - return xxx_messageInfo_ContactMessage.Size(m) + +func (x *ContactsArrayMessage) Reset() { + *x = ContactsArrayMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ContactMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ContactMessage.DiscardUnknown(m) + +func (x *ContactsArrayMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ContactMessage proto.InternalMessageInfo +func (*ContactsArrayMessage) ProtoMessage() {} -func (m *ContactMessage) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use ContactsArrayMessage.ProtoReflect.Descriptor instead. +func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{36} } -func (m *ContactMessage) GetVcard() string { - if m != nil && m.Vcard != nil { - return *m.Vcard +func (x *ContactsArrayMessage) GetDisplayName() string { + if x != nil && x.DisplayName != nil { + return *x.DisplayName } return "" } -func (m *ContactMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *ContactsArrayMessage) GetContacts() []*ContactMessage { + if x != nil { + return x.Contacts } 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"` - IsLive *bool `protobuf:"varint,6,opt,name=isLive" json:"isLive,omitempty"` - AccuracyInMeters *uint32 `protobuf:"varint,7,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"` - SpeedInMps *float32 `protobuf:"fixed32,8,opt,name=speedInMps" json:"speedInMps,omitempty"` - DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,9,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"` - Comment *string `protobuf:"bytes,11,opt,name=comment" json:"comment,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 (x *ContactsArrayMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + 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_76fb0470a3b910d8, []int{16} -} +type HSMCurrency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *LocationMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LocationMessage.Unmarshal(m, b) + CurrencyCode *string `protobuf:"bytes,1,opt,name=currencyCode" json:"currencyCode,omitempty"` + Amount1000 *int64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` } -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 (x *HSMCurrency) Reset() { + *x = HSMCurrency{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *LocationMessage) XXX_Size() int { - return xxx_messageInfo_LocationMessage.Size(m) + +func (x *HSMCurrency) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *LocationMessage) XXX_DiscardUnknown() { - xxx_messageInfo_LocationMessage.DiscardUnknown(m) + +func (*HSMCurrency) ProtoMessage() {} + +func (x *HSMCurrency) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_LocationMessage proto.InternalMessageInfo +// Deprecated: Use HSMCurrency.ProtoReflect.Descriptor instead. +func (*HSMCurrency) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{37} +} -func (m *LocationMessage) GetDegreesLatitude() float64 { - if m != nil && m.DegreesLatitude != nil { - return *m.DegreesLatitude +func (x *HSMCurrency) GetCurrencyCode() string { + if x != nil && x.CurrencyCode != nil { + return *x.CurrencyCode } - return 0 + return "" } -func (m *LocationMessage) GetDegreesLongitude() float64 { - if m != nil && m.DegreesLongitude != nil { - return *m.DegreesLongitude +func (x *HSMCurrency) GetAmount1000() int64 { + if x != nil && x.Amount1000 != nil { + return *x.Amount1000 } return 0 } -func (m *LocationMessage) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" +type HSMDateTimeComponent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DayOfWeek *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType `protobuf:"varint,1,opt,name=dayOfWeek,enum=proto.HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType" 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_HSMDateTimeComponentCalendarType `protobuf:"varint,7,opt,name=calendar,enum=proto.HSMDateTimeComponent_HSMDateTimeComponentCalendarType" json:"calendar,omitempty"` } -func (m *LocationMessage) GetAddress() string { - if m != nil && m.Address != nil { - return *m.Address +func (x *HSMDateTimeComponent) Reset() { + *x = HSMDateTimeComponent{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *LocationMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *HSMDateTimeComponent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HSMDateTimeComponent) ProtoMessage() {} + +func (x *HSMDateTimeComponent) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *LocationMessage) GetIsLive() bool { - if m != nil && m.IsLive != nil { - return *m.IsLive +// Deprecated: Use HSMDateTimeComponent.ProtoReflect.Descriptor instead. +func (*HSMDateTimeComponent) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{38} +} + +func (x *HSMDateTimeComponent) GetDayOfWeek() HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType { + if x != nil && x.DayOfWeek != nil { + return *x.DayOfWeek } - return false + return HSMDateTimeComponent_MONDAY } -func (m *LocationMessage) GetAccuracyInMeters() uint32 { - if m != nil && m.AccuracyInMeters != nil { - return *m.AccuracyInMeters +func (x *HSMDateTimeComponent) GetYear() uint32 { + if x != nil && x.Year != nil { + return *x.Year } return 0 } -func (m *LocationMessage) GetSpeedInMps() float32 { - if m != nil && m.SpeedInMps != nil { - return *m.SpeedInMps +func (x *HSMDateTimeComponent) GetMonth() uint32 { + if x != nil && x.Month != nil { + return *x.Month } return 0 } -func (m *LocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { - if m != nil && m.DegreesClockwiseFromMagneticNorth != nil { - return *m.DegreesClockwiseFromMagneticNorth +func (x *HSMDateTimeComponent) GetDayOfMonth() uint32 { + if x != nil && x.DayOfMonth != nil { + return *x.DayOfMonth } return 0 } -func (m *LocationMessage) GetComment() string { - if m != nil && m.Comment != nil { - return *m.Comment +func (x *HSMDateTimeComponent) GetHour() uint32 { + if x != nil && x.Hour != nil { + return *x.Hour } - return "" + return 0 } -func (m *LocationMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (x *HSMDateTimeComponent) GetMinute() uint32 { + if x != nil && x.Minute != nil { + return *x.Minute } - return nil + return 0 } -func (m *LocationMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *HSMDateTimeComponent) GetCalendar() HSMDateTimeComponent_HSMDateTimeComponentCalendarType { + if x != nil && x.Calendar != nil { + return *x.Calendar } - return nil + return HSMDateTimeComponent_GREGORIAN } -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"` - DoNotPlayInline *bool `protobuf:"varint,18,opt,name=doNotPlayInline" json:"doNotPlayInline,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} -} +type HSMDateTimeUnixEpoch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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) + Timestamp *int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"` } -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 (x *HSMDateTimeUnixEpoch) Reset() { + *x = HSMDateTimeUnixEpoch{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ExtendedTextMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ExtendedTextMessage.DiscardUnknown(m) + +func (x *HSMDateTimeUnixEpoch) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ExtendedTextMessage proto.InternalMessageInfo +func (*HSMDateTimeUnixEpoch) ProtoMessage() {} -func (m *ExtendedTextMessage) GetText() string { - if m != nil && m.Text != nil { - return *m.Text +func (x *HSMDateTimeUnixEpoch) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *ExtendedTextMessage) GetMatchedText() string { - if m != nil && m.MatchedText != nil { - return *m.MatchedText - } - return "" +// Deprecated: Use HSMDateTimeUnixEpoch.ProtoReflect.Descriptor instead. +func (*HSMDateTimeUnixEpoch) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{39} } -func (m *ExtendedTextMessage) GetCanonicalUrl() string { - if m != nil && m.CanonicalUrl != nil { - return *m.CanonicalUrl +func (x *HSMDateTimeUnixEpoch) GetTimestamp() int64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp } - return "" + return 0 } -func (m *ExtendedTextMessage) GetDescription() string { - if m != nil && m.Description != nil { - return *m.Description - } - return "" -} +type HSMDateTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ExtendedTextMessage) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title - } - return "" + // Types that are assignable to DatetimeOneof: + // *HSMDateTime_Component + // *HSMDateTime_UnixEpoch + DatetimeOneof isHSMDateTime_DatetimeOneof `protobuf_oneof:"datetimeOneof"` } -func (m *ExtendedTextMessage) GetTextArgb() uint32 { - if m != nil && m.TextArgb != nil { - return *m.TextArgb +func (x *HSMDateTime) Reset() { + *x = HSMDateTime{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *ExtendedTextMessage) GetBackgroundArgb() uint32 { - if m != nil && m.BackgroundArgb != nil { - return *m.BackgroundArgb - } - return 0 +func (x *HSMDateTime) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ExtendedTextMessage) GetFont() ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_FONTTYPE { - if m != nil && m.Font != nil { - return *m.Font +func (*HSMDateTime) ProtoMessage() {} + +func (x *HSMDateTime) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return ExtendedTextMessage_SANS_SERIF + return mi.MessageOf(x) } -func (m *ExtendedTextMessage) GetPreviewType() ExtendedTextMessage_EXTENDED_TEXT_MESSAGE_PREVIEWTYPE { - if m != nil && m.PreviewType != nil { - return *m.PreviewType - } - return ExtendedTextMessage_NONE +// Deprecated: Use HSMDateTime.ProtoReflect.Descriptor instead. +func (*HSMDateTime) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{40} } -func (m *ExtendedTextMessage) GetJpegThumbnail() []byte { +func (m *HSMDateTime) GetDatetimeOneof() isHSMDateTime_DatetimeOneof { if m != nil { - return m.JpegThumbnail + return m.DatetimeOneof } return nil } -func (m *ExtendedTextMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *HSMDateTime) GetComponent() *HSMDateTimeComponent { + if x, ok := x.GetDatetimeOneof().(*HSMDateTime_Component); ok { + return x.Component } return nil } -func (m *ExtendedTextMessage) GetDoNotPlayInline() bool { - if m != nil && m.DoNotPlayInline != nil { - return *m.DoNotPlayInline +func (x *HSMDateTime) GetUnixEpoch() *HSMDateTimeUnixEpoch { + if x, ok := x.GetDatetimeOneof().(*HSMDateTime_UnixEpoch); ok { + return x.UnixEpoch } - return false + 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} +type isHSMDateTime_DatetimeOneof interface { + isHSMDateTime_DatetimeOneof() } -func (m *DocumentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DocumentMessage.Unmarshal(m, b) +type HSMDateTime_Component struct { + Component *HSMDateTimeComponent `protobuf:"bytes,1,opt,name=component,oneof"` } -func (m *DocumentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DocumentMessage.Marshal(b, m, deterministic) + +type HSMDateTime_UnixEpoch struct { + UnixEpoch *HSMDateTimeUnixEpoch `protobuf:"bytes,2,opt,name=unixEpoch,oneof"` } -func (m *DocumentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_DocumentMessage.Merge(m, src) + +func (*HSMDateTime_Component) isHSMDateTime_DatetimeOneof() {} + +func (*HSMDateTime_UnixEpoch) isHSMDateTime_DatetimeOneof() {} + +type HSMLocalizableParameter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Default *string `protobuf:"bytes,1,opt,name=default" json:"default,omitempty"` + // Types that are assignable to ParamOneof: + // *HSMLocalizableParameter_Currency + // *HSMLocalizableParameter_DateTime + ParamOneof isHSMLocalizableParameter_ParamOneof `protobuf_oneof:"paramOneof"` } -func (m *DocumentMessage) XXX_Size() int { - return xxx_messageInfo_DocumentMessage.Size(m) + +func (x *HSMLocalizableParameter) Reset() { + *x = HSMLocalizableParameter{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DocumentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_DocumentMessage.DiscardUnknown(m) + +func (x *HSMLocalizableParameter) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_DocumentMessage proto.InternalMessageInfo +func (*HSMLocalizableParameter) ProtoMessage() {} -func (m *DocumentMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *HSMLocalizableParameter) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *DocumentMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype - } - return "" +// Deprecated: Use HSMLocalizableParameter.ProtoReflect.Descriptor instead. +func (*HSMLocalizableParameter) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{41} } -func (m *DocumentMessage) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title +func (x *HSMLocalizableParameter) GetDefault() string { + if x != nil && x.Default != nil { + return *x.Default } return "" } -func (m *DocumentMessage) GetFileSha256() []byte { +func (m *HSMLocalizableParameter) GetParamOneof() isHSMLocalizableParameter_ParamOneof { if m != nil { - return m.FileSha256 + return m.ParamOneof } return nil } -func (m *DocumentMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (x *HSMLocalizableParameter) GetCurrency() *HSMCurrency { + if x, ok := x.GetParamOneof().(*HSMLocalizableParameter_Currency); ok { + return x.Currency } - return 0 + return nil } -func (m *DocumentMessage) GetPageCount() uint32 { - if m != nil && m.PageCount != nil { - return *m.PageCount +func (x *HSMLocalizableParameter) GetDateTime() *HSMDateTime { + if x, ok := x.GetParamOneof().(*HSMLocalizableParameter_DateTime); ok { + return x.DateTime } - return 0 + return nil } -func (m *DocumentMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey - } - return nil +type isHSMLocalizableParameter_ParamOneof interface { + isHSMLocalizableParameter_ParamOneof() } -func (m *DocumentMessage) GetFileName() string { - if m != nil && m.FileName != nil { - return *m.FileName - } - return "" +type HSMLocalizableParameter_Currency struct { + Currency *HSMCurrency `protobuf:"bytes,2,opt,name=currency,oneof"` } -func (m *DocumentMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 - } - return nil +type HSMLocalizableParameter_DateTime struct { + DateTime *HSMDateTime `protobuf:"bytes,3,opt,name=dateTime,oneof"` } -func (m *DocumentMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" +func (*HSMLocalizableParameter_Currency) isHSMLocalizableParameter_ParamOneof() {} + +func (*HSMLocalizableParameter_DateTime) isHSMLocalizableParameter_ParamOneof() {} + +type HighlyStructuredMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` + HydratedHsm *TemplateMessage `protobuf:"bytes,9,opt,name=hydratedHsm" json:"hydratedHsm,omitempty"` } -func (m *DocumentMessage) GetMediaKeyTimestamp() int64 { - if m != nil && m.MediaKeyTimestamp != nil { - return *m.MediaKeyTimestamp +func (x *HighlyStructuredMessage) Reset() { + *x = HighlyStructuredMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *DocumentMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail - } - return nil +func (x *HighlyStructuredMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DocumentMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (*HighlyStructuredMessage) ProtoMessage() {} + +func (x *HighlyStructuredMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -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} +// Deprecated: Use HighlyStructuredMessage.ProtoReflect.Descriptor instead. +func (*HighlyStructuredMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{42} } -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 (x *HighlyStructuredMessage) GetNamespace() string { + if x != nil && x.Namespace != nil { + return *x.Namespace + } + return "" } -func (m *AudioMessage) XXX_DiscardUnknown() { - xxx_messageInfo_AudioMessage.DiscardUnknown(m) + +func (x *HighlyStructuredMessage) GetElementName() string { + if x != nil && x.ElementName != nil { + return *x.ElementName + } + return "" } -var xxx_messageInfo_AudioMessage proto.InternalMessageInfo +func (x *HighlyStructuredMessage) GetParams() []string { + if x != nil { + return x.Params + } + return nil +} -func (m *AudioMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *HighlyStructuredMessage) GetFallbackLg() string { + if x != nil && x.FallbackLg != nil { + return *x.FallbackLg } return "" } -func (m *AudioMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype +func (x *HighlyStructuredMessage) GetFallbackLc() string { + if x != nil && x.FallbackLc != nil { + return *x.FallbackLc } return "" } -func (m *AudioMessage) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 +func (x *HighlyStructuredMessage) GetLocalizableParams() []*HSMLocalizableParameter { + if x != nil { + return x.LocalizableParams } return nil } -func (m *AudioMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (x *HighlyStructuredMessage) GetDeterministicLg() string { + if x != nil && x.DeterministicLg != nil { + return *x.DeterministicLg } - return 0 + return "" } -func (m *AudioMessage) GetSeconds() uint32 { - if m != nil && m.Seconds != nil { - return *m.Seconds +func (x *HighlyStructuredMessage) GetDeterministicLc() string { + if x != nil && x.DeterministicLc != nil { + return *x.DeterministicLc } - return 0 + return "" } -func (m *AudioMessage) GetPtt() bool { - if m != nil && m.Ptt != nil { - return *m.Ptt +func (x *HighlyStructuredMessage) GetHydratedHsm() *TemplateMessage { + if x != nil { + return x.HydratedHsm } - return false + return nil } -func (m *AudioMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey - } - return nil +type SendPaymentMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NoteMessage *Message `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"` + RequestMessageKey *MessageKey `protobuf:"bytes,3,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"` } -func (m *AudioMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +func (x *SendPaymentMessage) Reset() { + *x = SendPaymentMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *AudioMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" +func (x *SendPaymentMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AudioMessage) GetMediaKeyTimestamp() int64 { - if m != nil && m.MediaKeyTimestamp != nil { - return *m.MediaKeyTimestamp +func (*SendPaymentMessage) ProtoMessage() {} + +func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *AudioMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +// Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead. +func (*SendPaymentMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{43} +} + +func (x *SendPaymentMessage) GetNoteMessage() *Message { + if x != nil { + return x.NoteMessage } return nil } -func (m *AudioMessage) GetStreamingSidecar() []byte { - if m != nil { - return m.StreamingSidecar +func (x *SendPaymentMessage) GetRequestMessageKey() *MessageKey { + if x != nil { + return x.RequestMessageKey } 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} -} +type RequestPaymentMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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) + NoteMessage *Message `protobuf:"bytes,4,opt,name=noteMessage" json:"noteMessage,omitempty"` + CurrencyCodeIso4217 *string `protobuf:"bytes,1,opt,name=currencyCodeIso4217" json:"currencyCodeIso4217,omitempty"` + Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` + RequestFrom *string `protobuf:"bytes,3,opt,name=requestFrom" json:"requestFrom,omitempty"` + ExpiryTimestamp *int64 `protobuf:"varint,5,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"` + Amount *PaymentMoney `protobuf:"bytes,6,opt,name=amount" json:"amount,omitempty"` } -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 (x *RequestPaymentMessage) Reset() { + *x = RequestPaymentMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *VideoMessage) XXX_DiscardUnknown() { - xxx_messageInfo_VideoMessage.DiscardUnknown(m) + +func (x *RequestPaymentMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_VideoMessage proto.InternalMessageInfo +func (*RequestPaymentMessage) ProtoMessage() {} -func (m *VideoMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *VideoMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype - } - return "" +// Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead. +func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{44} } -func (m *VideoMessage) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 +func (x *RequestPaymentMessage) GetNoteMessage() *Message { + if x != nil { + return x.NoteMessage } return nil } -func (m *VideoMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (x *RequestPaymentMessage) GetCurrencyCodeIso4217() string { + if x != nil && x.CurrencyCodeIso4217 != nil { + return *x.CurrencyCodeIso4217 } - return 0 + return "" } -func (m *VideoMessage) GetSeconds() uint32 { - if m != nil && m.Seconds != nil { - return *m.Seconds +func (x *RequestPaymentMessage) GetAmount1000() uint64 { + if x != nil && x.Amount1000 != nil { + return *x.Amount1000 } return 0 } -func (m *VideoMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey +func (x *RequestPaymentMessage) GetRequestFrom() string { + if x != nil && x.RequestFrom != nil { + return *x.RequestFrom } - return nil + return "" } -func (m *VideoMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (x *RequestPaymentMessage) GetExpiryTimestamp() int64 { + if x != nil && x.ExpiryTimestamp != nil { + return *x.ExpiryTimestamp } - return "" + return 0 } -func (m *VideoMessage) GetGifPlayback() bool { - if m != nil && m.GifPlayback != nil { - return *m.GifPlayback +func (x *RequestPaymentMessage) GetAmount() *PaymentMoney { + if x != nil { + return x.Amount } - return false + return nil } -func (m *VideoMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height - } - return 0 +type PaymentMoney struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *int64 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + CurrencyCode *string `protobuf:"bytes,3,opt,name=currencyCode" json:"currencyCode,omitempty"` } -func (m *VideoMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width +func (x *PaymentMoney) Reset() { + *x = PaymentMoney{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *VideoMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 - } - return nil +func (x *PaymentMoney) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation { - if m != nil { - return m.InteractiveAnnotations +func (*PaymentMoney) ProtoMessage() {} + +func (x *PaymentMoney) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *VideoMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" +// Deprecated: Use PaymentMoney.ProtoReflect.Descriptor instead. +func (*PaymentMoney) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{45} } -func (m *VideoMessage) GetMediaKeyTimestamp() int64 { - if m != nil && m.MediaKeyTimestamp != nil { - return *m.MediaKeyTimestamp +func (x *PaymentMoney) GetValue() int64 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (m *VideoMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (x *PaymentMoney) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return nil + return 0 } -func (m *VideoMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *PaymentMoney) GetCurrencyCode() string { + if x != nil && x.CurrencyCode != nil { + return *x.CurrencyCode } - return nil + return "" } -func (m *VideoMessage) GetStreamingSidecar() []byte { - if m != nil { - return m.StreamingSidecar - } - return nil +type DeclinePaymentRequestMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` } -func (m *VideoMessage) GetGifAttribution() VideoMessage_VIDEO_MESSAGE_ATTRIBUTION { - if m != nil && m.GifAttribution != nil { - return *m.GifAttribution +func (x *DeclinePaymentRequestMessage) Reset() { + *x = DeclinePaymentRequestMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - 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 (x *DeclinePaymentRequestMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -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 (*DeclinePaymentRequestMessage) ProtoMessage() {} -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) +func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Call proto.InternalMessageInfo +// Deprecated: Use DeclinePaymentRequestMessage.ProtoReflect.Descriptor instead. +func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{46} +} -func (m *Call) GetCallKey() []byte { - if m != nil { - return m.CallKey +func (x *DeclinePaymentRequestMessage) GetKey() *MessageKey { + if x != nil { + return x.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 { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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} + Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` } -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 (x *CancelPaymentRequestMessage) Reset() { + *x = CancelPaymentRequestMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Chat) XXX_DiscardUnknown() { - xxx_messageInfo_Chat.DiscardUnknown(m) + +func (x *CancelPaymentRequestMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_Chat proto.InternalMessageInfo +func (*CancelPaymentRequestMessage) ProtoMessage() {} -func (m *Chat) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *Chat) GetId() string { - if m != nil && m.Id != nil { - return *m.Id - } - return "" +// Deprecated: Use CancelPaymentRequestMessage.ProtoReflect.Descriptor instead. +func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{47} } -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"` - EphemeralExpiration *uint32 `protobuf:"varint,4,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"` - EphemeralSettingTimestamp *int64 `protobuf:"varint,5,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"` - HistorySyncNotification *HistorySyncNotification `protobuf:"bytes,6,opt,name=historySyncNotification" json:"historySyncNotification,omitempty"` - 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 (x *CancelPaymentRequestMessage) GetKey() *MessageKey { + if x != nil { + return x.Key + } + return nil } -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) +type LiveLocationMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` } -func (m *ProtocolMessage) XXX_Size() int { - return xxx_messageInfo_ProtocolMessage.Size(m) + +func (x *LiveLocationMessage) Reset() { + *x = LiveLocationMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProtocolMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ProtocolMessage.DiscardUnknown(m) + +func (x *LiveLocationMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ProtocolMessage proto.InternalMessageInfo +func (*LiveLocationMessage) ProtoMessage() {} -func (m *ProtocolMessage) GetKey() *MessageKey { - if m != nil { - return m.Key +func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ProtocolMessage) GetType() ProtocolMessage_PROTOCOL_MESSAGE_TYPE { - if m != nil && m.Type != nil { - return *m.Type - } - return ProtocolMessage_REVOKE +// Deprecated: Use LiveLocationMessage.ProtoReflect.Descriptor instead. +func (*LiveLocationMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{48} } -func (m *ProtocolMessage) GetEphemeralExpiration() uint32 { - if m != nil && m.EphemeralExpiration != nil { - return *m.EphemeralExpiration +func (x *LiveLocationMessage) GetDegreesLatitude() float64 { + if x != nil && x.DegreesLatitude != nil { + return *x.DegreesLatitude } return 0 } -func (m *ProtocolMessage) GetEphemeralSettingTimestamp() int64 { - if m != nil && m.EphemeralSettingTimestamp != nil { - return *m.EphemeralSettingTimestamp +func (x *LiveLocationMessage) GetDegreesLongitude() float64 { + if x != nil && x.DegreesLongitude != nil { + return *x.DegreesLongitude } return 0 } -func (m *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification { - if m != nil { - return m.HistorySyncNotification +func (x *LiveLocationMessage) GetAccuracyInMeters() uint32 { + if x != nil && x.AccuracyInMeters != nil { + return *x.AccuracyInMeters } - return nil + return 0 } -type HistorySyncNotification struct { - FileSha256 []byte `protobuf:"bytes,1,opt,name=fileSha256" json:"fileSha256,omitempty"` - FileLength *uint64 `protobuf:"varint,2,opt,name=fileLength" json:"fileLength,omitempty"` - MediaKey []byte `protobuf:"bytes,3,opt,name=mediaKey" json:"mediaKey,omitempty"` - FileEncSha256 []byte `protobuf:"bytes,4,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` - DirectPath *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"` - SyncType *HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE `protobuf:"varint,6,opt,name=syncType,enum=proto.HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE" json:"syncType,omitempty"` - ChunkOrder *uint32 `protobuf:"varint,7,opt,name=chunkOrder" json:"chunkOrder,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *HistorySyncNotification) Reset() { *m = HistorySyncNotification{} } -func (m *HistorySyncNotification) String() string { return proto.CompactTextString(m) } -func (*HistorySyncNotification) ProtoMessage() {} -func (*HistorySyncNotification) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{24} +func (x *LiveLocationMessage) GetSpeedInMps() float32 { + if x != nil && x.SpeedInMps != nil { + return *x.SpeedInMps + } + return 0 } -func (m *HistorySyncNotification) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HistorySyncNotification.Unmarshal(m, b) -} -func (m *HistorySyncNotification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HistorySyncNotification.Marshal(b, m, deterministic) -} -func (m *HistorySyncNotification) XXX_Merge(src proto.Message) { - xxx_messageInfo_HistorySyncNotification.Merge(m, src) -} -func (m *HistorySyncNotification) XXX_Size() int { - return xxx_messageInfo_HistorySyncNotification.Size(m) -} -func (m *HistorySyncNotification) XXX_DiscardUnknown() { - xxx_messageInfo_HistorySyncNotification.DiscardUnknown(m) +func (x *LiveLocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { + if x != nil && x.DegreesClockwiseFromMagneticNorth != nil { + return *x.DegreesClockwiseFromMagneticNorth + } + return 0 } -var xxx_messageInfo_HistorySyncNotification proto.InternalMessageInfo - -func (m *HistorySyncNotification) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 +func (x *LiveLocationMessage) GetCaption() string { + if x != nil && x.Caption != nil { + return *x.Caption } - return nil + return "" } -func (m *HistorySyncNotification) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (x *LiveLocationMessage) GetSequenceNumber() int64 { + if x != nil && x.SequenceNumber != nil { + return *x.SequenceNumber } return 0 } -func (m *HistorySyncNotification) GetMediaKey() []byte { - if m != nil { - return m.MediaKey +func (x *LiveLocationMessage) GetTimeOffset() uint32 { + if x != nil && x.TimeOffset != nil { + return *x.TimeOffset } - return nil + return 0 } -func (m *HistorySyncNotification) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +func (x *LiveLocationMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail } return nil } -func (m *HistorySyncNotification) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath +func (x *LiveLocationMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } - return "" + return nil } -func (m *HistorySyncNotification) GetSyncType() HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE { - if m != nil && m.SyncType != nil { - return *m.SyncType - } - return HistorySyncNotification_INITIAL_BOOTSTRAP +type StickerMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` + FileSha256 []byte `protobuf:"bytes,2,opt,name=fileSha256" json:"fileSha256,omitempty"` + FileEncSha256 []byte `protobuf:"bytes,3,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"` + MediaKey []byte `protobuf:"bytes,4,opt,name=mediaKey" json:"mediaKey,omitempty"` + Mimetype *string `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"` + Height *uint32 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"` + Width *uint32 `protobuf:"varint,7,opt,name=width" json:"width,omitempty"` + DirectPath *string `protobuf:"bytes,8,opt,name=directPath" json:"directPath,omitempty"` + FileLength *uint64 `protobuf:"varint,9,opt,name=fileLength" json:"fileLength,omitempty"` + MediaKeyTimestamp *int64 `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` + FirstFrameLength *uint32 `protobuf:"varint,11,opt,name=firstFrameLength" json:"firstFrameLength,omitempty"` + FirstFrameSidecar []byte `protobuf:"bytes,12,opt,name=firstFrameSidecar" json:"firstFrameSidecar,omitempty"` + IsAnimated *bool `protobuf:"varint,13,opt,name=isAnimated" json:"isAnimated,omitempty"` + PngThumbnail []byte `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` } -func (m *HistorySyncNotification) GetChunkOrder() uint32 { - if m != nil && m.ChunkOrder != nil { - return *m.ChunkOrder +func (x *StickerMessage) Reset() { + *x = StickerMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - 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 (x *StickerMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -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{25} -} +func (*StickerMessage) ProtoMessage() {} -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) +func (x *StickerMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ContactsArrayMessage proto.InternalMessageInfo +// Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead. +func (*StickerMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{49} +} -func (m *ContactsArrayMessage) GetDisplayName() string { - if m != nil && m.DisplayName != nil { - return *m.DisplayName +func (x *StickerMessage) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url } return "" } -func (m *ContactsArrayMessage) GetContacts() []*ContactMessage { - if m != nil { - return m.Contacts +func (x *StickerMessage) GetFileSha256() []byte { + if x != nil { + return x.FileSha256 } return nil } -func (m *ContactsArrayMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *StickerMessage) GetFileEncSha256() []byte { + if x != nil { + return x.FileEncSha256 } 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{26} -} - -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) +func (x *StickerMessage) GetMediaKey() []byte { + if x != nil { + return x.MediaKey + } + return nil } -var xxx_messageInfo_HSMCurrency proto.InternalMessageInfo - -func (m *HSMCurrency) GetCurrencyCode() string { - if m != nil && m.CurrencyCode != nil { - return *m.CurrencyCode +func (x *StickerMessage) GetMimetype() string { + if x != nil && x.Mimetype != nil { + return *x.Mimetype } return "" } -func (m *HSMCurrency) GetAmount1000() int64 { - if m != nil && m.Amount1000 != nil { - return *m.Amount1000 +func (x *StickerMessage) GetHeight() uint32 { + if x != nil && x.Height != nil { + return *x.Height } 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{27} -} - -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) +func (x *StickerMessage) GetWidth() uint32 { + if x != nil && x.Width != nil { + return *x.Width + } + return 0 } -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 +func (x *StickerMessage) GetDirectPath() string { + if x != nil && x.DirectPath != nil { + return *x.DirectPath } - return HSMDateTimeComponent_MONDAY + return "" } -func (m *HSMDateTimeComponent) GetYear() uint32 { - if m != nil && m.Year != nil { - return *m.Year +func (x *StickerMessage) GetFileLength() uint64 { + if x != nil && x.FileLength != nil { + return *x.FileLength } return 0 } -func (m *HSMDateTimeComponent) GetMonth() uint32 { - if m != nil && m.Month != nil { - return *m.Month +func (x *StickerMessage) GetMediaKeyTimestamp() int64 { + if x != nil && x.MediaKeyTimestamp != nil { + return *x.MediaKeyTimestamp } return 0 } -func (m *HSMDateTimeComponent) GetDayOfMonth() uint32 { - if m != nil && m.DayOfMonth != nil { - return *m.DayOfMonth +func (x *StickerMessage) GetFirstFrameLength() uint32 { + if x != nil && x.FirstFrameLength != nil { + return *x.FirstFrameLength } return 0 } -func (m *HSMDateTimeComponent) GetHour() uint32 { - if m != nil && m.Hour != nil { - return *m.Hour +func (x *StickerMessage) GetFirstFrameSidecar() []byte { + if x != nil { + return x.FirstFrameSidecar } - return 0 + return nil } -func (m *HSMDateTimeComponent) GetMinute() uint32 { - if m != nil && m.Minute != nil { - return *m.Minute +func (x *StickerMessage) GetIsAnimated() bool { + if x != nil && x.IsAnimated != nil { + return *x.IsAnimated } - return 0 + return false } -func (m *HSMDateTimeComponent) GetCalendar() HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE { - if m != nil && m.Calendar != nil { - return *m.Calendar +func (x *StickerMessage) GetPngThumbnail() []byte { + if x != nil { + return x.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 (x *StickerMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.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_76fb0470a3b910d8, []int{28} -} +type FourRowTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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) + Content *HighlyStructuredMessage `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"` + Footer *HighlyStructuredMessage `protobuf:"bytes,7,opt,name=footer" json:"footer,omitempty"` + Buttons []*TemplateButton `protobuf:"bytes,8,rep,name=buttons" json:"buttons,omitempty"` + // Types that are assignable to Title: + // *FourRowTemplate_DocumentMessage + // *FourRowTemplate_HighlyStructuredMessage + // *FourRowTemplate_ImageMessage + // *FourRowTemplate_VideoMessage + // *FourRowTemplate_LocationMessage + Title isFourRowTemplate_Title `protobuf_oneof:"title"` } -var xxx_messageInfo_HSMDateTimeUnixEpoch proto.InternalMessageInfo - -func (m *HSMDateTimeUnixEpoch) GetTimestamp() int64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp +func (x *FourRowTemplate) Reset() { + *x = FourRowTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - 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 (x *FourRowTemplate) String() string { + return protoimpl.X.MessageStringOf(x) } -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{29} -} +func (*FourRowTemplate) ProtoMessage() {} -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) +func (x *FourRowTemplate) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_HSMDateTime proto.InternalMessageInfo - -type isHSMDateTime_DatetimeOneof interface { - isHSMDateTime_DatetimeOneof() +// Deprecated: Use FourRowTemplate.ProtoReflect.Descriptor instead. +func (*FourRowTemplate) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{50} } -type HSMDateTime_Component struct { - Component *HSMDateTimeComponent `protobuf:"bytes,1,opt,name=component,oneof"` +func (x *FourRowTemplate) GetContent() *HighlyStructuredMessage { + if x != nil { + return x.Content + } + return nil } -type HSMDateTime_UnixEpoch struct { - UnixEpoch *HSMDateTimeUnixEpoch `protobuf:"bytes,2,opt,name=unixEpoch,oneof"` +func (x *FourRowTemplate) GetFooter() *HighlyStructuredMessage { + if x != nil { + return x.Footer + } + return nil } -func (*HSMDateTime_Component) isHSMDateTime_DatetimeOneof() {} - -func (*HSMDateTime_UnixEpoch) isHSMDateTime_DatetimeOneof() {} +func (x *FourRowTemplate) GetButtons() []*TemplateButton { + if x != nil { + return x.Buttons + } + return nil +} -func (m *HSMDateTime) GetDatetimeOneof() isHSMDateTime_DatetimeOneof { +func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title { if m != nil { - return m.DatetimeOneof + return m.Title } return nil } -func (m *HSMDateTime) GetComponent() *HSMDateTimeComponent { - if x, ok := m.GetDatetimeOneof().(*HSMDateTime_Component); ok { - return x.Component +func (x *FourRowTemplate) GetDocumentMessage() *DocumentMessage { + if x, ok := x.GetTitle().(*FourRowTemplate_DocumentMessage); ok { + return x.DocumentMessage } return nil } -func (m *HSMDateTime) GetUnixEpoch() *HSMDateTimeUnixEpoch { - if x, ok := m.GetDatetimeOneof().(*HSMDateTime_UnixEpoch); ok { - return x.UnixEpoch +func (x *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage { + if x, ok := x.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok { + return x.HighlyStructuredMessage } 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), +func (x *FourRowTemplate) GetImageMessage() *ImageMessage { + if x, ok := x.GetTitle().(*FourRowTemplate_ImageMessage); ok { + return x.ImageMessage } + return 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 (x *FourRowTemplate) GetVideoMessage() *VideoMessage { + if x, ok := x.GetTitle().(*FourRowTemplate_VideoMessage); ok { + return x.VideoMessage + } + return nil } -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{30} +func (x *FourRowTemplate) GetLocationMessage() *LocationMessage { + if x, ok := x.GetTitle().(*FourRowTemplate_LocationMessage); ok { + return x.LocationMessage + } + return nil } -func (m *HSMLocalizableParameter) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HSMLocalizableParameter.Unmarshal(m, b) -} -func (m *HSMLocalizableParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HSMLocalizableParameter.Marshal(b, m, deterministic) -} -func (m *HSMLocalizableParameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_HSMLocalizableParameter.Merge(m, src) -} -func (m *HSMLocalizableParameter) XXX_Size() int { - return xxx_messageInfo_HSMLocalizableParameter.Size(m) -} -func (m *HSMLocalizableParameter) XXX_DiscardUnknown() { - xxx_messageInfo_HSMLocalizableParameter.DiscardUnknown(m) +type isFourRowTemplate_Title interface { + isFourRowTemplate_Title() } -var xxx_messageInfo_HSMLocalizableParameter proto.InternalMessageInfo +type FourRowTemplate_DocumentMessage struct { + DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` +} -func (m *HSMLocalizableParameter) GetDefault() string { - if m != nil && m.Default != nil { - return *m.Default - } - return "" +type FourRowTemplate_HighlyStructuredMessage struct { + HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"` } -type isHSMLocalizableParameter_ParamOneof interface { - isHSMLocalizableParameter_ParamOneof() +type FourRowTemplate_ImageMessage struct { + ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` } -type HSMLocalizableParameter_Currency struct { - Currency *HSMCurrency `protobuf:"bytes,2,opt,name=currency,oneof"` +type FourRowTemplate_VideoMessage struct { + VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` } -type HSMLocalizableParameter_DateTime struct { - DateTime *HSMDateTime `protobuf:"bytes,3,opt,name=dateTime,oneof"` +type FourRowTemplate_LocationMessage struct { + LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` } -func (*HSMLocalizableParameter_Currency) isHSMLocalizableParameter_ParamOneof() {} +func (*FourRowTemplate_DocumentMessage) isFourRowTemplate_Title() {} -func (*HSMLocalizableParameter_DateTime) isHSMLocalizableParameter_ParamOneof() {} +func (*FourRowTemplate_HighlyStructuredMessage) isFourRowTemplate_Title() {} -func (m *HSMLocalizableParameter) GetParamOneof() isHSMLocalizableParameter_ParamOneof { - if m != nil { - return m.ParamOneof - } - return nil +func (*FourRowTemplate_ImageMessage) isFourRowTemplate_Title() {} + +func (*FourRowTemplate_VideoMessage) isFourRowTemplate_Title() {} + +func (*FourRowTemplate_LocationMessage) isFourRowTemplate_Title() {} + +type HydratedFourRowTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HydratedContentText *string `protobuf:"bytes,6,opt,name=hydratedContentText" json:"hydratedContentText,omitempty"` + HydratedFooterText *string `protobuf:"bytes,7,opt,name=hydratedFooterText" json:"hydratedFooterText,omitempty"` + HydratedButtons []*HydratedTemplateButton `protobuf:"bytes,8,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"` + TemplateId *string `protobuf:"bytes,9,opt,name=templateId" json:"templateId,omitempty"` + // Types that are assignable to Title: + // *HydratedFourRowTemplate_DocumentMessage + // *HydratedFourRowTemplate_HydratedTitleText + // *HydratedFourRowTemplate_ImageMessage + // *HydratedFourRowTemplate_VideoMessage + // *HydratedFourRowTemplate_LocationMessage + Title isHydratedFourRowTemplate_Title `protobuf_oneof:"title"` } -func (m *HSMLocalizableParameter) GetCurrency() *HSMCurrency { - if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_Currency); ok { - return x.Currency +func (x *HydratedFourRowTemplate) Reset() { + *x = HydratedFourRowTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *HSMLocalizableParameter) GetDateTime() *HSMDateTime { - if x, ok := m.GetParamOneof().(*HSMLocalizableParameter_DateTime); ok { - return x.DateTime - } - return nil +func (x *HydratedFourRowTemplate) String() string { + return protoimpl.X.MessageStringOf(x) } -// XXX_OneofWrappers is for the internal use of the proto package. -func (*HSMLocalizableParameter) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*HSMLocalizableParameter_Currency)(nil), - (*HSMLocalizableParameter_DateTime)(nil), - } -} +func (*HydratedFourRowTemplate) ProtoMessage() {} -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"` - HydratedHsm *TemplateMessage `protobuf:"bytes,9,opt,name=hydratedHsm" json:"hydratedHsm,omitempty"` - 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_76fb0470a3b910d8, []int{31} +func (x *HydratedFourRowTemplate) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *HighlyStructuredMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HighlyStructuredMessage.Unmarshal(m, b) -} -func (m *HighlyStructuredMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HighlyStructuredMessage.Marshal(b, m, deterministic) -} -func (m *HighlyStructuredMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_HighlyStructuredMessage.Merge(m, src) -} -func (m *HighlyStructuredMessage) XXX_Size() int { - return xxx_messageInfo_HighlyStructuredMessage.Size(m) -} -func (m *HighlyStructuredMessage) XXX_DiscardUnknown() { - xxx_messageInfo_HighlyStructuredMessage.DiscardUnknown(m) +// Deprecated: Use HydratedFourRowTemplate.ProtoReflect.Descriptor instead. +func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{51} } -var xxx_messageInfo_HighlyStructuredMessage proto.InternalMessageInfo - -func (m *HighlyStructuredMessage) GetNamespace() string { - if m != nil && m.Namespace != nil { - return *m.Namespace +func (x *HydratedFourRowTemplate) GetHydratedContentText() string { + if x != nil && x.HydratedContentText != nil { + return *x.HydratedContentText } return "" } -func (m *HighlyStructuredMessage) GetElementName() string { - if m != nil && m.ElementName != nil { - return *m.ElementName +func (x *HydratedFourRowTemplate) GetHydratedFooterText() string { + if x != nil && x.HydratedFooterText != nil { + return *x.HydratedFooterText } return "" } -func (m *HighlyStructuredMessage) GetParams() []string { - if m != nil { - return m.Params +func (x *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton { + if x != nil { + return x.HydratedButtons } return nil } -func (m *HighlyStructuredMessage) GetFallbackLg() string { - if m != nil && m.FallbackLg != nil { - return *m.FallbackLg +func (x *HydratedFourRowTemplate) GetTemplateId() string { + if x != nil && x.TemplateId != nil { + return *x.TemplateId } return "" } -func (m *HighlyStructuredMessage) GetFallbackLc() string { - if m != nil && m.FallbackLc != nil { - return *m.FallbackLc +func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title { + if m != nil { + return m.Title } - return "" + return nil } -func (m *HighlyStructuredMessage) GetLocalizableParams() []*HSMLocalizableParameter { - if m != nil { - return m.LocalizableParams +func (x *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage { + if x, ok := x.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok { + return x.DocumentMessage } return nil } -func (m *HighlyStructuredMessage) GetDeterministicLg() string { - if m != nil && m.DeterministicLg != nil { - return *m.DeterministicLg +func (x *HydratedFourRowTemplate) GetHydratedTitleText() string { + if x, ok := x.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok { + return x.HydratedTitleText } return "" } -func (m *HighlyStructuredMessage) GetDeterministicLc() string { - if m != nil && m.DeterministicLc != nil { - return *m.DeterministicLc +func (x *HydratedFourRowTemplate) GetImageMessage() *ImageMessage { + if x, ok := x.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok { + return x.ImageMessage } - return "" + return nil } -func (m *HighlyStructuredMessage) GetHydratedHsm() *TemplateMessage { - if m != nil { - return m.HydratedHsm +func (x *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage { + if x, ok := x.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok { + return x.VideoMessage } return nil } -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 (x *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage { + if x, ok := x.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok { + return x.LocationMessage + } + 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_76fb0470a3b910d8, []int{32} +type isHydratedFourRowTemplate_Title interface { + isHydratedFourRowTemplate_Title() } -func (m *SendPaymentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendPaymentMessage.Unmarshal(m, b) +type HydratedFourRowTemplate_DocumentMessage struct { + DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` } -func (m *SendPaymentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendPaymentMessage.Marshal(b, m, deterministic) + +type HydratedFourRowTemplate_HydratedTitleText struct { + HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"` } -func (m *SendPaymentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendPaymentMessage.Merge(m, src) + +type HydratedFourRowTemplate_ImageMessage struct { + ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` } -func (m *SendPaymentMessage) XXX_Size() int { - return xxx_messageInfo_SendPaymentMessage.Size(m) + +type HydratedFourRowTemplate_VideoMessage struct { + VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` } -func (m *SendPaymentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_SendPaymentMessage.DiscardUnknown(m) + +type HydratedFourRowTemplate_LocationMessage struct { + LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` } -var xxx_messageInfo_SendPaymentMessage proto.InternalMessageInfo +func (*HydratedFourRowTemplate_DocumentMessage) isHydratedFourRowTemplate_Title() {} + +func (*HydratedFourRowTemplate_HydratedTitleText) isHydratedFourRowTemplate_Title() {} -func (m *SendPaymentMessage) GetNoteMessage() *Message { - if m != nil { - return m.NoteMessage - } - return nil +func (*HydratedFourRowTemplate_ImageMessage) isHydratedFourRowTemplate_Title() {} + +func (*HydratedFourRowTemplate_VideoMessage) isHydratedFourRowTemplate_Title() {} + +func (*HydratedFourRowTemplate_LocationMessage) isHydratedFourRowTemplate_Title() {} + +type TemplateMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` + HydratedTemplate *HydratedFourRowTemplate `protobuf:"bytes,4,opt,name=hydratedTemplate" json:"hydratedTemplate,omitempty"` + // Types that are assignable to Format: + // *TemplateMessage_FourRowTemplate + // *TemplateMessage_HydratedFourRowTemplate + Format isTemplateMessage_Format `protobuf_oneof:"format"` } -func (m *SendPaymentMessage) GetRequestMessageKey() *MessageKey { - if m != nil { - return m.RequestMessageKey +func (x *TemplateMessage) Reset() { + *x = TemplateMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -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{33} +func (x *TemplateMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -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) +func (*TemplateMessage) ProtoMessage() {} + +func (x *TemplateMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_RequestPaymentMessage proto.InternalMessageInfo +// Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead. +func (*TemplateMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{52} +} -func (m *RequestPaymentMessage) GetNoteMessage() *Message { - if m != nil { - return m.NoteMessage +func (x *TemplateMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } return nil } -func (m *RequestPaymentMessage) GetCurrencyCodeIso4217() string { - if m != nil && m.CurrencyCodeIso4217 != nil { - return *m.CurrencyCodeIso4217 +func (x *TemplateMessage) GetHydratedTemplate() *HydratedFourRowTemplate { + if x != nil { + return x.HydratedTemplate } - return "" + return nil } -func (m *RequestPaymentMessage) GetAmount1000() uint64 { - if m != nil && m.Amount1000 != nil { - return *m.Amount1000 +func (m *TemplateMessage) GetFormat() isTemplateMessage_Format { + if m != nil { + return m.Format } - return 0 + return nil } -func (m *RequestPaymentMessage) GetRequestFrom() string { - if m != nil && m.RequestFrom != nil { - return *m.RequestFrom +func (x *TemplateMessage) GetFourRowTemplate() *FourRowTemplate { + if x, ok := x.GetFormat().(*TemplateMessage_FourRowTemplate); ok { + return x.FourRowTemplate } - return "" + return nil } -func (m *RequestPaymentMessage) GetExpiryTimestamp() int64 { - if m != nil && m.ExpiryTimestamp != nil { - return *m.ExpiryTimestamp +func (x *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate { + if x, ok := x.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok { + return x.HydratedFourRowTemplate } - return 0 + return nil } -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 isTemplateMessage_Format interface { + isTemplateMessage_Format() } -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{34} +type TemplateMessage_FourRowTemplate struct { + FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"` } -func (m *DeclinePaymentRequestMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeclinePaymentRequestMessage.Unmarshal(m, b) -} -func (m *DeclinePaymentRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeclinePaymentRequestMessage.Marshal(b, m, deterministic) +type TemplateMessage_HydratedFourRowTemplate struct { + HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"` } -func (m *DeclinePaymentRequestMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeclinePaymentRequestMessage.Merge(m, src) + +func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {} + +func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {} + +type TemplateButtonReplyMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SelectedId *string `protobuf:"bytes,1,opt,name=selectedId" json:"selectedId,omitempty"` + SelectedDisplayText *string `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` + SelectedIndex *uint32 `protobuf:"varint,4,opt,name=selectedIndex" json:"selectedIndex,omitempty"` } -func (m *DeclinePaymentRequestMessage) XXX_Size() int { - return xxx_messageInfo_DeclinePaymentRequestMessage.Size(m) + +func (x *TemplateButtonReplyMessage) Reset() { + *x = TemplateButtonReplyMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeclinePaymentRequestMessage) XXX_DiscardUnknown() { - xxx_messageInfo_DeclinePaymentRequestMessage.DiscardUnknown(m) + +func (x *TemplateButtonReplyMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_DeclinePaymentRequestMessage proto.InternalMessageInfo +func (*TemplateButtonReplyMessage) ProtoMessage() {} -func (m *DeclinePaymentRequestMessage) GetKey() *MessageKey { - if m != nil { - return m.Key +func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -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:"-"` +// Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead. +func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{53} } -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{35} +func (x *TemplateButtonReplyMessage) GetSelectedId() string { + if x != nil && x.SelectedId != nil { + return *x.SelectedId + } + return "" +} + +func (x *TemplateButtonReplyMessage) GetSelectedDisplayText() string { + if x != nil && x.SelectedDisplayText != nil { + return *x.SelectedDisplayText + } + return "" } -func (m *CancelPaymentRequestMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CancelPaymentRequestMessage.Unmarshal(m, b) +func (x *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo + } + return nil } -func (m *CancelPaymentRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CancelPaymentRequestMessage.Marshal(b, m, deterministic) + +func (x *TemplateButtonReplyMessage) GetSelectedIndex() uint32 { + if x != nil && x.SelectedIndex != nil { + return *x.SelectedIndex + } + return 0 } -func (m *CancelPaymentRequestMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_CancelPaymentRequestMessage.Merge(m, src) + +type CatalogSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CatalogImage *ImageMessage `protobuf:"bytes,1,opt,name=catalogImage" json:"catalogImage,omitempty"` + Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` + Description *string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"` } -func (m *CancelPaymentRequestMessage) XXX_Size() int { - return xxx_messageInfo_CancelPaymentRequestMessage.Size(m) + +func (x *CatalogSnapshot) Reset() { + *x = CatalogSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CancelPaymentRequestMessage) XXX_DiscardUnknown() { - xxx_messageInfo_CancelPaymentRequestMessage.DiscardUnknown(m) + +func (x *CatalogSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_CancelPaymentRequestMessage proto.InternalMessageInfo +func (*CatalogSnapshot) ProtoMessage() {} -func (m *CancelPaymentRequestMessage) GetKey() *MessageKey { - if m != nil { - return m.Key +func (x *CatalogSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -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:"-"` +// Deprecated: Use CatalogSnapshot.ProtoReflect.Descriptor instead. +func (*CatalogSnapshot) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{54} } -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{36} +func (x *CatalogSnapshot) GetCatalogImage() *ImageMessage { + if x != nil { + return x.CatalogImage + } + return nil } -func (m *LiveLocationMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LiveLocationMessage.Unmarshal(m, b) +func (x *CatalogSnapshot) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" } -func (m *LiveLocationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LiveLocationMessage.Marshal(b, m, deterministic) + +func (x *CatalogSnapshot) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" } -func (m *LiveLocationMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_LiveLocationMessage.Merge(m, src) + +type ProductSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductImage *ImageMessage `protobuf:"bytes,1,opt,name=productImage" json:"productImage,omitempty"` + ProductId *string `protobuf:"bytes,2,opt,name=productId" json:"productId,omitempty"` + Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` + Description *string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"` + CurrencyCode *string `protobuf:"bytes,5,opt,name=currencyCode" json:"currencyCode,omitempty"` + PriceAmount1000 *int64 `protobuf:"varint,6,opt,name=priceAmount1000" json:"priceAmount1000,omitempty"` + RetailerId *string `protobuf:"bytes,7,opt,name=retailerId" json:"retailerId,omitempty"` + Url *string `protobuf:"bytes,8,opt,name=url" json:"url,omitempty"` + ProductImageCount *uint32 `protobuf:"varint,9,opt,name=productImageCount" json:"productImageCount,omitempty"` + FirstImageId *string `protobuf:"bytes,11,opt,name=firstImageId" json:"firstImageId,omitempty"` } -func (m *LiveLocationMessage) XXX_Size() int { - return xxx_messageInfo_LiveLocationMessage.Size(m) + +func (x *ProductSnapshot) Reset() { + *x = ProductSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *LiveLocationMessage) XXX_DiscardUnknown() { - xxx_messageInfo_LiveLocationMessage.DiscardUnknown(m) + +func (x *ProductSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_LiveLocationMessage proto.InternalMessageInfo +func (*ProductSnapshot) ProtoMessage() {} -func (m *LiveLocationMessage) GetDegreesLatitude() float64 { - if m != nil && m.DegreesLatitude != nil { - return *m.DegreesLatitude +func (x *ProductSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *LiveLocationMessage) GetDegreesLongitude() float64 { - if m != nil && m.DegreesLongitude != nil { - return *m.DegreesLongitude - } - return 0 +// Deprecated: Use ProductSnapshot.ProtoReflect.Descriptor instead. +func (*ProductSnapshot) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{55} } -func (m *LiveLocationMessage) GetAccuracyInMeters() uint32 { - if m != nil && m.AccuracyInMeters != nil { - return *m.AccuracyInMeters +func (x *ProductSnapshot) GetProductImage() *ImageMessage { + if x != nil { + return x.ProductImage } - return 0 + return nil } -func (m *LiveLocationMessage) GetSpeedInMps() float32 { - if m != nil && m.SpeedInMps != nil { - return *m.SpeedInMps +func (x *ProductSnapshot) GetProductId() string { + if x != nil && x.ProductId != nil { + return *x.ProductId } - return 0 + return "" } -func (m *LiveLocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { - if m != nil && m.DegreesClockwiseFromMagneticNorth != nil { - return *m.DegreesClockwiseFromMagneticNorth +func (x *ProductSnapshot) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title } - return 0 + return "" } -func (m *LiveLocationMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (x *ProductSnapshot) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description } return "" } -func (m *LiveLocationMessage) GetSequenceNumber() int64 { - if m != nil && m.SequenceNumber != nil { - return *m.SequenceNumber +func (x *ProductSnapshot) GetCurrencyCode() string { + if x != nil && x.CurrencyCode != nil { + return *x.CurrencyCode } - return 0 + return "" } -func (m *LiveLocationMessage) GetTimeOffset() uint32 { - if m != nil && m.TimeOffset != nil { - return *m.TimeOffset +func (x *ProductSnapshot) GetPriceAmount1000() int64 { + if x != nil && x.PriceAmount1000 != nil { + return *x.PriceAmount1000 } return 0 } -func (m *LiveLocationMessage) GetJpegThumbnail() []byte { - if m != nil { - return m.JpegThumbnail +func (x *ProductSnapshot) GetRetailerId() string { + if x != nil && x.RetailerId != nil { + return *x.RetailerId } - return nil + return "" } -func (m *LiveLocationMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *ProductSnapshot) GetUrl() string { + if x != nil && x.Url != nil { + return *x.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"` - MediaKeyTimestamp *int64 `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"` - FirstFrameLength *uint32 `protobuf:"varint,11,opt,name=firstFrameLength" json:"firstFrameLength,omitempty"` - FirstFrameSidecar []byte `protobuf:"bytes,12,opt,name=firstFrameSidecar" json:"firstFrameSidecar,omitempty"` - IsAnimated *bool `protobuf:"varint,13,opt,name=isAnimated" json:"isAnimated,omitempty"` - PngThumbnail []byte `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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{37} +func (x *ProductSnapshot) GetProductImageCount() uint32 { + if x != nil && x.ProductImageCount != nil { + return *x.ProductImageCount + } + return 0 } -func (m *StickerMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StickerMessage.Unmarshal(m, b) -} -func (m *StickerMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StickerMessage.Marshal(b, m, deterministic) +func (x *ProductSnapshot) GetFirstImageId() string { + if x != nil && x.FirstImageId != nil { + return *x.FirstImageId + } + return "" } -func (m *StickerMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_StickerMessage.Merge(m, src) + +type ProductMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Product *ProductSnapshot `protobuf:"bytes,1,opt,name=product" json:"product,omitempty"` + BusinessOwnerJid *string `protobuf:"bytes,2,opt,name=businessOwnerJid" json:"businessOwnerJid,omitempty"` + Catalog *CatalogSnapshot `protobuf:"bytes,4,opt,name=catalog" json:"catalog,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` } -func (m *StickerMessage) XXX_Size() int { - return xxx_messageInfo_StickerMessage.Size(m) + +func (x *ProductMessage) Reset() { + *x = ProductMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *StickerMessage) XXX_DiscardUnknown() { - xxx_messageInfo_StickerMessage.DiscardUnknown(m) + +func (x *ProductMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_StickerMessage proto.InternalMessageInfo +func (*ProductMessage) ProtoMessage() {} -func (m *StickerMessage) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (x *ProductMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *StickerMessage) GetFileSha256() []byte { - if m != nil { - return m.FileSha256 +// Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead. +func (*ProductMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{56} +} + +func (x *ProductMessage) GetProduct() *ProductSnapshot { + if x != nil { + return x.Product } return nil } -func (m *StickerMessage) GetFileEncSha256() []byte { - if m != nil { - return m.FileEncSha256 +func (x *ProductMessage) GetBusinessOwnerJid() string { + if x != nil && x.BusinessOwnerJid != nil { + return *x.BusinessOwnerJid } - return nil + return "" } -func (m *StickerMessage) GetMediaKey() []byte { - if m != nil { - return m.MediaKey +func (x *ProductMessage) GetCatalog() *CatalogSnapshot { + if x != nil { + return x.Catalog } return nil } -func (m *StickerMessage) GetMimetype() string { - if m != nil && m.Mimetype != nil { - return *m.Mimetype +func (x *ProductMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } - return "" + return nil } -func (m *StickerMessage) GetHeight() uint32 { - if m != nil && m.Height != nil { - return *m.Height - } - return 0 +type OrderMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OrderId *string `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"` + Thumbnail []byte `protobuf:"bytes,2,opt,name=thumbnail" json:"thumbnail,omitempty"` + ItemCount *int32 `protobuf:"varint,3,opt,name=itemCount" json:"itemCount,omitempty"` + Status *OrderMessage_OrderMessageOrderStatus `protobuf:"varint,4,opt,name=status,enum=proto.OrderMessage_OrderMessageOrderStatus" json:"status,omitempty"` + Surface *OrderMessage_OrderMessageOrderSurface `protobuf:"varint,5,opt,name=surface,enum=proto.OrderMessage_OrderMessageOrderSurface" json:"surface,omitempty"` + Message *string `protobuf:"bytes,6,opt,name=message" json:"message,omitempty"` + OrderTitle *string `protobuf:"bytes,7,opt,name=orderTitle" json:"orderTitle,omitempty"` + SellerJid *string `protobuf:"bytes,8,opt,name=sellerJid" json:"sellerJid,omitempty"` + Token *string `protobuf:"bytes,9,opt,name=token" json:"token,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` } -func (m *StickerMessage) GetWidth() uint32 { - if m != nil && m.Width != nil { - return *m.Width +func (x *OrderMessage) Reset() { + *x = OrderMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *StickerMessage) GetDirectPath() string { - if m != nil && m.DirectPath != nil { - return *m.DirectPath - } - return "" +func (x *OrderMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *StickerMessage) GetFileLength() uint64 { - if m != nil && m.FileLength != nil { - return *m.FileLength +func (*OrderMessage) ProtoMessage() {} + +func (x *OrderMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *StickerMessage) GetMediaKeyTimestamp() int64 { - if m != nil && m.MediaKeyTimestamp != nil { - return *m.MediaKeyTimestamp - } - return 0 +// Deprecated: Use OrderMessage.ProtoReflect.Descriptor instead. +func (*OrderMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{57} } -func (m *StickerMessage) GetFirstFrameLength() uint32 { - if m != nil && m.FirstFrameLength != nil { - return *m.FirstFrameLength +func (x *OrderMessage) GetOrderId() string { + if x != nil && x.OrderId != nil { + return *x.OrderId } - return 0 + return "" } -func (m *StickerMessage) GetFirstFrameSidecar() []byte { - if m != nil { - return m.FirstFrameSidecar +func (x *OrderMessage) GetThumbnail() []byte { + if x != nil { + return x.Thumbnail } return nil } -func (m *StickerMessage) GetIsAnimated() bool { - if m != nil && m.IsAnimated != nil { - return *m.IsAnimated +func (x *OrderMessage) GetItemCount() int32 { + if x != nil && x.ItemCount != nil { + return *x.ItemCount } - return false + return 0 } -func (m *StickerMessage) GetPngThumbnail() []byte { - if m != nil { - return m.PngThumbnail +func (x *OrderMessage) GetStatus() OrderMessage_OrderMessageOrderStatus { + if x != nil && x.Status != nil { + return *x.Status } - return nil + return OrderMessage_INQUIRY } -func (m *StickerMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *OrderMessage) GetSurface() OrderMessage_OrderMessageOrderSurface { + if x != nil && x.Surface != nil { + return *x.Surface } - return nil -} - -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:"-"` + return OrderMessage_CATALOG } -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{38} +func (x *OrderMessage) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" } -func (m *FourRowTemplate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FourRowTemplate.Unmarshal(m, b) -} -func (m *FourRowTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FourRowTemplate.Marshal(b, m, deterministic) -} -func (m *FourRowTemplate) XXX_Merge(src proto.Message) { - xxx_messageInfo_FourRowTemplate.Merge(m, src) -} -func (m *FourRowTemplate) XXX_Size() int { - return xxx_messageInfo_FourRowTemplate.Size(m) -} -func (m *FourRowTemplate) XXX_DiscardUnknown() { - xxx_messageInfo_FourRowTemplate.DiscardUnknown(m) +func (x *OrderMessage) GetOrderTitle() string { + if x != nil && x.OrderTitle != nil { + return *x.OrderTitle + } + return "" } -var xxx_messageInfo_FourRowTemplate proto.InternalMessageInfo - -func (m *FourRowTemplate) GetContent() *HighlyStructuredMessage { - if m != nil { - return m.Content +func (x *OrderMessage) GetSellerJid() string { + if x != nil && x.SellerJid != nil { + return *x.SellerJid } - return nil + return "" } -func (m *FourRowTemplate) GetFooter() *HighlyStructuredMessage { - if m != nil { - return m.Footer +func (x *OrderMessage) GetToken() string { + if x != nil && x.Token != nil { + return *x.Token } - return nil + return "" } -func (m *FourRowTemplate) GetButtons() []*TemplateButton { - if m != nil { - return m.Buttons +func (x *OrderMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } return nil } -type isFourRowTemplate_Title interface { - isFourRowTemplate_Title() -} +type Row struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type FourRowTemplate_DocumentMessage struct { - DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` + Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"` + RowId *string `protobuf:"bytes,3,opt,name=rowId" json:"rowId,omitempty"` } -type FourRowTemplate_HighlyStructuredMessage struct { - HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"` +func (x *Row) Reset() { + *x = Row{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type FourRowTemplate_ImageMessage struct { - ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` +func (x *Row) String() string { + return protoimpl.X.MessageStringOf(x) } -type FourRowTemplate_VideoMessage struct { - VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` +func (*Row) ProtoMessage() {} + +func (x *Row) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type FourRowTemplate_LocationMessage struct { - LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` +// Deprecated: Use Row.ProtoReflect.Descriptor instead. +func (*Row) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{58} } -func (*FourRowTemplate_DocumentMessage) isFourRowTemplate_Title() {} +func (x *Row) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} -func (*FourRowTemplate_HighlyStructuredMessage) isFourRowTemplate_Title() {} +func (x *Row) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} -func (*FourRowTemplate_ImageMessage) isFourRowTemplate_Title() {} +func (x *Row) GetRowId() string { + if x != nil && x.RowId != nil { + return *x.RowId + } + return "" +} -func (*FourRowTemplate_VideoMessage) isFourRowTemplate_Title() {} +type Section struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (*FourRowTemplate_LocationMessage) isFourRowTemplate_Title() {} + Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Rows []*Row `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"` +} -func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title { - if m != nil { - return m.Title +func (x *Section) Reset() { + *x = Section{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *FourRowTemplate) GetDocumentMessage() *DocumentMessage { - if x, ok := m.GetTitle().(*FourRowTemplate_DocumentMessage); ok { - return x.DocumentMessage - } - return nil +func (x *Section) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage { - if x, ok := m.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok { - return x.HighlyStructuredMessage +func (*Section) ProtoMessage() {} + +func (x *Section) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *FourRowTemplate) GetImageMessage() *ImageMessage { - if x, ok := m.GetTitle().(*FourRowTemplate_ImageMessage); ok { - return x.ImageMessage - } - return nil +// Deprecated: Use Section.ProtoReflect.Descriptor instead. +func (*Section) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{59} } -func (m *FourRowTemplate) GetVideoMessage() *VideoMessage { - if x, ok := m.GetTitle().(*FourRowTemplate_VideoMessage); ok { - return x.VideoMessage +func (x *Section) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title } - return nil + return "" } -func (m *FourRowTemplate) GetLocationMessage() *LocationMessage { - if x, ok := m.GetTitle().(*FourRowTemplate_LocationMessage); ok { - return x.LocationMessage +func (x *Section) GetRows() []*Row { + if x != nil { + return x.Rows } return 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), - } -} +type ListMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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,8,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"` - TemplateId *string `protobuf:"bytes,9,opt,name=templateId" json:"templateId,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:"-"` + Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"` + ButtonText *string `protobuf:"bytes,3,opt,name=buttonText" json:"buttonText,omitempty"` + ListType *ListMessage_ListMessageListType `protobuf:"varint,4,opt,name=listType,enum=proto.ListMessage_ListMessageListType" json:"listType,omitempty"` + Sections []*Section `protobuf:"bytes,5,rep,name=sections" json:"sections,omitempty"` } -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{39} +func (x *ListMessage) Reset() { + *x = ListMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *HydratedFourRowTemplate) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_HydratedFourRowTemplate.Unmarshal(m, b) +func (x *ListMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *HydratedFourRowTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_HydratedFourRowTemplate.Marshal(b, m, deterministic) -} -func (m *HydratedFourRowTemplate) XXX_Merge(src proto.Message) { - xxx_messageInfo_HydratedFourRowTemplate.Merge(m, src) -} -func (m *HydratedFourRowTemplate) XXX_Size() int { - return xxx_messageInfo_HydratedFourRowTemplate.Size(m) + +func (*ListMessage) ProtoMessage() {} + +func (x *ListMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *HydratedFourRowTemplate) XXX_DiscardUnknown() { - xxx_messageInfo_HydratedFourRowTemplate.DiscardUnknown(m) + +// Deprecated: Use ListMessage.ProtoReflect.Descriptor instead. +func (*ListMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{60} } -var xxx_messageInfo_HydratedFourRowTemplate proto.InternalMessageInfo +func (x *ListMessage) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} -func (m *HydratedFourRowTemplate) GetHydratedContentText() string { - if m != nil && m.HydratedContentText != nil { - return *m.HydratedContentText +func (x *ListMessage) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description } return "" } -func (m *HydratedFourRowTemplate) GetHydratedFooterText() string { - if m != nil && m.HydratedFooterText != nil { - return *m.HydratedFooterText +func (x *ListMessage) GetButtonText() string { + if x != nil && x.ButtonText != nil { + return *x.ButtonText } return "" } -func (m *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton { - if m != nil { - return m.HydratedButtons +func (x *ListMessage) GetListType() ListMessage_ListMessageListType { + if x != nil && x.ListType != nil { + return *x.ListType } - return nil + return ListMessage_UNKNOWN } -func (m *HydratedFourRowTemplate) GetTemplateId() string { - if m != nil && m.TemplateId != nil { - return *m.TemplateId +func (x *ListMessage) GetSections() []*Section { + if x != nil { + return x.Sections } - return "" + return nil } -type isHydratedFourRowTemplate_Title interface { - isHydratedFourRowTemplate_Title() +type SingleSelectReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SelectedRowId *string `protobuf:"bytes,1,opt,name=selectedRowId" json:"selectedRowId,omitempty"` } -type HydratedFourRowTemplate_DocumentMessage struct { - DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"` +func (x *SingleSelectReply) Reset() { + *x = SingleSelectReply{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type HydratedFourRowTemplate_HydratedTitleText struct { - HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"` +func (x *SingleSelectReply) String() string { + return protoimpl.X.MessageStringOf(x) } -type HydratedFourRowTemplate_ImageMessage struct { - ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` +func (*SingleSelectReply) ProtoMessage() {} + +func (x *SingleSelectReply) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type HydratedFourRowTemplate_VideoMessage struct { - VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` +// Deprecated: Use SingleSelectReply.ProtoReflect.Descriptor instead. +func (*SingleSelectReply) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{61} } -type HydratedFourRowTemplate_LocationMessage struct { - LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` +func (x *SingleSelectReply) GetSelectedRowId() string { + if x != nil && x.SelectedRowId != nil { + return *x.SelectedRowId + } + return "" } -func (*HydratedFourRowTemplate_DocumentMessage) isHydratedFourRowTemplate_Title() {} +type ListResponseMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (*HydratedFourRowTemplate_HydratedTitleText) isHydratedFourRowTemplate_Title() {} + Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + ListType *ListResponseMessage_ListResponseMessageListType `protobuf:"varint,2,opt,name=listType,enum=proto.ListResponseMessage_ListResponseMessageListType" json:"listType,omitempty"` + SingleSelectReply *SingleSelectReply `protobuf:"bytes,3,opt,name=singleSelectReply" json:"singleSelectReply,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,4,opt,name=contextInfo" json:"contextInfo,omitempty"` + Description *string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` +} -func (*HydratedFourRowTemplate_ImageMessage) isHydratedFourRowTemplate_Title() {} +func (x *ListResponseMessage) Reset() { + *x = ListResponseMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} -func (*HydratedFourRowTemplate_VideoMessage) isHydratedFourRowTemplate_Title() {} +func (x *ListResponseMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} -func (*HydratedFourRowTemplate_LocationMessage) isHydratedFourRowTemplate_Title() {} +func (*ListResponseMessage) ProtoMessage() {} -func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title { - if m != nil { - return m.Title +func (x *ListResponseMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage { - if x, ok := m.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok { - return x.DocumentMessage - } - return nil +// Deprecated: Use ListResponseMessage.ProtoReflect.Descriptor instead. +func (*ListResponseMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{62} } -func (m *HydratedFourRowTemplate) GetHydratedTitleText() string { - if x, ok := m.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok { - return x.HydratedTitleText +func (x *ListResponseMessage) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title } return "" } -func (m *HydratedFourRowTemplate) GetImageMessage() *ImageMessage { - if x, ok := m.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok { - return x.ImageMessage +func (x *ListResponseMessage) GetListType() ListResponseMessage_ListResponseMessageListType { + if x != nil && x.ListType != nil { + return *x.ListType } - return nil + return ListResponseMessage_UNKNOWN } -func (m *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage { - if x, ok := m.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok { - return x.VideoMessage +func (x *ListResponseMessage) GetSingleSelectReply() *SingleSelectReply { + if x != nil { + return x.SingleSelectReply } return nil } -func (m *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage { - if x, ok := m.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok { - return x.LocationMessage +func (x *ListResponseMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } return nil } -// 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), +func (x *ListResponseMessage) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description } + return "" } -type TemplateMessage struct { - ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` - HydratedTemplate *HydratedFourRowTemplate `protobuf:"bytes,4,opt,name=hydratedTemplate" json:"hydratedTemplate,omitempty"` - // Types that are 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:"-"` -} +type GroupInviteMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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{40} + 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"` + ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"` } -func (m *TemplateMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TemplateMessage.Unmarshal(m, b) -} -func (m *TemplateMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TemplateMessage.Marshal(b, m, deterministic) -} -func (m *TemplateMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateMessage.Merge(m, src) -} -func (m *TemplateMessage) XXX_Size() int { - return xxx_messageInfo_TemplateMessage.Size(m) +func (x *GroupInviteMessage) Reset() { + *x = GroupInviteMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TemplateMessage) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateMessage.DiscardUnknown(m) + +func (x *GroupInviteMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_TemplateMessage proto.InternalMessageInfo +func (*GroupInviteMessage) ProtoMessage() {} -func (m *TemplateMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *GroupInviteMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *TemplateMessage) GetHydratedTemplate() *HydratedFourRowTemplate { - if m != nil { - return m.HydratedTemplate - } - return nil +// Deprecated: Use GroupInviteMessage.ProtoReflect.Descriptor instead. +func (*GroupInviteMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{63} } -type isTemplateMessage_Format interface { - isTemplateMessage_Format() +func (x *GroupInviteMessage) GetGroupJid() string { + if x != nil && x.GroupJid != nil { + return *x.GroupJid + } + return "" } -type TemplateMessage_FourRowTemplate struct { - FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"` +func (x *GroupInviteMessage) GetInviteCode() string { + if x != nil && x.InviteCode != nil { + return *x.InviteCode + } + return "" } -type TemplateMessage_HydratedFourRowTemplate struct { - HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"` +func (x *GroupInviteMessage) GetInviteExpiration() int64 { + if x != nil && x.InviteExpiration != nil { + return *x.InviteExpiration + } + return 0 } -func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {} - -func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {} - -func (m *TemplateMessage) GetFormat() isTemplateMessage_Format { - if m != nil { - return m.Format +func (x *GroupInviteMessage) GetGroupName() string { + if x != nil && x.GroupName != nil { + return *x.GroupName } - return nil + return "" } -func (m *TemplateMessage) GetFourRowTemplate() *FourRowTemplate { - if x, ok := m.GetFormat().(*TemplateMessage_FourRowTemplate); ok { - return x.FourRowTemplate +func (x *GroupInviteMessage) GetJpegThumbnail() []byte { + if x != nil { + return x.JpegThumbnail } return nil } -func (m *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate { - if x, ok := m.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok { - return x.HydratedFourRowTemplate +func (x *GroupInviteMessage) GetCaption() string { + if x != nil && x.Caption != nil { + return *x.Caption } - return nil + return "" } -// XXX_OneofWrappers is for the internal use of the proto package. -func (*TemplateMessage) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*TemplateMessage_FourRowTemplate)(nil), - (*TemplateMessage_HydratedFourRowTemplate)(nil), +func (x *GroupInviteMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } + return nil } -type TemplateButtonReplyMessage struct { - SelectedId *string `protobuf:"bytes,1,opt,name=selectedId" json:"selectedId,omitempty"` - SelectedDisplayText *string `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` - SelectedIndex *uint32 `protobuf:"varint,4,opt,name=selectedIndex" json:"selectedIndex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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{41} -} +type EphemeralSetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *TemplateButtonReplyMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TemplateButtonReplyMessage.Unmarshal(m, b) + ChatJid *string `protobuf:"bytes,1,opt,name=chatJid" json:"chatJid,omitempty"` + EphemeralExpiration *uint32 `protobuf:"varint,2,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"` + EphemeralSettingTimestamp *int64 `protobuf:"varint,3,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"` } -func (m *TemplateButtonReplyMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TemplateButtonReplyMessage.Marshal(b, m, deterministic) -} -func (m *TemplateButtonReplyMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateButtonReplyMessage.Merge(m, src) -} -func (m *TemplateButtonReplyMessage) XXX_Size() int { - return xxx_messageInfo_TemplateButtonReplyMessage.Size(m) + +func (x *EphemeralSetting) Reset() { + *x = EphemeralSetting{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TemplateButtonReplyMessage) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateButtonReplyMessage.DiscardUnknown(m) + +func (x *EphemeralSetting) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_TemplateButtonReplyMessage proto.InternalMessageInfo +func (*EphemeralSetting) ProtoMessage() {} -func (m *TemplateButtonReplyMessage) GetSelectedId() string { - if m != nil && m.SelectedId != nil { - return *m.SelectedId +func (x *EphemeralSetting) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use EphemeralSetting.ProtoReflect.Descriptor instead. +func (*EphemeralSetting) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{64} } -func (m *TemplateButtonReplyMessage) GetSelectedDisplayText() string { - if m != nil && m.SelectedDisplayText != nil { - return *m.SelectedDisplayText +func (x *EphemeralSetting) GetChatJid() string { + if x != nil && x.ChatJid != nil { + return *x.ChatJid } return "" } -func (m *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *EphemeralSetting) GetEphemeralExpiration() uint32 { + if x != nil && x.EphemeralExpiration != nil { + return *x.EphemeralExpiration } - return nil + return 0 } -func (m *TemplateButtonReplyMessage) GetSelectedIndex() uint32 { - if m != nil && m.SelectedIndex != nil { - return *m.SelectedIndex +func (x *EphemeralSetting) GetEphemeralSettingTimestamp() int64 { + if x != nil && x.EphemeralSettingTimestamp != nil { + return *x.EphemeralSettingTimestamp } return 0 } -type CatalogSnapshot struct { - CatalogImage *ImageMessage `protobuf:"bytes,1,opt,name=catalogImage" json:"catalogImage,omitempty"` - Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` - Description *string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type DeviceSentMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CatalogSnapshot) Reset() { *m = CatalogSnapshot{} } -func (m *CatalogSnapshot) String() string { return proto.CompactTextString(m) } -func (*CatalogSnapshot) ProtoMessage() {} -func (*CatalogSnapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{42} + DestinationJid *string `protobuf:"bytes,1,opt,name=destinationJid" json:"destinationJid,omitempty"` + Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + Phash *string `protobuf:"bytes,3,opt,name=phash" json:"phash,omitempty"` + BroadcastEphemeralSettings []*EphemeralSetting `protobuf:"bytes,4,rep,name=broadcastEphemeralSettings" json:"broadcastEphemeralSettings,omitempty"` } -func (m *CatalogSnapshot) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CatalogSnapshot.Unmarshal(m, b) -} -func (m *CatalogSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CatalogSnapshot.Marshal(b, m, deterministic) +func (x *DeviceSentMessage) Reset() { + *x = DeviceSentMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CatalogSnapshot) XXX_Merge(src proto.Message) { - xxx_messageInfo_CatalogSnapshot.Merge(m, src) + +func (x *DeviceSentMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CatalogSnapshot) XXX_Size() int { - return xxx_messageInfo_CatalogSnapshot.Size(m) + +func (*DeviceSentMessage) ProtoMessage() {} + +func (x *DeviceSentMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *CatalogSnapshot) XXX_DiscardUnknown() { - xxx_messageInfo_CatalogSnapshot.DiscardUnknown(m) + +// Deprecated: Use DeviceSentMessage.ProtoReflect.Descriptor instead. +func (*DeviceSentMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{65} } -var xxx_messageInfo_CatalogSnapshot proto.InternalMessageInfo +func (x *DeviceSentMessage) GetDestinationJid() string { + if x != nil && x.DestinationJid != nil { + return *x.DestinationJid + } + return "" +} -func (m *CatalogSnapshot) GetCatalogImage() *ImageMessage { - if m != nil { - return m.CatalogImage +func (x *DeviceSentMessage) GetMessage() *Message { + if x != nil { + return x.Message } return nil } -func (m *CatalogSnapshot) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title +func (x *DeviceSentMessage) GetPhash() string { + if x != nil && x.Phash != nil { + return *x.Phash } return "" } -func (m *CatalogSnapshot) GetDescription() string { - if m != nil && m.Description != nil { - return *m.Description +func (x *DeviceSentMessage) GetBroadcastEphemeralSettings() []*EphemeralSetting { + if x != nil { + return x.BroadcastEphemeralSettings } - return "" + return nil } -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"` - FirstImageId *string `protobuf:"bytes,11,opt,name=firstImageId" json:"firstImageId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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{43} -} +type FutureProofMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ProductSnapshot) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProductSnapshot.Unmarshal(m, b) + Message *Message `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` } -func (m *ProductSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProductSnapshot.Marshal(b, m, deterministic) -} -func (m *ProductSnapshot) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProductSnapshot.Merge(m, src) -} -func (m *ProductSnapshot) XXX_Size() int { - return xxx_messageInfo_ProductSnapshot.Size(m) + +func (x *FutureProofMessage) Reset() { + *x = FutureProofMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProductSnapshot) XXX_DiscardUnknown() { - xxx_messageInfo_ProductSnapshot.DiscardUnknown(m) + +func (x *FutureProofMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ProductSnapshot proto.InternalMessageInfo +func (*FutureProofMessage) ProtoMessage() {} -func (m *ProductSnapshot) GetProductImage() *ImageMessage { - if m != nil { - return m.ProductImage +func (x *FutureProofMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ProductSnapshot) GetProductId() string { - if m != nil && m.ProductId != nil { - return *m.ProductId - } - return "" +// Deprecated: Use FutureProofMessage.ProtoReflect.Descriptor instead. +func (*FutureProofMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{66} } -func (m *ProductSnapshot) GetTitle() string { - if m != nil && m.Title != nil { - return *m.Title +func (x *FutureProofMessage) GetMessage() *Message { + if x != nil { + return x.Message } - return "" + return nil } -func (m *ProductSnapshot) GetDescription() string { - if m != nil && m.Description != nil { - return *m.Description - } - return "" -} +type ButtonText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ProductSnapshot) GetCurrencyCode() string { - if m != nil && m.CurrencyCode != nil { - return *m.CurrencyCode - } - return "" + DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"` } -func (m *ProductSnapshot) GetPriceAmount1000() int64 { - if m != nil && m.PriceAmount1000 != nil { - return *m.PriceAmount1000 +func (x *ButtonText) Reset() { + *x = ButtonText{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *ProductSnapshot) GetRetailerId() string { - if m != nil && m.RetailerId != nil { - return *m.RetailerId - } - return "" +func (x *ButtonText) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ProductSnapshot) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url +func (*ButtonText) ProtoMessage() {} + +func (x *ButtonText) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *ProductSnapshot) GetProductImageCount() uint32 { - if m != nil && m.ProductImageCount != nil { - return *m.ProductImageCount - } - return 0 +// Deprecated: Use ButtonText.ProtoReflect.Descriptor instead. +func (*ButtonText) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{67} } -func (m *ProductSnapshot) GetFirstImageId() string { - if m != nil && m.FirstImageId != nil { - return *m.FirstImageId +func (x *ButtonText) GetDisplayText() string { + if x != nil && x.DisplayText != nil { + return *x.DisplayText } return "" } -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"` - Catalog *CatalogSnapshot `protobuf:"bytes,4,opt,name=catalog" json:"catalog,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 *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{44} -} +type Button struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ProductMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ProductMessage.Unmarshal(m, b) -} -func (m *ProductMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ProductMessage.Marshal(b, m, deterministic) -} -func (m *ProductMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProductMessage.Merge(m, src) + ButtonId *string `protobuf:"bytes,1,opt,name=buttonId" json:"buttonId,omitempty"` + ButtonText *ButtonText `protobuf:"bytes,2,opt,name=buttonText" json:"buttonText,omitempty"` } -func (m *ProductMessage) XXX_Size() int { - return xxx_messageInfo_ProductMessage.Size(m) + +func (x *Button) Reset() { + *x = Button{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ProductMessage) XXX_DiscardUnknown() { - xxx_messageInfo_ProductMessage.DiscardUnknown(m) + +func (x *Button) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_ProductMessage proto.InternalMessageInfo +func (*Button) ProtoMessage() {} -func (m *ProductMessage) GetProduct() *ProductSnapshot { - if m != nil { - return m.Product +func (x *Button) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *ProductMessage) GetBusinessOwnerJid() string { - if m != nil && m.BusinessOwnerJid != nil { - return *m.BusinessOwnerJid - } - return "" +// Deprecated: Use Button.ProtoReflect.Descriptor instead. +func (*Button) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{68} } -func (m *ProductMessage) GetCatalog() *CatalogSnapshot { - if m != nil { - return m.Catalog +func (x *Button) GetButtonId() string { + if x != nil && x.ButtonId != nil { + return *x.ButtonId } - return nil + return "" } -func (m *ProductMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *Button) GetButtonText() *ButtonText { + if x != nil { + return x.ButtonText } return nil } -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"` - ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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{45} -} +type ButtonsMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupInviteMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInviteMessage.Unmarshal(m, b) + ContentText *string `protobuf:"bytes,6,opt,name=contentText" json:"contentText,omitempty"` + FooterText *string `protobuf:"bytes,7,opt,name=footerText" json:"footerText,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,8,opt,name=contextInfo" json:"contextInfo,omitempty"` + Buttons []*Button `protobuf:"bytes,9,rep,name=buttons" json:"buttons,omitempty"` + // Types that are assignable to Title: + // *ButtonsMessage_TitleText + // *ButtonsMessage_DocumentMessage + // *ButtonsMessage_ImageMessage + // *ButtonsMessage_VideoMessage + // *ButtonsMessage_LocationMessage + Title isButtonsMessage_Title `protobuf_oneof:"title"` } -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 (x *ButtonsMessage) Reset() { + *x = ButtonsMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupInviteMessage) XXX_Size() int { - return xxx_messageInfo_GroupInviteMessage.Size(m) + +func (x *ButtonsMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupInviteMessage) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInviteMessage.DiscardUnknown(m) + +func (*ButtonsMessage) ProtoMessage() {} + +func (x *ButtonsMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupInviteMessage proto.InternalMessageInfo +// Deprecated: Use ButtonsMessage.ProtoReflect.Descriptor instead. +func (*ButtonsMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{69} +} -func (m *GroupInviteMessage) GetGroupJid() string { - if m != nil && m.GroupJid != nil { - return *m.GroupJid +func (x *ButtonsMessage) GetContentText() string { + if x != nil && x.ContentText != nil { + return *x.ContentText } return "" } -func (m *GroupInviteMessage) GetInviteCode() string { - if m != nil && m.InviteCode != nil { - return *m.InviteCode +func (x *ButtonsMessage) GetFooterText() string { + if x != nil && x.FooterText != nil { + return *x.FooterText } return "" } -func (m *GroupInviteMessage) GetInviteExpiration() int64 { - if m != nil && m.InviteExpiration != nil { - return *m.InviteExpiration +func (x *ButtonsMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } - return 0 + return nil } -func (m *GroupInviteMessage) GetGroupName() string { - if m != nil && m.GroupName != nil { - return *m.GroupName +func (x *ButtonsMessage) GetButtons() []*Button { + if x != nil { + return x.Buttons } - return "" + return nil } -func (m *GroupInviteMessage) GetJpegThumbnail() []byte { +func (m *ButtonsMessage) GetTitle() isButtonsMessage_Title { if m != nil { - return m.JpegThumbnail + return m.Title } return nil } -func (m *GroupInviteMessage) GetCaption() string { - if m != nil && m.Caption != nil { - return *m.Caption +func (x *ButtonsMessage) GetTitleText() string { + if x, ok := x.GetTitle().(*ButtonsMessage_TitleText); ok { + return x.TitleText } return "" } -func (m *GroupInviteMessage) GetContextInfo() *ContextInfo { - if m != nil { - return m.ContextInfo +func (x *ButtonsMessage) GetDocumentMessage() *DocumentMessage { + if x, ok := x.GetTitle().(*ButtonsMessage_DocumentMessage); ok { + return x.DocumentMessage } return nil } -type DeviceSentMessage struct { - DestinationJid *string `protobuf:"bytes,1,opt,name=destinationJid" json:"destinationJid,omitempty"` - Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *ButtonsMessage) GetImageMessage() *ImageMessage { + if x, ok := x.GetTitle().(*ButtonsMessage_ImageMessage); ok { + return x.ImageMessage + } + return nil } -func (m *DeviceSentMessage) Reset() { *m = DeviceSentMessage{} } -func (m *DeviceSentMessage) String() string { return proto.CompactTextString(m) } -func (*DeviceSentMessage) ProtoMessage() {} -func (*DeviceSentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{46} +func (x *ButtonsMessage) GetVideoMessage() *VideoMessage { + if x, ok := x.GetTitle().(*ButtonsMessage_VideoMessage); ok { + return x.VideoMessage + } + return nil } -func (m *DeviceSentMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeviceSentMessage.Unmarshal(m, b) -} -func (m *DeviceSentMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeviceSentMessage.Marshal(b, m, deterministic) -} -func (m *DeviceSentMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeviceSentMessage.Merge(m, src) +func (x *ButtonsMessage) GetLocationMessage() *LocationMessage { + if x, ok := x.GetTitle().(*ButtonsMessage_LocationMessage); ok { + return x.LocationMessage + } + return nil } -func (m *DeviceSentMessage) XXX_Size() int { - return xxx_messageInfo_DeviceSentMessage.Size(m) + +type isButtonsMessage_Title interface { + isButtonsMessage_Title() } -func (m *DeviceSentMessage) XXX_DiscardUnknown() { - xxx_messageInfo_DeviceSentMessage.DiscardUnknown(m) + +type ButtonsMessage_TitleText struct { + TitleText string `protobuf:"bytes,1,opt,name=titleText,oneof"` } -var xxx_messageInfo_DeviceSentMessage proto.InternalMessageInfo +type ButtonsMessage_DocumentMessage struct { + DocumentMessage *DocumentMessage `protobuf:"bytes,2,opt,name=documentMessage,oneof"` +} -func (m *DeviceSentMessage) GetDestinationJid() string { - if m != nil && m.DestinationJid != nil { - return *m.DestinationJid - } - return "" +type ButtonsMessage_ImageMessage struct { + ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"` } -func (m *DeviceSentMessage) GetMessage() *Message { - if m != nil { - return m.Message - } - return nil +type ButtonsMessage_VideoMessage struct { + VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"` } -type DeviceSyncMessage struct { - SerializedXmlBytes []byte `protobuf:"bytes,1,opt,name=serializedXmlBytes" json:"serializedXmlBytes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type ButtonsMessage_LocationMessage struct { + LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"` } -func (m *DeviceSyncMessage) Reset() { *m = DeviceSyncMessage{} } -func (m *DeviceSyncMessage) String() string { return proto.CompactTextString(m) } -func (*DeviceSyncMessage) ProtoMessage() {} -func (*DeviceSyncMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{47} +func (*ButtonsMessage_TitleText) isButtonsMessage_Title() {} + +func (*ButtonsMessage_DocumentMessage) isButtonsMessage_Title() {} + +func (*ButtonsMessage_ImageMessage) isButtonsMessage_Title() {} + +func (*ButtonsMessage_VideoMessage) isButtonsMessage_Title() {} + +func (*ButtonsMessage_LocationMessage) isButtonsMessage_Title() {} + +type ButtonsResponseMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SelectedButtonId *string `protobuf:"bytes,1,opt,name=selectedButtonId" json:"selectedButtonId,omitempty"` + SelectedDisplayText *string `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"` + ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"` } -func (m *DeviceSyncMessage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeviceSyncMessage.Unmarshal(m, b) +func (x *ButtonsResponseMessage) Reset() { + *x = ButtonsResponseMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeviceSyncMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeviceSyncMessage.Marshal(b, m, deterministic) + +func (x *ButtonsResponseMessage) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DeviceSyncMessage) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeviceSyncMessage.Merge(m, src) + +func (*ButtonsResponseMessage) ProtoMessage() {} + +func (x *ButtonsResponseMessage) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *DeviceSyncMessage) XXX_Size() int { - return xxx_messageInfo_DeviceSyncMessage.Size(m) + +// Deprecated: Use ButtonsResponseMessage.ProtoReflect.Descriptor instead. +func (*ButtonsResponseMessage) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{70} } -func (m *DeviceSyncMessage) XXX_DiscardUnknown() { - xxx_messageInfo_DeviceSyncMessage.DiscardUnknown(m) + +func (x *ButtonsResponseMessage) GetSelectedButtonId() string { + if x != nil && x.SelectedButtonId != nil { + return *x.SelectedButtonId + } + return "" } -var xxx_messageInfo_DeviceSyncMessage proto.InternalMessageInfo +func (x *ButtonsResponseMessage) GetSelectedDisplayText() string { + if x != nil && x.SelectedDisplayText != nil { + return *x.SelectedDisplayText + } + return "" +} -func (m *DeviceSyncMessage) GetSerializedXmlBytes() []byte { - if m != nil { - return m.SerializedXmlBytes +func (x *ButtonsResponseMessage) GetContextInfo() *ContextInfo { + if x != nil { + return x.ContextInfo } return nil } type Message struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Conversation *string `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` SenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=senderKeyDistributionMessage" json:"senderKeyDistributionMessage,omitempty"` ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage" json:"imageMessage,omitempty"` @@ -4936,1596 +7765,4561 @@ type Message struct { TemplateButtonReplyMessage *TemplateButtonReplyMessage `protobuf:"bytes,29,opt,name=templateButtonReplyMessage" json:"templateButtonReplyMessage,omitempty"` ProductMessage *ProductMessage `protobuf:"bytes,30,opt,name=productMessage" json:"productMessage,omitempty"` DeviceSentMessage *DeviceSentMessage `protobuf:"bytes,31,opt,name=deviceSentMessage" json:"deviceSentMessage,omitempty"` - DeviceSyncMessage *DeviceSyncMessage `protobuf:"bytes,32,opt,name=deviceSyncMessage" json:"deviceSyncMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + MessageContextInfo *MessageContextInfo `protobuf:"bytes,35,opt,name=messageContextInfo" json:"messageContextInfo,omitempty"` + ListMessage *ListMessage `protobuf:"bytes,36,opt,name=listMessage" json:"listMessage,omitempty"` + ViewOnceMessage *FutureProofMessage `protobuf:"bytes,37,opt,name=viewOnceMessage" json:"viewOnceMessage,omitempty"` + OrderMessage *OrderMessage `protobuf:"bytes,38,opt,name=orderMessage" json:"orderMessage,omitempty"` + ListResponseMessage *ListResponseMessage `protobuf:"bytes,39,opt,name=listResponseMessage" json:"listResponseMessage,omitempty"` + EphemeralMessage *FutureProofMessage `protobuf:"bytes,40,opt,name=ephemeralMessage" json:"ephemeralMessage,omitempty"` + InvoiceMessage *InvoiceMessage `protobuf:"bytes,41,opt,name=invoiceMessage" json:"invoiceMessage,omitempty"` + ButtonsMessage *ButtonsMessage `protobuf:"bytes,42,opt,name=buttonsMessage" json:"buttonsMessage,omitempty"` + ButtonsResponseMessage *ButtonsResponseMessage `protobuf:"bytes,43,opt,name=buttonsResponseMessage" json:"buttonsResponseMessage,omitempty"` +} + +func (x *Message) Reset() { + *x = Message{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Message) Reset() { *m = Message{} } -func (m *Message) String() string { return proto.CompactTextString(m) } -func (*Message) ProtoMessage() {} +func (x *Message) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Message) ProtoMessage() {} + +func (x *Message) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{48} + return file_def_proto_rawDescGZIP(), []int{71} } -func (m *Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Message.Unmarshal(m, b) +func (x *Message) GetConversation() string { + if x != nil && x.Conversation != nil { + return *x.Conversation + } + return "" } -func (m *Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Message.Marshal(b, m, deterministic) + +func (x *Message) GetSenderKeyDistributionMessage() *SenderKeyDistributionMessage { + if x != nil { + return x.SenderKeyDistributionMessage + } + return nil } -func (m *Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_Message.Merge(m, src) + +func (x *Message) GetImageMessage() *ImageMessage { + if x != nil { + return x.ImageMessage + } + return nil } -func (m *Message) XXX_Size() int { - return xxx_messageInfo_Message.Size(m) + +func (x *Message) GetContactMessage() *ContactMessage { + if x != nil { + return x.ContactMessage + } + return nil } -func (m *Message) XXX_DiscardUnknown() { - xxx_messageInfo_Message.DiscardUnknown(m) + +func (x *Message) GetLocationMessage() *LocationMessage { + if x != nil { + return x.LocationMessage + } + return nil } -var xxx_messageInfo_Message proto.InternalMessageInfo +func (x *Message) GetExtendedTextMessage() *ExtendedTextMessage { + if x != nil { + return x.ExtendedTextMessage + } + return nil +} -func (m *Message) GetConversation() string { - if m != nil && m.Conversation != nil { - return *m.Conversation +func (x *Message) GetDocumentMessage() *DocumentMessage { + if x != nil { + return x.DocumentMessage } - return "" + return nil } -func (m *Message) GetSenderKeyDistributionMessage() *SenderKeyDistributionMessage { - if m != nil { - return m.SenderKeyDistributionMessage +func (x *Message) GetAudioMessage() *AudioMessage { + if x != nil { + return x.AudioMessage } return nil } -func (m *Message) GetImageMessage() *ImageMessage { - if m != nil { - return m.ImageMessage +func (x *Message) GetVideoMessage() *VideoMessage { + if x != nil { + return x.VideoMessage } return nil } -func (m *Message) GetContactMessage() *ContactMessage { - if m != nil { - return m.ContactMessage +func (x *Message) GetCall() *Call { + if x != nil { + return x.Call } return nil } -func (m *Message) GetLocationMessage() *LocationMessage { - if m != nil { - return m.LocationMessage +func (x *Message) GetChat() *Chat { + if x != nil { + return x.Chat } return nil } -func (m *Message) GetExtendedTextMessage() *ExtendedTextMessage { - if m != nil { - return m.ExtendedTextMessage +func (x *Message) GetProtocolMessage() *ProtocolMessage { + if x != nil { + return x.ProtocolMessage } return nil } -func (m *Message) GetDocumentMessage() *DocumentMessage { - if m != nil { - return m.DocumentMessage +func (x *Message) GetContactsArrayMessage() *ContactsArrayMessage { + if x != nil { + return x.ContactsArrayMessage } return nil } -func (m *Message) GetAudioMessage() *AudioMessage { - if m != nil { - return m.AudioMessage +func (x *Message) GetHighlyStructuredMessage() *HighlyStructuredMessage { + if x != nil { + return x.HighlyStructuredMessage } return nil } -func (m *Message) GetVideoMessage() *VideoMessage { - if m != nil { - return m.VideoMessage +func (x *Message) GetFastRatchetKeySenderKeyDistributionMessage() *SenderKeyDistributionMessage { + if x != nil { + return x.FastRatchetKeySenderKeyDistributionMessage } return nil } -func (m *Message) GetCall() *Call { - if m != nil { - return m.Call +func (x *Message) GetSendPaymentMessage() *SendPaymentMessage { + if x != nil { + return x.SendPaymentMessage } return nil } -func (m *Message) GetChat() *Chat { - if m != nil { - return m.Chat +func (x *Message) GetLiveLocationMessage() *LiveLocationMessage { + if x != nil { + return x.LiveLocationMessage } return nil } -func (m *Message) GetProtocolMessage() *ProtocolMessage { - if m != nil { - return m.ProtocolMessage +func (x *Message) GetRequestPaymentMessage() *RequestPaymentMessage { + if x != nil { + return x.RequestPaymentMessage } return nil } -func (m *Message) GetContactsArrayMessage() *ContactsArrayMessage { - if m != nil { - return m.ContactsArrayMessage +func (x *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage { + if x != nil { + return x.DeclinePaymentRequestMessage } return nil } -func (m *Message) GetHighlyStructuredMessage() *HighlyStructuredMessage { - if m != nil { - return m.HighlyStructuredMessage +func (x *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage { + if x != nil { + return x.CancelPaymentRequestMessage } return nil } -func (m *Message) GetFastRatchetKeySenderKeyDistributionMessage() *SenderKeyDistributionMessage { - if m != nil { - return m.FastRatchetKeySenderKeyDistributionMessage +func (x *Message) GetTemplateMessage() *TemplateMessage { + if x != nil { + return x.TemplateMessage } return nil } -func (m *Message) GetSendPaymentMessage() *SendPaymentMessage { - if m != nil { - return m.SendPaymentMessage +func (x *Message) GetStickerMessage() *StickerMessage { + if x != nil { + return x.StickerMessage } return nil } -func (m *Message) GetLiveLocationMessage() *LiveLocationMessage { - if m != nil { - return m.LiveLocationMessage +func (x *Message) GetGroupInviteMessage() *GroupInviteMessage { + if x != nil { + return x.GroupInviteMessage } return nil } -func (m *Message) GetRequestPaymentMessage() *RequestPaymentMessage { - if m != nil { - return m.RequestPaymentMessage +func (x *Message) GetTemplateButtonReplyMessage() *TemplateButtonReplyMessage { + if x != nil { + return x.TemplateButtonReplyMessage } return nil } -func (m *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage { - if m != nil { - return m.DeclinePaymentRequestMessage +func (x *Message) GetProductMessage() *ProductMessage { + if x != nil { + return x.ProductMessage } return nil } -func (m *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage { - if m != nil { - return m.CancelPaymentRequestMessage +func (x *Message) GetDeviceSentMessage() *DeviceSentMessage { + if x != nil { + return x.DeviceSentMessage } return nil } -func (m *Message) GetTemplateMessage() *TemplateMessage { - if m != nil { - return m.TemplateMessage +func (x *Message) GetMessageContextInfo() *MessageContextInfo { + if x != nil { + return x.MessageContextInfo } return nil } -func (m *Message) GetStickerMessage() *StickerMessage { - if m != nil { - return m.StickerMessage +func (x *Message) GetListMessage() *ListMessage { + if x != nil { + return x.ListMessage } return nil } -func (m *Message) GetGroupInviteMessage() *GroupInviteMessage { - if m != nil { - return m.GroupInviteMessage +func (x *Message) GetViewOnceMessage() *FutureProofMessage { + if x != nil { + return x.ViewOnceMessage } return nil } -func (m *Message) GetTemplateButtonReplyMessage() *TemplateButtonReplyMessage { - if m != nil { - return m.TemplateButtonReplyMessage +func (x *Message) GetOrderMessage() *OrderMessage { + if x != nil { + return x.OrderMessage } return nil } -func (m *Message) GetProductMessage() *ProductMessage { - if m != nil { - return m.ProductMessage +func (x *Message) GetListResponseMessage() *ListResponseMessage { + if x != nil { + return x.ListResponseMessage } return nil } -func (m *Message) GetDeviceSentMessage() *DeviceSentMessage { - if m != nil { - return m.DeviceSentMessage +func (x *Message) GetEphemeralMessage() *FutureProofMessage { + if x != nil { + return x.EphemeralMessage } return nil } -func (m *Message) GetDeviceSyncMessage() *DeviceSyncMessage { - if m != nil { - return m.DeviceSyncMessage +func (x *Message) GetInvoiceMessage() *InvoiceMessage { + if x != nil { + return x.InvoiceMessage } return nil } -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 *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{49} +func (x *Message) GetButtonsMessage() *ButtonsMessage { + if x != nil { + return x.ButtonsMessage + } + return nil } -func (m *MessageKey) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageKey.Unmarshal(m, b) +func (x *Message) GetButtonsResponseMessage() *ButtonsResponseMessage { + if x != nil { + return x.ButtonsResponseMessage + } + return nil } -func (m *MessageKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageKey.Marshal(b, m, deterministic) + +type MessageKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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"` } -func (m *MessageKey) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageKey.Merge(m, src) + +func (x *MessageKey) Reset() { + *x = MessageKey{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MessageKey) XXX_Size() int { - return xxx_messageInfo_MessageKey.Size(m) + +func (x *MessageKey) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MessageKey) XXX_DiscardUnknown() { - xxx_messageInfo_MessageKey.DiscardUnknown(m) + +func (*MessageKey) ProtoMessage() {} + +func (x *MessageKey) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MessageKey proto.InternalMessageInfo +// Deprecated: Use MessageKey.ProtoReflect.Descriptor instead. +func (*MessageKey) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{72} +} -func (m *MessageKey) GetRemoteJid() string { - if m != nil && m.RemoteJid != nil { - return *m.RemoteJid +func (x *MessageKey) GetRemoteJid() string { + if x != nil && x.RemoteJid != nil { + return *x.RemoteJid } return "" } -func (m *MessageKey) GetFromMe() bool { - if m != nil && m.FromMe != nil { - return *m.FromMe +func (x *MessageKey) GetFromMe() bool { + if x != nil && x.FromMe != nil { + return *x.FromMe } return false } -func (m *MessageKey) GetId() string { - if m != nil && m.Id != nil { - return *m.Id +func (x *MessageKey) GetId() string { + if x != nil && x.Id != nil { + return *x.Id } return "" } -func (m *MessageKey) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant +func (x *MessageKey) GetParticipant() string { + if x != nil && x.Participant != nil { + return *x.Participant } return "" } 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"` - GroupsV4JoinPermission *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,25,opt,name=groupsV4JoinPermission,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"groupsV4JoinPermission,omitempty"` - RecentStickers *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,26,opt,name=recentStickers,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"recentStickers,omitempty"` - Catalog *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,27,opt,name=catalog,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"catalog,omitempty"` - StarredStickers *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,28,opt,name=starredStickers,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"starredStickers,omitempty"` - VoipGroupCall *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,29,opt,name=voipGroupCall,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"voipGroupCall,omitempty"` - TemplateMessage *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,30,opt,name=templateMessage,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"templateMessage,omitempty"` - TemplateMessageInteractivity *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,31,opt,name=templateMessageInteractivity,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"templateMessageInteractivity,omitempty"` - EphemeralMessages *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,32,opt,name=ephemeralMessages,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"ephemeralMessages,omitempty"` - E2ENotificationSync *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,33,opt,name=e2ENotificationSync,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"e2ENotificationSync,omitempty"` - RecentStickersV2 *WebFeatures_WEB_FEATURES_FLAG `protobuf:"varint,34,opt,name=recentStickersV2,enum=proto.WebFeatures_WEB_FEATURES_FLAG" json:"recentStickersV2,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() {} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LabelsDisplay *WebFeatures_WebFeaturesFlag `protobuf:"varint,1,opt,name=labelsDisplay,enum=proto.WebFeatures_WebFeaturesFlag" json:"labelsDisplay,omitempty"` + VoipIndividualOutgoing *WebFeatures_WebFeaturesFlag `protobuf:"varint,2,opt,name=voipIndividualOutgoing,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualOutgoing,omitempty"` + GroupsV3 *WebFeatures_WebFeaturesFlag `protobuf:"varint,3,opt,name=groupsV3,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV3,omitempty"` + GroupsV3Create *WebFeatures_WebFeaturesFlag `protobuf:"varint,4,opt,name=groupsV3Create,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV3Create,omitempty"` + ChangeNumberV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,5,opt,name=changeNumberV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"changeNumberV2,omitempty"` + QueryStatusV3Thumbnail *WebFeatures_WebFeaturesFlag `protobuf:"varint,6,opt,name=queryStatusV3Thumbnail,enum=proto.WebFeatures_WebFeaturesFlag" json:"queryStatusV3Thumbnail,omitempty"` + LiveLocations *WebFeatures_WebFeaturesFlag `protobuf:"varint,7,opt,name=liveLocations,enum=proto.WebFeatures_WebFeaturesFlag" json:"liveLocations,omitempty"` + QueryVname *WebFeatures_WebFeaturesFlag `protobuf:"varint,8,opt,name=queryVname,enum=proto.WebFeatures_WebFeaturesFlag" json:"queryVname,omitempty"` + VoipIndividualIncoming *WebFeatures_WebFeaturesFlag `protobuf:"varint,9,opt,name=voipIndividualIncoming,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualIncoming,omitempty"` + QuickRepliesQuery *WebFeatures_WebFeaturesFlag `protobuf:"varint,10,opt,name=quickRepliesQuery,enum=proto.WebFeatures_WebFeaturesFlag" json:"quickRepliesQuery,omitempty"` + Payments *WebFeatures_WebFeaturesFlag `protobuf:"varint,11,opt,name=payments,enum=proto.WebFeatures_WebFeaturesFlag" json:"payments,omitempty"` + StickerPackQuery *WebFeatures_WebFeaturesFlag `protobuf:"varint,12,opt,name=stickerPackQuery,enum=proto.WebFeatures_WebFeaturesFlag" json:"stickerPackQuery,omitempty"` + LiveLocationsFinal *WebFeatures_WebFeaturesFlag `protobuf:"varint,13,opt,name=liveLocationsFinal,enum=proto.WebFeatures_WebFeaturesFlag" json:"liveLocationsFinal,omitempty"` + LabelsEdit *WebFeatures_WebFeaturesFlag `protobuf:"varint,14,opt,name=labelsEdit,enum=proto.WebFeatures_WebFeaturesFlag" json:"labelsEdit,omitempty"` + MediaUpload *WebFeatures_WebFeaturesFlag `protobuf:"varint,15,opt,name=mediaUpload,enum=proto.WebFeatures_WebFeaturesFlag" json:"mediaUpload,omitempty"` + MediaUploadRichQuickReplies *WebFeatures_WebFeaturesFlag `protobuf:"varint,18,opt,name=mediaUploadRichQuickReplies,enum=proto.WebFeatures_WebFeaturesFlag" json:"mediaUploadRichQuickReplies,omitempty"` + VnameV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,19,opt,name=vnameV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"vnameV2,omitempty"` + VideoPlaybackUrl *WebFeatures_WebFeaturesFlag `protobuf:"varint,20,opt,name=videoPlaybackUrl,enum=proto.WebFeatures_WebFeaturesFlag" json:"videoPlaybackUrl,omitempty"` + StatusRanking *WebFeatures_WebFeaturesFlag `protobuf:"varint,21,opt,name=statusRanking,enum=proto.WebFeatures_WebFeaturesFlag" json:"statusRanking,omitempty"` + VoipIndividualVideo *WebFeatures_WebFeaturesFlag `protobuf:"varint,22,opt,name=voipIndividualVideo,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualVideo,omitempty"` + ThirdPartyStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,23,opt,name=thirdPartyStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"thirdPartyStickers,omitempty"` + FrequentlyForwardedSetting *WebFeatures_WebFeaturesFlag `protobuf:"varint,24,opt,name=frequentlyForwardedSetting,enum=proto.WebFeatures_WebFeaturesFlag" json:"frequentlyForwardedSetting,omitempty"` + GroupsV4JoinPermission *WebFeatures_WebFeaturesFlag `protobuf:"varint,25,opt,name=groupsV4JoinPermission,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV4JoinPermission,omitempty"` + RecentStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,26,opt,name=recentStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickers,omitempty"` + Catalog *WebFeatures_WebFeaturesFlag `protobuf:"varint,27,opt,name=catalog,enum=proto.WebFeatures_WebFeaturesFlag" json:"catalog,omitempty"` + StarredStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,28,opt,name=starredStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"starredStickers,omitempty"` + VoipGroupCall *WebFeatures_WebFeaturesFlag `protobuf:"varint,29,opt,name=voipGroupCall,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipGroupCall,omitempty"` + TemplateMessage *WebFeatures_WebFeaturesFlag `protobuf:"varint,30,opt,name=templateMessage,enum=proto.WebFeatures_WebFeaturesFlag" json:"templateMessage,omitempty"` + TemplateMessageInteractivity *WebFeatures_WebFeaturesFlag `protobuf:"varint,31,opt,name=templateMessageInteractivity,enum=proto.WebFeatures_WebFeaturesFlag" json:"templateMessageInteractivity,omitempty"` + EphemeralMessages *WebFeatures_WebFeaturesFlag `protobuf:"varint,32,opt,name=ephemeralMessages,enum=proto.WebFeatures_WebFeaturesFlag" json:"ephemeralMessages,omitempty"` + E2ENotificationSync *WebFeatures_WebFeaturesFlag `protobuf:"varint,33,opt,name=e2ENotificationSync,enum=proto.WebFeatures_WebFeaturesFlag" json:"e2ENotificationSync,omitempty"` + RecentStickersV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,34,opt,name=recentStickersV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickersV2,omitempty"` + SyncdRelease1 *WebFeatures_WebFeaturesFlag `protobuf:"varint,35,opt,name=syncdRelease1,enum=proto.WebFeatures_WebFeaturesFlag" json:"syncdRelease1,omitempty"` + RecentStickersV3 *WebFeatures_WebFeaturesFlag `protobuf:"varint,36,opt,name=recentStickersV3,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickersV3,omitempty"` + UserNotice *WebFeatures_WebFeaturesFlag `protobuf:"varint,37,opt,name=userNotice,enum=proto.WebFeatures_WebFeaturesFlag" json:"userNotice,omitempty"` + SyncdRelease11 *WebFeatures_WebFeaturesFlag `protobuf:"varint,38,opt,name=syncdRelease11,enum=proto.WebFeatures_WebFeaturesFlag" json:"syncdRelease11,omitempty"` + Support *WebFeatures_WebFeaturesFlag `protobuf:"varint,39,opt,name=support,enum=proto.WebFeatures_WebFeaturesFlag" json:"support,omitempty"` + GroupUiiCleanup *WebFeatures_WebFeaturesFlag `protobuf:"varint,40,opt,name=groupUiiCleanup,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupUiiCleanup,omitempty"` + GroupDogfoodingInternalOnly *WebFeatures_WebFeaturesFlag `protobuf:"varint,41,opt,name=groupDogfoodingInternalOnly,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupDogfoodingInternalOnly,omitempty"` + SettingsSync *WebFeatures_WebFeaturesFlag `protobuf:"varint,42,opt,name=settingsSync,enum=proto.WebFeatures_WebFeaturesFlag" json:"settingsSync,omitempty"` +} + +func (x *WebFeatures) Reset() { + *x = WebFeatures{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebFeatures) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebFeatures) ProtoMessage() {} + +func (x *WebFeatures) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebFeatures.ProtoReflect.Descriptor instead. func (*WebFeatures) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{50} + return file_def_proto_rawDescGZIP(), []int{73} } -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) +func (x *WebFeatures) GetLabelsDisplay() WebFeatures_WebFeaturesFlag { + if x != nil && x.LabelsDisplay != nil { + return *x.LabelsDisplay + } + return WebFeatures_NOT_STARTED } -var xxx_messageInfo_WebFeatures proto.InternalMessageInfo - -func (m *WebFeatures) GetLabelsDisplay() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.LabelsDisplay != nil { - return *m.LabelsDisplay +func (x *WebFeatures) GetVoipIndividualOutgoing() WebFeatures_WebFeaturesFlag { + if x != nil && x.VoipIndividualOutgoing != nil { + return *x.VoipIndividualOutgoing } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVoipIndividualOutgoing() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VoipIndividualOutgoing != nil { - return *m.VoipIndividualOutgoing +func (x *WebFeatures) GetGroupsV3() WebFeatures_WebFeaturesFlag { + if x != nil && x.GroupsV3 != nil { + return *x.GroupsV3 } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetGroupsV3() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.GroupsV3 != nil { - return *m.GroupsV3 +func (x *WebFeatures) GetGroupsV3Create() WebFeatures_WebFeaturesFlag { + if x != nil && x.GroupsV3Create != nil { + return *x.GroupsV3Create } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetGroupsV3Create() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.GroupsV3Create != nil { - return *m.GroupsV3Create +func (x *WebFeatures) GetChangeNumberV2() WebFeatures_WebFeaturesFlag { + if x != nil && x.ChangeNumberV2 != nil { + return *x.ChangeNumberV2 } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetChangeNumberV2() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.ChangeNumberV2 != nil { - return *m.ChangeNumberV2 +func (x *WebFeatures) GetQueryStatusV3Thumbnail() WebFeatures_WebFeaturesFlag { + if x != nil && x.QueryStatusV3Thumbnail != nil { + return *x.QueryStatusV3Thumbnail } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetQueryStatusV3Thumbnail() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.QueryStatusV3Thumbnail != nil { - return *m.QueryStatusV3Thumbnail +func (x *WebFeatures) GetLiveLocations() WebFeatures_WebFeaturesFlag { + if x != nil && x.LiveLocations != nil { + return *x.LiveLocations } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetLiveLocations() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.LiveLocations != nil { - return *m.LiveLocations +func (x *WebFeatures) GetQueryVname() WebFeatures_WebFeaturesFlag { + if x != nil && x.QueryVname != nil { + return *x.QueryVname } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetQueryVname() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.QueryVname != nil { - return *m.QueryVname +func (x *WebFeatures) GetVoipIndividualIncoming() WebFeatures_WebFeaturesFlag { + if x != nil && x.VoipIndividualIncoming != nil { + return *x.VoipIndividualIncoming } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVoipIndividualIncoming() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VoipIndividualIncoming != nil { - return *m.VoipIndividualIncoming +func (x *WebFeatures) GetQuickRepliesQuery() WebFeatures_WebFeaturesFlag { + if x != nil && x.QuickRepliesQuery != nil { + return *x.QuickRepliesQuery } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetQuickRepliesQuery() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.QuickRepliesQuery != nil { - return *m.QuickRepliesQuery +func (x *WebFeatures) GetPayments() WebFeatures_WebFeaturesFlag { + if x != nil && x.Payments != nil { + return *x.Payments } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetPayments() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.Payments != nil { - return *m.Payments +func (x *WebFeatures) GetStickerPackQuery() WebFeatures_WebFeaturesFlag { + if x != nil && x.StickerPackQuery != nil { + return *x.StickerPackQuery } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetStickerPackQuery() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.StickerPackQuery != nil { - return *m.StickerPackQuery +func (x *WebFeatures) GetLiveLocationsFinal() WebFeatures_WebFeaturesFlag { + if x != nil && x.LiveLocationsFinal != nil { + return *x.LiveLocationsFinal } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetLiveLocationsFinal() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.LiveLocationsFinal != nil { - return *m.LiveLocationsFinal +func (x *WebFeatures) GetLabelsEdit() WebFeatures_WebFeaturesFlag { + if x != nil && x.LabelsEdit != nil { + return *x.LabelsEdit } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetLabelsEdit() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.LabelsEdit != nil { - return *m.LabelsEdit +func (x *WebFeatures) GetMediaUpload() WebFeatures_WebFeaturesFlag { + if x != nil && x.MediaUpload != nil { + return *x.MediaUpload } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetMediaUpload() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.MediaUpload != nil { - return *m.MediaUpload +func (x *WebFeatures) GetMediaUploadRichQuickReplies() WebFeatures_WebFeaturesFlag { + if x != nil && x.MediaUploadRichQuickReplies != nil { + return *x.MediaUploadRichQuickReplies } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetMediaUploadRichQuickReplies() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.MediaUploadRichQuickReplies != nil { - return *m.MediaUploadRichQuickReplies +func (x *WebFeatures) GetVnameV2() WebFeatures_WebFeaturesFlag { + if x != nil && x.VnameV2 != nil { + return *x.VnameV2 } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVnameV2() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VnameV2 != nil { - return *m.VnameV2 +func (x *WebFeatures) GetVideoPlaybackUrl() WebFeatures_WebFeaturesFlag { + if x != nil && x.VideoPlaybackUrl != nil { + return *x.VideoPlaybackUrl } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVideoPlaybackUrl() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VideoPlaybackUrl != nil { - return *m.VideoPlaybackUrl +func (x *WebFeatures) GetStatusRanking() WebFeatures_WebFeaturesFlag { + if x != nil && x.StatusRanking != nil { + return *x.StatusRanking } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetStatusRanking() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.StatusRanking != nil { - return *m.StatusRanking +func (x *WebFeatures) GetVoipIndividualVideo() WebFeatures_WebFeaturesFlag { + if x != nil && x.VoipIndividualVideo != nil { + return *x.VoipIndividualVideo } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVoipIndividualVideo() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VoipIndividualVideo != nil { - return *m.VoipIndividualVideo +func (x *WebFeatures) GetThirdPartyStickers() WebFeatures_WebFeaturesFlag { + if x != nil && x.ThirdPartyStickers != nil { + return *x.ThirdPartyStickers } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetThirdPartyStickers() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.ThirdPartyStickers != nil { - return *m.ThirdPartyStickers +func (x *WebFeatures) GetFrequentlyForwardedSetting() WebFeatures_WebFeaturesFlag { + if x != nil && x.FrequentlyForwardedSetting != nil { + return *x.FrequentlyForwardedSetting } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetFrequentlyForwardedSetting() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.FrequentlyForwardedSetting != nil { - return *m.FrequentlyForwardedSetting +func (x *WebFeatures) GetGroupsV4JoinPermission() WebFeatures_WebFeaturesFlag { + if x != nil && x.GroupsV4JoinPermission != nil { + return *x.GroupsV4JoinPermission } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetGroupsV4JoinPermission() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.GroupsV4JoinPermission != nil { - return *m.GroupsV4JoinPermission +func (x *WebFeatures) GetRecentStickers() WebFeatures_WebFeaturesFlag { + if x != nil && x.RecentStickers != nil { + return *x.RecentStickers } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetRecentStickers() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.RecentStickers != nil { - return *m.RecentStickers +func (x *WebFeatures) GetCatalog() WebFeatures_WebFeaturesFlag { + if x != nil && x.Catalog != nil { + return *x.Catalog } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetCatalog() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.Catalog != nil { - return *m.Catalog +func (x *WebFeatures) GetStarredStickers() WebFeatures_WebFeaturesFlag { + if x != nil && x.StarredStickers != nil { + return *x.StarredStickers } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetStarredStickers() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.StarredStickers != nil { - return *m.StarredStickers +func (x *WebFeatures) GetVoipGroupCall() WebFeatures_WebFeaturesFlag { + if x != nil && x.VoipGroupCall != nil { + return *x.VoipGroupCall } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetVoipGroupCall() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.VoipGroupCall != nil { - return *m.VoipGroupCall +func (x *WebFeatures) GetTemplateMessage() WebFeatures_WebFeaturesFlag { + if x != nil && x.TemplateMessage != nil { + return *x.TemplateMessage } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetTemplateMessage() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.TemplateMessage != nil { - return *m.TemplateMessage +func (x *WebFeatures) GetTemplateMessageInteractivity() WebFeatures_WebFeaturesFlag { + if x != nil && x.TemplateMessageInteractivity != nil { + return *x.TemplateMessageInteractivity } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetTemplateMessageInteractivity() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.TemplateMessageInteractivity != nil { - return *m.TemplateMessageInteractivity +func (x *WebFeatures) GetEphemeralMessages() WebFeatures_WebFeaturesFlag { + if x != nil && x.EphemeralMessages != nil { + return *x.EphemeralMessages } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetEphemeralMessages() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.EphemeralMessages != nil { - return *m.EphemeralMessages +func (x *WebFeatures) GetE2ENotificationSync() WebFeatures_WebFeaturesFlag { + if x != nil && x.E2ENotificationSync != nil { + return *x.E2ENotificationSync } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetE2ENotificationSync() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.E2ENotificationSync != nil { - return *m.E2ENotificationSync +func (x *WebFeatures) GetRecentStickersV2() WebFeatures_WebFeaturesFlag { + if x != nil && x.RecentStickersV2 != nil { + return *x.RecentStickersV2 } return WebFeatures_NOT_STARTED } -func (m *WebFeatures) GetRecentStickersV2() WebFeatures_WEB_FEATURES_FLAG { - if m != nil && m.RecentStickersV2 != nil { - return *m.RecentStickersV2 +func (x *WebFeatures) GetSyncdRelease1() WebFeatures_WebFeaturesFlag { + if x != nil && x.SyncdRelease1 != nil { + return *x.SyncdRelease1 } return WebFeatures_NOT_STARTED } -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 (x *WebFeatures) GetRecentStickersV3() WebFeatures_WebFeaturesFlag { + if x != nil && x.RecentStickersV3 != nil { + return *x.RecentStickersV3 + } + return WebFeatures_NOT_STARTED } -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{51} +func (x *WebFeatures) GetUserNotice() WebFeatures_WebFeaturesFlag { + if x != nil && x.UserNotice != nil { + return *x.UserNotice + } + return WebFeatures_NOT_STARTED } -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 (m *TabletNotificationsInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_TabletNotificationsInfo.Merge(m, src) -} -func (m *TabletNotificationsInfo) XXX_Size() int { - return xxx_messageInfo_TabletNotificationsInfo.Size(m) -} -func (m *TabletNotificationsInfo) XXX_DiscardUnknown() { - xxx_messageInfo_TabletNotificationsInfo.DiscardUnknown(m) +func (x *WebFeatures) GetSyncdRelease11() WebFeatures_WebFeaturesFlag { + if x != nil && x.SyncdRelease11 != nil { + return *x.SyncdRelease11 + } + return WebFeatures_NOT_STARTED } -var xxx_messageInfo_TabletNotificationsInfo proto.InternalMessageInfo - -func (m *TabletNotificationsInfo) GetTimestamp() uint64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp +func (x *WebFeatures) GetSupport() WebFeatures_WebFeaturesFlag { + if x != nil && x.Support != nil { + return *x.Support } - return 0 + return WebFeatures_NOT_STARTED } -func (m *TabletNotificationsInfo) GetUnreadChats() uint32 { - if m != nil && m.UnreadChats != nil { - return *m.UnreadChats +func (x *WebFeatures) GetGroupUiiCleanup() WebFeatures_WebFeaturesFlag { + if x != nil && x.GroupUiiCleanup != nil { + return *x.GroupUiiCleanup } - return 0 + return WebFeatures_NOT_STARTED } -func (m *TabletNotificationsInfo) GetNotifyMessageCount() uint32 { - if m != nil && m.NotifyMessageCount != nil { - return *m.NotifyMessageCount +func (x *WebFeatures) GetGroupDogfoodingInternalOnly() WebFeatures_WebFeaturesFlag { + if x != nil && x.GroupDogfoodingInternalOnly != nil { + return *x.GroupDogfoodingInternalOnly } - return 0 + return WebFeatures_NOT_STARTED } -func (m *TabletNotificationsInfo) GetNotifyMessage() []*NotificationMessageInfo { - if m != nil { - return m.NotifyMessage +func (x *WebFeatures) GetSettingsSync() WebFeatures_WebFeaturesFlag { + if x != nil && x.SettingsSync != nil { + return *x.SettingsSync } - return nil + return WebFeatures_NOT_STARTED } 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_76fb0470a3b910d8, []int{52} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *NotificationMessageInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NotificationMessageInfo.Unmarshal(m, b) + 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"` } -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 (x *NotificationMessageInfo) Reset() { + *x = NotificationMessageInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *NotificationMessageInfo) XXX_Size() int { - return xxx_messageInfo_NotificationMessageInfo.Size(m) + +func (x *NotificationMessageInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *NotificationMessageInfo) XXX_DiscardUnknown() { - xxx_messageInfo_NotificationMessageInfo.DiscardUnknown(m) + +func (*NotificationMessageInfo) ProtoMessage() {} + +func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_NotificationMessageInfo proto.InternalMessageInfo +// Deprecated: Use NotificationMessageInfo.ProtoReflect.Descriptor instead. +func (*NotificationMessageInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{74} +} -func (m *NotificationMessageInfo) GetKey() *MessageKey { - if m != nil { - return m.Key +func (x *NotificationMessageInfo) GetKey() *MessageKey { + if x != nil { + return x.Key } return nil } -func (m *NotificationMessageInfo) GetMessage() *Message { - if m != nil { - return m.Message +func (x *NotificationMessageInfo) GetMessage() *Message { + if x != nil { + return x.Message } return nil } -func (m *NotificationMessageInfo) GetMessageTimestamp() uint64 { - if m != nil && m.MessageTimestamp != nil { - return *m.MessageTimestamp +func (x *NotificationMessageInfo) GetMessageTimestamp() uint64 { + if x != nil && x.MessageTimestamp != nil { + return *x.MessageTimestamp } return 0 } -func (m *NotificationMessageInfo) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant +func (x *NotificationMessageInfo) GetParticipant() string { + if x != nil && x.Participant != nil { + return *x.Participant } return "" } 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 *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{53} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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) + 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"` } -func (m *WebNotificationsInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_WebNotificationsInfo.Merge(m, src) + +func (x *WebNotificationsInfo) Reset() { + *x = WebNotificationsInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *WebNotificationsInfo) XXX_Size() int { - return xxx_messageInfo_WebNotificationsInfo.Size(m) + +func (x *WebNotificationsInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *WebNotificationsInfo) XXX_DiscardUnknown() { - xxx_messageInfo_WebNotificationsInfo.DiscardUnknown(m) + +func (*WebNotificationsInfo) ProtoMessage() {} + +func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_WebNotificationsInfo proto.InternalMessageInfo +// Deprecated: Use WebNotificationsInfo.ProtoReflect.Descriptor instead. +func (*WebNotificationsInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{75} +} -func (m *WebNotificationsInfo) GetTimestamp() uint64 { - if m != nil && m.Timestamp != nil { - return *m.Timestamp +func (x *WebNotificationsInfo) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp } return 0 } -func (m *WebNotificationsInfo) GetUnreadChats() uint32 { - if m != nil && m.UnreadChats != nil { - return *m.UnreadChats +func (x *WebNotificationsInfo) GetUnreadChats() uint32 { + if x != nil && x.UnreadChats != nil { + return *x.UnreadChats } return 0 } -func (m *WebNotificationsInfo) GetNotifyMessageCount() uint32 { - if m != nil && m.NotifyMessageCount != nil { - return *m.NotifyMessageCount +func (x *WebNotificationsInfo) GetNotifyMessageCount() uint32 { + if x != nil && x.NotifyMessageCount != nil { + return *x.NotifyMessageCount } return 0 } -func (m *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo { - if m != nil { - return m.NotifyMessages +func (x *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo { + if x != nil { + return x.NotifyMessages } return nil } type PaymentInfo struct { - CurrencyDeprecated *PaymentInfo_PAYMENT_INFO_CURRENCY `protobuf:"varint,1,opt,name=currencyDeprecated,enum=proto.PaymentInfo_PAYMENT_INFO_CURRENCY" json:"currencyDeprecated,omitempty"` - 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"` - TxnStatus *PaymentInfo_PAYMENT_INFO_TXNSTATUS `protobuf:"varint,10,opt,name=txnStatus,enum=proto.PaymentInfo_PAYMENT_INFO_TXNSTATUS" json:"txnStatus,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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{54} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *PaymentInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PaymentInfo.Unmarshal(m, b) -} -func (m *PaymentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PaymentInfo.Marshal(b, m, deterministic) + CurrencyDeprecated *PaymentInfo_PaymentInfoCurrency `protobuf:"varint,1,opt,name=currencyDeprecated,enum=proto.PaymentInfo_PaymentInfoCurrency" json:"currencyDeprecated,omitempty"` + Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` + ReceiverJid *string `protobuf:"bytes,3,opt,name=receiverJid" json:"receiverJid,omitempty"` + Status *PaymentInfo_PaymentInfoStatus `protobuf:"varint,4,opt,name=status,enum=proto.PaymentInfo_PaymentInfoStatus" 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"` + TxnStatus *PaymentInfo_PaymentInfoTxnStatus `protobuf:"varint,10,opt,name=txnStatus,enum=proto.PaymentInfo_PaymentInfoTxnStatus" json:"txnStatus,omitempty"` } -func (m *PaymentInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_PaymentInfo.Merge(m, src) + +func (x *PaymentInfo) Reset() { + *x = PaymentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PaymentInfo) XXX_Size() int { - return xxx_messageInfo_PaymentInfo.Size(m) + +func (x *PaymentInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PaymentInfo) XXX_DiscardUnknown() { - xxx_messageInfo_PaymentInfo.DiscardUnknown(m) + +func (*PaymentInfo) ProtoMessage() {} + +func (x *PaymentInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PaymentInfo proto.InternalMessageInfo +// Deprecated: Use PaymentInfo.ProtoReflect.Descriptor instead. +func (*PaymentInfo) Descriptor() ([]byte, []int) { + return file_def_proto_rawDescGZIP(), []int{76} +} -func (m *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_PAYMENT_INFO_CURRENCY { - if m != nil && m.CurrencyDeprecated != nil { - return *m.CurrencyDeprecated +func (x *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_PaymentInfoCurrency { + if x != nil && x.CurrencyDeprecated != nil { + return *x.CurrencyDeprecated } return PaymentInfo_UNKNOWN_CURRENCY } -func (m *PaymentInfo) GetAmount1000() uint64 { - if m != nil && m.Amount1000 != nil { - return *m.Amount1000 +func (x *PaymentInfo) GetAmount1000() uint64 { + if x != nil && x.Amount1000 != nil { + return *x.Amount1000 } return 0 } -func (m *PaymentInfo) GetReceiverJid() string { - if m != nil && m.ReceiverJid != nil { - return *m.ReceiverJid +func (x *PaymentInfo) GetReceiverJid() string { + if x != nil && x.ReceiverJid != nil { + return *x.ReceiverJid } return "" } -func (m *PaymentInfo) GetStatus() PaymentInfo_PAYMENT_INFO_STATUS { - if m != nil && m.Status != nil { - return *m.Status +func (x *PaymentInfo) GetStatus() PaymentInfo_PaymentInfoStatus { + if x != nil && x.Status != nil { + return *x.Status } return PaymentInfo_UNKNOWN_STATUS } -func (m *PaymentInfo) GetTransactionTimestamp() uint64 { - if m != nil && m.TransactionTimestamp != nil { - return *m.TransactionTimestamp +func (x *PaymentInfo) GetTransactionTimestamp() uint64 { + if x != nil && x.TransactionTimestamp != nil { + return *x.TransactionTimestamp } return 0 } -func (m *PaymentInfo) GetRequestMessageKey() *MessageKey { - if m != nil { - return m.RequestMessageKey +func (x *PaymentInfo) GetRequestMessageKey() *MessageKey { + if x != nil { + return x.RequestMessageKey } return nil } -func (m *PaymentInfo) GetExpiryTimestamp() uint64 { - if m != nil && m.ExpiryTimestamp != nil { - return *m.ExpiryTimestamp +func (x *PaymentInfo) GetExpiryTimestamp() uint64 { + if x != nil && x.ExpiryTimestamp != nil { + return *x.ExpiryTimestamp } return 0 } -func (m *PaymentInfo) GetFutureproofed() bool { - if m != nil && m.Futureproofed != nil { - return *m.Futureproofed +func (x *PaymentInfo) GetFutureproofed() bool { + if x != nil && x.Futureproofed != nil { + return *x.Futureproofed } return false } -func (m *PaymentInfo) GetCurrency() string { - if m != nil && m.Currency != nil { - return *m.Currency +func (x *PaymentInfo) GetCurrency() string { + if x != nil && x.Currency != nil { + return *x.Currency } return "" } -func (m *PaymentInfo) GetTxnStatus() PaymentInfo_PAYMENT_INFO_TXNSTATUS { - if m != nil && m.TxnStatus != nil { - return *m.TxnStatus +func (x *PaymentInfo) GetTxnStatus() PaymentInfo_PaymentInfoTxnStatus { + if x != nil && x.TxnStatus != nil { + return *x.TxnStatus } return PaymentInfo_UNKNOWN } 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_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"` - EphemeralStartTimestamp *uint64 `protobuf:"varint,32,opt,name=ephemeralStartTimestamp" json:"ephemeralStartTimestamp,omitempty"` - EphemeralDuration *uint32 `protobuf:"varint,33,opt,name=ephemeralDuration" json:"ephemeralDuration,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() {} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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_WebMessageInfoStatus `protobuf:"varint,4,opt,name=status,enum=proto.WebMessageInfo_WebMessageInfoStatus" 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_WebMessageInfoStubType `protobuf:"varint,24,opt,name=messageStubType,enum=proto.WebMessageInfo_WebMessageInfoStubType" 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"` + EphemeralStartTimestamp *uint64 `protobuf:"varint,32,opt,name=ephemeralStartTimestamp" json:"ephemeralStartTimestamp,omitempty"` + EphemeralDuration *uint32 `protobuf:"varint,33,opt,name=ephemeralDuration" json:"ephemeralDuration,omitempty"` + EphemeralOffToOn *bool `protobuf:"varint,34,opt,name=ephemeralOffToOn" json:"ephemeralOffToOn,omitempty"` + EphemeralOutOfSync *bool `protobuf:"varint,35,opt,name=ephemeralOutOfSync" json:"ephemeralOutOfSync,omitempty"` + BizPrivacyStatus *WebMessageInfo_WebMessageInfoBizPrivacyStatus `protobuf:"varint,36,opt,name=bizPrivacyStatus,enum=proto.WebMessageInfo_WebMessageInfoBizPrivacyStatus" json:"bizPrivacyStatus,omitempty"` + VerifiedBizName *string `protobuf:"bytes,37,opt,name=verifiedBizName" json:"verifiedBizName,omitempty"` +} + +func (x *WebMessageInfo) Reset() { + *x = WebMessageInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_def_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebMessageInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebMessageInfo) ProtoMessage() {} + +func (x *WebMessageInfo) ProtoReflect() protoreflect.Message { + mi := &file_def_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WebMessageInfo.ProtoReflect.Descriptor instead. func (*WebMessageInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{55} -} - -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) + return file_def_proto_rawDescGZIP(), []int{77} } -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) -} -func (m *WebMessageInfo) XXX_DiscardUnknown() { - xxx_messageInfo_WebMessageInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_WebMessageInfo proto.InternalMessageInfo -func (m *WebMessageInfo) GetKey() *MessageKey { - if m != nil { - return m.Key +func (x *WebMessageInfo) GetKey() *MessageKey { + if x != nil { + return x.Key } return nil } -func (m *WebMessageInfo) GetMessage() *Message { - if m != nil { - return m.Message +func (x *WebMessageInfo) GetMessage() *Message { + if x != nil { + return x.Message } return nil } -func (m *WebMessageInfo) GetMessageTimestamp() uint64 { - if m != nil && m.MessageTimestamp != nil { - return *m.MessageTimestamp +func (x *WebMessageInfo) GetMessageTimestamp() uint64 { + if x != nil && x.MessageTimestamp != nil { + return *x.MessageTimestamp } return 0 } -func (m *WebMessageInfo) GetStatus() WebMessageInfo_WEB_MESSAGE_INFO_STATUS { - if m != nil && m.Status != nil { - return *m.Status +func (x *WebMessageInfo) GetStatus() WebMessageInfo_WebMessageInfoStatus { + if x != nil && x.Status != nil { + return *x.Status } return WebMessageInfo_ERROR } -func (m *WebMessageInfo) GetParticipant() string { - if m != nil && m.Participant != nil { - return *m.Participant +func (x *WebMessageInfo) GetParticipant() string { + if x != nil && x.Participant != nil { + return *x.Participant } return "" } -func (m *WebMessageInfo) GetIgnore() bool { - if m != nil && m.Ignore != nil { - return *m.Ignore +func (x *WebMessageInfo) GetIgnore() bool { + if x != nil && x.Ignore != nil { + return *x.Ignore } return false } -func (m *WebMessageInfo) GetStarred() bool { - if m != nil && m.Starred != nil { - return *m.Starred +func (x *WebMessageInfo) GetStarred() bool { + if x != nil && x.Starred != nil { + return *x.Starred } return false } -func (m *WebMessageInfo) GetBroadcast() bool { - if m != nil && m.Broadcast != nil { - return *m.Broadcast +func (x *WebMessageInfo) GetBroadcast() bool { + if x != nil && x.Broadcast != nil { + return *x.Broadcast } return false } -func (m *WebMessageInfo) GetPushName() string { - if m != nil && m.PushName != nil { - return *m.PushName +func (x *WebMessageInfo) GetPushName() string { + if x != nil && x.PushName != nil { + return *x.PushName } return "" } -func (m *WebMessageInfo) GetMediaCiphertextSha256() []byte { - if m != nil { - return m.MediaCiphertextSha256 +func (x *WebMessageInfo) GetMediaCiphertextSha256() []byte { + if x != nil { + return x.MediaCiphertextSha256 } return nil } -func (m *WebMessageInfo) GetMulticast() bool { - if m != nil && m.Multicast != nil { - return *m.Multicast +func (x *WebMessageInfo) GetMulticast() bool { + if x != nil && x.Multicast != nil { + return *x.Multicast } return false } -func (m *WebMessageInfo) GetUrlText() bool { - if m != nil && m.UrlText != nil { - return *m.UrlText +func (x *WebMessageInfo) GetUrlText() bool { + if x != nil && x.UrlText != nil { + return *x.UrlText } return false } -func (m *WebMessageInfo) GetUrlNumber() bool { - if m != nil && m.UrlNumber != nil { - return *m.UrlNumber +func (x *WebMessageInfo) GetUrlNumber() bool { + if x != nil && x.UrlNumber != nil { + return *x.UrlNumber } return false } -func (m *WebMessageInfo) GetMessageStubType() WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE { - if m != nil && m.MessageStubType != nil { - return *m.MessageStubType +func (x *WebMessageInfo) GetMessageStubType() WebMessageInfo_WebMessageInfoStubType { + if x != nil && x.MessageStubType != nil { + return *x.MessageStubType } return WebMessageInfo_UNKNOWN } -func (m *WebMessageInfo) GetClearMedia() bool { - if m != nil && m.ClearMedia != nil { - return *m.ClearMedia +func (x *WebMessageInfo) GetClearMedia() bool { + if x != nil && x.ClearMedia != nil { + return *x.ClearMedia } return false } -func (m *WebMessageInfo) GetMessageStubParameters() []string { - if m != nil { - return m.MessageStubParameters +func (x *WebMessageInfo) GetMessageStubParameters() []string { + if x != nil { + return x.MessageStubParameters } return nil } -func (m *WebMessageInfo) GetDuration() uint32 { - if m != nil && m.Duration != nil { - return *m.Duration +func (x *WebMessageInfo) GetDuration() uint32 { + if x != nil && x.Duration != nil { + return *x.Duration } return 0 } -func (m *WebMessageInfo) GetLabels() []string { - if m != nil { - return m.Labels +func (x *WebMessageInfo) GetLabels() []string { + if x != nil { + return x.Labels } return nil } -func (m *WebMessageInfo) GetPaymentInfo() *PaymentInfo { - if m != nil { - return m.PaymentInfo +func (x *WebMessageInfo) GetPaymentInfo() *PaymentInfo { + if x != nil { + return x.PaymentInfo } return nil } -func (m *WebMessageInfo) GetFinalLiveLocation() *LiveLocationMessage { - if m != nil { - return m.FinalLiveLocation +func (x *WebMessageInfo) GetFinalLiveLocation() *LiveLocationMessage { + if x != nil { + return x.FinalLiveLocation } return nil } -func (m *WebMessageInfo) GetQuotedPaymentInfo() *PaymentInfo { - if m != nil { - return m.QuotedPaymentInfo +func (x *WebMessageInfo) GetQuotedPaymentInfo() *PaymentInfo { + if x != nil { + return x.QuotedPaymentInfo } return nil } -func (m *WebMessageInfo) GetEphemeralStartTimestamp() uint64 { - if m != nil && m.EphemeralStartTimestamp != nil { - return *m.EphemeralStartTimestamp +func (x *WebMessageInfo) GetEphemeralStartTimestamp() uint64 { + if x != nil && x.EphemeralStartTimestamp != nil { + return *x.EphemeralStartTimestamp } return 0 } -func (m *WebMessageInfo) GetEphemeralDuration() uint32 { - if m != nil && m.EphemeralDuration != nil { - return *m.EphemeralDuration +func (x *WebMessageInfo) GetEphemeralDuration() uint32 { + if x != nil && x.EphemeralDuration != nil { + return *x.EphemeralDuration } return 0 } -func init() { - 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.HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE", HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_name, HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_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_CURRENCY", PaymentInfo_PAYMENT_INFO_CURRENCY_name, PaymentInfo_PAYMENT_INFO_CURRENCY_value) - proto.RegisterEnum("proto.PaymentInfo_PAYMENT_INFO_STATUS", PaymentInfo_PAYMENT_INFO_STATUS_name, PaymentInfo_PAYMENT_INFO_STATUS_value) - proto.RegisterEnum("proto.PaymentInfo_PAYMENT_INFO_TXNSTATUS", PaymentInfo_PAYMENT_INFO_TXNSTATUS_name, PaymentInfo_PAYMENT_INFO_TXNSTATUS_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") - proto.RegisterType((*LocationMessage)(nil), "proto.LocationMessage") - proto.RegisterType((*ExtendedTextMessage)(nil), "proto.ExtendedTextMessage") - proto.RegisterType((*DocumentMessage)(nil), "proto.DocumentMessage") - proto.RegisterType((*AudioMessage)(nil), "proto.AudioMessage") - proto.RegisterType((*VideoMessage)(nil), "proto.VideoMessage") - proto.RegisterType((*Call)(nil), "proto.Call") - proto.RegisterType((*Chat)(nil), "proto.Chat") - proto.RegisterType((*ProtocolMessage)(nil), "proto.ProtocolMessage") - proto.RegisterType((*HistorySyncNotification)(nil), "proto.HistorySyncNotification") - proto.RegisterType((*ContactsArrayMessage)(nil), "proto.ContactsArrayMessage") - proto.RegisterType((*HSMCurrency)(nil), "proto.HSMCurrency") - proto.RegisterType((*HSMDateTimeComponent)(nil), "proto.HSMDateTimeComponent") - proto.RegisterType((*HSMDateTimeUnixEpoch)(nil), "proto.HSMDateTimeUnixEpoch") - proto.RegisterType((*HSMDateTime)(nil), "proto.HSMDateTime") - proto.RegisterType((*HSMLocalizableParameter)(nil), "proto.HSMLocalizableParameter") - 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((*CatalogSnapshot)(nil), "proto.CatalogSnapshot") - proto.RegisterType((*ProductSnapshot)(nil), "proto.ProductSnapshot") - proto.RegisterType((*ProductMessage)(nil), "proto.ProductMessage") - proto.RegisterType((*GroupInviteMessage)(nil), "proto.GroupInviteMessage") - proto.RegisterType((*DeviceSentMessage)(nil), "proto.DeviceSentMessage") - proto.RegisterType((*DeviceSyncMessage)(nil), "proto.DeviceSyncMessage") - proto.RegisterType((*Message)(nil), "proto.Message") - proto.RegisterType((*MessageKey)(nil), "proto.MessageKey") - proto.RegisterType((*WebFeatures)(nil), "proto.WebFeatures") - 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{ - // 6873 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0xcd, 0x6f, 0x23, 0x47, - 0x76, 0xf8, 0x50, 0xd4, 0x07, 0xf5, 0xa8, 0x8f, 0x56, 0x69, 0x24, 0x71, 0x3e, 0x3c, 0x96, 0x69, - 0xaf, 0x57, 0xf6, 0xcf, 0x1e, 0x8f, 0xe5, 0x59, 0x7b, 0xfc, 0xb3, 0x77, 0x77, 0x5a, 0x64, 0x4b, - 0xea, 0x19, 0xaa, 0x9b, 0x2e, 0x36, 0x35, 0x23, 0x63, 0x11, 0xa2, 0xa7, 0xbb, 0x24, 0x75, 0x86, - 0xec, 0xa6, 0xbb, 0x9b, 0xe3, 0xe1, 0x1e, 0x12, 0x64, 0x17, 0x48, 0x82, 0x20, 0x01, 0xf6, 0x96, - 0xaf, 0x53, 0x10, 0xe4, 0x1f, 0xc8, 0x21, 0x87, 0x04, 0x09, 0x10, 0x04, 0xb9, 0xe4, 0xb2, 0xc8, - 0x25, 0x41, 0x2e, 0x39, 0x05, 0x48, 0x72, 0xcd, 0x31, 0xa7, 0xa0, 0xaa, 0xab, 0xbf, 0x9b, 0x12, - 0x35, 0xde, 0x8f, 0x20, 0x27, 0xb1, 0x5e, 0xbd, 0xf7, 0xaa, 0xea, 0xd5, 0xab, 0x57, 0xef, 0xbd, - 0x7a, 0x2d, 0x58, 0x34, 0xc9, 0xe9, 0xdd, 0xa1, 0xeb, 0xf8, 0x0e, 0x9a, 0x63, 0x7f, 0xea, 0x2d, - 0xa8, 0x1d, 0x8e, 0x4d, 0x57, 0xf7, 0x89, 0xf9, 0xc5, 0xc8, 0x32, 0x9e, 0x63, 0x32, 0xec, 0x8f, - 0xf7, 0x46, 0xbe, 0xef, 0xd8, 0x68, 0x1b, 0xaa, 0xa6, 0xe5, 0x0d, 0xfb, 0xfa, 0x58, 0x23, 0x2f, - 0xfd, 0x5a, 0x69, 0xbb, 0xb4, 0xb3, 0x88, 0x93, 0x20, 0xb4, 0x02, 0x33, 0x96, 0x59, 0x9b, 0x61, - 0x1d, 0x33, 0x96, 0x59, 0x3f, 0x80, 0xb5, 0x90, 0x5b, 0x17, 0xb7, 0xa6, 0x66, 0x23, 0x40, 0x79, - 0xe4, 0xf6, 0x39, 0x1f, 0xfa, 0xb3, 0xfe, 0x14, 0x50, 0xc8, 0xa8, 0xa1, 0xf7, 0xfb, 0x53, 0x73, - 0xda, 0x86, 0xea, 0xf0, 0xdc, 0xb1, 0x89, 0x32, 0x1a, 0x3c, 0x23, 0x2e, 0xe7, 0x98, 0x04, 0xd5, - 0x7f, 0x73, 0x06, 0x36, 0x43, 0xd6, 0x1a, 0x19, 0x0c, 0xfb, 0xba, 0x4f, 0x38, 0xfb, 0xeb, 0x30, - 0x67, 0xd9, 0x26, 0x79, 0x59, 0x9b, 0xdd, 0x2e, 0xed, 0x2c, 0xe3, 0xa0, 0x81, 0x8e, 0x40, 0xf8, - 0x2a, 0x23, 0x19, 0x36, 0x72, 0x75, 0xf7, 0xf5, 0x40, 0x94, 0x77, 0x27, 0x09, 0xf0, 0xf0, 0x1a, - 0xce, 0x91, 0xa2, 0x07, 0xb0, 0x38, 0x72, 0xf9, 0x82, 0xd8, 0xfc, 0xaa, 0xbb, 0xb5, 0x0c, 0x9f, - 0x48, 0x74, 0x87, 0xd7, 0x70, 0x8c, 0x8c, 0x3e, 0x03, 0x30, 0x22, 0x59, 0xd4, 0xca, 0x8c, 0xf4, - 0x46, 0x86, 0x34, 0x16, 0xd6, 0xe1, 0x35, 0x9c, 0x40, 0xdf, 0x13, 0x60, 0xe5, 0x9c, 0xe3, 0x04, - 0x90, 0xba, 0x09, 0x42, 0x6e, 0xc7, 0x1f, 0xe6, 0x05, 0x5c, 0xdd, 0xbd, 0x13, 0x8e, 0x61, 0x9d, - 0x9d, 0xf7, 0xc7, 0x1d, 0xdf, 0x1d, 0x19, 0xfe, 0xc8, 0x25, 0xe6, 0x11, 0xf1, 0x3c, 0xfd, 0x8c, - 0x5c, 0xac, 0x11, 0xbf, 0x0e, 0x8b, 0xb1, 0x26, 0x7c, 0x73, 0xf6, 0xf7, 0x62, 0x4d, 0xb9, 0x9c, - 0x92, 0x69, 0xd2, 0x4f, 0x4a, 0x00, 0x09, 0x15, 0xfa, 0xe6, 0x53, 0x78, 0x98, 0x57, 0xb1, 0x29, - 0x38, 0x24, 0x55, 0xf0, 0x5f, 0x4b, 0xb0, 0x32, 0x95, 0xea, 0x49, 0x13, 0x55, 0x6f, 0x8b, 0x8f, - 0x37, 0x95, 0xca, 0xdd, 0xcb, 0xab, 0x9c, 0xc0, 0xe9, 0x27, 0xa8, 0xda, 0x47, 0x05, 0xaa, 0xb6, - 0xc6, 0x49, 0x26, 0xaa, 0x58, 0x05, 0xe6, 0x9f, 0x05, 0xaa, 0xe5, 0x43, 0xa5, 0xe5, 0x18, 0xba, - 0x6f, 0x39, 0x36, 0xda, 0x81, 0x55, 0x93, 0x9c, 0xb9, 0x84, 0x78, 0x2d, 0xdd, 0xb7, 0xfc, 0x91, - 0x49, 0xd8, 0x12, 0x4a, 0x38, 0x0b, 0x46, 0xef, 0x82, 0x10, 0x82, 0x1c, 0xfb, 0x2c, 0x40, 0x9d, - 0x61, 0xa8, 0x39, 0x38, 0x42, 0x30, 0x6b, 0xeb, 0x03, 0xc2, 0xa6, 0xb6, 0x88, 0xd9, 0xef, 0xfa, - 0x19, 0xcc, 0xb5, 0x1d, 0xcb, 0x66, 0x46, 0xe0, 0x65, 0x93, 0x0c, 0x5d, 0x62, 0x50, 0x75, 0x67, - 0xc3, 0xcd, 0xe1, 0x24, 0x88, 0x62, 0x8c, 0x13, 0x18, 0x33, 0x01, 0x46, 0x02, 0x84, 0x96, 0xa0, - 0xf4, 0x92, 0x71, 0x2f, 0xe1, 0xd2, 0x4b, 0xda, 0x1a, 0xb3, 0xad, 0x29, 0xe1, 0xd2, 0xb8, 0xfe, - 0xdb, 0x25, 0xd8, 0x90, 0x6d, 0x9f, 0xb8, 0xba, 0xe1, 0x5b, 0x2f, 0x88, 0x68, 0xdb, 0x8e, 0x1f, - 0x2c, 0xf6, 0x63, 0x58, 0x1d, 0x3a, 0xfd, 0xf1, 0x99, 0x63, 0x1f, 0x13, 0xd7, 0xb7, 0x0c, 0xe2, - 0xd5, 0x4a, 0xdb, 0xe5, 0x9d, 0xea, 0xee, 0x12, 0x17, 0x1e, 0x9b, 0x20, 0xce, 0x22, 0xa1, 0xf7, - 0xa1, 0xd2, 0xe7, 0x02, 0xe3, 0x1b, 0xb4, 0xca, 0x09, 0x42, 0x39, 0x1e, 0x5e, 0xc3, 0x11, 0x0a, - 0x95, 0x34, 0x1d, 0xda, 0xb1, 0xeb, 0xff, 0x5d, 0x82, 0xaa, 0x68, 0xb2, 0xcd, 0x96, 0xed, 0x53, - 0x07, 0xbd, 0x0d, 0x2b, 0xba, 0xf9, 0x82, 0xb2, 0xf5, 0x88, 0xab, 0x50, 0x09, 0x05, 0x46, 0x32, - 0x03, 0x45, 0x87, 0xb0, 0x38, 0x20, 0xa6, 0xa5, 0x6b, 0xe3, 0x61, 0x20, 0xe4, 0x95, 0xdd, 0x77, - 0xf9, 0x88, 0x09, 0x76, 0x77, 0xc5, 0x66, 0x0f, 0x4b, 0xed, 0xd6, 0x49, 0x4f, 0x56, 0xf6, 0xd5, - 0xde, 0x91, 0xd4, 0x94, 0x45, 0xed, 0xa4, 0x2d, 0xe1, 0x98, 0x18, 0xbd, 0x05, 0xcb, 0xbf, 0x3a, - 0x24, 0x67, 0xda, 0xf9, 0x68, 0xf0, 0xcc, 0xd6, 0xad, 0x7e, 0x4d, 0xd8, 0x2e, 0xed, 0x2c, 0xe1, - 0x34, 0x10, 0xd5, 0x60, 0xc1, 0xd0, 0x87, 0x6c, 0x7d, 0x6b, 0x6c, 0x42, 0x61, 0xb3, 0xfe, 0x29, - 0x6c, 0x4d, 0x18, 0x05, 0x55, 0x60, 0x56, 0x51, 0x15, 0x49, 0xb8, 0x86, 0x16, 0x61, 0x4e, 0x3e, - 0x12, 0x0f, 0x24, 0xa1, 0x44, 0x7f, 0x1e, 0xcb, 0x4d, 0x49, 0x15, 0x66, 0xea, 0xff, 0x36, 0x0b, - 0xd5, 0x86, 0x63, 0xfb, 0xe4, 0xa5, 0xcf, 0x16, 0x7f, 0x13, 0x2a, 0x9e, 0xaf, 0xdb, 0x3f, 0xd4, - 0x65, 0x93, 0x2f, 0x3b, 0x6a, 0xb3, 0x8b, 0x41, 0xa7, 0xd2, 0xb6, 0x86, 0xba, 0xed, 0x47, 0x17, - 0x43, 0x0c, 0x42, 0xf7, 0x61, 0xf9, 0xab, 0x91, 0xe3, 0x47, 0x67, 0x96, 0xab, 0xfd, 0x0a, 0x17, - 0x4b, 0x78, 0x92, 0xd3, 0x48, 0xe8, 0x36, 0x2c, 0xba, 0x64, 0xe0, 0xf8, 0xe4, 0x91, 0x65, 0x32, - 0x0d, 0x59, 0xc4, 0x31, 0x00, 0xd5, 0x61, 0x69, 0x40, 0x6c, 0xba, 0x4e, 0x62, 0x52, 0x84, 0xd5, - 0xed, 0xf2, 0xce, 0x22, 0x4e, 0xc1, 0xa8, 0xda, 0x1b, 0x8e, 0xfd, 0x82, 0xb8, 0x9e, 0xe5, 0xd8, - 0x1d, 0x67, 0xe4, 0x1a, 0xa4, 0x86, 0x18, 0xa3, 0x1c, 0x9c, 0x6e, 0x6f, 0x0c, 0x6b, 0xea, 0xbe, - 0x5e, 0x5b, 0x67, 0xd2, 0xce, 0x40, 0xd1, 0xc7, 0xb0, 0x99, 0x80, 0x90, 0xbe, 0x3e, 0xee, 0x10, - 0xc3, 0xb1, 0x4d, 0xaf, 0x76, 0x9d, 0xd9, 0x97, 0x09, 0xbd, 0xf4, 0xb0, 0x9e, 0x3a, 0xee, 0xd7, - 0xba, 0x6b, 0x5a, 0xf6, 0x59, 0xc7, 0x70, 0x5c, 0x52, 0xdb, 0x60, 0x04, 0x59, 0x30, 0x95, 0xa7, - 0xe5, 0xed, 0x07, 0x40, 0x62, 0xd6, 0x36, 0xb7, 0x4b, 0x3b, 0x15, 0x9c, 0x04, 0xa1, 0xbb, 0x50, - 0x09, 0x44, 0x25, 0x9a, 0xb5, 0x2d, 0x26, 0x4a, 0x94, 0xd7, 0x30, 0x1c, 0xe1, 0xa0, 0x4f, 0x61, - 0x65, 0xd8, 0xd7, 0x0d, 0x72, 0xee, 0xf4, 0x4d, 0xe2, 0x3e, 0x26, 0xe3, 0x5a, 0x2d, 0x65, 0x77, - 0xb8, 0xc4, 0x1f, 0x93, 0x31, 0xce, 0x20, 0xa2, 0x3b, 0x00, 0xe4, 0xe5, 0xd0, 0x72, 0x83, 0x03, - 0x74, 0x83, 0xcd, 0x38, 0x01, 0x41, 0x9f, 0xc3, 0x0d, 0x32, 0x3c, 0x27, 0x03, 0xe2, 0xea, 0xfd, - 0x0e, 0xf1, 0x7d, 0xcb, 0x3e, 0xd3, 0xac, 0x01, 0xf1, 0x7c, 0x7d, 0x30, 0xac, 0xdd, 0xdc, 0x2e, - 0xed, 0x94, 0xf1, 0x64, 0x84, 0xfa, 0xef, 0x94, 0xe0, 0x76, 0x87, 0xd8, 0xc1, 0x58, 0x4d, 0xcb, - 0xf3, 0x5d, 0xeb, 0xd9, 0x88, 0xf2, 0x0d, 0x75, 0xa0, 0x06, 0x0b, 0x67, 0xae, 0x33, 0x1a, 0x46, - 0x6a, 0x17, 0x36, 0x51, 0x1b, 0xde, 0xd4, 0x5f, 0x3a, 0x7d, 0xc7, 0xef, 0x5f, 0xc4, 0x80, 0x69, - 0xe3, 0x12, 0x9e, 0x06, 0xb5, 0xfe, 0x37, 0xf3, 0xb0, 0x24, 0x0f, 0xf4, 0x33, 0x12, 0x0e, 0xce, - 0x7d, 0xa7, 0x52, 0xe4, 0x3b, 0xd1, 0x63, 0x30, 0xb0, 0x06, 0xc4, 0x0f, 0x8f, 0xf6, 0x22, 0x8e, - 0xda, 0xc9, 0x73, 0x58, 0x4e, 0x9d, 0x43, 0x2a, 0xc3, 0x53, 0xab, 0x4f, 0x3a, 0xe7, 0xfa, 0xee, - 0x77, 0x3e, 0x66, 0x9a, 0xbc, 0x84, 0x13, 0x90, 0xb0, 0xbf, 0x45, 0xec, 0x33, 0xff, 0xbc, 0x36, - 0xb7, 0x5d, 0xda, 0x99, 0xc5, 0x09, 0x08, 0xda, 0x84, 0xf9, 0x73, 0x62, 0x9d, 0x9d, 0xfb, 0xb5, - 0x79, 0x26, 0x7f, 0xde, 0xa2, 0x37, 0xdb, 0xd7, 0x96, 0xe9, 0x9f, 0xd7, 0x16, 0x82, 0x9b, 0x8d, - 0x35, 0xd8, 0x1c, 0xa9, 0x09, 0xa1, 0xdb, 0x5c, 0x61, 0x63, 0x45, 0x6d, 0x6a, 0x51, 0x28, 0x5f, - 0xc9, 0x36, 0xf8, 0x64, 0x16, 0x03, 0x8b, 0x92, 0x02, 0x22, 0x0d, 0x36, 0xad, 0x22, 0x1b, 0xec, - 0xd5, 0x80, 0x59, 0xdc, 0xdb, 0x5c, 0x6d, 0x0a, 0x0d, 0x35, 0x9e, 0x40, 0x4b, 0x57, 0x69, 0x5a, - 0x2e, 0x31, 0xfc, 0xb6, 0xee, 0x9f, 0xd7, 0xaa, 0x4c, 0x44, 0x09, 0x08, 0x7a, 0x0f, 0xd6, 0xc2, - 0x79, 0xc6, 0x1a, 0xb4, 0xc4, 0x34, 0x28, 0xdf, 0x31, 0xa5, 0x6d, 0xbc, 0x0f, 0x55, 0x23, 0xb6, - 0x62, 0xcc, 0x3e, 0xc6, 0x67, 0x25, 0x61, 0xdf, 0x70, 0x12, 0x8d, 0x9a, 0x8d, 0x53, 0xcb, 0xf5, - 0xfc, 0x8e, 0xa1, 0xdb, 0x1d, 0xcb, 0x24, 0x86, 0xee, 0x32, 0xb3, 0xb1, 0x84, 0x73, 0x70, 0x76, - 0xac, 0x43, 0x18, 0xdf, 0xc0, 0x75, 0x7e, 0xac, 0xd3, 0x60, 0xba, 0x3e, 0xf2, 0x72, 0x48, 0x5c, - 0x8b, 0x9a, 0xa8, 0x03, 0xae, 0xd4, 0x81, 0xcd, 0xc8, 0x77, 0x50, 0xf3, 0xe6, 0x19, 0xba, 0xed, - 0x85, 0xe3, 0x6f, 0xb0, 0xf1, 0x53, 0x30, 0x6a, 0x28, 0xbc, 0x88, 0xbf, 0x57, 0xdb, 0xdc, 0x2e, - 0xef, 0x2c, 0xe3, 0x24, 0x08, 0xed, 0xc2, 0xf5, 0x81, 0x65, 0x7e, 0x31, 0xd2, 0xfb, 0x96, 0x3f, - 0xde, 0x8f, 0x75, 0x70, 0x8b, 0x71, 0x2b, 0xec, 0x43, 0x0f, 0x60, 0x2b, 0x0d, 0x8f, 0xb5, 0xa5, - 0xc6, 0xc8, 0x26, 0x75, 0xd7, 0x7f, 0x0d, 0x56, 0xa8, 0x4c, 0x75, 0xc3, 0x0f, 0x4f, 0x50, 0x1c, - 0x55, 0x24, 0x2e, 0xcc, 0x24, 0x88, 0xea, 0xf0, 0x0b, 0x43, 0x77, 0x4d, 0xb6, 0x7f, 0x8b, 0x38, - 0x68, 0xbc, 0xda, 0xbe, 0xd5, 0x7f, 0x5a, 0x86, 0xd5, 0xf0, 0x52, 0x0f, 0x67, 0xf0, 0x0b, 0xf3, - 0x91, 0xe8, 0xf9, 0xd7, 0x4d, 0xd3, 0x25, 0x9e, 0xc7, 0x2f, 0xab, 0xb0, 0x19, 0xda, 0x91, 0xb9, - 0xd8, 0x8e, 0x6c, 0xc2, 0xbc, 0xe5, 0xb5, 0xac, 0x17, 0x84, 0x9d, 0xe8, 0x0a, 0xe6, 0x2d, 0x3a, - 0x07, 0xdd, 0x30, 0x46, 0xae, 0x6e, 0x8c, 0x65, 0xfb, 0x88, 0xf8, 0xc4, 0xf5, 0xf8, 0xe1, 0xce, - 0xc1, 0xe9, 0x79, 0xf2, 0x86, 0x84, 0x98, 0xb2, 0x7d, 0x34, 0xf4, 0xd8, 0x49, 0x9f, 0xc1, 0x09, - 0x08, 0x6a, 0xc1, 0x1b, 0x7c, 0xde, 0x8d, 0xbe, 0x63, 0x3c, 0xff, 0xda, 0xf2, 0xc8, 0xbe, 0xeb, - 0x0c, 0x8e, 0xf4, 0x33, 0x9b, 0xf8, 0x96, 0xa1, 0x38, 0xae, 0x7f, 0xce, 0xce, 0xff, 0x32, 0xbe, - 0x1c, 0x91, 0x59, 0x37, 0x67, 0x40, 0x35, 0x94, 0x1f, 0xdd, 0xb0, 0xf9, 0xf3, 0x3c, 0x89, 0xf5, - 0xff, 0x9c, 0x83, 0x75, 0xe9, 0xa5, 0x4f, 0xad, 0xb6, 0x49, 0x23, 0x84, 0x70, 0x57, 0x11, 0xcc, - 0xfa, 0x71, 0x98, 0xca, 0x7e, 0x53, 0x5d, 0x1b, 0xe8, 0xbe, 0x71, 0x1e, 0x60, 0x86, 0x6e, 0x48, - 0x02, 0x44, 0xcf, 0x94, 0xa1, 0xdb, 0x8e, 0x6d, 0x19, 0x7a, 0xbf, 0xeb, 0xf6, 0xf9, 0x36, 0xa5, - 0x60, 0x4c, 0x63, 0x89, 0x67, 0xb8, 0x56, 0x60, 0xc9, 0xe7, 0xb8, 0xc6, 0xc6, 0x20, 0xaa, 0xb1, - 0xbe, 0xe5, 0xf7, 0x83, 0xad, 0x5b, 0xc4, 0x41, 0x83, 0x5a, 0x5d, 0x3a, 0x0b, 0xd1, 0x3d, 0x7b, - 0xc6, 0x76, 0x6c, 0x01, 0x47, 0x6d, 0xea, 0x5a, 0x3c, 0xd3, 0x8d, 0xe7, 0xf4, 0xe6, 0xb2, 0x4d, - 0x86, 0x51, 0x61, 0x18, 0x19, 0x28, 0x3a, 0x82, 0xd9, 0x53, 0xc7, 0xf6, 0xd9, 0xa6, 0xac, 0xec, - 0x7e, 0xca, 0x85, 0x53, 0xb0, 0xfe, 0xbb, 0xd2, 0x53, 0x4d, 0x52, 0x9a, 0x52, 0xb3, 0xa7, 0x49, - 0x4f, 0xb5, 0xde, 0x91, 0xd4, 0xe9, 0x88, 0x07, 0x52, 0x6f, 0x5f, 0x55, 0x34, 0xe6, 0x43, 0x32, - 0x36, 0xe8, 0x57, 0xa0, 0x3a, 0x74, 0xc9, 0x0b, 0x8b, 0x7c, 0xcd, 0x5c, 0x51, 0x60, 0x5c, 0x3f, - 0xbf, 0x32, 0xd7, 0x36, 0x96, 0x8e, 0x65, 0xe9, 0x09, 0x63, 0x9c, 0x64, 0xf8, 0x73, 0x35, 0xc1, - 0xf4, 0xd8, 0x3a, 0x8a, 0xe3, 0xb7, 0xfb, 0xfa, 0x58, 0xb6, 0xfb, 0x96, 0x1d, 0x38, 0x6e, 0x15, - 0x9c, 0x05, 0xd7, 0x7f, 0xb7, 0x04, 0x77, 0x2e, 0x16, 0x07, 0x5a, 0x01, 0xe8, 0x88, 0x4a, 0xa7, - 0xd7, 0x91, 0xb0, 0xbc, 0x1f, 0xb8, 0xbc, 0xc1, 0xcf, 0x12, 0x5a, 0x87, 0x55, 0x45, 0xc5, 0x72, - 0x43, 0x54, 0x7a, 0x58, 0x3a, 0xe8, 0xb6, 0x44, 0x2c, 0xcc, 0xa0, 0x35, 0x58, 0xde, 0xc3, 0x27, - 0x4a, 0x53, 0x54, 0x7a, 0x4f, 0xb0, 0xac, 0x49, 0x42, 0x19, 0x6d, 0xc0, 0xda, 0x9e, 0xb4, 0x27, - 0x76, 0x14, 0xa9, 0x2b, 0x45, 0x98, 0xb3, 0x48, 0x80, 0x25, 0xb5, 0xf3, 0x44, 0x6c, 0x35, 0x7b, - 0x87, 0x92, 0x78, 0x7c, 0x22, 0xcc, 0xd5, 0x1f, 0xc0, 0x1b, 0x97, 0x8a, 0x31, 0xed, 0x7d, 0x07, - 0x2e, 0x77, 0xa9, 0xfe, 0x57, 0x65, 0x58, 0x6d, 0x3a, 0xc6, 0x88, 0x1e, 0xaa, 0x57, 0xf3, 0x40, - 0x22, 0xcd, 0x2c, 0x27, 0x35, 0xf3, 0x9b, 0x7a, 0x1f, 0xb7, 0x61, 0x71, 0xa8, 0x9f, 0x91, 0x86, - 0x33, 0xb2, 0x43, 0x07, 0x24, 0x06, 0xa4, 0xbc, 0x8d, 0x85, 0x8c, 0xb7, 0x71, 0x13, 0x2a, 0x94, - 0x0f, 0x33, 0xfd, 0x95, 0x60, 0xae, 0x61, 0x7b, 0x4a, 0x4f, 0x24, 0xed, 0x33, 0xc0, 0x74, 0x3e, - 0x43, 0xf5, 0x97, 0xe0, 0x33, 0xd4, 0xff, 0xa8, 0x0c, 0x4b, 0xe2, 0xc8, 0xb4, 0x9c, 0x57, 0xdb, - 0xba, 0xf4, 0x26, 0x95, 0x2f, 0xd9, 0xa4, 0xd9, 0xdc, 0x26, 0xd5, 0x60, 0xc1, 0xe3, 0x61, 0xc8, - 0x1c, 0xdb, 0xa2, 0xb0, 0x49, 0xe7, 0x31, 0xf4, 0x7d, 0x7e, 0xcf, 0xd0, 0x9f, 0x17, 0x6e, 0x59, - 0x6e, 0x5b, 0x2a, 0x97, 0x6f, 0xcb, 0xe2, 0x74, 0xdb, 0x02, 0x93, 0xb6, 0xe5, 0x95, 0x9d, 0x34, - 0xcf, 0x77, 0x89, 0x3e, 0xa0, 0x71, 0x53, 0xda, 0x49, 0xcb, 0xc2, 0xeb, 0x3f, 0x9a, 0x87, 0xa5, - 0x63, 0xcb, 0x24, 0xff, 0xeb, 0x36, 0x27, 0xb9, 0x15, 0xf3, 0x99, 0xad, 0x48, 0xc4, 0x13, 0x0b, - 0xe9, 0x78, 0x62, 0x1b, 0xaa, 0x67, 0xd6, 0x29, 0xb5, 0x81, 0xf4, 0x02, 0x61, 0x5b, 0x54, 0xc1, - 0x49, 0x50, 0x22, 0x62, 0x58, 0x2c, 0x8e, 0x18, 0x20, 0x19, 0x31, 0xe4, 0x36, 0xbd, 0x7a, 0xb5, - 0xa8, 0x60, 0xe9, 0x67, 0x16, 0x15, 0x2c, 0x4f, 0xa7, 0x4a, 0x2b, 0xbf, 0xa4, 0xa8, 0x60, 0x5a, - 0x85, 0x43, 0x5d, 0x58, 0x39, 0xb3, 0x4e, 0x45, 0x3f, 0x8a, 0x31, 0x59, 0x50, 0xb0, 0xb2, 0xfb, - 0x3e, 0x1f, 0x24, 0xa9, 0x8c, 0x77, 0xd9, 0x05, 0x10, 0xdd, 0x13, 0xa2, 0xa6, 0x61, 0x79, 0xaf, - 0xab, 0xc9, 0xaa, 0x82, 0x33, 0x4c, 0xea, 0x9f, 0xc1, 0x8d, 0x89, 0xc8, 0xe9, 0x4b, 0xe5, 0x40, - 0x6e, 0x1f, 0x9e, 0x04, 0x29, 0x1d, 0x4d, 0x52, 0x54, 0x2c, 0xcc, 0xd4, 0xb7, 0x61, 0xb6, 0xa1, - 0xf7, 0x79, 0xbe, 0xa8, 0xdf, 0xa7, 0x2a, 0x57, 0x62, 0xd3, 0x0f, 0x9b, 0xf5, 0x07, 0x30, 0xdb, - 0x38, 0xd7, 0xfd, 0x29, 0xbc, 0xf6, 0x6c, 0x2a, 0xfa, 0x2f, 0xcb, 0xb0, 0xda, 0xa6, 0x2b, 0x33, - 0x9c, 0x7e, 0x78, 0xc6, 0xde, 0x84, 0xf2, 0x73, 0x3e, 0x46, 0x61, 0xa6, 0x81, 0xf6, 0xa2, 0x87, - 0x30, 0xeb, 0xc7, 0x79, 0xb2, 0xf7, 0xc2, 0x54, 0x5e, 0x9a, 0xd5, 0xdd, 0x36, 0x56, 0x35, 0xb5, - 0xa1, 0xb6, 0xa2, 0x75, 0x07, 0x5e, 0x0e, 0x3b, 0x9c, 0xf7, 0x60, 0x3d, 0xca, 0x2f, 0x48, 0x71, - 0xa6, 0x22, 0x48, 0xf6, 0x16, 0x75, 0x5d, 0x9c, 0xb2, 0x98, 0xbb, 0x24, 0x65, 0x81, 0x9e, 0xc2, - 0xd6, 0xb9, 0xe5, 0xf9, 0x8e, 0x3b, 0xee, 0x8c, 0x6d, 0x43, 0x71, 0x7c, 0xeb, 0xd4, 0xe2, 0xe9, - 0xc5, 0xf9, 0x4c, 0xbe, 0xba, 0x10, 0x0b, 0x4f, 0x22, 0xaf, 0xbf, 0x80, 0x8d, 0xc2, 0x85, 0x22, - 0x80, 0x79, 0x2c, 0x1d, 0xab, 0x8f, 0xe9, 0xde, 0x6e, 0xc0, 0x9a, 0xd4, 0x3e, 0x94, 0x8e, 0x24, - 0x2c, 0xb6, 0x7a, 0x1d, 0x49, 0xd3, 0x64, 0xe5, 0x40, 0x28, 0xa3, 0x5b, 0xb0, 0x95, 0x00, 0x9f, - 0x28, 0x8d, 0x1e, 0x96, 0x3a, 0x6d, 0x55, 0xe9, 0x48, 0xc2, 0x2c, 0x7a, 0x0d, 0x6e, 0x1c, 0xca, - 0x1d, 0x4d, 0xc5, 0x27, 0x41, 0x97, 0xa2, 0x6a, 0xf2, 0xbe, 0xdc, 0x10, 0xa9, 0xda, 0x08, 0x73, - 0xf5, 0x3f, 0x2f, 0xc3, 0xd6, 0x84, 0xc9, 0x66, 0x4c, 0x5f, 0xe9, 0x12, 0xd3, 0x37, 0x93, 0x33, - 0x7d, 0x49, 0x03, 0x57, 0xbe, 0xec, 0xae, 0x99, 0xbd, 0xfc, 0xae, 0x99, 0xcb, 0x19, 0x08, 0x13, - 0x2a, 0xde, 0xd8, 0x36, 0x98, 0x8b, 0x3b, 0xcf, 0xb4, 0xe8, 0xf0, 0xe2, 0x0d, 0xb8, 0x3b, 0x51, - 0x16, 0x3d, 0xde, 0x43, 0x3b, 0x98, 0x86, 0x45, 0x9c, 0xe9, 0x2c, 0x8c, 0xf3, 0x91, 0xfd, 0x5c, - 0x75, 0x4d, 0xe2, 0xf2, 0x90, 0x2c, 0x01, 0xa9, 0x3b, 0xf0, 0xce, 0xd4, 0x6c, 0xe9, 0x1e, 0xca, - 0x8a, 0xac, 0xc9, 0x62, 0xab, 0xb7, 0xa7, 0xaa, 0x5a, 0x47, 0xc3, 0x62, 0x3b, 0xd8, 0xda, 0x10, - 0xdc, 0xd1, 0x44, 0xad, 0xdb, 0xe9, 0x1d, 0x7f, 0x24, 0x94, 0xe8, 0xb9, 0xde, 0xef, 0xb6, 0x5a, - 0xc2, 0x4c, 0xa0, 0x07, 0x0d, 0x49, 0xd1, 0x84, 0x72, 0xfd, 0x4f, 0x4a, 0x70, 0x9d, 0x07, 0xdb, - 0x9e, 0xe8, 0xba, 0xfa, 0x78, 0xfa, 0x90, 0xfb, 0x43, 0xa8, 0x18, 0x9c, 0xb2, 0x36, 0xc3, 0x4c, - 0xf7, 0x46, 0xc2, 0xf6, 0xc5, 0xd1, 0x3b, 0x8e, 0xd0, 0x5e, 0xd1, 0x27, 0xfa, 0x02, 0xaa, 0x87, - 0x9d, 0xa3, 0xc6, 0xc8, 0x75, 0x89, 0x6d, 0x8c, 0x59, 0xf8, 0xc5, 0x7f, 0x37, 0x1c, 0x33, 0x9c, - 0x5a, 0x0a, 0x46, 0xe5, 0xac, 0x0f, 0xa8, 0x63, 0xf9, 0xe1, 0xbd, 0x7b, 0xf7, 0x98, 0x3e, 0x95, - 0x71, 0x02, 0x52, 0xff, 0xc3, 0x59, 0xb8, 0x7e, 0xd8, 0x39, 0x6a, 0xea, 0x3e, 0xa1, 0x47, 0xb2, - 0xe1, 0x0c, 0x86, 0x8e, 0x4d, 0xa3, 0xd0, 0x1e, 0x2c, 0x9a, 0xfa, 0x58, 0x3d, 0x7d, 0x42, 0xc8, - 0x73, 0xc6, 0x79, 0x65, 0x57, 0x0c, 0xf5, 0xa0, 0x00, 0x9f, 0x02, 0x7b, 0x4d, 0x51, 0x93, 0x7a, - 0x9a, 0x7c, 0x24, 0xf5, 0x1a, 0xea, 0x51, 0x5b, 0x55, 0x24, 0x45, 0xeb, 0x35, 0xc5, 0x13, 0x75, - 0xff, 0x89, 0x24, 0x3d, 0x0e, 0x92, 0xf1, 0x11, 0x4f, 0x1a, 0x72, 0x8e, 0x89, 0x1e, 0x3c, 0x4a, - 0x2d, 0x63, 0xf6, 0x9b, 0x5e, 0xa7, 0x03, 0xc7, 0xf6, 0xcf, 0x99, 0x6a, 0x2f, 0xe3, 0xa0, 0xc1, - 0x34, 0x96, 0x92, 0x1d, 0xb1, 0xae, 0xc0, 0x10, 0x25, 0x20, 0x94, 0xd3, 0xb9, 0x33, 0x72, 0xb9, - 0x2f, 0xc0, 0x7e, 0xd3, 0x0b, 0x7b, 0x60, 0xd9, 0x23, 0x9f, 0x84, 0x29, 0xbe, 0xa0, 0x85, 0x7e, - 0x00, 0x15, 0x43, 0xef, 0x13, 0xdb, 0xd4, 0x03, 0xad, 0x5b, 0xd9, 0x7d, 0xf8, 0x2a, 0xab, 0x6a, - 0x88, 0x2d, 0x49, 0x69, 0x8a, 0x38, 0xd0, 0xea, 0x90, 0x63, 0xfd, 0xc7, 0x25, 0xf8, 0xd6, 0x54, - 0x82, 0xa0, 0xaa, 0x77, 0xa4, 0x2a, 0x4d, 0x91, 0xde, 0x29, 0x55, 0x58, 0xd0, 0xba, 0x52, 0x87, - 0x36, 0x66, 0xd0, 0x32, 0x2c, 0x3e, 0x91, 0x9a, 0x4a, 0xd0, 0x2c, 0xa3, 0x25, 0xa8, 0x68, 0x87, - 0x5d, 0xcc, 0x5a, 0xb3, 0x94, 0x6a, 0x1f, 0xcb, 0xf4, 0xf7, 0x1c, 0xed, 0xe9, 0x88, 0x5a, 0x17, - 0xd3, 0xd6, 0x3c, 0xed, 0xe9, 0x74, 0x19, 0xbf, 0x85, 0xfa, 0x3e, 0xbc, 0x35, 0xcd, 0xbc, 0xe9, - 0x50, 0x07, 0x58, 0x3a, 0x50, 0xb1, 0x2c, 0x2a, 0x42, 0x09, 0xad, 0x42, 0xb5, 0xa3, 0xb6, 0x44, - 0xdc, 0x3b, 0x94, 0x1f, 0x61, 0x59, 0x98, 0xa9, 0xdf, 0x4f, 0xa9, 0x46, 0xd7, 0xb6, 0x5e, 0x4a, - 0x43, 0xc7, 0x60, 0x01, 0x8c, 0x1f, 0xd9, 0xf7, 0x12, 0x53, 0xa9, 0x18, 0x50, 0xff, 0x83, 0x12, - 0xd3, 0xd2, 0x90, 0x0c, 0x7d, 0x06, 0x8b, 0x46, 0x28, 0x4f, 0x7e, 0x79, 0xdd, 0xba, 0x40, 0xe4, - 0x87, 0xd7, 0x70, 0x8c, 0x4f, 0x89, 0x47, 0xe1, 0xb8, 0xfc, 0xb5, 0xa9, 0x80, 0x38, 0x9a, 0x1a, - 0x7b, 0x19, 0x0c, 0x1b, 0x7b, 0xab, 0xb0, 0x6c, 0xea, 0x3e, 0xa1, 0x53, 0x53, 0x6d, 0xe2, 0x9c, - 0xd6, 0xff, 0xac, 0x04, 0x5b, 0x87, 0x9d, 0xa3, 0x96, 0x63, 0xe8, 0x7d, 0xeb, 0x87, 0xfa, 0xb3, - 0x3e, 0x69, 0xeb, 0xae, 0x3e, 0x20, 0x3e, 0x71, 0xe9, 0x2d, 0x6e, 0x92, 0x53, 0x7d, 0xd4, 0x0f, - 0x93, 0x20, 0x61, 0x13, 0xdd, 0x83, 0x4a, 0x78, 0xa4, 0xf8, 0x14, 0x50, 0x3c, 0x85, 0xf0, 0x30, - 0x1e, 0x5e, 0xc3, 0x11, 0x16, 0xa5, 0x30, 0xf9, 0xd4, 0xf8, 0xcb, 0x0c, 0xca, 0x4f, 0x9a, 0x52, - 0x84, 0x58, 0x7b, 0x4b, 0x00, 0x43, 0x3a, 0x95, 0x60, 0x9e, 0xbf, 0xc7, 0x2e, 0x90, 0xc2, 0xd7, - 0x59, 0x2a, 0x7c, 0x5b, 0x1f, 0x10, 0x6f, 0xa8, 0x1b, 0xe1, 0x89, 0x8f, 0x01, 0xd4, 0x58, 0x91, - 0x3e, 0xa1, 0x11, 0x2f, 0x33, 0x56, 0x3c, 0x67, 0x93, 0x00, 0xd1, 0x83, 0xc1, 0x46, 0xf2, 0x6a, - 0x65, 0xf6, 0xc0, 0xc3, 0x5b, 0xec, 0xe2, 0xd1, 0xfb, 0x7d, 0xea, 0xed, 0xb6, 0xce, 0x78, 0x26, - 0x27, 0x01, 0x49, 0xf5, 0x1b, 0xe1, 0xb5, 0x11, 0x43, 0x50, 0x0b, 0xd6, 0xfa, 0x19, 0xb9, 0x7a, - 0xb5, 0x79, 0x66, 0x0d, 0xef, 0xc4, 0x8b, 0x2f, 0x12, 0x3d, 0xce, 0x13, 0x06, 0x59, 0x46, 0x9f, - 0xb8, 0x03, 0xcb, 0xb6, 0x3c, 0xdf, 0x32, 0x5a, 0x67, 0xdc, 0x67, 0xcf, 0x82, 0xf3, 0x98, 0x06, - 0x0f, 0x8d, 0xb3, 0x60, 0xf4, 0x00, 0xaa, 0x61, 0x59, 0xc1, 0xa1, 0x37, 0x60, 0x8e, 0x7c, 0x75, - 0x77, 0x93, 0xcf, 0x2d, 0x7c, 0xe3, 0x8e, 0x1e, 0xc1, 0x13, 0xa8, 0xf5, 0xdf, 0x2a, 0x01, 0xea, - 0x10, 0xdb, 0x6c, 0xeb, 0xe3, 0x64, 0x32, 0xe1, 0x1e, 0x54, 0x6d, 0x27, 0x22, 0xe1, 0xba, 0x91, - 0x7d, 0x83, 0x4b, 0xa2, 0xa0, 0xef, 0xc3, 0x9a, 0x4b, 0xbe, 0x1a, 0x11, 0xcf, 0x8f, 0xfd, 0xb6, - 0xcc, 0x93, 0x75, 0xc2, 0xa1, 0xcb, 0xe3, 0xd6, 0xff, 0xbd, 0x04, 0x1b, 0x38, 0x80, 0x5e, 0x3c, - 0x99, 0xd9, 0xcb, 0x27, 0x73, 0x0f, 0xd6, 0x93, 0x57, 0x85, 0xec, 0x39, 0xf7, 0x77, 0x3f, 0xfc, - 0x84, 0xeb, 0x54, 0x51, 0x57, 0xc1, 0x65, 0x32, 0x9b, 0xbc, 0x4c, 0xa8, 0xf6, 0xf1, 0x29, 0xef, - 0xbb, 0xce, 0x80, 0x67, 0x4d, 0x92, 0x20, 0xba, 0x5b, 0xec, 0xad, 0x6b, 0x9c, 0x75, 0x10, 0xb3, - 0xe0, 0x7a, 0x03, 0x6e, 0x37, 0x89, 0xd1, 0xb7, 0x6c, 0xc2, 0x17, 0x8a, 0x53, 0xc2, 0x98, 0xca, - 0x1b, 0xae, 0xef, 0xc1, 0xad, 0x86, 0x6e, 0x1b, 0xa4, 0xff, 0x0d, 0x78, 0xfc, 0x5d, 0x19, 0xd6, - 0x5b, 0xd6, 0x0b, 0xf2, 0x8b, 0x49, 0x84, 0x17, 0x25, 0xac, 0xcb, 0x53, 0x25, 0xac, 0x67, 0x5f, - 0x2d, 0x61, 0x3d, 0x77, 0x95, 0x84, 0x35, 0x0f, 0x9f, 0xe7, 0xd3, 0xe1, 0xf3, 0xdb, 0xb0, 0xe2, - 0x51, 0xc1, 0xda, 0x46, 0x58, 0x68, 0xb2, 0xc0, 0xf6, 0x34, 0x03, 0xa5, 0xf3, 0x65, 0xb6, 0xf8, - 0xf4, 0xd4, 0x23, 0x3e, 0x3b, 0xa5, 0xcb, 0x38, 0x01, 0xf9, 0xb9, 0xa6, 0x93, 0x7e, 0x32, 0x0b, - 0x2b, 0x1d, 0xdf, 0x32, 0x9e, 0x13, 0x77, 0x72, 0xce, 0x22, 0xed, 0x9c, 0xcf, 0xe4, 0x9c, 0xf3, - 0x9c, 0x83, 0x5d, 0x2e, 0x72, 0xb0, 0x93, 0x2e, 0xfa, 0x6c, 0x3e, 0x83, 0x17, 0x65, 0x45, 0xe6, - 0x32, 0x59, 0x91, 0xab, 0xbd, 0x4a, 0xa6, 0xdd, 0xf8, 0x4a, 0xce, 0x8d, 0x4f, 0x07, 0x12, 0x8b, - 0xb9, 0x40, 0xe2, 0x6a, 0x29, 0xa5, 0xf0, 0x05, 0x6f, 0x9f, 0xda, 0x6c, 0xce, 0xb3, 0x1a, 0xa8, - 0x65, 0x16, 0x4e, 0x39, 0xc7, 0xb0, 0x30, 0xb0, 0x5f, 0x62, 0x82, 0xc8, 0x77, 0xd0, 0x79, 0x5a, - 0x9e, 0x68, 0x5b, 0x03, 0x56, 0xdd, 0xb2, 0xcc, 0x52, 0x2f, 0x09, 0x08, 0x75, 0x72, 0x87, 0x76, - 0x4e, 0x27, 0x52, 0xb0, 0x57, 0x54, 0x89, 0xdf, 0x9f, 0x85, 0xd5, 0x7d, 0x67, 0xe4, 0x62, 0xe7, - 0xeb, 0xd0, 0xfa, 0xa3, 0x07, 0xb0, 0xc0, 0x50, 0x78, 0x66, 0xf6, 0xf2, 0x62, 0xa9, 0x10, 0x1d, - 0x7d, 0x0c, 0xf3, 0xa7, 0x8e, 0xe3, 0x73, 0xe5, 0xbf, 0x9c, 0x90, 0x63, 0xa3, 0x0f, 0x60, 0x21, - 0xa8, 0x44, 0xf2, 0x6a, 0x95, 0x54, 0xec, 0x90, 0xae, 0xba, 0xc2, 0x21, 0x16, 0xda, 0x83, 0x55, - 0x33, 0x9d, 0xd5, 0xe6, 0x06, 0x2c, 0xbc, 0xca, 0x32, 0x39, 0xef, 0xc3, 0x6b, 0x38, 0x4b, 0x80, - 0xbe, 0xa4, 0x31, 0x77, 0xe1, 0xbc, 0xa6, 0xab, 0x11, 0x3b, 0xbc, 0x86, 0x27, 0x31, 0x40, 0x9f, - 0xc2, 0x92, 0x95, 0x78, 0xf4, 0xe7, 0xd7, 0xdb, 0x7a, 0x98, 0xcc, 0x4a, 0x74, 0x1d, 0x5e, 0xc3, - 0x29, 0x54, 0x4a, 0xfa, 0x22, 0x91, 0xc8, 0xe1, 0x97, 0xd8, 0x7a, 0x41, 0x8e, 0x87, 0x92, 0x26, - 0x51, 0xa9, 0x54, 0xfa, 0x69, 0x03, 0xcd, 0xce, 0x57, 0x2c, 0x95, 0x8c, 0xf9, 0xa6, 0x52, 0xc9, - 0x10, 0xec, 0x2d, 0xf0, 0x74, 0x7f, 0xfd, 0x8f, 0x67, 0x61, 0x2b, 0xac, 0x52, 0xcc, 0x6a, 0xc8, - 0x3d, 0x58, 0x0f, 0x5d, 0x83, 0x46, 0xb0, 0xf5, 0xec, 0x75, 0x2c, 0x30, 0x89, 0x45, 0x5d, 0xe8, - 0x2e, 0xa0, 0xf3, 0x88, 0x19, 0xdd, 0x73, 0x46, 0x10, 0xb8, 0x33, 0x05, 0x3d, 0xe8, 0x00, 0x56, - 0xd3, 0xe5, 0x8f, 0xa1, 0x66, 0xbc, 0x96, 0x29, 0xa0, 0xcc, 0x68, 0x48, 0x96, 0x8a, 0xd9, 0x5b, - 0x8e, 0x22, 0x9b, 0x61, 0x56, 0x39, 0x86, 0xfc, 0x4c, 0x34, 0xe9, 0x2e, 0xac, 0x85, 0xc3, 0x6a, - 0x54, 0x76, 0xf1, 0x53, 0xe1, 0xe1, 0x35, 0x9c, 0xef, 0xfa, 0xbf, 0xa0, 0x1d, 0x7f, 0x3d, 0x03, - 0xab, 0x19, 0x77, 0x31, 0x6b, 0x81, 0xca, 0xd3, 0x65, 0x40, 0x1f, 0x81, 0x70, 0x9e, 0xd9, 0x4b, - 0xbe, 0xaa, 0x3b, 0x99, 0xad, 0xce, 0x68, 0x21, 0xce, 0xd1, 0xd1, 0x25, 0x9e, 0xa6, 0x91, 0x32, - 0x9b, 0x99, 0x61, 0x41, 0x97, 0x98, 0x21, 0x60, 0x66, 0xa1, 0x78, 0xc0, 0xac, 0x59, 0x28, 0xc6, - 0x62, 0x66, 0xa1, 0xb8, 0x6b, 0xaf, 0x42, 0xed, 0xa3, 0x3b, 0xd0, 0xfd, 0xfa, 0x3f, 0x94, 0xe0, - 0x66, 0x46, 0x75, 0xc9, 0xb0, 0x1f, 0xe5, 0x5b, 0xa8, 0x57, 0x43, 0xfa, 0xc4, 0xf0, 0x89, 0x19, - 0x15, 0x29, 0x25, 0x20, 0xf4, 0x00, 0x86, 0xad, 0x66, 0xa2, 0x3a, 0x36, 0x08, 0x75, 0x8a, 0xba, - 0x5e, 0x71, 0x73, 0xde, 0x82, 0xe5, 0x68, 0xd4, 0x44, 0xb9, 0x6b, 0x1a, 0x58, 0xff, 0x51, 0x09, - 0x56, 0x1b, 0xba, 0xaf, 0xf7, 0x9d, 0xb3, 0x8e, 0xad, 0x0f, 0xbd, 0x73, 0xc7, 0x47, 0x9f, 0xc0, - 0x92, 0x11, 0x80, 0x98, 0x3e, 0xf3, 0x7d, 0x28, 0xd2, 0x71, 0x9c, 0x42, 0x8c, 0xdf, 0x1b, 0x67, - 0x92, 0xef, 0x8d, 0x99, 0x17, 0xf4, 0x72, 0xee, 0x05, 0xbd, 0xfe, 0x5f, 0x33, 0x2c, 0x5b, 0x6c, - 0x8e, 0x0c, 0x3f, 0x39, 0x89, 0x61, 0x00, 0xba, 0x7c, 0x12, 0x49, 0x44, 0xf6, 0x3c, 0xc9, 0xdb, - 0x61, 0x46, 0x3a, 0x06, 0x4c, 0x78, 0x12, 0xcd, 0x4c, 0x71, 0x36, 0xff, 0xc8, 0x9f, 0xcd, 0x55, - 0xcd, 0x15, 0xe4, 0xaa, 0x76, 0x60, 0x75, 0xe8, 0x5a, 0x06, 0x11, 0xe3, 0x18, 0x63, 0x3e, 0x08, - 0x0e, 0x32, 0x60, 0xaa, 0x23, 0x2e, 0xf1, 0x75, 0xab, 0x4f, 0x5c, 0xd9, 0xe4, 0xa6, 0x34, 0x01, - 0x09, 0x5d, 0xbb, 0x4a, 0xec, 0xda, 0xbd, 0x07, 0x6b, 0xc9, 0x55, 0x06, 0x8f, 0xaf, 0xc1, 0x5b, - 0x4e, 0xbe, 0x83, 0xce, 0x96, 0x79, 0x2a, 0x0c, 0x24, 0x9b, 0xbc, 0x42, 0x23, 0x05, 0xab, 0xff, - 0x53, 0x09, 0x56, 0xb8, 0xd0, 0xe3, 0x88, 0x6a, 0x81, 0xf3, 0xca, 0x9c, 0xbd, 0xcc, 0xe6, 0xe0, - 0x10, 0x8d, 0xfa, 0x55, 0xcf, 0x46, 0x9e, 0x65, 0x13, 0xcf, 0x53, 0xbf, 0xb6, 0x89, 0xfb, 0x28, - 0x7a, 0x05, 0xc8, 0xc1, 0x29, 0x77, 0xae, 0x2d, 0xdc, 0x48, 0x6c, 0x46, 0x55, 0xce, 0x29, 0xfd, - 0xc3, 0x21, 0xda, 0xab, 0xba, 0xca, 0x33, 0x80, 0x82, 0xaa, 0x29, 0xfb, 0x85, 0x15, 0x9b, 0xb8, - 0x9b, 0x50, 0x61, 0xa5, 0x82, 0x74, 0x8a, 0xbc, 0x62, 0x35, 0x6c, 0x33, 0x27, 0x8e, 0x21, 0xb3, - 0xbd, 0x0d, 0x16, 0x90, 0x80, 0xd0, 0x65, 0x06, 0xad, 0xc4, 0x83, 0x42, 0x99, 0x6d, 0x6d, 0x0e, - 0x4e, 0xf5, 0x8f, 0xf1, 0x65, 0x09, 0x0c, 0x5e, 0xa5, 0x1a, 0x01, 0xf2, 0x31, 0xc2, 0xdc, 0x25, - 0x25, 0xbc, 0x99, 0x58, 0x25, 0x23, 0x92, 0x85, 0xe9, 0x44, 0x42, 0x60, 0xad, 0x49, 0x5e, 0x58, - 0x06, 0xe9, 0x24, 0xae, 0xbe, 0xb7, 0x61, 0xc5, 0x24, 0x9e, 0x6f, 0xd9, 0x6c, 0xde, 0xb1, 0x58, - 0x32, 0x50, 0xb4, 0x03, 0x0b, 0x83, 0x0b, 0x53, 0x04, 0x61, 0x77, 0xbd, 0x11, 0x0d, 0x33, 0xb6, - 0x8d, 0xf8, 0x86, 0x45, 0x1e, 0x71, 0x2d, 0xbd, 0x6f, 0xfd, 0x90, 0x98, 0x4f, 0x07, 0xfd, 0xbd, - 0xb1, 0xcf, 0x4a, 0xb5, 0xe9, 0xb2, 0x0b, 0x7a, 0xea, 0x7f, 0xbb, 0x0a, 0x0b, 0x21, 0x2d, 0x3d, - 0x75, 0x41, 0xf5, 0x6c, 0x20, 0xf3, 0x30, 0x43, 0x9c, 0x80, 0xa1, 0x33, 0xb8, 0xed, 0x5d, 0x56, - 0xf0, 0x59, 0xdd, 0x7d, 0x93, 0xcf, 0xf9, 0xa2, 0x82, 0x4f, 0x7c, 0x21, 0x23, 0x6a, 0x91, 0xa6, - 0xbc, 0xfa, 0x33, 0x17, 0xff, 0x77, 0x59, 0x25, 0x71, 0x22, 0x91, 0xce, 0xf5, 0x7f, 0x42, 0x96, - 0x3d, 0x83, 0x8c, 0x1e, 0x5e, 0xf1, 0xf2, 0xcf, 0x5d, 0xfd, 0xa8, 0x05, 0xeb, 0x24, 0x5f, 0xde, - 0xc3, 0x23, 0x84, 0x9b, 0x93, 0x0b, 0x80, 0x70, 0x11, 0x19, 0x9d, 0x4f, 0xd6, 0xed, 0x5a, 0xb8, - 0xc8, 0xed, 0xca, 0x3b, 0x5d, 0x9f, 0xc0, 0x92, 0x9e, 0x28, 0x8d, 0x60, 0x76, 0x2e, 0x96, 0x64, - 0xb2, 0x6a, 0x02, 0xa7, 0x10, 0x29, 0x61, 0xca, 0x85, 0x5a, 0x9c, 0xe8, 0x42, 0x65, 0x1c, 0xa8, - 0xd7, 0x61, 0xd6, 0xd0, 0xfb, 0x7d, 0x16, 0x20, 0x56, 0x77, 0xab, 0x89, 0xcf, 0x2b, 0x30, 0xeb, - 0x60, 0x08, 0xe7, 0x7a, 0x50, 0xcb, 0x96, 0x40, 0x38, 0xd7, 0x7d, 0xcc, 0x3a, 0xe8, 0xaa, 0x87, - 0xe9, 0x57, 0x48, 0x16, 0x13, 0xa6, 0x6c, 0x64, 0xb2, 0x17, 0x67, 0xd1, 0x91, 0x0a, 0xd7, 0x8d, - 0x82, 0x07, 0x1a, 0x16, 0x33, 0xc6, 0x69, 0xe1, 0xa2, 0x37, 0x1c, 0x5c, 0x48, 0x18, 0xbc, 0x3c, - 0x16, 0x47, 0x41, 0x2b, 0x53, 0xc5, 0x70, 0x13, 0x63, 0xa0, 0x1f, 0x97, 0xe0, 0xdd, 0x53, 0xdd, - 0xf3, 0x31, 0x2b, 0x96, 0xf3, 0x1f, 0x93, 0xf1, 0x85, 0x35, 0xd5, 0xab, 0xd3, 0x1f, 0xb1, 0x2b, - 0xb0, 0x45, 0x32, 0xb5, 0x1c, 0xd9, 0xac, 0x25, 0x0b, 0xa0, 0xe3, 0x8f, 0xb1, 0xf2, 0x69, 0x4d, - 0x5c, 0x40, 0x44, 0x4f, 0x40, 0x3f, 0x9f, 0x03, 0x63, 0xcf, 0xf5, 0xf1, 0x09, 0x28, 0xc8, 0x92, - 0xe1, 0x22, 0x32, 0x84, 0x61, 0xc3, 0x2d, 0x4a, 0x62, 0xb2, 0xd2, 0xfc, 0xb8, 0xf0, 0xa1, 0x30, - 0xd1, 0x89, 0x8b, 0x49, 0xa9, 0x19, 0x33, 0x2f, 0xc8, 0x17, 0xf2, 0xb2, 0xfe, 0x50, 0xc6, 0x17, - 0xa5, 0x16, 0xf1, 0x85, 0x8c, 0x90, 0x09, 0xb7, 0x8c, 0xc9, 0x39, 0x45, 0xfe, 0x21, 0x40, 0x3d, - 0x3a, 0x21, 0x13, 0x31, 0xf1, 0x45, 0x6c, 0xe8, 0x71, 0xf1, 0xd3, 0x31, 0x06, 0xfb, 0x56, 0x60, - 0x72, 0xc2, 0x3a, 0x8b, 0x4e, 0xad, 0xa6, 0x97, 0x4a, 0x78, 0xb1, 0xaf, 0x07, 0x62, 0xab, 0x99, - 0xce, 0x86, 0xe1, 0x0c, 0x32, 0x55, 0x9e, 0xb3, 0x9c, 0x13, 0x50, 0xbb, 0x9d, 0x52, 0x9e, 0xbc, - 0x97, 0x80, 0x0b, 0x88, 0x90, 0x0e, 0x37, 0xfd, 0x89, 0xfe, 0x7e, 0xed, 0x35, 0xc6, 0xf2, 0x8d, - 0xe2, 0xac, 0x47, 0x02, 0x11, 0x5f, 0xc0, 0x84, 0x2e, 0x76, 0x98, 0xf2, 0xc5, 0x6a, 0x77, 0x52, - 0x8b, 0x4d, 0x3b, 0x6a, 0x38, 0x83, 0x8c, 0xf6, 0x61, 0xcd, 0xcc, 0xde, 0xef, 0xb5, 0xd7, 0x53, - 0x1f, 0x3c, 0xe6, 0xee, 0x7f, 0x9c, 0x27, 0x49, 0xf0, 0x89, 0x2f, 0xf0, 0xda, 0x76, 0x11, 0x9f, - 0xb8, 0x1f, 0xe7, 0x49, 0xea, 0x3e, 0x40, 0x9c, 0x86, 0x4e, 0x7f, 0xb7, 0x53, 0xca, 0x7e, 0xb7, - 0xb3, 0x09, 0xf3, 0xa7, 0xae, 0x33, 0x38, 0x0a, 0x6e, 0xea, 0x0a, 0xe6, 0x2d, 0x5e, 0x52, 0x52, - 0x0e, 0x4b, 0x4a, 0xb2, 0x5f, 0x15, 0xcd, 0xe6, 0xbe, 0x2a, 0xaa, 0xff, 0xe9, 0x06, 0x54, 0x9f, - 0x90, 0x67, 0xfb, 0x44, 0xa7, 0xc6, 0xcc, 0x43, 0x8f, 0x60, 0xb9, 0xaf, 0x3f, 0x23, 0x7d, 0x8f, - 0x07, 0x53, 0xfc, 0x19, 0xf8, 0x2d, 0xbe, 0x92, 0x04, 0xea, 0xdd, 0x27, 0xd2, 0x5e, 0x6f, 0x5f, - 0x12, 0xb5, 0x2e, 0x96, 0x3a, 0xbd, 0xfd, 0x96, 0x78, 0x80, 0xd3, 0xa4, 0xe8, 0x07, 0xb0, 0xf9, - 0xc2, 0xb1, 0x86, 0xb2, 0x6d, 0x5a, 0x2f, 0x2c, 0x73, 0xa4, 0xf7, 0xd5, 0x91, 0x7f, 0xe6, 0x58, - 0xf6, 0x19, 0xaf, 0x54, 0x99, 0x8e, 0xe9, 0x04, 0x1e, 0xe8, 0x21, 0xf7, 0x4d, 0xbd, 0xe3, 0x8f, - 0xd8, 0x8a, 0xa7, 0xe5, 0x17, 0x51, 0xa1, 0x16, 0xac, 0x84, 0xbf, 0x1b, 0x2e, 0x09, 0x03, 0xf1, - 0x69, 0xf9, 0x64, 0x68, 0x29, 0x37, 0xe3, 0x5c, 0xb7, 0xcf, 0x78, 0xe6, 0xfb, 0x78, 0x97, 0x79, - 0x1c, 0x53, 0x73, 0x4b, 0xd3, 0x52, 0xd9, 0x7d, 0x35, 0x22, 0xee, 0xb8, 0xe3, 0xeb, 0xfe, 0xc8, - 0x3b, 0xfe, 0x28, 0x76, 0x7e, 0xe7, 0xaf, 0x22, 0xbb, 0x62, 0x1e, 0x6c, 0x97, 0x13, 0x36, 0xda, - 0xe3, 0xcf, 0xe2, 0xd3, 0xee, 0x72, 0x92, 0x14, 0x35, 0x01, 0xd8, 0x28, 0xc7, 0x76, 0x58, 0xa2, - 0x3a, 0x2d, 0xa3, 0x04, 0x5d, 0x5e, 0x57, 0x64, 0xdb, 0x70, 0x06, 0x54, 0x57, 0x16, 0x5f, 0x5d, - 0x57, 0x42, 0x1e, 0x08, 0xc3, 0x5a, 0xf4, 0xd5, 0xa9, 0x45, 0xbc, 0x2f, 0xe8, 0xb8, 0xbc, 0x96, - 0x7b, 0x3a, 0xc6, 0x79, 0x72, 0xaa, 0x7f, 0xc3, 0xc0, 0x8c, 0x7b, 0xcc, 0x03, 0x9a, 0x5a, 0xff, - 0x42, 0x2a, 0xd4, 0x06, 0x81, 0x1b, 0xe0, 0xb6, 0x6e, 0x3c, 0x0f, 0x26, 0xb5, 0x74, 0x05, 0x4e, - 0x39, 0x6a, 0xa4, 0x01, 0x4a, 0x6d, 0xce, 0xbe, 0x65, 0xeb, 0x7d, 0xe6, 0x2c, 0x4d, 0xcb, 0xb3, - 0x80, 0x9e, 0xee, 0x70, 0x70, 0xb0, 0x25, 0xd3, 0xf2, 0x99, 0x9b, 0x34, 0xf5, 0x0e, 0xc7, 0x74, - 0x68, 0x1f, 0xaa, 0xec, 0x8d, 0xa1, 0x3b, 0xec, 0x3b, 0xba, 0xc9, 0xfc, 0x9f, 0x69, 0xd9, 0x24, - 0x09, 0xd1, 0x29, 0xdc, 0x4a, 0x34, 0xb1, 0x65, 0x9c, 0x7f, 0x91, 0xd8, 0x1b, 0xe6, 0x9e, 0x4c, - 0xcb, 0xf7, 0x22, 0x46, 0xe8, 0x7b, 0xb0, 0xf0, 0x82, 0xaa, 0xe6, 0xf1, 0x2e, 0xaf, 0x3b, 0x9c, - 0x8e, 0x67, 0x48, 0x44, 0x77, 0x97, 0xb9, 0xd3, 0x61, 0x3d, 0x69, 0xd7, 0xed, 0xb3, 0x2f, 0x95, - 0xa6, 0xde, 0xdd, 0x2c, 0x35, 0x3d, 0xb5, 0x1e, 0x3b, 0xca, 0x58, 0xb7, 0x9f, 0xd3, 0xa3, 0xb1, - 0x71, 0x95, 0x53, 0x9b, 0x22, 0x45, 0xc7, 0xb0, 0x9e, 0x3e, 0x2b, 0x2c, 0x10, 0x60, 0xce, 0xd8, - 0xb4, 0x1c, 0x8b, 0x18, 0x50, 0x0d, 0xf4, 0xcf, 0x2d, 0xd7, 0x6c, 0xeb, 0xae, 0x3f, 0xe6, 0xee, - 0x86, 0xc7, 0x1c, 0xb1, 0xa9, 0x35, 0x30, 0x4f, 0x8f, 0x4c, 0xb8, 0x79, 0xca, 0x5c, 0x40, 0xdb, - 0xef, 0x8f, 0xa3, 0x4f, 0x38, 0x79, 0x59, 0x21, 0x73, 0xbf, 0xa6, 0xe5, 0x7e, 0x01, 0x1f, 0x6a, - 0x83, 0xb8, 0x4d, 0xbf, 0xff, 0xc8, 0xb1, 0xec, 0x36, 0x71, 0x07, 0x96, 0xe7, 0x85, 0x9f, 0x6c, - 0x4e, 0x6d, 0x83, 0x8a, 0x79, 0xd0, 0xfb, 0xc1, 0x25, 0x06, 0xb1, 0xfd, 0x48, 0x2a, 0x37, 0xaf, - 0x72, 0x3f, 0xa4, 0x69, 0xa9, 0x76, 0x86, 0x89, 0xa1, 0x5b, 0x57, 0xd1, 0xce, 0x30, 0x4d, 0xa4, - 0xc0, 0xaa, 0xe7, 0xeb, 0xae, 0x4b, 0xcc, 0x68, 0x3a, 0xb7, 0xaf, 0xc0, 0x27, 0x4b, 0x4c, 0x75, - 0x93, 0xaa, 0x03, 0xf3, 0x0e, 0x69, 0x88, 0xc8, 0x5c, 0xbc, 0xa9, 0x75, 0x33, 0x45, 0x4a, 0xe7, - 0x96, 0xf5, 0x83, 0xef, 0x5c, 0x65, 0x6e, 0x59, 0xaf, 0xf8, 0x1c, 0x6e, 0x67, 0x40, 0x71, 0x79, - 0xb5, 0xe5, 0x8f, 0x99, 0xd3, 0x37, 0x2d, 0xf3, 0x0b, 0x39, 0xd1, 0x7b, 0x26, 0x2a, 0x7a, 0xe5, - 0x08, 0x1e, 0xf3, 0x05, 0xa7, 0xbe, 0x67, 0x72, 0xe4, 0xf4, 0xa4, 0x92, 0x5d, 0x29, 0x59, 0x7c, - 0x49, 0xbd, 0xc6, 0xda, 0x1b, 0x57, 0x39, 0xa9, 0x05, 0x0c, 0xa8, 0x7d, 0x4a, 0xeb, 0xd4, 0xf1, - 0x6e, 0xad, 0x7e, 0x15, 0xfb, 0x94, 0xa5, 0xae, 0x3f, 0x85, 0xb5, 0x1c, 0x1a, 0x5a, 0x85, 0xaa, - 0xa2, 0x6a, 0xbd, 0x8e, 0x26, 0x62, 0x4d, 0x6a, 0x0a, 0xd7, 0xd0, 0x1a, 0x2c, 0xef, 0xab, 0xb8, - 0x21, 0xf5, 0xba, 0xed, 0x03, 0x2c, 0x36, 0xa5, 0xa0, 0x0a, 0xad, 0x29, 0x1d, 0x4b, 0x2d, 0xb5, - 0x7d, 0x24, 0x29, 0x9a, 0x30, 0x83, 0x56, 0x00, 0xda, 0x58, 0x6d, 0x76, 0x1b, 0xac, 0xba, 0xb6, - 0x5c, 0xff, 0x69, 0x09, 0xb6, 0x34, 0xfd, 0x59, 0x9f, 0xf8, 0xc9, 0x65, 0x78, 0x2c, 0x67, 0x9f, - 0xaa, 0x4c, 0x0b, 0xea, 0x53, 0x62, 0x00, 0xf5, 0x80, 0x47, 0xb6, 0x4b, 0x74, 0xb3, 0x71, 0xae, - 0xfb, 0x61, 0x59, 0x45, 0x12, 0x84, 0xee, 0x02, 0xb2, 0x29, 0xd3, 0x30, 0xae, 0x08, 0xd2, 0xc4, - 0x41, 0xe2, 0xbf, 0xa0, 0x07, 0x35, 0x61, 0x39, 0x05, 0xad, 0xcd, 0xa5, 0x0a, 0x9e, 0x92, 0x13, - 0x8c, 0x74, 0xe4, 0xd4, 0xc1, 0x69, 0xa2, 0xfa, 0x5f, 0x94, 0x60, 0x6b, 0x02, 0xea, 0x74, 0x45, - 0xdf, 0x53, 0x67, 0x18, 0xd1, 0xbb, 0x20, 0xf0, 0x9f, 0xf1, 0xa3, 0x7f, 0x99, 0xc9, 0x29, 0x07, - 0x9f, 0x22, 0x60, 0xf8, 0xfb, 0x12, 0x5c, 0x7f, 0x42, 0x9e, 0xfd, 0xf2, 0xf7, 0xe1, 0xbb, 0xb0, - 0x92, 0x82, 0x7a, 0x7c, 0x23, 0x36, 0x62, 0xed, 0x4d, 0xca, 0x3f, 0x83, 0x5c, 0xff, 0x8d, 0x2a, - 0x54, 0x79, 0x18, 0xce, 0xa6, 0xff, 0x14, 0x50, 0xf8, 0x30, 0x91, 0xf9, 0xdf, 0x1c, 0x2b, 0xbb, - 0x3b, 0x61, 0x44, 0x19, 0xe3, 0xdf, 0x6d, 0x8b, 0x27, 0x54, 0x59, 0x83, 0xff, 0x09, 0xd1, 0xe8, - 0x62, 0x2c, 0x29, 0x8d, 0x13, 0x5c, 0xc0, 0x63, 0xba, 0x0a, 0x2a, 0x83, 0x58, 0x2f, 0x82, 0xa7, - 0x80, 0xa8, 0x82, 0x2a, 0x02, 0xa1, 0xef, 0xc1, 0x7c, 0x70, 0x7b, 0xf3, 0x00, 0xe5, 0xed, 0xcb, - 0xe6, 0x13, 0x94, 0x3e, 0x63, 0x4e, 0x85, 0x76, 0xe1, 0xba, 0xef, 0xea, 0xb6, 0x17, 0xfc, 0x53, - 0x8e, 0x74, 0x19, 0xd6, 0x2c, 0x2e, 0xec, 0x2b, 0x2e, 0x5b, 0x9b, 0x9f, 0xbe, 0x6c, 0xad, 0xa8, - 0xec, 0x6b, 0x81, 0x8d, 0x97, 0x05, 0xb3, 0x12, 0x9b, 0x11, 0x35, 0x33, 0x43, 0xd7, 0x71, 0x4e, - 0x89, 0xc9, 0x3f, 0xc6, 0x49, 0x03, 0xd1, 0xcd, 0x44, 0x49, 0x66, 0xf0, 0xae, 0x1d, 0x17, 0x5f, - 0x1e, 0xc0, 0xa2, 0xff, 0xd2, 0x0e, 0xe2, 0x1c, 0xee, 0xd7, 0xbf, 0x73, 0x99, 0x8c, 0xb4, 0xa7, - 0x0a, 0x17, 0x53, 0x4c, 0x5b, 0xff, 0x18, 0x36, 0x0a, 0x37, 0x16, 0x5d, 0x07, 0xa1, 0xab, 0x3c, - 0x56, 0xd4, 0x27, 0x4a, 0x04, 0x13, 0xae, 0xa1, 0x05, 0x28, 0xcb, 0x0a, 0x16, 0x4a, 0xf5, 0x7f, - 0x29, 0xc1, 0x7a, 0xc1, 0x0e, 0x20, 0x04, 0x2b, 0x21, 0x59, 0x00, 0x11, 0xae, 0x71, 0xe3, 0xd6, - 0x90, 0x3a, 0x1d, 0x59, 0x39, 0x08, 0x6a, 0xd3, 0x3b, 0x81, 0xd9, 0x43, 0xb0, 0xa2, 0x48, 0x52, - 0xb3, 0xa7, 0xa9, 0x3d, 0xb1, 0xd1, 0x90, 0xda, 0x5a, 0x50, 0x0c, 0xdc, 0x50, 0x8f, 0xda, 0x2d, - 0x49, 0x93, 0x84, 0x59, 0xb4, 0x09, 0xa8, 0xa1, 0x76, 0x5b, 0xcd, 0x1e, 0xb5, 0xa9, 0x11, 0x9c, - 0x15, 0x06, 0x63, 0x69, 0xbf, 0xab, 0x34, 0xa5, 0xa6, 0x30, 0x8f, 0xaa, 0xb0, 0x20, 0x3d, 0x6d, - 0xcb, 0x58, 0x6a, 0x0a, 0x0b, 0x41, 0xd7, 0x23, 0xa9, 0x41, 0xad, 0x6f, 0x05, 0x2d, 0xc3, 0x62, - 0x43, 0x54, 0x1a, 0x52, 0xab, 0x25, 0x35, 0x85, 0x45, 0xb4, 0x01, 0x6b, 0x4f, 0x44, 0x59, 0x93, - 0x95, 0x83, 0xde, 0xbe, 0x8a, 0x7b, 0x6d, 0xf1, 0x44, 0xc2, 0x02, 0x50, 0x06, 0x1c, 0x2c, 0x54, - 0xeb, 0xff, 0x3c, 0x0b, 0x9b, 0xc5, 0x92, 0xa3, 0x78, 0x7c, 0x79, 0x81, 0x61, 0x6f, 0x4b, 0x4a, - 0x93, 0xf2, 0xea, 0x48, 0x5a, 0xb7, 0x2d, 0x94, 0xd0, 0x4d, 0xd8, 0x0c, 0x41, 0x58, 0x6a, 0x48, - 0xf2, 0xb1, 0x84, 0x79, 0xdf, 0x0c, 0x5d, 0xb6, 0xac, 0xc8, 0x74, 0x89, 0x55, 0x58, 0xe8, 0x74, - 0x1b, 0x54, 0x20, 0xc2, 0x2c, 0x9b, 0x20, 0x5f, 0x57, 0x53, 0x98, 0x63, 0xd5, 0xcf, 0xa2, 0xdc, - 0x62, 0xcb, 0x5a, 0x85, 0x6a, 0xf0, 0xbb, 0x87, 0xe5, 0xce, 0x63, 0x61, 0x81, 0xce, 0x9e, 0x03, - 0x12, 0x02, 0xad, 0xa0, 0x3b, 0x70, 0x33, 0xc4, 0x0b, 0x07, 0x4d, 0xf4, 0x2f, 0xd2, 0x21, 0x78, - 0x7f, 0x53, 0x14, 0x00, 0xad, 0xc3, 0x6a, 0xd4, 0xec, 0xed, 0xcb, 0x8a, 0xd8, 0x12, 0xaa, 0x48, - 0x80, 0xa5, 0x50, 0xa0, 0x74, 0xbd, 0xc2, 0x12, 0x5d, 0x5e, 0x00, 0xe9, 0xf1, 0x09, 0x2d, 0xa3, - 0xdb, 0x50, 0x4b, 0x81, 0x92, 0xc3, 0xac, 0x50, 0x95, 0x49, 0xf7, 0x36, 0x45, 0x61, 0x95, 0x2e, - 0x82, 0xef, 0x0d, 0xe3, 0x2b, 0x50, 0xbe, 0x62, 0x57, 0x3b, 0xec, 0x05, 0xdb, 0x22, 0x35, 0x85, - 0x35, 0xf4, 0x06, 0xbc, 0x96, 0x00, 0x15, 0x30, 0x47, 0x54, 0x11, 0xf2, 0x28, 0xc2, 0x3a, 0x9d, - 0x77, 0x43, 0x6d, 0xb5, 0xa4, 0x06, 0xdd, 0x2b, 0x59, 0x13, 0xae, 0xd3, 0xe5, 0x85, 0x90, 0x50, - 0xca, 0x1b, 0x54, 0xd3, 0x42, 0x20, 0x27, 0xdd, 0x44, 0x5b, 0xb0, 0x9e, 0x86, 0x05, 0x62, 0xde, - 0xa2, 0x0b, 0x09, 0x3b, 0x22, 0x4d, 0xaa, 0x25, 0xf9, 0x86, 0xca, 0x76, 0x23, 0x89, 0x1a, 0xad, - 0xe7, 0x66, 0xa0, 0xb5, 0x49, 0x68, 0x8b, 0x2e, 0xe2, 0x56, 0xfd, 0x1f, 0x6f, 0xc2, 0x4a, 0xda, - 0x4c, 0xc7, 0x77, 0xdf, 0xcc, 0x2f, 0xfc, 0xee, 0x93, 0x32, 0x56, 0xf6, 0xfd, 0xc2, 0x8b, 0x84, - 0x79, 0x42, 0xe1, 0x97, 0x45, 0x45, 0xc6, 0x36, 0x73, 0x85, 0xce, 0xe5, 0xff, 0x93, 0xcf, 0x26, - 0xcc, 0x5b, 0x67, 0xb6, 0xe3, 0x06, 0x79, 0xf9, 0x0a, 0xe6, 0x2d, 0xf6, 0x89, 0x63, 0xe0, 0x56, - 0xb3, 0x67, 0xdb, 0x0a, 0x0e, 0x9b, 0xf4, 0x6e, 0x7d, 0xe6, 0x3a, 0xba, 0x69, 0xe8, 0x9e, 0xcf, - 0xbf, 0xe1, 0x8e, 0x01, 0xd4, 0x32, 0x0e, 0x47, 0xde, 0x39, 0x7b, 0x3c, 0x5d, 0x0f, 0x2c, 0x63, - 0xd8, 0x46, 0xf7, 0x61, 0x83, 0x05, 0xb9, 0x0d, 0x6b, 0x78, 0x4e, 0x5c, 0x9f, 0xbc, 0xf4, 0x79, - 0x19, 0xe3, 0x75, 0xf6, 0x98, 0x58, 0xdc, 0x49, 0xc7, 0x1b, 0x8c, 0xfa, 0xbe, 0xc5, 0xc6, 0xdb, - 0x08, 0xc6, 0x8b, 0x00, 0x74, 0x9e, 0x23, 0xb7, 0xcf, 0x2a, 0x30, 0x82, 0xff, 0xab, 0x13, 0x36, - 0x29, 0xdd, 0xc8, 0xed, 0xf3, 0x82, 0xd0, 0xad, 0x80, 0x2e, 0x02, 0xa0, 0x13, 0x58, 0xe5, 0x42, - 0xef, 0xf8, 0xa3, 0x67, 0xec, 0x63, 0xa3, 0x20, 0x74, 0xfb, 0x60, 0x6a, 0x49, 0x77, 0xf7, 0xd8, - 0xd7, 0x17, 0x59, 0x3e, 0xec, 0xd3, 0xa2, 0x3e, 0xd1, 0xdd, 0x23, 0xba, 0x1c, 0x16, 0xae, 0x55, - 0x70, 0x02, 0x12, 0x88, 0x21, 0x22, 0x89, 0xca, 0xd0, 0x69, 0x0c, 0x56, 0xde, 0x59, 0xc4, 0xc5, - 0x9d, 0x54, 0xb0, 0xe6, 0x88, 0x3f, 0x5d, 0xdf, 0x62, 0x8e, 0x48, 0xd4, 0xa6, 0x9b, 0x18, 0x24, - 0x37, 0x6a, 0xb7, 0x83, 0x9a, 0xfa, 0xa0, 0x85, 0xee, 0xd3, 0xed, 0x8f, 0xae, 0x1c, 0x9e, 0xe9, - 0x46, 0xf9, 0xcb, 0x08, 0x27, 0xd1, 0xd0, 0x21, 0xac, 0x9d, 0x5a, 0xb6, 0xde, 0x4f, 0x3e, 0xa7, - 0xf0, 0x74, 0xf6, 0x45, 0x2f, 0x2d, 0x79, 0x22, 0xf4, 0x10, 0xd6, 0x82, 0x7f, 0x59, 0x94, 0x18, - 0x8b, 0xa7, 0xb5, 0x8b, 0x66, 0x91, 0x47, 0x46, 0x0f, 0x60, 0x2b, 0xfe, 0x72, 0xcf, 0xd7, 0x5d, - 0x3f, 0x3e, 0x3a, 0xdb, 0xec, 0xe8, 0x4c, 0xea, 0x66, 0xff, 0x9d, 0x25, 0xec, 0x6a, 0x86, 0x82, - 0x7b, 0x83, 0xff, 0x77, 0x96, 0x6c, 0x47, 0xdd, 0x82, 0xad, 0x09, 0x67, 0x09, 0x2d, 0xc2, 0x9c, - 0x84, 0xb1, 0x8a, 0x85, 0x6b, 0xf4, 0x72, 0xe0, 0x57, 0x88, 0x50, 0x62, 0xff, 0x84, 0x40, 0xc2, - 0xd4, 0xa0, 0x8b, 0x8d, 0xc7, 0xc2, 0x0c, 0xb5, 0x76, 0x4d, 0xa9, 0x45, 0x2d, 0xfc, 0x09, 0x83, - 0x94, 0xe9, 0xad, 0x82, 0x25, 0xb1, 0x19, 0x7c, 0x37, 0xd3, 0x6e, 0x89, 0x27, 0xf4, 0x16, 0xa9, - 0xff, 0xc7, 0x1a, 0xdc, 0x98, 0xa8, 0x4d, 0xe9, 0x5b, 0x2c, 0xfe, 0x4e, 0x90, 0x0d, 0xd7, 0x90, - 0xdb, 0x87, 0x12, 0xd6, 0xa4, 0xa7, 0xf4, 0x7e, 0xa6, 0x17, 0x50, 0x97, 0xc6, 0x36, 0x6d, 0xac, - 0xaa, 0xfb, 0xc1, 0x17, 0x83, 0x8a, 0xaa, 0xf4, 0x8e, 0x25, 0x2c, 0xef, 0xcb, 0xd4, 0xa2, 0x63, - 0x51, 0xe9, 0xc8, 0x2c, 0x68, 0x99, 0x45, 0x37, 0x60, 0xa3, 0xab, 0x14, 0x75, 0xcd, 0x51, 0x53, - 0x5b, 0xd4, 0x31, 0x8f, 0x6a, 0x70, 0x3d, 0xea, 0x68, 0xa9, 0x4f, 0x7a, 0xe1, 0xbc, 0x16, 0xe8, - 0x35, 0x11, 0xf5, 0x1c, 0xca, 0x07, 0x87, 0x42, 0x85, 0x5e, 0x3f, 0x11, 0x28, 0xfc, 0xe8, 0x2d, - 0x24, 0x58, 0x4c, 0xb1, 0x0a, 0x7b, 0x5b, 0xea, 0x13, 0x01, 0xe8, 0xc4, 0x72, 0x3d, 0x8c, 0x65, - 0x15, 0xbd, 0x09, 0xaf, 0x17, 0x4c, 0xac, 0x27, 0x2a, 0x27, 0xd4, 0x29, 0x61, 0x9f, 0xc6, 0x2e, - 0x5d, 0x82, 0xc4, 0x38, 0x2d, 0x4f, 0x42, 0xa2, 0xbd, 0x14, 0x8b, 0xce, 0x64, 0x05, 0x7d, 0x1b, - 0xde, 0xbc, 0x08, 0x29, 0x5c, 0xcc, 0x2a, 0x7a, 0x1b, 0xea, 0x45, 0x88, 0xa1, 0x6f, 0xc5, 0x19, - 0x0a, 0x93, 0xf0, 0xa8, 0x28, 0x13, 0xfc, 0xd6, 0x26, 0xcd, 0x8e, 0x2e, 0x30, 0x64, 0x86, 0x26, - 0xcd, 0x2e, 0x44, 0x0a, 0xb9, 0xb1, 0x4b, 0xf7, 0x00, 0xab, 0xdd, 0x76, 0xaf, 0x81, 0x25, 0x51, - 0x93, 0x84, 0xeb, 0x54, 0xf8, 0x1c, 0x72, 0x28, 0x2a, 0x07, 0x52, 0xaf, 0xd3, 0xdd, 0xa3, 0x17, - 0xa7, 0xb0, 0x41, 0x7d, 0x96, 0x54, 0x8f, 0xdc, 0x50, 0x15, 0x61, 0x93, 0xee, 0x65, 0x1a, 0xac, - 0x1c, 0xcb, 0x9a, 0xd4, 0x6b, 0xc9, 0x0a, 0xbd, 0x81, 0xb3, 0xbd, 0x4d, 0xa9, 0xd3, 0xc0, 0x72, - 0x9b, 0x29, 0x4d, 0x8d, 0xee, 0x67, 0xaa, 0x17, 0x4b, 0x1d, 0x0d, 0xcb, 0x0d, 0x4d, 0xb8, 0x91, - 0xeb, 0x12, 0x15, 0x45, 0xed, 0x2a, 0x0d, 0x49, 0xb8, 0x19, 0x77, 0xb5, 0x45, 0xac, 0xc9, 0x0d, - 0xb9, 0x2d, 0x2a, 0x5a, 0x4f, 0x6c, 0x36, 0x85, 0x5b, 0xf1, 0x70, 0xc9, 0x2e, 0x2c, 0x1d, 0xa9, - 0xc7, 0x92, 0x70, 0x1b, 0xbd, 0x06, 0x37, 0xf2, 0xbd, 0x6d, 0xac, 0x1e, 0xa9, 0x9a, 0x24, 0xbc, - 0x56, 0x4c, 0xdc, 0x94, 0x58, 0xef, 0x9d, 0xe2, 0xde, 0x60, 0xb1, 0xc2, 0xeb, 0xf4, 0x3c, 0xe5, - 0x7b, 0x5b, 0x92, 0x78, 0x2c, 0x09, 0xdb, 0x74, 0xcf, 0xf2, 0x9d, 0x7c, 0x5d, 0x4a, 0xf7, 0x68, - 0x4f, 0xc2, 0xc2, 0x1b, 0xd4, 0x01, 0xd9, 0xc3, 0xaa, 0xd8, 0x6c, 0x88, 0x1d, 0x2d, 0xdc, 0x8e, - 0x7a, 0xf0, 0xcf, 0x48, 0x42, 0x28, 0x5d, 0xe3, 0x9b, 0x69, 0x44, 0xbe, 0xb6, 0xb7, 0xd8, 0xbe, - 0x49, 0x8a, 0x84, 0xe5, 0xcc, 0x07, 0xbe, 0xdf, 0xa2, 0x3d, 0xd2, 0xae, 0xd4, 0x93, 0x9b, 0x92, - 0xa2, 0xc9, 0xda, 0x09, 0x1f, 0xb8, 0x29, 0xbc, 0x4d, 0x99, 0xd3, 0x1e, 0x49, 0x69, 0xe0, 0x93, - 0x36, 0xf5, 0x8d, 0xbe, 0x4d, 0x37, 0xb9, 0x21, 0xb6, 0x5a, 0xbd, 0x23, 0xb9, 0xd3, 0x91, 0x9a, - 0xbd, 0x63, 0x55, 0x6e, 0x48, 0xc2, 0x4e, 0x0e, 0xcc, 0xfe, 0x69, 0xc9, 0x3b, 0x54, 0x26, 0xb2, - 0xd2, 0x94, 0x8f, 0xe5, 0x66, 0x57, 0x6c, 0x65, 0x56, 0xf4, 0x6e, 0xac, 0x5c, 0x4d, 0x89, 0x39, - 0xfb, 0xff, 0x8f, 0x2a, 0x79, 0x00, 0x09, 0x77, 0xb3, 0x77, 0xa4, 0x36, 0xa5, 0xc8, 0xb8, 0xed, - 0x05, 0x3b, 0xfc, 0x1e, 0x95, 0x66, 0x72, 0xb8, 0x80, 0x26, 0x98, 0xcb, 0xfb, 0x13, 0x3a, 0xd9, - 0x8c, 0xee, 0x52, 0x87, 0x2d, 0xf4, 0xf8, 0x13, 0x06, 0xf0, 0x03, 0x6a, 0xb7, 0x42, 0x78, 0xd2, - 0x10, 0xde, 0x43, 0xef, 0xc1, 0x4e, 0xd8, 0xc1, 0x4e, 0x8a, 0xc8, 0x32, 0x37, 0xe1, 0x27, 0xb8, - 0xdd, 0x36, 0xfb, 0x2e, 0x91, 0x7b, 0x9a, 0x1f, 0xa2, 0xbb, 0xf0, 0xee, 0xe5, 0xd8, 0x51, 0x3c, - 0xb3, 0x8b, 0x3e, 0x82, 0x0f, 0xa6, 0xc5, 0x0f, 0x07, 0xf9, 0x08, 0x7d, 0x07, 0x3e, 0xbc, 0x80, - 0x28, 0x8e, 0x0c, 0x52, 0x21, 0xcb, 0x7d, 0xf4, 0x39, 0x3c, 0x98, 0x86, 0x8c, 0xbb, 0xd2, 0x3d, - 0x71, 0x5f, 0x93, 0x70, 0xef, 0x50, 0x6e, 0x34, 0xba, 0x6d, 0xe1, 0x3b, 0xe8, 0x1d, 0xf8, 0x56, - 0x48, 0xcd, 0x09, 0xc5, 0x46, 0x43, 0xed, 0x2a, 0x5a, 0xc0, 0x9f, 0x2a, 0x9a, 0xac, 0x34, 0x25, - 0x2c, 0x7c, 0x8c, 0x76, 0xe0, 0xad, 0x0c, 0x6a, 0x47, 0x52, 0x9a, 0xbd, 0x10, 0x16, 0x61, 0x7e, - 0x82, 0xde, 0x85, 0xb7, 0x2f, 0xc2, 0x64, 0xa7, 0x27, 0x50, 0xd3, 0x07, 0xf4, 0x90, 0x64, 0x70, - 0xb1, 0xf4, 0x45, 0x57, 0xea, 0xd0, 0x23, 0xd8, 0x68, 0xc9, 0x8a, 0xd4, 0x14, 0x3e, 0x45, 0x75, - 0xb8, 0x33, 0x01, 0x29, 0xf4, 0xe4, 0xff, 0x3f, 0x7a, 0x0b, 0xb6, 0x27, 0xe0, 0xc4, 0xf1, 0xe3, - 0x67, 0x74, 0xbd, 0x7b, 0xf2, 0x97, 0x45, 0x17, 0x60, 0x4f, 0x53, 0xdb, 0xd4, 0x4a, 0xee, 0xa9, - 0x9a, 0xa6, 0x1e, 0x09, 0x9f, 0x5f, 0x84, 0x1a, 0xe0, 0x50, 0x6c, 0x4d, 0x6d, 0x0b, 0xdf, 0x65, - 0xc7, 0x55, 0xfe, 0xb2, 0x27, 0x2b, 0x1a, 0x0e, 0x40, 0xdf, 0x63, 0xc7, 0x35, 0x02, 0x71, 0x9e, - 0xdf, 0xa7, 0x31, 0x08, 0x85, 0x2a, 0xe2, 0x91, 0xc4, 0xcf, 0x8d, 0xf0, 0x90, 0x1e, 0x27, 0x0a, - 0xa4, 0x27, 0x9a, 0xb2, 0x6c, 0xa8, 0x4a, 0xa7, 0x7b, 0x44, 0x5d, 0x86, 0x76, 0x5b, 0x10, 0x69, - 0x70, 0x48, 0x7b, 0xb5, 0x27, 0x6a, 0x4f, 0x93, 0x25, 0xdc, 0x3b, 0x92, 0x0f, 0xb0, 0x18, 0x4e, - 0x58, 0xd8, 0xa3, 0xb1, 0xd7, 0x84, 0x7e, 0x3e, 0x6a, 0x83, 0xc6, 0x8f, 0xea, 0xb1, 0x84, 0x3b, - 0xf2, 0x97, 0x52, 0x53, 0x68, 0xd2, 0x8d, 0x4c, 0xd9, 0x58, 0x45, 0xed, 0xed, 0x33, 0x59, 0x29, - 0x5a, 0xeb, 0x84, 0x86, 0xd5, 0x4f, 0x44, 0x4c, 0xf5, 0x58, 0x8a, 0x8d, 0xdf, 0xf1, 0x7d, 0x6a, - 0x85, 0x42, 0x23, 0xcf, 0xa2, 0xff, 0xfd, 0xf8, 0x58, 0x67, 0x0c, 0x72, 0x24, 0xf8, 0x47, 0xaa, - 0xac, 0x08, 0x07, 0x94, 0x0b, 0x1f, 0x29, 0xff, 0x4f, 0x0c, 0x0e, 0xff, 0x27, 0x00, 0x00, 0xff, - 0xff, 0x79, 0xe4, 0x35, 0xde, 0x43, 0x5b, 0x00, 0x00, +func (x *WebMessageInfo) GetEphemeralOffToOn() bool { + if x != nil && x.EphemeralOffToOn != nil { + return *x.EphemeralOffToOn + } + return false +} + +func (x *WebMessageInfo) GetEphemeralOutOfSync() bool { + if x != nil && x.EphemeralOutOfSync != nil { + return *x.EphemeralOutOfSync + } + return false +} + +func (x *WebMessageInfo) GetBizPrivacyStatus() WebMessageInfo_WebMessageInfoBizPrivacyStatus { + if x != nil && x.BizPrivacyStatus != nil { + return *x.BizPrivacyStatus + } + return WebMessageInfo_E2EE +} + +func (x *WebMessageInfo) GetVerifiedBizName() string { + if x != nil && x.VerifiedBizName != nil { + return *x.VerifiedBizName + } + return "" +} + +var File_def_proto protoreflect.FileDescriptor + +var file_def_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x64, 0x65, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x4c, 0x0a, 0x18, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, + 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x47, 0x0a, 0x11, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x58, 0x0a, 0x12, 0x48, 0x79, 0x64, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x16, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4d, 0x0a, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x51, + 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, + 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, + 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, + 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x79, + 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x10, + 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, + 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x09, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, + 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, + 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x12, 0x30, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x54, 0x65, 0x78, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xde, 0x01, 0x0a, 0x0e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x45, 0x0a, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x75, + 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, + 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x08, 0x0a, + 0x06, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, + 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x64, 0x65, + 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x2a, 0x0a, + 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, + 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, + 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x78, 0x44, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x78, 0x44, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x79, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x79, + 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5f, 0x0a, 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x12, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x01, 0x0a, 0x0b, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, + 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, + 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, + 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x14, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x22, 0x8e, 0x03, 0x0a, + 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, + 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x55, + 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, + 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x3e, 0x0a, + 0x1c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, + 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x22, 0xe0, 0x05, + 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64, 0x12, + 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4a, 0x69, 0x64, 0x18, + 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, + 0x4a, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x69, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x64, 0x41, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x41, 0x64, 0x12, 0x39, 0x0a, 0x0e, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, + 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, + 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x1b, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x15, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x44, 0x0a, 0x0f, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x23, 0x61, + 0x78, 0x6f, 0x6c, 0x6f, 0x74, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x23, 0x61, 0x78, 0x6f, 0x6c, 0x6f, 0x74, + 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xda, 0x06, + 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, + 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, + 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, + 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x54, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, + 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, + 0x63, 0x61, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, + 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, + 0x61, 0x6e, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x18, 0x16, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, + 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, + 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, + 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1a, + 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x22, 0xc8, 0x04, 0x0a, 0x0e, 0x49, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x5a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6d, 0x65, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, + 0x32, 0x35, 0x36, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, + 0x6c, 0x22, 0x32, 0x0a, 0x1c, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x50, 0x44, 0x46, 0x10, 0x01, 0x22, 0x7e, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x61, + 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x63, 0x61, 0x72, 0x64, 0x12, + 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xcf, 0x03, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, + 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, + 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, + 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x69, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, + 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, + 0x4d, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x21, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, + 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, + 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x21, + 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, + 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6a, + 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, + 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xdd, 0x05, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, + 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, + 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x67, 0x62, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x08, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x67, 0x62, 0x12, 0x26, 0x0a, + 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x72, 0x67, 0x62, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x41, 0x72, 0x67, 0x62, 0x12, 0x4a, 0x0a, 0x04, 0x66, 0x6f, 0x6e, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x46, 0x6f, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x66, 0x6f, 0x6e, + 0x74, 0x12, 0x5b, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, + 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, + 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6f, + 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x49, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x41, 0x4e, 0x53, 0x5f, 0x53, 0x45, 0x52, + 0x49, 0x46, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x45, 0x52, 0x49, 0x46, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x52, 0x49, 0x43, 0x41, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, + 0x41, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x52, 0x59, 0x4e, 0x44, 0x41, 0x4e, 0x5f, + 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x45, 0x42, 0x41, 0x53, + 0x4e, 0x45, 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x04, 0x12, 0x10, + 0x0a, 0x0c, 0x4f, 0x53, 0x57, 0x41, 0x4c, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x56, 0x59, 0x10, 0x05, + 0x22, 0x35, 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x01, 0x22, 0xbd, 0x05, 0x0a, 0x0f, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, + 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, + 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, + 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x63, 0x74, 0x56, 0x63, 0x61, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x56, 0x63, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, + 0x13, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x68, 0x75, 0x6d, + 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, + 0x35, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, + 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, + 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, + 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, + 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, + 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x70, + 0x74, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x24, + 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x22, 0x9a, 0x06, 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, + 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, + 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x69, 0x66, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, + 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x67, 0x69, 0x66, 0x50, 0x6c, 0x61, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, + 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x54, 0x0a, 0x16, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, + 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, + 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, + 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x67, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x67, 0x69, 0x66, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, + 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x69, + 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x22, 0x39, 0x0a, 0x17, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, + 0x49, 0x50, 0x48, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x4e, 0x4f, 0x52, 0x10, + 0x02, 0x22, 0x20, 0x0a, 0x04, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x6c, + 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, + 0x4b, 0x65, 0x79, 0x22, 0x38, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xf6, 0x06, + 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, + 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, + 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65, + 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68, + 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x58, 0x0a, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, + 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, + 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x14, 0x61, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x12, 0x55, 0x0a, 0x16, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, + 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x16, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x26, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x26, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, + 0x22, 0x83, 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x56, 0x4f, + 0x4b, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x50, 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, + 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x45, + 0x50, 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x52, 0x45, + 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x48, 0x49, 0x53, 0x54, + 0x4f, 0x52, 0x59, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x53, 0x48, + 0x41, 0x52, 0x45, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x50, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, + 0x45, 0x53, 0x54, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x53, 0x47, 0x5f, 0x46, 0x41, 0x4e, + 0x4f, 0x55, 0x54, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x46, 0x49, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x51, + 0x55, 0x45, 0x53, 0x54, 0x10, 0x08, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, + 0x4c, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, + 0x53, 0x59, 0x4e, 0x43, 0x10, 0x09, 0x22, 0xe9, 0x03, 0x0a, 0x17, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, + 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x24, + 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, + 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x73, + 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x75, + 0x6e, 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x26, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x53, + 0x54, 0x52, 0x41, 0x50, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x56, 0x33, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x43, 0x45, 0x4e, + 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x41, 0x4d, 0x45, + 0x10, 0x04, 0x22, 0x77, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, + 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x05, + 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, + 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x11, 0x41, + 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x41, 0x70, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x13, 0x41, 0x70, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0b, 0x66, + 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x42, + 0x0a, 0x14, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, + 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, + 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x06, + 0x6b, 0x65, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, + 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x73, 0x22, 0x6a, + 0x0a, 0x26, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x40, 0x0a, 0x1b, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x51, + 0x0a, 0x0b, 0x48, 0x53, 0x4d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, + 0x30, 0x22, 0x88, 0x04, 0x0a, 0x14, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x09, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, + 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, + 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x4d, 0x6f, 0x6e, 0x74, + 0x68, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x58, 0x0a, + 0x08, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x53, 0x4d, + 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, + 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x22, 0x7f, 0x0a, 0x21, 0x48, 0x53, 0x4d, 0x44, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, + 0x61, 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, + 0x4d, 0x4f, 0x4e, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x55, 0x45, 0x53, + 0x44, 0x41, 0x59, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x45, 0x44, 0x4e, 0x45, 0x53, 0x44, + 0x41, 0x59, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x48, 0x55, 0x52, 0x53, 0x44, 0x41, 0x59, + 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52, 0x49, 0x44, 0x41, 0x59, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x53, 0x41, 0x54, 0x55, 0x52, 0x44, 0x41, 0x59, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, + 0x53, 0x55, 0x4e, 0x44, 0x41, 0x59, 0x10, 0x07, 0x22, 0x42, 0x0a, 0x20, 0x48, 0x53, 0x4d, 0x44, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, + 0x47, 0x52, 0x45, 0x47, 0x4f, 0x52, 0x49, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, + 0x4f, 0x4c, 0x41, 0x52, 0x5f, 0x48, 0x49, 0x4a, 0x52, 0x49, 0x10, 0x02, 0x22, 0x34, 0x0a, 0x14, + 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x98, 0x01, 0x0a, 0x0b, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, + 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, + 0x3b, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x48, + 0x00, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x0f, 0x0a, 0x0d, + 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xa5, 0x01, + 0x0a, 0x17, 0x48, 0x53, 0x4d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, + 0x4d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x08, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x8d, 0x03, 0x0a, 0x17, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x63, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x52, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, + 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x4c, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, 0x63, 0x12, 0x38, 0x0a, 0x0b, 0x68, + 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x48, 0x73, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x48, 0x73, 0x6d, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x0b, + 0x6e, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, + 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, + 0x94, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, + 0x6e, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x6f, 0x34, 0x32, + 0x31, 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x6f, 0x34, 0x32, 0x31, 0x37, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x12, + 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x60, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x1c, 0x44, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x42, 0x0a, + 0x1b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x22, 0xc3, 0x03, 0x0a, 0x13, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, + 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, + 0x75, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, + 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, + 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, + 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x21, 0x64, + 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x21, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, + 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, + 0x65, 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6a, + 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, + 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x90, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x24, 0x0a, 0x0d, + 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, + 0x35, 0x36, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, + 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6e, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x6e, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, + 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x97, 0x04, 0x0a, 0x0f, 0x46, + 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x6f, 0x6f, 0x74, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, + 0x12, 0x2f, 0x0a, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, + 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x22, 0x9b, 0x04, 0x0a, 0x17, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x12, 0x30, 0x0a, 0x13, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, + 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, + 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x47, 0x0a, 0x0f, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x79, 0x64, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x2e, 0x0a, 0x11, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x68, 0x79, + 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x39, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x0f, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x10, + 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, + 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x10, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x6f, 0x75, 0x72, + 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, + 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x6f, 0x75, + 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x17, + 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, + 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x17, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1a, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, + 0x64, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, + 0x82, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, + 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x31, 0x30, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x0e, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2a, + 0x0a, 0x10, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4a, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, + 0x73, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x34, 0x0a, 0x0b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xe6, 0x03, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x69, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, + 0x0a, 0x07, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x07, 0x73, + 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x26, 0x0a, 0x17, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x51, 0x55, 0x49, 0x52, 0x59, + 0x10, 0x01, 0x22, 0x27, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x01, 0x22, 0x53, 0x0a, 0x03, 0x52, + 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, + 0x77, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x77, 0x49, 0x64, + 0x22, 0x3f, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, + 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x6c, 0x69, 0x73, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, + 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x35, 0x0a, 0x13, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, + 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x10, 0x01, + 0x22, 0x39, 0x0a, 0x11, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x49, 0x64, 0x22, 0xde, 0x02, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x08, 0x6c, 0x69, 0x73, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, + 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x52, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, + 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4e, + 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x10, 0x01, 0x22, 0x90, 0x02, 0x0a, + 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x69, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, + 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x9c, 0x01, 0x0a, 0x10, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x4a, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74, 0x4a, 0x69, 0x64, 0x12, 0x30, + 0x0a, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x65, 0x70, 0x68, + 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd4, + 0x01, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x68, 0x12, 0x57, 0x0a, 0x1a, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, + 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, + 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x1a, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2e, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x54, 0x65, 0x78, 0x74, 0x22, 0x57, 0x0a, 0x06, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x62, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, + 0x78, 0x74, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x22, 0xd8, + 0x03, 0x0a, 0x0e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, 0x78, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, + 0x65, 0x78, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x07, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x09, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x30, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe2, 0x13, 0x0a, 0x07, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x1c, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x1c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, + 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, + 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x1f, + 0x0a, 0x04, 0x63, 0x68, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x12, + 0x40, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x4f, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x14, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x58, 0x0a, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, + 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x83, 0x01, 0x0a, + 0x2a, 0x66, 0x61, 0x73, 0x74, 0x52, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x2a, 0x66, 0x61, 0x73, 0x74, 0x52, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, + 0x13, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x67, 0x0a, 0x1c, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, + 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1c, 0x64, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x1b, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x1b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, + 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x3d, 0x0a, 0x0e, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x0e, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x49, 0x0a, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x61, 0x0a, 0x1a, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x1a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, + 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x11, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x34, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x4f, + 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x13, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x45, 0x0a, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x16, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, + 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, + 0x6d, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x22, 0xc5, 0x19, 0x0a, 0x0b, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x5a, 0x0a, + 0x16, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x4f, + 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, + 0x67, 0x52, 0x16, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, + 0x6c, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x56, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x33, 0x12, 0x4a, 0x0a, 0x0e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x56, 0x33, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x33, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, + 0x67, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, + 0x32, 0x12, 0x5a, 0x0a, 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x56, 0x33, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x56, 0x33, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x48, 0x0a, + 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x56, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x76, + 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x63, + 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x16, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, + 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x11, 0x71, 0x75, 0x69, 0x63, 0x6b, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x11, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x65, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, + 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x10, 0x73, 0x74, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x50, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x12, 0x6c, 0x69, 0x76, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x12, 0x6c, 0x69, 0x76, 0x65, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x42, 0x0a, + 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x64, 0x69, + 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x64, 0x0a, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x69, 0x63, 0x68, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x69, 0x63, + 0x68, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, + 0x07, 0x76, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x07, 0x76, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x10, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x61, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x54, 0x0a, 0x13, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, + 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x13, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, + 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x52, 0x0a, 0x12, 0x74, + 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x12, 0x74, 0x68, 0x69, + 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, + 0x62, 0x0a, 0x1a, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1a, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x74, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x34, 0x4a, + 0x6f, 0x69, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, + 0x34, 0x4a, 0x6f, 0x69, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x72, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x74, 0x61, + 0x72, 0x72, 0x65, 0x64, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x53, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x6f, 0x69, 0x70, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, + 0x61, 0x67, 0x52, 0x0d, 0x76, 0x6f, 0x69, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6c, + 0x6c, 0x12, 0x4c, 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x66, 0x0a, 0x1c, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1c, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, + 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x32, 0x45, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, + 0x18, 0x21, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x13, 0x65, 0x32, 0x45, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, + 0x4e, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x73, 0x56, 0x32, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, + 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x72, + 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x32, 0x12, + 0x48, 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, + 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, + 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x12, 0x4e, 0x0a, 0x10, 0x72, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x33, 0x18, 0x24, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x33, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, + 0x67, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, + 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x31, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x64, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x07, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x55, 0x69, 0x69, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x69, 0x43, 0x6c, + 0x65, 0x61, 0x6e, 0x75, 0x70, 0x12, 0x64, 0x0a, 0x1b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x6f, + 0x67, 0x66, 0x6f, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, + 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1b, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x6f, 0x67, 0x66, 0x6f, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x0c, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x53, + 0x79, 0x6e, 0x63, 0x22, 0x56, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x4f, 0x52, 0x43, 0x45, + 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, + 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x50, + 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0xb6, 0x01, 0x0a, 0x17, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x0a, + 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, + 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, + 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xf5, 0x0a, 0x0a, + 0x0b, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x12, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, + 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x31, 0x30, 0x30, 0x30, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x4a, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3f, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x75, 0x74, 0x75, + 0x72, 0x65, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x09, 0x74, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x34, 0x0a, 0x13, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, + 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x52, + 0x10, 0x01, 0x22, 0xd7, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x45, 0x44, 0x5f, 0x54, + 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x55, 0x4c, + 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x05, + 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, + 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x52, + 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, + 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x57, 0x41, 0x49, 0x54, + 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x45, 0x52, 0x10, 0x0a, 0x12, + 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x22, 0xd5, 0x04, 0x0a, + 0x14, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x78, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, + 0x54, 0x55, 0x50, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, + 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, + 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, + 0x44, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x49, + 0x53, 0x4b, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, + 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1e, 0x0a, 0x1a, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x50, + 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x10, 0x0b, 0x12, + 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x54, 0x58, 0x4e, 0x10, + 0x0c, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, + 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x58, 0x50, 0x49, + 0x52, 0x45, 0x44, 0x5f, 0x54, 0x58, 0x4e, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x55, 0x54, + 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x11, 0x12, 0x21, 0x0a, 0x1d, + 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x12, 0x12, + 0x16, 0x0a, 0x12, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4c, 0x4c, 0x45, + 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4f, 0x4c, + 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x15, 0x12, 0x12, + 0x0a, 0x0e, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, + 0x10, 0x16, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x49, 0x53, 0x4b, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x43, + 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, + 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x58, 0x50, + 0x49, 0x52, 0x45, 0x44, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, + 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x1a, 0x12, 0x16, 0x0a, 0x12, + 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x10, 0x1b, 0x22, 0x81, 0x2c, 0x0a, 0x0e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x02, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x69, 0x70, + 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x72, 0x6c, 0x54, + 0x65, 0x78, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x72, 0x6c, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x56, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x75, 0x62, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x53, 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6c, + 0x65, 0x61, 0x72, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x75, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x53, 0x74, 0x75, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x76, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x11, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x11, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x17, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, + 0x0a, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, + 0x65, 0x72, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, + 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x54, 0x6f, 0x4f, 0x6e, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x4f, 0x66, 0x66, 0x54, 0x6f, 0x4f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x65, 0x70, 0x68, 0x65, + 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x23, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4f, + 0x75, 0x74, 0x4f, 0x66, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x60, 0x0a, 0x10, 0x62, 0x69, 0x7a, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x7a, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x62, 0x69, 0x7a, 0x50, 0x72, 0x69, + 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x69, 0x7a, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x69, 0x7a, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x41, + 0x43, 0x4b, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x59, + 0x5f, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x04, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x05, 0x22, 0xec, 0x20, 0x0a, + 0x16, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x01, + 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, + 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, + 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x19, + 0x0a, 0x15, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x4c, + 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x08, 0x12, + 0x1c, 0x0a, 0x18, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x49, 0x54, + 0x49, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x09, 0x12, 0x18, 0x0a, + 0x14, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, + 0x4c, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x48, 0x49, 0x47, 0x48, + 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x59, 0x5f, 0x54, 0x4f, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x4e, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x0d, 0x12, 0x23, 0x0a, 0x1f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, 0x10, + 0x0e, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x54, 0x4f, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0f, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x45, + 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, + 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x4f, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x11, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, + 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x12, 0x12, + 0x27, 0x0a, 0x23, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x14, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x52, + 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x4a, 0x45, + 0x43, 0x54, 0x10, 0x15, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x49, + 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x17, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x52, 0x49, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x18, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, + 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, + 0x47, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x1a, 0x12, 0x19, 0x0a, + 0x15, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, + 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x1b, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, + 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x1c, 0x12, 0x1d, 0x0a, 0x19, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x4d, + 0x4f, 0x54, 0x45, 0x10, 0x1d, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, + 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x10, 0x1e, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x10, + 0x1f, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, + 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x20, 0x12, 0x23, + 0x0a, 0x1f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, + 0x41, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, + 0x52, 0x10, 0x21, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x22, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x52, 0x4f, + 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x23, 0x12, 0x14, 0x0a, 0x10, + 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x24, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x4e, 0x4f, + 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x18, 0x0a, 0x14, + 0x45, 0x32, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x48, 0x41, + 0x4e, 0x47, 0x45, 0x44, 0x10, 0x26, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x32, 0x45, 0x5f, 0x45, 0x4e, + 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, + 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x28, + 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, + 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x44, 0x49, 0x56, + 0x49, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x55, 0x4d, + 0x42, 0x45, 0x52, 0x10, 0x2a, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x2b, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x2c, 0x12, + 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x2d, 0x12, 0x1b, 0x0a, 0x17, + 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x59, + 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x54, 0x45, 0x58, 0x54, 0x10, + 0x2f, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x55, 0x54, + 0x55, 0x52, 0x45, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x30, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x41, + 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x31, 0x12, 0x2e, 0x0a, 0x2a, 0x50, 0x41, 0x59, 0x4d, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, + 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x32, 0x12, 0x33, 0x0a, 0x2f, 0x50, 0x41, 0x59, 0x4d, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, + 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x33, 0x12, 0x35, 0x0a, + 0x31, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x43, 0x45, + 0x49, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x54, + 0x55, 0x50, 0x10, 0x34, 0x12, 0x3c, 0x0a, 0x38, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x48, 0x49, 0x43, 0x43, 0x55, 0x50, + 0x10, 0x35, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x54, + 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x36, 0x12, 0x28, 0x0a, + 0x24, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, + 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x37, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x41, 0x59, 0x4d, 0x45, + 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x50, + 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x38, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x45, + 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x39, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x41, 0x59, 0x4d, + 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, + 0x53, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x3a, 0x12, 0x24, 0x0a, 0x20, + 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, + 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x3b, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x49, 0x5a, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, + 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x3c, 0x12, 0x29, 0x0a, + 0x25, 0x42, 0x49, 0x5a, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, + 0x54, 0x4f, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x3d, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x49, 0x5a, 0x5f, + 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x3e, 0x12, 0x14, 0x0a, 0x10, 0x42, + 0x49, 0x5a, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, + 0x3f, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x49, 0x5a, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x40, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x5a, 0x5f, 0x4d, 0x4f, + 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x41, + 0x50, 0x50, 0x10, 0x41, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x49, 0x5a, 0x5f, 0x54, 0x57, 0x4f, 0x5f, + 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x4f, 0x50, 0x10, 0x42, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x49, 0x5a, 0x5f, 0x54, 0x57, 0x4f, 0x5f, + 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, + 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x43, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x56, 0x45, 0x52, 0x53, + 0x49, 0x5a, 0x45, 0x44, 0x10, 0x44, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x46, 0x52, 0x45, 0x51, 0x55, 0x45, + 0x4e, 0x54, 0x4c, 0x59, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x45, 0x44, 0x10, 0x45, + 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x56, 0x34, 0x5f, 0x41, 0x44, 0x44, + 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x46, 0x12, 0x26, + 0x0a, 0x22, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, + 0x41, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x47, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x45, 0x50, 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x48, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x32, 0x45, 0x5f, 0x44, 0x45, 0x56, 0x49, + 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x49, 0x12, 0x0f, 0x0a, 0x0b, + 0x56, 0x49, 0x45, 0x57, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x4a, 0x12, 0x15, 0x0a, + 0x11, 0x45, 0x32, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x4e, + 0x4f, 0x57, 0x10, 0x4b, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, + 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, + 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x4c, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x4c, 0x55, 0x45, + 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x53, + 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, + 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x53, + 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x4e, 0x12, 0x1e, 0x0a, + 0x1a, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, + 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x4f, 0x12, 0x37, 0x0a, + 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, + 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, + 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x50, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, + 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x51, 0x12, 0x37, 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, + 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, + 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x52, 0x12, 0x28, 0x0a, + 0x24, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, + 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, + 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x53, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, + 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x54, 0x12, 0x3c, 0x0a, 0x38, + 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, + 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, + 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x55, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x4c, + 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, + 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x56, 0x12, 0x3c, 0x0a, + 0x38, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, + 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, + 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, + 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x57, 0x12, 0x2a, 0x0a, 0x26, 0x42, + 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, + 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x58, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c, 0x55, 0x45, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x5f, + 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, + 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x59, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x4c, 0x55, 0x45, + 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x54, 0x4f, + 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x5a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, + 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, + 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x5b, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x42, + 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x5c, 0x12, 0x24, 0x0a, 0x20, + 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, + 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, + 0x10, 0x5d, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, + 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x5e, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, + 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, + 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x5f, 0x12, 0x1d, 0x0a, + 0x19, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, + 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x60, 0x12, 0x38, 0x0a, 0x34, + 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, + 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, + 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x61, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, + 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, + 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x62, + 0x12, 0x24, 0x0a, 0x20, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, + 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x63, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, + 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x64, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4c, + 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, + 0x10, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x54, + 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x10, 0x66, 0x12, 0x17, 0x0a, 0x13, + 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, + 0x5f, 0x46, 0x42, 0x10, 0x67, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, + 0x47, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, + 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x68, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x55, 0x4e, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, + 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x69, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x55, + 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, + 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x6a, 0x12, + 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x55, 0x4e, 0x56, 0x45, + 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, + 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, + 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x6c, + 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, + 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x6d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x56, 0x45, + 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, + 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x6e, 0x12, 0x23, + 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x6f, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, + 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, + 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x70, 0x12, 0x32, 0x0a, 0x2e, 0x42, + 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, + 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, + 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x71, 0x12, + 0x36, 0x0a, 0x32, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, + 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, + 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x72, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x4c, 0x55, 0x45, 0x5f, + 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, + 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x73, 0x12, 0x37, 0x0a, 0x33, 0x42, + 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, + 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, + 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x74, 0x12, 0x37, 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, + 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, + 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x75, 0x12, 0x1c, 0x0a, + 0x18, 0x45, 0x32, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x76, 0x22, 0x4b, 0x0a, 0x1e, 0x57, + 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x7a, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, + 0x04, 0x45, 0x32, 0x45, 0x45, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42, 0x10, 0x02, 0x12, + 0x07, 0x0a, 0x03, 0x42, 0x53, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x53, 0x50, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x42, 0x10, 0x03, +} + +var ( + file_def_proto_rawDescOnce sync.Once + file_def_proto_rawDescData = file_def_proto_rawDesc +) + +func file_def_proto_rawDescGZIP() []byte { + file_def_proto_rawDescOnce.Do(func() { + file_def_proto_rawDescData = protoimpl.X.CompressGZIP(file_def_proto_rawDescData) + }) + return file_def_proto_rawDescData +} + +var file_def_proto_enumTypes = make([]protoimpl.EnumInfo, 21) +var file_def_proto_msgTypes = make([]protoimpl.MessageInfo, 78) +var file_def_proto_goTypes = []interface{}{ + (AdReplyInfo_AdReplyInfoMediaType)(0), // 0: proto.AdReplyInfo.AdReplyInfoMediaType + (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType)(0), // 1: proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType + (InvoiceMessage_InvoiceMessageAttachmentType)(0), // 2: proto.InvoiceMessage.InvoiceMessageAttachmentType + (ExtendedTextMessage_ExtendedTextMessageFontType)(0), // 3: proto.ExtendedTextMessage.ExtendedTextMessageFontType + (ExtendedTextMessage_ExtendedTextMessagePreviewType)(0), // 4: proto.ExtendedTextMessage.ExtendedTextMessagePreviewType + (VideoMessage_VideoMessageAttribution)(0), // 5: proto.VideoMessage.VideoMessageAttribution + (ProtocolMessage_ProtocolMessageType)(0), // 6: proto.ProtocolMessage.ProtocolMessageType + (HistorySyncNotification_HistorySyncNotificationHistorySyncType)(0), // 7: proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType + (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType)(0), // 8: proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType + (HSMDateTimeComponent_HSMDateTimeComponentCalendarType)(0), // 9: proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType + (OrderMessage_OrderMessageOrderStatus)(0), // 10: proto.OrderMessage.OrderMessageOrderStatus + (OrderMessage_OrderMessageOrderSurface)(0), // 11: proto.OrderMessage.OrderMessageOrderSurface + (ListMessage_ListMessageListType)(0), // 12: proto.ListMessage.ListMessageListType + (ListResponseMessage_ListResponseMessageListType)(0), // 13: proto.ListResponseMessage.ListResponseMessageListType + (WebFeatures_WebFeaturesFlag)(0), // 14: proto.WebFeatures.WebFeaturesFlag + (PaymentInfo_PaymentInfoCurrency)(0), // 15: proto.PaymentInfo.PaymentInfoCurrency + (PaymentInfo_PaymentInfoStatus)(0), // 16: proto.PaymentInfo.PaymentInfoStatus + (PaymentInfo_PaymentInfoTxnStatus)(0), // 17: proto.PaymentInfo.PaymentInfoTxnStatus + (WebMessageInfo_WebMessageInfoStatus)(0), // 18: proto.WebMessageInfo.WebMessageInfoStatus + (WebMessageInfo_WebMessageInfoStubType)(0), // 19: proto.WebMessageInfo.WebMessageInfoStubType + (WebMessageInfo_WebMessageInfoBizPrivacyStatus)(0), // 20: proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus + (*HydratedQuickReplyButton)(nil), // 21: proto.HydratedQuickReplyButton + (*HydratedURLButton)(nil), // 22: proto.HydratedURLButton + (*HydratedCallButton)(nil), // 23: proto.HydratedCallButton + (*HydratedTemplateButton)(nil), // 24: proto.HydratedTemplateButton + (*QuickReplyButton)(nil), // 25: proto.QuickReplyButton + (*URLButton)(nil), // 26: proto.URLButton + (*CallButton)(nil), // 27: proto.CallButton + (*TemplateButton)(nil), // 28: proto.TemplateButton + (*Location)(nil), // 29: proto.Location + (*Point)(nil), // 30: proto.Point + (*InteractiveAnnotation)(nil), // 31: proto.InteractiveAnnotation + (*DeviceListMetadata)(nil), // 32: proto.DeviceListMetadata + (*MessageContextInfo)(nil), // 33: proto.MessageContextInfo + (*AdReplyInfo)(nil), // 34: proto.AdReplyInfo + (*ExternalAdReplyInfo)(nil), // 35: proto.ExternalAdReplyInfo + (*ContextInfo)(nil), // 36: proto.ContextInfo + (*SenderKeyDistributionMessage)(nil), // 37: proto.SenderKeyDistributionMessage + (*ImageMessage)(nil), // 38: proto.ImageMessage + (*InvoiceMessage)(nil), // 39: proto.InvoiceMessage + (*ContactMessage)(nil), // 40: proto.ContactMessage + (*LocationMessage)(nil), // 41: proto.LocationMessage + (*ExtendedTextMessage)(nil), // 42: proto.ExtendedTextMessage + (*DocumentMessage)(nil), // 43: proto.DocumentMessage + (*AudioMessage)(nil), // 44: proto.AudioMessage + (*VideoMessage)(nil), // 45: proto.VideoMessage + (*Call)(nil), // 46: proto.Call + (*Chat)(nil), // 47: proto.Chat + (*ProtocolMessage)(nil), // 48: proto.ProtocolMessage + (*HistorySyncNotification)(nil), // 49: proto.HistorySyncNotification + (*AppStateSyncKey)(nil), // 50: proto.AppStateSyncKey + (*AppStateSyncKeyId)(nil), // 51: proto.AppStateSyncKeyId + (*AppStateSyncKeyFingerprint)(nil), // 52: proto.AppStateSyncKeyFingerprint + (*AppStateSyncKeyData)(nil), // 53: proto.AppStateSyncKeyData + (*AppStateSyncKeyShare)(nil), // 54: proto.AppStateSyncKeyShare + (*AppStateSyncKeyRequest)(nil), // 55: proto.AppStateSyncKeyRequest + (*InitialSecurityNotificationSettingSync)(nil), // 56: proto.InitialSecurityNotificationSettingSync + (*ContactsArrayMessage)(nil), // 57: proto.ContactsArrayMessage + (*HSMCurrency)(nil), // 58: proto.HSMCurrency + (*HSMDateTimeComponent)(nil), // 59: proto.HSMDateTimeComponent + (*HSMDateTimeUnixEpoch)(nil), // 60: proto.HSMDateTimeUnixEpoch + (*HSMDateTime)(nil), // 61: proto.HSMDateTime + (*HSMLocalizableParameter)(nil), // 62: proto.HSMLocalizableParameter + (*HighlyStructuredMessage)(nil), // 63: proto.HighlyStructuredMessage + (*SendPaymentMessage)(nil), // 64: proto.SendPaymentMessage + (*RequestPaymentMessage)(nil), // 65: proto.RequestPaymentMessage + (*PaymentMoney)(nil), // 66: proto.PaymentMoney + (*DeclinePaymentRequestMessage)(nil), // 67: proto.DeclinePaymentRequestMessage + (*CancelPaymentRequestMessage)(nil), // 68: proto.CancelPaymentRequestMessage + (*LiveLocationMessage)(nil), // 69: proto.LiveLocationMessage + (*StickerMessage)(nil), // 70: proto.StickerMessage + (*FourRowTemplate)(nil), // 71: proto.FourRowTemplate + (*HydratedFourRowTemplate)(nil), // 72: proto.HydratedFourRowTemplate + (*TemplateMessage)(nil), // 73: proto.TemplateMessage + (*TemplateButtonReplyMessage)(nil), // 74: proto.TemplateButtonReplyMessage + (*CatalogSnapshot)(nil), // 75: proto.CatalogSnapshot + (*ProductSnapshot)(nil), // 76: proto.ProductSnapshot + (*ProductMessage)(nil), // 77: proto.ProductMessage + (*OrderMessage)(nil), // 78: proto.OrderMessage + (*Row)(nil), // 79: proto.Row + (*Section)(nil), // 80: proto.Section + (*ListMessage)(nil), // 81: proto.ListMessage + (*SingleSelectReply)(nil), // 82: proto.SingleSelectReply + (*ListResponseMessage)(nil), // 83: proto.ListResponseMessage + (*GroupInviteMessage)(nil), // 84: proto.GroupInviteMessage + (*EphemeralSetting)(nil), // 85: proto.EphemeralSetting + (*DeviceSentMessage)(nil), // 86: proto.DeviceSentMessage + (*FutureProofMessage)(nil), // 87: proto.FutureProofMessage + (*ButtonText)(nil), // 88: proto.ButtonText + (*Button)(nil), // 89: proto.Button + (*ButtonsMessage)(nil), // 90: proto.ButtonsMessage + (*ButtonsResponseMessage)(nil), // 91: proto.ButtonsResponseMessage + (*Message)(nil), // 92: proto.Message + (*MessageKey)(nil), // 93: proto.MessageKey + (*WebFeatures)(nil), // 94: proto.WebFeatures + (*NotificationMessageInfo)(nil), // 95: proto.NotificationMessageInfo + (*WebNotificationsInfo)(nil), // 96: proto.WebNotificationsInfo + (*PaymentInfo)(nil), // 97: proto.PaymentInfo + (*WebMessageInfo)(nil), // 98: proto.WebMessageInfo +} +var file_def_proto_depIdxs = []int32{ + 21, // 0: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedQuickReplyButton + 22, // 1: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedURLButton + 23, // 2: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedCallButton + 63, // 3: proto.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage + 63, // 4: proto.URLButton.displayText:type_name -> proto.HighlyStructuredMessage + 63, // 5: proto.URLButton.url:type_name -> proto.HighlyStructuredMessage + 63, // 6: proto.CallButton.displayText:type_name -> proto.HighlyStructuredMessage + 63, // 7: proto.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage + 25, // 8: proto.TemplateButton.quickReplyButton:type_name -> proto.QuickReplyButton + 26, // 9: proto.TemplateButton.urlButton:type_name -> proto.URLButton + 27, // 10: proto.TemplateButton.callButton:type_name -> proto.CallButton + 30, // 11: proto.InteractiveAnnotation.polygonVertices:type_name -> proto.Point + 29, // 12: proto.InteractiveAnnotation.location:type_name -> proto.Location + 32, // 13: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata + 0, // 14: proto.AdReplyInfo.mediaType:type_name -> proto.AdReplyInfo.AdReplyInfoMediaType + 1, // 15: proto.ExternalAdReplyInfo.mediaType:type_name -> proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType + 92, // 16: proto.ContextInfo.quotedMessage:type_name -> proto.Message + 34, // 17: proto.ContextInfo.quotedAd:type_name -> proto.AdReplyInfo + 93, // 18: proto.ContextInfo.placeholderKey:type_name -> proto.MessageKey + 35, // 19: proto.ContextInfo.externalAdReply:type_name -> proto.ExternalAdReplyInfo + 31, // 20: proto.ImageMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation + 36, // 21: proto.ImageMessage.contextInfo:type_name -> proto.ContextInfo + 2, // 22: proto.InvoiceMessage.attachmentType:type_name -> proto.InvoiceMessage.InvoiceMessageAttachmentType + 36, // 23: proto.ContactMessage.contextInfo:type_name -> proto.ContextInfo + 36, // 24: proto.LocationMessage.contextInfo:type_name -> proto.ContextInfo + 3, // 25: proto.ExtendedTextMessage.font:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageFontType + 4, // 26: proto.ExtendedTextMessage.previewType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessagePreviewType + 36, // 27: proto.ExtendedTextMessage.contextInfo:type_name -> proto.ContextInfo + 36, // 28: proto.DocumentMessage.contextInfo:type_name -> proto.ContextInfo + 36, // 29: proto.AudioMessage.contextInfo:type_name -> proto.ContextInfo + 31, // 30: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation + 36, // 31: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo + 5, // 32: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.VideoMessageAttribution + 93, // 33: proto.ProtocolMessage.key:type_name -> proto.MessageKey + 6, // 34: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.ProtocolMessageType + 49, // 35: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification + 54, // 36: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare + 55, // 37: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest + 56, // 38: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync + 7, // 39: proto.HistorySyncNotification.syncType:type_name -> proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType + 51, // 40: proto.AppStateSyncKey.keyId:type_name -> proto.AppStateSyncKeyId + 53, // 41: proto.AppStateSyncKey.keyData:type_name -> proto.AppStateSyncKeyData + 52, // 42: proto.AppStateSyncKeyData.fingerprint:type_name -> proto.AppStateSyncKeyFingerprint + 50, // 43: proto.AppStateSyncKeyShare.keys:type_name -> proto.AppStateSyncKey + 51, // 44: proto.AppStateSyncKeyRequest.keyIds:type_name -> proto.AppStateSyncKeyId + 40, // 45: proto.ContactsArrayMessage.contacts:type_name -> proto.ContactMessage + 36, // 46: proto.ContactsArrayMessage.contextInfo:type_name -> proto.ContextInfo + 8, // 47: proto.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType + 9, // 48: proto.HSMDateTimeComponent.calendar:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType + 59, // 49: proto.HSMDateTime.component:type_name -> proto.HSMDateTimeComponent + 60, // 50: proto.HSMDateTime.unixEpoch:type_name -> proto.HSMDateTimeUnixEpoch + 58, // 51: proto.HSMLocalizableParameter.currency:type_name -> proto.HSMCurrency + 61, // 52: proto.HSMLocalizableParameter.dateTime:type_name -> proto.HSMDateTime + 62, // 53: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HSMLocalizableParameter + 73, // 54: proto.HighlyStructuredMessage.hydratedHsm:type_name -> proto.TemplateMessage + 92, // 55: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message + 93, // 56: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey + 92, // 57: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message + 66, // 58: proto.RequestPaymentMessage.amount:type_name -> proto.PaymentMoney + 93, // 59: proto.DeclinePaymentRequestMessage.key:type_name -> proto.MessageKey + 93, // 60: proto.CancelPaymentRequestMessage.key:type_name -> proto.MessageKey + 36, // 61: proto.LiveLocationMessage.contextInfo:type_name -> proto.ContextInfo + 36, // 62: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo + 63, // 63: proto.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage + 63, // 64: proto.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage + 28, // 65: proto.FourRowTemplate.buttons:type_name -> proto.TemplateButton + 43, // 66: proto.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage + 63, // 67: proto.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage + 38, // 68: proto.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage + 45, // 69: proto.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage + 41, // 70: proto.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage + 24, // 71: proto.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton + 43, // 72: proto.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage + 38, // 73: proto.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage + 45, // 74: proto.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage + 41, // 75: proto.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage + 36, // 76: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo + 72, // 77: proto.TemplateMessage.hydratedTemplate:type_name -> proto.HydratedFourRowTemplate + 71, // 78: proto.TemplateMessage.fourRowTemplate:type_name -> proto.FourRowTemplate + 72, // 79: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.HydratedFourRowTemplate + 36, // 80: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo + 38, // 81: proto.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage + 38, // 82: proto.ProductSnapshot.productImage:type_name -> proto.ImageMessage + 76, // 83: proto.ProductMessage.product:type_name -> proto.ProductSnapshot + 75, // 84: proto.ProductMessage.catalog:type_name -> proto.CatalogSnapshot + 36, // 85: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo + 10, // 86: proto.OrderMessage.status:type_name -> proto.OrderMessage.OrderMessageOrderStatus + 11, // 87: proto.OrderMessage.surface:type_name -> proto.OrderMessage.OrderMessageOrderSurface + 36, // 88: proto.OrderMessage.contextInfo:type_name -> proto.ContextInfo + 79, // 89: proto.Section.rows:type_name -> proto.Row + 12, // 90: proto.ListMessage.listType:type_name -> proto.ListMessage.ListMessageListType + 80, // 91: proto.ListMessage.sections:type_name -> proto.Section + 13, // 92: proto.ListResponseMessage.listType:type_name -> proto.ListResponseMessage.ListResponseMessageListType + 82, // 93: proto.ListResponseMessage.singleSelectReply:type_name -> proto.SingleSelectReply + 36, // 94: proto.ListResponseMessage.contextInfo:type_name -> proto.ContextInfo + 36, // 95: proto.GroupInviteMessage.contextInfo:type_name -> proto.ContextInfo + 92, // 96: proto.DeviceSentMessage.message:type_name -> proto.Message + 85, // 97: proto.DeviceSentMessage.broadcastEphemeralSettings:type_name -> proto.EphemeralSetting + 92, // 98: proto.FutureProofMessage.message:type_name -> proto.Message + 88, // 99: proto.Button.buttonText:type_name -> proto.ButtonText + 36, // 100: proto.ButtonsMessage.contextInfo:type_name -> proto.ContextInfo + 89, // 101: proto.ButtonsMessage.buttons:type_name -> proto.Button + 43, // 102: proto.ButtonsMessage.documentMessage:type_name -> proto.DocumentMessage + 38, // 103: proto.ButtonsMessage.imageMessage:type_name -> proto.ImageMessage + 45, // 104: proto.ButtonsMessage.videoMessage:type_name -> proto.VideoMessage + 41, // 105: proto.ButtonsMessage.locationMessage:type_name -> proto.LocationMessage + 36, // 106: proto.ButtonsResponseMessage.contextInfo:type_name -> proto.ContextInfo + 37, // 107: proto.Message.senderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage + 38, // 108: proto.Message.imageMessage:type_name -> proto.ImageMessage + 40, // 109: proto.Message.contactMessage:type_name -> proto.ContactMessage + 41, // 110: proto.Message.locationMessage:type_name -> proto.LocationMessage + 42, // 111: proto.Message.extendedTextMessage:type_name -> proto.ExtendedTextMessage + 43, // 112: proto.Message.documentMessage:type_name -> proto.DocumentMessage + 44, // 113: proto.Message.audioMessage:type_name -> proto.AudioMessage + 45, // 114: proto.Message.videoMessage:type_name -> proto.VideoMessage + 46, // 115: proto.Message.call:type_name -> proto.Call + 47, // 116: proto.Message.chat:type_name -> proto.Chat + 48, // 117: proto.Message.protocolMessage:type_name -> proto.ProtocolMessage + 57, // 118: proto.Message.contactsArrayMessage:type_name -> proto.ContactsArrayMessage + 63, // 119: proto.Message.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage + 37, // 120: proto.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage + 64, // 121: proto.Message.sendPaymentMessage:type_name -> proto.SendPaymentMessage + 69, // 122: proto.Message.liveLocationMessage:type_name -> proto.LiveLocationMessage + 65, // 123: proto.Message.requestPaymentMessage:type_name -> proto.RequestPaymentMessage + 67, // 124: proto.Message.declinePaymentRequestMessage:type_name -> proto.DeclinePaymentRequestMessage + 68, // 125: proto.Message.cancelPaymentRequestMessage:type_name -> proto.CancelPaymentRequestMessage + 73, // 126: proto.Message.templateMessage:type_name -> proto.TemplateMessage + 70, // 127: proto.Message.stickerMessage:type_name -> proto.StickerMessage + 84, // 128: proto.Message.groupInviteMessage:type_name -> proto.GroupInviteMessage + 74, // 129: proto.Message.templateButtonReplyMessage:type_name -> proto.TemplateButtonReplyMessage + 77, // 130: proto.Message.productMessage:type_name -> proto.ProductMessage + 86, // 131: proto.Message.deviceSentMessage:type_name -> proto.DeviceSentMessage + 33, // 132: proto.Message.messageContextInfo:type_name -> proto.MessageContextInfo + 81, // 133: proto.Message.listMessage:type_name -> proto.ListMessage + 87, // 134: proto.Message.viewOnceMessage:type_name -> proto.FutureProofMessage + 78, // 135: proto.Message.orderMessage:type_name -> proto.OrderMessage + 83, // 136: proto.Message.listResponseMessage:type_name -> proto.ListResponseMessage + 87, // 137: proto.Message.ephemeralMessage:type_name -> proto.FutureProofMessage + 39, // 138: proto.Message.invoiceMessage:type_name -> proto.InvoiceMessage + 90, // 139: proto.Message.buttonsMessage:type_name -> proto.ButtonsMessage + 91, // 140: proto.Message.buttonsResponseMessage:type_name -> proto.ButtonsResponseMessage + 14, // 141: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 142: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 143: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 144: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 145: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 146: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 147: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 148: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 149: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 150: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 151: proto.WebFeatures.payments:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 152: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 153: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 154: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 155: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 156: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 157: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 158: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 159: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 160: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 161: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 162: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 163: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 164: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 165: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 166: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 167: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 168: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 169: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 170: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 171: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 172: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 173: proto.WebFeatures.syncdRelease1:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 174: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 175: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 176: proto.WebFeatures.syncdRelease11:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 177: proto.WebFeatures.support:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 178: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 179: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.WebFeaturesFlag + 14, // 180: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.WebFeaturesFlag + 93, // 181: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey + 92, // 182: proto.NotificationMessageInfo.message:type_name -> proto.Message + 98, // 183: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo + 15, // 184: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.PaymentInfoCurrency + 16, // 185: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.PaymentInfoStatus + 93, // 186: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey + 17, // 187: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.PaymentInfoTxnStatus + 93, // 188: proto.WebMessageInfo.key:type_name -> proto.MessageKey + 92, // 189: proto.WebMessageInfo.message:type_name -> proto.Message + 18, // 190: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.WebMessageInfoStatus + 19, // 191: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.WebMessageInfoStubType + 97, // 192: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo + 69, // 193: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage + 97, // 194: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo + 20, // 195: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus + 196, // [196:196] is the sub-list for method output_type + 196, // [196:196] is the sub-list for method input_type + 196, // [196:196] is the sub-list for extension type_name + 196, // [196:196] is the sub-list for extension extendee + 0, // [0:196] is the sub-list for field type_name +} + +func init() { file_def_proto_init() } +func file_def_proto_init() { + if File_def_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_def_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HydratedQuickReplyButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HydratedURLButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HydratedCallButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HydratedTemplateButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuickReplyButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*URLButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CallButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemplateButton); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Point); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InteractiveAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceListMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageContextInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdReplyInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalAdReplyInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContextInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SenderKeyDistributionMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LocationMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtendedTextMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DocumentMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AudioMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Call); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Chat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtocolMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistorySyncNotification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKeyId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKeyFingerprint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKeyData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKeyShare); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppStateSyncKeyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitialSecurityNotificationSettingSync); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactsArrayMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSMCurrency); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSMDateTimeComponent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSMDateTimeUnixEpoch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSMDateTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HSMLocalizableParameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HighlyStructuredMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendPaymentMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestPaymentMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PaymentMoney); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclinePaymentRequestMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CancelPaymentRequestMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveLocationMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StickerMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FourRowTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HydratedFourRowTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemplateMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TemplateButtonReplyMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CatalogSnapshot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProductSnapshot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProductMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Row); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Section); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SingleSelectReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListResponseMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInviteMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EphemeralSetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceSentMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FutureProofMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ButtonText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Button); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ButtonsMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ButtonsResponseMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebFeatures); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationMessageInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebNotificationsInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PaymentInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_def_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebMessageInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_def_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*HydratedTemplateButton_QuickReplyButton)(nil), + (*HydratedTemplateButton_UrlButton)(nil), + (*HydratedTemplateButton_CallButton)(nil), + } + file_def_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*TemplateButton_QuickReplyButton)(nil), + (*TemplateButton_UrlButton)(nil), + (*TemplateButton_CallButton)(nil), + } + file_def_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*InteractiveAnnotation_Location)(nil), + } + file_def_proto_msgTypes[40].OneofWrappers = []interface{}{ + (*HSMDateTime_Component)(nil), + (*HSMDateTime_UnixEpoch)(nil), + } + file_def_proto_msgTypes[41].OneofWrappers = []interface{}{ + (*HSMLocalizableParameter_Currency)(nil), + (*HSMLocalizableParameter_DateTime)(nil), + } + file_def_proto_msgTypes[50].OneofWrappers = []interface{}{ + (*FourRowTemplate_DocumentMessage)(nil), + (*FourRowTemplate_HighlyStructuredMessage)(nil), + (*FourRowTemplate_ImageMessage)(nil), + (*FourRowTemplate_VideoMessage)(nil), + (*FourRowTemplate_LocationMessage)(nil), + } + file_def_proto_msgTypes[51].OneofWrappers = []interface{}{ + (*HydratedFourRowTemplate_DocumentMessage)(nil), + (*HydratedFourRowTemplate_HydratedTitleText)(nil), + (*HydratedFourRowTemplate_ImageMessage)(nil), + (*HydratedFourRowTemplate_VideoMessage)(nil), + (*HydratedFourRowTemplate_LocationMessage)(nil), + } + file_def_proto_msgTypes[52].OneofWrappers = []interface{}{ + (*TemplateMessage_FourRowTemplate)(nil), + (*TemplateMessage_HydratedFourRowTemplate)(nil), + } + file_def_proto_msgTypes[69].OneofWrappers = []interface{}{ + (*ButtonsMessage_TitleText)(nil), + (*ButtonsMessage_DocumentMessage)(nil), + (*ButtonsMessage_ImageMessage)(nil), + (*ButtonsMessage_VideoMessage)(nil), + (*ButtonsMessage_LocationMessage)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_def_proto_rawDesc, + NumEnums: 21, + NumMessages: 78, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_def_proto_goTypes, + DependencyIndexes: file_def_proto_depIdxs, + EnumInfos: file_def_proto_enumTypes, + MessageInfos: file_def_proto_msgTypes, + }.Build() + File_def_proto = out.File + file_def_proto_rawDesc = nil + file_def_proto_goTypes = nil + file_def_proto_depIdxs = nil } 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 eaf38e61..ada7d4a3 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto +++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto @@ -69,18 +69,46 @@ message InteractiveAnnotation { } } +message DeviceListMetadata { + optional bytes senderKeyHash = 1; + optional uint64 senderTimestamp = 2; + optional bytes recipientKeyHash = 8; + optional uint64 recipientTimestamp = 9; +} + +message MessageContextInfo { + optional DeviceListMetadata deviceListMetadata = 1; +} + message AdReplyInfo { optional string advertiserName = 1; - enum AD_REPLY_INFO_MEDIATYPE { + enum AdReplyInfoMediaType { NONE = 0; IMAGE = 1; VIDEO = 2; } - optional AD_REPLY_INFO_MEDIATYPE mediaType = 2; + optional AdReplyInfoMediaType mediaType = 2; optional bytes jpegThumbnail = 16; optional string caption = 17; } +message ExternalAdReplyInfo { + optional string title = 1; + optional string body = 2; + enum ExternalAdReplyInfoMediaType { + NONE = 0; + IMAGE = 1; + VIDEO = 2; + } + optional ExternalAdReplyInfoMediaType mediaType = 3; + optional string thumbnailUrl = 4; + optional string mediaUrl = 5; + optional bytes thumbnail = 6; + optional string sourceType = 7; + optional string sourceId = 8; + optional string sourceUrl = 9; +} + message ContextInfo { optional string stanzaId = 1; optional string participant = 2; @@ -96,6 +124,8 @@ message ContextInfo { optional MessageKey placeholderKey = 24; optional uint32 expiration = 25; optional int64 ephemeralSettingTimestamp = 26; + optional bytes ephemeralSharedSecret = 27; + optional ExternalAdReplyInfo externalAdReply = 28; } message SenderKeyDistributionMessage { @@ -125,6 +155,24 @@ message ImageMessage { repeated uint32 scanLengths = 22; optional bytes midQualityFileSha256 = 23; optional bytes midQualityFileEncSha256 = 24; + optional bool viewOnce = 25; +} + +message InvoiceMessage { + optional string note = 1; + optional string token = 2; + enum InvoiceMessageAttachmentType { + IMAGE = 0; + PDF = 1; + } + optional InvoiceMessageAttachmentType attachmentType = 3; + optional string attachmentMimetype = 4; + optional bytes attachmentMediaKey = 5; + optional int64 attachmentMediaKeyTimestamp = 6; + optional bytes attachmentFileSha256 = 7; + optional bytes attachmentFileEncSha256 = 8; + optional string attachmentDirectPath = 9; + optional bytes attachmentJpegThumbnail = 10; } message ContactMessage { @@ -156,7 +204,7 @@ message ExtendedTextMessage { optional string title = 6; optional fixed32 textArgb = 7; optional fixed32 backgroundArgb = 8; - enum EXTENDED_TEXT_MESSAGE_FONTTYPE { + enum ExtendedTextMessageFontType { SANS_SERIF = 0; SERIF = 1; NORICAN_REGULAR = 2; @@ -164,12 +212,12 @@ message ExtendedTextMessage { BEBASNEUE_REGULAR = 4; OSWALD_HEAVY = 5; } - optional EXTENDED_TEXT_MESSAGE_FONTTYPE font = 9; - enum EXTENDED_TEXT_MESSAGE_PREVIEWTYPE { + optional ExtendedTextMessageFontType font = 9; + enum ExtendedTextMessagePreviewType { NONE = 0; VIDEO = 1; } - optional EXTENDED_TEXT_MESSAGE_PREVIEWTYPE previewType = 10; + optional ExtendedTextMessagePreviewType previewType = 10; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; optional bool doNotPlayInline = 18; @@ -187,8 +235,14 @@ message DocumentMessage { optional bytes fileEncSha256 = 9; optional string directPath = 10; optional int64 mediaKeyTimestamp = 11; + optional bool contactVcard = 12; + optional string thumbnailDirectPath = 13; + optional bytes thumbnailSha256 = 14; + optional bytes thumbnailEncSha256 = 15; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; + optional uint32 thumbnailHeight = 18; + optional uint32 thumbnailWidth = 19; } message AudioMessage { @@ -224,12 +278,13 @@ message VideoMessage { optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; optional bytes streamingSidecar = 18; - enum VIDEO_MESSAGE_ATTRIBUTION { + enum VideoMessageAttribution { NONE = 0; GIPHY = 1; TENOR = 2; } - optional VIDEO_MESSAGE_ATTRIBUTION gifAttribution = 19; + optional VideoMessageAttribution gifAttribution = 19; + optional bool viewOnce = 20; } message Call { @@ -243,16 +298,23 @@ message Chat { message ProtocolMessage { optional MessageKey key = 1; - enum PROTOCOL_MESSAGE_TYPE { + enum ProtocolMessageType { REVOKE = 0; EPHEMERAL_SETTING = 3; EPHEMERAL_SYNC_RESPONSE = 4; HISTORY_SYNC_NOTIFICATION = 5; + APP_STATE_SYNC_KEY_SHARE = 6; + APP_STATE_SYNC_KEY_REQUEST = 7; + MSG_FANOUT_BACKFILL_REQUEST = 8; + INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC = 9; } - optional PROTOCOL_MESSAGE_TYPE type = 2; + optional ProtocolMessageType type = 2; optional uint32 ephemeralExpiration = 4; optional int64 ephemeralSettingTimestamp = 5; optional HistorySyncNotification historySyncNotification = 6; + optional AppStateSyncKeyShare appStateSyncKeyShare = 7; + optional AppStateSyncKeyRequest appStateSyncKeyRequest = 8; + optional InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 9; } message HistorySyncNotification { @@ -261,14 +323,49 @@ message HistorySyncNotification { optional bytes mediaKey = 3; optional bytes fileEncSha256 = 4; optional string directPath = 5; - enum HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE { + enum HistorySyncNotificationHistorySyncType { INITIAL_BOOTSTRAP = 0; INITIAL_STATUS_V3 = 1; FULL = 2; RECENT = 3; + PUSH_NAME = 4; } - optional HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE syncType = 6; + optional HistorySyncNotificationHistorySyncType syncType = 6; optional uint32 chunkOrder = 7; + optional string originalMessageId = 8; +} + +message AppStateSyncKey { + optional AppStateSyncKeyId keyId = 1; + optional AppStateSyncKeyData keyData = 2; +} + +message AppStateSyncKeyId { + optional bytes keyId = 1; +} + +message AppStateSyncKeyFingerprint { + optional uint32 rawId = 1; + optional uint32 currentIndex = 2; + repeated uint32 deviceIndexes = 3 [packed=true]; +} + +message AppStateSyncKeyData { + optional bytes keyData = 1; + optional AppStateSyncKeyFingerprint fingerprint = 2; + optional int64 timestamp = 3; +} + +message AppStateSyncKeyShare { + repeated AppStateSyncKey keys = 1; +} + +message AppStateSyncKeyRequest { + repeated AppStateSyncKeyId keyIds = 1; +} + +message InitialSecurityNotificationSettingSync { + optional bool securityNotificationEnabled = 1; } message ContactsArrayMessage { @@ -283,7 +380,7 @@ message HSMCurrency { } message HSMDateTimeComponent { - enum HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE { + enum HSMDateTimeComponentDayOfWeekType { MONDAY = 1; TUESDAY = 2; WEDNESDAY = 3; @@ -292,17 +389,17 @@ message HSMDateTimeComponent { SATURDAY = 6; SUNDAY = 7; } - optional HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE dayOfWeek = 1; + optional HSMDateTimeComponentDayOfWeekType dayOfWeek = 1; optional uint32 year = 2; optional uint32 month = 3; optional uint32 dayOfMonth = 4; optional uint32 hour = 5; optional uint32 minute = 6; - enum HSM_DATE_TIME_COMPONENT_CALENDARTYPE { + enum HSMDateTimeComponentCalendarType { GREGORIAN = 1; SOLAR_HIJRI = 2; } - optional HSM_DATE_TIME_COMPONENT_CALENDARTYPE calendar = 7; + optional HSMDateTimeComponentCalendarType calendar = 7; } message HSMDateTimeUnixEpoch { @@ -347,6 +444,13 @@ message RequestPaymentMessage { optional uint64 amount1000 = 2; optional string requestFrom = 3; optional int64 expiryTimestamp = 5; + optional PaymentMoney amount = 6; +} + +message PaymentMoney { + optional int64 value = 1; + optional uint32 offset = 2; + optional string currencyCode = 3; } message DeclinePaymentRequestMessage { @@ -457,6 +561,64 @@ message ProductMessage { optional ContextInfo contextInfo = 17; } +message OrderMessage { + optional string orderId = 1; + optional bytes thumbnail = 2; + optional int32 itemCount = 3; + enum OrderMessageOrderStatus { + INQUIRY = 1; + } + optional OrderMessageOrderStatus status = 4; + enum OrderMessageOrderSurface { + CATALOG = 1; + } + optional OrderMessageOrderSurface surface = 5; + optional string message = 6; + optional string orderTitle = 7; + optional string sellerJid = 8; + optional string token = 9; + optional ContextInfo contextInfo = 17; +} + +message Row { + optional string title = 1; + optional string description = 2; + optional string rowId = 3; +} + +message Section { + optional string title = 1; + repeated Row rows = 2; +} + +message ListMessage { + optional string title = 1; + optional string description = 2; + optional string buttonText = 3; + enum ListMessageListType { + UNKNOWN = 0; + SINGLE_SELECT = 1; + } + optional ListMessageListType listType = 4; + repeated Section sections = 5; +} + +message SingleSelectReply { + optional string selectedRowId = 1; +} + +message ListResponseMessage { + optional string title = 1; + enum ListResponseMessageListType { + UNKNOWN = 0; + SINGLE_SELECT = 1; + } + optional ListResponseMessageListType listType = 2; + optional SingleSelectReply singleSelectReply = 3; + optional ContextInfo contextInfo = 4; + optional string description = 5; +} + message GroupInviteMessage { optional string groupJid = 1; optional string inviteCode = 2; @@ -467,13 +629,50 @@ message GroupInviteMessage { optional ContextInfo contextInfo = 7; } +message EphemeralSetting { + optional string chatJid = 1; + optional uint32 ephemeralExpiration = 2; + optional int64 ephemeralSettingTimestamp = 3; +} + message DeviceSentMessage { optional string destinationJid = 1; optional Message message = 2; + optional string phash = 3; + repeated EphemeralSetting broadcastEphemeralSettings = 4; +} + +message FutureProofMessage { + optional Message message = 1; } -message DeviceSyncMessage { - optional bytes serializedXmlBytes = 1; +message ButtonText { + optional string displayText = 1; +} + +message Button { + optional string buttonId = 1; + optional ButtonText buttonText = 2; +} + +message ButtonsMessage { + optional string contentText = 6; + optional string footerText = 7; + optional ContextInfo contextInfo = 8; + repeated Button buttons = 9; + oneof title { + string titleText = 1; + DocumentMessage documentMessage = 2; + ImageMessage imageMessage = 3; + VideoMessage videoMessage = 4; + LocationMessage locationMessage = 5; + } +} + +message ButtonsResponseMessage { + optional string selectedButtonId = 1; + optional string selectedDisplayText = 2; + optional ContextInfo contextInfo = 3; } message Message { @@ -503,7 +702,15 @@ message Message { optional TemplateButtonReplyMessage templateButtonReplyMessage = 29; optional ProductMessage productMessage = 30; optional DeviceSentMessage deviceSentMessage = 31; - optional DeviceSyncMessage deviceSyncMessage = 32; + optional MessageContextInfo messageContextInfo = 35; + optional ListMessage listMessage = 36; + optional FutureProofMessage viewOnceMessage = 37; + optional OrderMessage orderMessage = 38; + optional ListResponseMessage listResponseMessage = 39; + optional FutureProofMessage ephemeralMessage = 40; + optional InvoiceMessage invoiceMessage = 41; + optional ButtonsMessage buttonsMessage = 42; + optional ButtonsResponseMessage buttonsResponseMessage = 43; } message MessageKey { @@ -514,51 +721,52 @@ message MessageKey { } message WebFeatures { - enum WEB_FEATURES_FLAG { + enum WebFeaturesFlag { NOT_STARTED = 0; FORCE_UPGRADE = 1; DEVELOPMENT = 2; PRODUCTION = 3; } - 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; - optional WEB_FEATURES_FLAG groupsV4JoinPermission = 25; - optional WEB_FEATURES_FLAG recentStickers = 26; - optional WEB_FEATURES_FLAG catalog = 27; - optional WEB_FEATURES_FLAG starredStickers = 28; - optional WEB_FEATURES_FLAG voipGroupCall = 29; - optional WEB_FEATURES_FLAG templateMessage = 30; - optional WEB_FEATURES_FLAG templateMessageInteractivity = 31; - optional WEB_FEATURES_FLAG ephemeralMessages = 32; - optional WEB_FEATURES_FLAG e2ENotificationSync = 33; - optional WEB_FEATURES_FLAG recentStickersV2 = 34; -} - -message TabletNotificationsInfo { - optional uint64 timestamp = 2; - optional uint32 unreadChats = 3; - optional uint32 notifyMessageCount = 4; - repeated NotificationMessageInfo notifyMessage = 5; + optional WebFeaturesFlag labelsDisplay = 1; + optional WebFeaturesFlag voipIndividualOutgoing = 2; + optional WebFeaturesFlag groupsV3 = 3; + optional WebFeaturesFlag groupsV3Create = 4; + optional WebFeaturesFlag changeNumberV2 = 5; + optional WebFeaturesFlag queryStatusV3Thumbnail = 6; + optional WebFeaturesFlag liveLocations = 7; + optional WebFeaturesFlag queryVname = 8; + optional WebFeaturesFlag voipIndividualIncoming = 9; + optional WebFeaturesFlag quickRepliesQuery = 10; + optional WebFeaturesFlag payments = 11; + optional WebFeaturesFlag stickerPackQuery = 12; + optional WebFeaturesFlag liveLocationsFinal = 13; + optional WebFeaturesFlag labelsEdit = 14; + optional WebFeaturesFlag mediaUpload = 15; + optional WebFeaturesFlag mediaUploadRichQuickReplies = 18; + optional WebFeaturesFlag vnameV2 = 19; + optional WebFeaturesFlag videoPlaybackUrl = 20; + optional WebFeaturesFlag statusRanking = 21; + optional WebFeaturesFlag voipIndividualVideo = 22; + optional WebFeaturesFlag thirdPartyStickers = 23; + optional WebFeaturesFlag frequentlyForwardedSetting = 24; + optional WebFeaturesFlag groupsV4JoinPermission = 25; + optional WebFeaturesFlag recentStickers = 26; + optional WebFeaturesFlag catalog = 27; + optional WebFeaturesFlag starredStickers = 28; + optional WebFeaturesFlag voipGroupCall = 29; + optional WebFeaturesFlag templateMessage = 30; + optional WebFeaturesFlag templateMessageInteractivity = 31; + optional WebFeaturesFlag ephemeralMessages = 32; + optional WebFeaturesFlag e2ENotificationSync = 33; + optional WebFeaturesFlag recentStickersV2 = 34; + optional WebFeaturesFlag syncdRelease1 = 35; + optional WebFeaturesFlag recentStickersV3 = 36; + optional WebFeaturesFlag userNotice = 37; + optional WebFeaturesFlag syncdRelease11 = 38; + optional WebFeaturesFlag support = 39; + optional WebFeaturesFlag groupUiiCleanup = 40; + optional WebFeaturesFlag groupDogfoodingInternalOnly = 41; + optional WebFeaturesFlag settingsSync = 42; } message NotificationMessageInfo { @@ -576,14 +784,14 @@ message WebNotificationsInfo { } message PaymentInfo { - enum PAYMENT_INFO_CURRENCY { + enum PaymentInfoCurrency { UNKNOWN_CURRENCY = 0; INR = 1; } - optional PAYMENT_INFO_CURRENCY currencyDeprecated = 1; + optional PaymentInfoCurrency currencyDeprecated = 1; optional uint64 amount1000 = 2; optional string receiverJid = 3; - enum PAYMENT_INFO_STATUS { + enum PaymentInfoStatus { UNKNOWN_STATUS = 0; PROCESSING = 1; SENT = 2; @@ -597,13 +805,13 @@ message PaymentInfo { WAITING_FOR_PAYER = 10; WAITING = 11; } - optional PAYMENT_INFO_STATUS status = 4; + optional PaymentInfoStatus status = 4; optional uint64 transactionTimestamp = 5; optional MessageKey requestMessageKey = 6; optional uint64 expiryTimestamp = 7; optional bool futureproofed = 8; optional string currency = 9; - enum PAYMENT_INFO_TXNSTATUS { + enum PaymentInfoTxnStatus { UNKNOWN = 0; PENDING_SETUP = 1; PENDING_RECEIVER_SETUP = 2; @@ -633,14 +841,14 @@ message PaymentInfo { COLLECT_CANCELED = 26; COLLECT_CANCELLING = 27; } - optional PAYMENT_INFO_TXNSTATUS txnStatus = 10; + optional PaymentInfoTxnStatus txnStatus = 10; } message WebMessageInfo { required MessageKey key = 1; optional Message message = 2; optional uint64 messageTimestamp = 3; - enum WEB_MESSAGE_INFO_STATUS { + enum WebMessageInfoStatus { ERROR = 0; PENDING = 1; SERVER_ACK = 2; @@ -648,7 +856,7 @@ message WebMessageInfo { READ = 4; PLAYED = 5; } - optional WEB_MESSAGE_INFO_STATUS status = 4; + optional WebMessageInfoStatus status = 4; optional string participant = 5; optional bool ignore = 16; optional bool starred = 17; @@ -658,7 +866,7 @@ message WebMessageInfo { optional bool multicast = 21; optional bool urlText = 22; optional bool urlNumber = 23; - enum WEB_MESSAGE_INFO_STUBTYPE { + enum WebMessageInfoStubType { UNKNOWN = 0; REVOKE = 1; CIPHERTEXT = 2; @@ -732,8 +940,54 @@ message WebMessageInfo { GROUP_V4_ADD_INVITE_SENT = 70; GROUP_PARTICIPANT_ADD_REQUEST_JOIN = 71; CHANGE_EPHEMERAL_SETTING = 72; + E2E_DEVICE_CHANGED = 73; + VIEWED_ONCE = 74; + E2E_ENCRYPTED_NOW = 75; + BLUE_MSG_BSP_FB_TO_BSP_PREMISE = 76; + BLUE_MSG_BSP_FB_TO_SELF_FB = 77; + BLUE_MSG_BSP_FB_TO_SELF_PREMISE = 78; + BLUE_MSG_BSP_FB_UNVERIFIED = 79; + BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 80; + BLUE_MSG_BSP_FB_VERIFIED = 81; + BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 82; + BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE = 83; + BLUE_MSG_BSP_PREMISE_UNVERIFIED = 84; + BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 85; + BLUE_MSG_BSP_PREMISE_VERIFIED = 86; + BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 87; + BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED = 88; + BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED = 89; + BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED = 90; + BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED = 91; + BLUE_MSG_SELF_FB_TO_BSP_PREMISE = 92; + BLUE_MSG_SELF_FB_TO_SELF_PREMISE = 93; + BLUE_MSG_SELF_FB_UNVERIFIED = 94; + BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 95; + BLUE_MSG_SELF_FB_VERIFIED = 96; + BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 97; + BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE = 98; + BLUE_MSG_SELF_PREMISE_UNVERIFIED = 99; + BLUE_MSG_SELF_PREMISE_VERIFIED = 100; + BLUE_MSG_TO_BSP_FB = 101; + BLUE_MSG_TO_CONSUMER = 102; + BLUE_MSG_TO_SELF_FB = 103; + BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED = 104; + BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 105; + BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED = 106; + BLUE_MSG_UNVERIFIED_TO_VERIFIED = 107; + BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED = 108; + BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 109; + BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED = 110; + BLUE_MSG_VERIFIED_TO_UNVERIFIED = 111; + BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 112; + BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED = 113; + BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 114; + BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED = 115; + BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 116; + BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 117; + E2E_IDENTITY_UNAVAILABLE = 118; } - optional WEB_MESSAGE_INFO_STUBTYPE messageStubType = 24; + optional WebMessageInfoStubType messageStubType = 24; optional bool clearMedia = 25; repeated string messageStubParameters = 26; optional uint32 duration = 27; @@ -743,5 +997,15 @@ message WebMessageInfo { optional PaymentInfo quotedPaymentInfo = 31; optional uint64 ephemeralStartTimestamp = 32; optional uint32 ephemeralDuration = 33; + optional bool ephemeralOffToOn = 34; + optional bool ephemeralOutOfSync = 35; + enum WebMessageInfoBizPrivacyStatus { + E2EE = 0; + FB = 2; + BSP = 1; + BSP_AND_FB = 3; + } + optional WebMessageInfoBizPrivacyStatus bizPrivacyStatus = 36; + optional string verifiedBizName = 37; } diff --git a/vendor/github.com/Rhymen/go-whatsapp/conn.go b/vendor/github.com/Rhymen/go-whatsapp/conn.go index 4b28cbe1..0fd9ede5 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/conn.go +++ b/vendor/github.com/Rhymen/go-whatsapp/conn.go @@ -2,6 +2,7 @@ package whatsapp import ( + "fmt" "math/rand" "net/http" "net/url" @@ -9,7 +10,6 @@ import ( "time" "github.com/gorilla/websocket" - "github.com/pkg/errors" ) type metric byte @@ -195,7 +195,7 @@ func (wac *Conn) connect() (err error) { headers := http.Header{"Origin": []string{"https://web.whatsapp.com"}} wsConn, _, err := dialer.Dial("wss://web.whatsapp.com/ws", headers) if err != nil { - return errors.Wrap(err, "couldn't dial whatsapp web websocket") + return fmt.Errorf("couldn't dial whatsapp web websocket: %w", err) } wsConn.SetCloseHandler(func(code int, text string) error { @@ -221,7 +221,7 @@ func (wac *Conn) connect() (err error) { wac.wg = &sync.WaitGroup{} wac.wg.Add(2) go wac.readPump() - go wac.keepAlive(20000, 60000) + go wac.keepAlive(20000, 55000) wac.loggedIn = false return nil @@ -237,7 +237,10 @@ func (wac *Conn) Disconnect() (Session, error) { close(wac.ws.close) //signal close wac.wg.Wait() //wait for close - err := wac.ws.conn.Close() + var err error + if wac.ws != nil && wac.ws.conn != nil { + err = wac.ws.conn.Close() + } wac.ws = nil if wac.session == nil { @@ -246,17 +249,20 @@ func (wac *Conn) Disconnect() (Session, error) { return *wac.session, err } -func (wac *Conn) AdminTest() (bool, error) { +func (wac *Conn) IsLoginInProgress() bool { + return wac.sessionLock == 1 +} + +func (wac *Conn) AdminTest() error { if !wac.connected { - return false, ErrNotConnected + return ErrNotConnected } if !wac.loggedIn { - return false, ErrInvalidSession + return ErrInvalidSession } - result, err := wac.sendAdminTest() - return result, err + return wac.sendAdminTest() } func (wac *Conn) keepAlive(minIntervalMs int, maxIntervalMs int) { @@ -265,7 +271,7 @@ func (wac *Conn) keepAlive(minIntervalMs int, maxIntervalMs int) { for { err := wac.sendKeepAlive() if err != nil { - wac.handle(errors.Wrap(err, "keepAlive failed")) + wac.handle(fmt.Errorf("keepAlive failed: %w", err)) //TODO: Consequences? } interval := rand.Intn(maxIntervalMs-minIntervalMs) + minIntervalMs diff --git a/vendor/github.com/Rhymen/go-whatsapp/contact.go b/vendor/github.com/Rhymen/go-whatsapp/contact.go index 92d0a4ad..21377ae3 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/contact.go +++ b/vendor/github.com/Rhymen/go-whatsapp/contact.go @@ -39,20 +39,20 @@ func (wac *Conn) Search(search string, count, page int) (*binary.Node, error) { return wac.query("search", "", "", "", "", search, count, page) } -func (wac *Conn) LoadMessages(jid, messageId string, count int) (*binary.Node, error) { +func (wac *Conn) LoadMessages(jid string, count int) (*binary.Node, error) { return wac.query("message", jid, "", "before", "true", "", count, 0) } -func (wac *Conn) LoadMessagesBefore(jid, messageId string, count int) (*binary.Node, error) { - return wac.query("message", jid, messageId, "before", "true", "", count, 0) +func (wac *Conn) LoadMessagesBefore(jid, messageId string, fromMe bool, count int) (*binary.Node, error) { + return wac.query("message", jid, messageId, "before", strconv.FormatBool(fromMe), "", count, 0) } -func (wac *Conn) LoadMessagesAfter(jid, messageId string, count int) (*binary.Node, error) { - return wac.query("message", jid, messageId, "after", "true", "", count, 0) +func (wac *Conn) LoadMessagesAfter(jid, messageId string, fromMe bool, count int) (*binary.Node, error) { + return wac.query("message", jid, messageId, "after", strconv.FormatBool(fromMe), "", 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) LoadMediaInfo(jid, messageId string, fromMe bool) (*binary.Node, error) { + return wac.query("media", jid, messageId, "", strconv.FormatBool(fromMe), "", 0, 0) } func (wac *Conn) Presence(jid string, presence Presence) (<-chan string, error) { @@ -96,11 +96,19 @@ func (wac *Conn) Emoji() (*binary.Node, error) { } func (wac *Conn) Contacts() (*binary.Node, error) { - return wac.query("contacts", "", "", "", "", "", 0, 0) + node, err := wac.query("contacts", "", "", "", "", "", 0, 0) + if node != nil && node.Description == "response" && node.Attributes["type"] == "contacts" { + wac.updateContacts(node.Content) + } + return node, err } func (wac *Conn) Chats() (*binary.Node, error) { - return wac.query("chat", "", "", "", "", "", 0, 0) + node, err := wac.query("chat", "", "", "", "", "", 0, 0) + if node != nil && node.Description == "response" && node.Attributes["type"] == "chat" { + wac.updateChats(node.Content) + } + return node, err } func (wac *Conn) Read(jid, id string) (<-chan string, error) { @@ -177,13 +185,18 @@ func (wac *Conn) query(t, jid, messageId, kind, owner, search string, count, pag return nil, err } - msg, err := wac.decryptBinaryMessage([]byte(<-ch)) - if err != nil { - return nil, err - } + select { + case response := <-ch: + msg, err := wac.decryptBinaryMessage([]byte(response)) + if err != nil { + return nil, err + } - //TODO: use parseProtoMessage - return msg, nil + //TODO: use parseProtoMessage + return msg, nil + case <-time.After(3 * time.Minute): + return nil, ErrQueryTimeout + } } func (wac *Conn) setGroup(t, jid, subject string, participants []string) (<-chan string, error) { diff --git a/vendor/github.com/Rhymen/go-whatsapp/errors.go b/vendor/github.com/Rhymen/go-whatsapp/errors.go index 2f58a771..5e029cde 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/errors.go +++ b/vendor/github.com/Rhymen/go-whatsapp/errors.go @@ -1,25 +1,46 @@ package whatsapp import ( + "encoding/json" + "errors" "fmt" - - "github.com/pkg/errors" ) 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") - ErrInvalidWebsocket = errors.New("invalid websocket") + 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") + ErrLoginTimedOut = errors.New("login timed out") + ErrQueryTimeout = errors.New("query timed out") + + ErrBadRequest = errors.New("400 (bad request)") + ErrUnpaired = errors.New("401 (unpaired from phone)") + ErrAccessDenied = errors.New("403 (access denied)") + ErrLoggedIn = errors.New("405 (already logged in)") + ErrReplaced = errors.New("409 (logged in from another location)") + + ErrNoURLPresent = errors.New("no url present") + ErrFileLengthMismatch = errors.New("file length does not match") + ErrInvalidHashLength = errors.New("hash too short") + ErrTooShortFile = errors.New("file too short") + ErrInvalidMediaHMAC = errors.New("invalid media hmac") + + ErrCantGetInviteLink = errors.New("you don't have the permission to view the invite link") + ErrJoinUnauthorized = errors.New("you're not allowed to join that group") + + ErrInvalidWebsocket = errors.New("invalid websocket") + ErrMessageTypeNotImplemented = errors.New("message type not implemented") ErrOptionsNotProvided = errors.New("new conn options not provided") ) @@ -40,3 +61,31 @@ type ErrConnectionClosed struct { func (e *ErrConnectionClosed) Error() string { return fmt.Sprintf("server closed connection,code: %d,text: %s", e.Code, e.Text) } + +type StatusResponseFields struct { + // The response status code. This is always expected to be present. + Status int `json:"status"` + // Some error messages include a "tos" value. If it's higher than 0, it + // might mean the user has been banned for breaking the terms of service. + TermsOfService int `json:"tos,omitempty"` + // This is a timestamp that's at least present in message send responses. + Timestamp int64 `json:"t,omitempty"` +} + +type StatusResponse struct { + StatusResponseFields + RequestType string `json:"-"` + Extra map[string]interface{} `json:"-"` +} + +func (sr *StatusResponse) UnmarshalJSON(data []byte) error { + err := json.Unmarshal(data, &sr.Extra) + if err != nil { + return err + } + return json.Unmarshal(data, &sr.StatusResponseFields) +} + +func (sr StatusResponse) Error() string { + return fmt.Sprintf("%s responded with %d", sr.RequestType, sr.Status) +} diff --git a/vendor/github.com/Rhymen/go-whatsapp/go.mod b/vendor/github.com/Rhymen/go-whatsapp/go.mod index e141f6e7..6deee605 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/go.mod +++ b/vendor/github.com/Rhymen/go-whatsapp/go.mod @@ -1,14 +1,10 @@ module github.com/Rhymen/go-whatsapp +go 1.11 + require ( - github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d // indirect - github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d // indirect - github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect - github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect - github.com/golang/protobuf v1.3.0 - github.com/gorilla/websocket v1.4.1 - github.com/pkg/errors v0.8.1 - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 + github.com/golang/protobuf v1.4.2 + github.com/gorilla/websocket v1.4.2 + golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 + google.golang.org/protobuf v1.24.0 ) - -go 1.13 diff --git a/vendor/github.com/Rhymen/go-whatsapp/go.sum b/vendor/github.com/Rhymen/go-whatsapp/go.sum index ee786406..0551fc94 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/go.sum +++ b/vendor/github.com/Rhymen/go-whatsapp/go.sum @@ -1,37 +1,70 @@ -github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f h1:2dk3eOnYllh+wUOuDhOoC2vUVoJF/5z478ryJ+wzEII= -github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f/go.mod h1:4a58ifQTEe2uwwsaqbh3i2un5/CBPg+At/qHpt18Tmk= -github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA= -github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d h1:m3wkrunHupL9XzzM+JZu1pgoDV1d9LFtD0gedNTHVDU= -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 h1:muQlzqfZxjptOBjPdv+UoxVMr8Y1rPx7VMGPJIAFc5w= -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 h1:xP//3V77YvHd1cj2Z3ttuQWAvs5WmIwBbjKe/t0g/tM= -github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw= -github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d h1:IRmRE0SPMByczwE2dhnTcVojje3w2TCSKwFrboLUbDg= -github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:suwzklatySS3Q0+NCxCDh5hYfgXdQUWU1DNcxwAxStM= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= -github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE= -github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo= -golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9 h1:vEg9joUBmeBcK9iSJftGNf3coIG4HqZElCPehJsfAYM= +golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/github.com/Rhymen/go-whatsapp/group.go b/vendor/github.com/Rhymen/go-whatsapp/group.go index 40e4515e..ebfced2c 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/group.go +++ b/vendor/github.com/Rhymen/go-whatsapp/group.go @@ -3,7 +3,10 @@ package whatsapp import ( "encoding/json" "fmt" + "strconv" "time" + + "github.com/Rhymen/go-whatsapp/binary" ) func (wac *Conn) GetGroupMetaData(jid string) (<-chan string, error) { @@ -57,8 +60,11 @@ func (wac *Conn) GroupInviteLink(jid string) (string, error) { return "", fmt.Errorf("request timed out") } - if int(response["status"].(float64)) != 200 { - return "", fmt.Errorf("request responded with %d", response["status"]) + status := int(response["status"].(float64)) + if status == 401 { + return "", ErrCantGetInviteLink + } else if status != 200 { + return "", fmt.Errorf("request responded with %d", status) } return response["code"].(string), nil @@ -82,9 +88,77 @@ func (wac *Conn) GroupAcceptInviteCode(code string) (jid string, err error) { return "", fmt.Errorf("request timed out") } - if int(response["status"].(float64)) != 200 { - return "", fmt.Errorf("request responded with %d", response["status"]) + status := int(response["status"].(float64)) + + if status == 401 { + return "", ErrJoinUnauthorized + } else if status != 200 { + return "", fmt.Errorf("request responded with %d", status) } return response["gid"].(string), nil } + +type descriptionID struct { + DescID string `json:"descId"` +} + +func (wac *Conn) getDescriptionID(jid string) (string, error) { + data, err := wac.GetGroupMetaData(jid) + if err != nil { + return "none", err + } + var oldData descriptionID + err = json.Unmarshal([]byte(<-data), &oldData) + if err != nil { + return "none", err + } + if oldData.DescID == "" { + return "none", nil + } + return oldData.DescID, nil +} + +func (wac *Conn) UpdateGroupDescription(jid, description string) (<-chan string, error) { + prevID, err := wac.getDescriptionID(jid) + if err != nil { + return nil, err + } + newData := map[string]string{ + "prev": prevID, + } + var desc interface{} = description + if description == "" { + newData["delete"] = "true" + desc = nil + } else { + newData["id"] = fmt.Sprintf("%d-%d", time.Now().Unix(), wac.msgCount*19) + } + tag := fmt.Sprintf("%d.--%d", time.Now().Unix(), wac.msgCount*19) + n := binary.Node{ + Description: "action", + Attributes: map[string]string{ + "type": "set", + "epoch": strconv.Itoa(wac.msgCount), + }, + Content: []interface{}{ + binary.Node{ + Description: "group", + Attributes: map[string]string{ + "id": tag, + "jid": jid, + "type": "description", + "author": wac.Info.Wid, + }, + Content: []binary.Node{ + { + Description: "description", + Attributes: newData, + Content: desc, + }, + }, + }, + }, + } + return wac.writeBinary(n, group, 136, tag) +} diff --git a/vendor/github.com/Rhymen/go-whatsapp/handler.go b/vendor/github.com/Rhymen/go-whatsapp/handler.go index 4f8ef858..5692e54d 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/handler.go +++ b/vendor/github.com/Rhymen/go-whatsapp/handler.go @@ -117,6 +117,12 @@ type RawMessageHandler interface { HandleRawMessage(message *proto.WebMessageInfo) } +// The UnknownBinaryHandler interface needs to be implemented to receive unhandled binary messages. +type UnknownBinaryHandler interface { + Handler + HandleUnknownBinaryNode(message *binary.Node) +} + /** The ContactListHandler interface needs to be implemented to applky custom actions to contact lists dispatched by the dispatcher. */ @@ -141,6 +147,16 @@ type BatteryMessageHandler interface { HandleBatteryMessage(battery BatteryMessage) } +type ReadMessageHandler interface { + Handler + HandleReadMessage(read ReadMessage) +} + +type ReceivedMessageHandler interface { + Handler + HandleReceivedMessage(received ReceivedMessage) +} + /** The NewContactHandler interface needs to be implemented to receive the contact's name for the first time. */ @@ -186,6 +202,19 @@ func (wac *Conn) shouldCallSynchronously(handler Handler) bool { } func (wac *Conn) handle(message interface{}) { + defer func() { + if errIfc := recover(); errIfc != nil { + if err, ok := errIfc.(error); ok { + wac.unsafeHandle(fmt.Errorf("panic in WhatsApp handler: %w", err)) + } else { + wac.unsafeHandle(fmt.Errorf("panic in WhatsApp handler: %v", errIfc)) + } + } + }() + wac.unsafeHandle(message) +} + +func (wac *Conn) unsafeHandle(message interface{}) { wac.handleWithCustomHandlers(message, wac.handler) } @@ -324,6 +353,28 @@ func (wac *Conn) handleWithCustomHandlers(message interface{}, handlers []Handle } } + case ReadMessage: + for _, h := range handlers { + if x, ok := h.(ReadMessageHandler); ok { + if wac.shouldCallSynchronously(h) { + x.HandleReadMessage(m) + } else { + go x.HandleReadMessage(m) + } + } + } + + case ReceivedMessage: + for _, h := range handlers { + if x, ok := h.(ReceivedMessageHandler); ok { + if wac.shouldCallSynchronously(h) { + x.HandleReceivedMessage(m) + } else { + go x.HandleReceivedMessage(m) + } + } + } + case *proto.WebMessageInfo: for _, h := range handlers { if x, ok := h.(RawMessageHandler); ok { @@ -334,6 +385,17 @@ func (wac *Conn) handleWithCustomHandlers(message interface{}, handlers []Handle } } } + + case *binary.Node: + for _, h := range handlers { + if x, ok := h.(UnknownBinaryHandler); ok { + if wac.shouldCallSynchronously(h) { + x.HandleUnknownBinaryNode(m) + } else { + go x.HandleUnknownBinaryNode(m) + } + } + } } } @@ -425,6 +487,8 @@ func (wac *Conn) dispatch(msg interface{}) { for a := range con { wac.handle(ParseNodeMessage(con[a])) } + } else { + wac.handle(message) } } else if message.Description == "response" && message.Attributes["type"] == "contacts" { wac.updateContacts(message.Content) @@ -432,6 +496,8 @@ func (wac *Conn) dispatch(msg interface{}) { } else if message.Description == "response" && message.Attributes["type"] == "chat" { wac.updateChats(message.Content) wac.handleChats(message.Content) + } else { + wac.handle(message) } case error: wac.handle(message) diff --git a/vendor/github.com/Rhymen/go-whatsapp/media.go b/vendor/github.com/Rhymen/go-whatsapp/media.go index f72e7922..2e2de282 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/media.go +++ b/vendor/github.com/Rhymen/go-whatsapp/media.go @@ -21,7 +21,7 @@ import ( func Download(url string, mediaKey []byte, appInfo MediaType, fileLength int) ([]byte, error) { if url == "" { - return nil, fmt.Errorf("no url present") + return nil, ErrNoURLPresent } file, mac, err := downloadMedia(url) if err != nil { @@ -39,7 +39,7 @@ func Download(url string, mediaKey []byte, appInfo MediaType, fileLength int) ([ return nil, err } if len(data) != fileLength { - return nil, fmt.Errorf("file length does not match. Expected: %v, got: %v", fileLength, len(data)) + return nil, ErrFileLengthMismatch } return data, nil } @@ -51,10 +51,10 @@ func validateMedia(iv []byte, file []byte, macKey []byte, mac []byte) error { return err } if n < 10 { - return fmt.Errorf("hash to short") + return ErrInvalidHashLength } if !hmac.Equal(h.Sum(nil)[:10], mac) { - return fmt.Errorf("invalid media hmac") + return ErrInvalidMediaHMAC } return nil } @@ -74,10 +74,16 @@ func downloadMedia(url string) (file []byte, mac []byte, err error) { } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { + if resp.StatusCode == http.StatusNotFound { + return nil, nil, ErrMediaDownloadFailedWith404 + } + if resp.StatusCode == http.StatusGone { + return nil, nil, ErrMediaDownloadFailedWith410 + } return nil, nil, fmt.Errorf("download failed with status code %d", resp.StatusCode) } if resp.ContentLength <= 10 { - return nil, nil, fmt.Errorf("file to short") + return nil, nil, ErrTooShortFile } data, err := ioutil.ReadAll(resp.Body) if err != nil { diff --git a/vendor/github.com/Rhymen/go-whatsapp/message.go b/vendor/github.com/Rhymen/go-whatsapp/message.go index 34fc02af..74e96425 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/message.go +++ b/vendor/github.com/Rhymen/go-whatsapp/message.go @@ -12,6 +12,7 @@ import ( "github.com/Rhymen/go-whatsapp/binary" "github.com/Rhymen/go-whatsapp/binary/proto" + "github.com/davecgh/go-spew/spew" ) type MediaType string @@ -23,6 +24,23 @@ const ( MediaDocument MediaType = "WhatsApp Document Keys" ) +func (wac *Conn) SendRaw(msg *proto.WebMessageInfo, output chan<- error) { + ch, err := wac.sendProto(msg) + if err != nil { + output <- fmt.Errorf("could not send proto: %w", err) + return + } + response := <-ch + resp := StatusResponse{RequestType: "message sending"} + if err = json.Unmarshal([]byte(response), &resp); err != nil { + output <- fmt.Errorf("error decoding sending response: %w", err) + } else if resp.Status != 200 { + output <- resp + } else { + output <- nil + } +} + func (wac *Conn) Send(msg interface{}) (string, error) { var msgProto *proto.WebMessageInfo @@ -76,21 +94,16 @@ func (wac *Conn) Send(msg interface{}) (string, error) { select { case response := <-ch: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "message sending"} if err = json.Unmarshal([]byte(response), &resp); err != nil { return "ERROR", fmt.Errorf("error decoding sending response: %v\n", err) + } else if resp.Status != 200 { + return "ERROR", resp } - if int(resp["status"].(float64)) != 200 { - return "ERROR", fmt.Errorf("message sending responded with %v", resp["status"]) - } - if int(resp["status"].(float64)) == 200 { - return getMessageInfo(msgProto).Id, nil - } + return getMessageInfo(msgProto).Id, nil case <-time.After(wac.msgTimeout): return "ERROR", fmt.Errorf("sending message timed out") } - - return "ERROR", nil } func (wac *Conn) sendProto(p *proto.WebMessageInfo) (<-chan string, error) { @@ -151,21 +164,16 @@ func (wac *Conn) DeleteMessage(remotejid, msgid string, fromMe bool) error { select { case response := <-ch: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "message deletion"} if err = json.Unmarshal([]byte(response), &resp); err != nil { return fmt.Errorf("error decoding deletion response: %v", err) + } else if resp.Status != 200 { + return resp } - if int(resp["status"].(float64)) != 200 { - return fmt.Errorf("message deletion responded with %v", resp["status"]) - } - if int(resp["status"].(float64)) == 200 { - return nil - } + return nil case <-time.After(wac.msgTimeout): return fmt.Errorf("deleting message timed out") } - - return nil } func (wac *Conn) deleteChatProto(remotejid, msgid string, fromMe bool) (<-chan string, error) { @@ -258,7 +266,7 @@ func getInfoProto(info *MessageInfo) *proto.WebMessageInfo { } info.FromMe = true - status := proto.WebMessageInfo_WEB_MESSAGE_INFO_STATUS(info.Status) + status := proto.WebMessageInfo_WebMessageInfoStatus(info.Status) return &proto.WebMessageInfo{ Key: &proto.MessageKey{ @@ -275,19 +283,20 @@ func getInfoProto(info *MessageInfo) *proto.WebMessageInfo { ContextInfo represents contextinfo of every message */ type ContextInfo struct { - QuotedMessageID string //StanzaId + QuotedMessageID string // StanzaId QuotedMessage *proto.Message Participant string IsForwarded bool + MentionedJID []string } func getMessageContext(msg *proto.ContextInfo) ContextInfo { - return ContextInfo{ - QuotedMessageID: msg.GetStanzaId(), //StanzaId + QuotedMessageID: msg.GetStanzaId(), // StanzaId QuotedMessage: msg.GetQuotedMessage(), Participant: msg.GetParticipant(), IsForwarded: msg.GetIsForwarded(), + MentionedJID: msg.GetMentionedJid(), } } @@ -325,7 +334,6 @@ func getTextMessage(msg *proto.WebMessageInfo) TextMessage { text.ContextInfo = getMessageContext(m.GetContextInfo()) } else { text.Text = msg.GetMessage().GetConversation() - } return text @@ -803,7 +811,6 @@ func getContactMessageProto(msg ContactMessage) *proto.WebMessageInfo { } func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} { - switch { case msg.GetMessage().GetAudioMessage() != nil: @@ -837,7 +844,8 @@ func ParseProtoMessage(msg *proto.WebMessageInfo) interface{} { return getContactMessage(msg) default: - //cannot match message + // cannot match message + spew.Dump(msg) return ErrMessageTypeNotImplemented } } @@ -873,15 +881,50 @@ func getNewContact(msg map[string]string) Contact { return contact } +// ReadMessage represents a chat that the user read on the WhatsApp mobile app. +type ReadMessage struct { + Jid string +} + +func getReadMessage(msg map[string]string) ReadMessage { + return ReadMessage{ + Jid: msg["jid"], + } +} + +// ReceivedMessage probably represents a message that the user read on the WhatsApp mobile app. +type ReceivedMessage struct { + Index string + Jid string + Owner bool + Participant string + Type string +} + +func getReceivedMessage(msg map[string]string) ReceivedMessage { + owner, _ := strconv.ParseBool(msg["owner"]) + // This field might not exist + participant, _ := msg["participant"] + return ReceivedMessage{ + Index: msg["index"], + Jid: msg["jid"], + Owner: owner, + Participant: participant, + Type: msg["type"], + } +} + func ParseNodeMessage(msg binary.Node) interface{} { switch msg.Description { case "battery": return getBatteryMessage(msg.Attributes) case "user": return getNewContact(msg.Attributes) + case "read": + return getReadMessage(msg.Attributes) + case "received": + return getReceivedMessage(msg.Attributes) default: - //cannot match message + return &msg } - - return nil } diff --git a/vendor/github.com/Rhymen/go-whatsapp/read.go b/vendor/github.com/Rhymen/go-whatsapp/read.go index 1621c0f5..4d91ebd1 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/read.go +++ b/vendor/github.com/Rhymen/go-whatsapp/read.go @@ -10,10 +10,10 @@ import ( "net/http" "strings" + "github.com/gorilla/websocket" + "github.com/Rhymen/go-whatsapp/binary" "github.com/Rhymen/go-whatsapp/crypto/cbc" - "github.com/gorilla/websocket" - "github.com/pkg/errors" ) func (wac *Conn) readPump() { @@ -42,12 +42,12 @@ func (wac *Conn) readPump() { } msg, err := ioutil.ReadAll(reader) if err != nil { - wac.handle(errors.Wrap(err, "error reading message from Reader")) + wac.handle(fmt.Errorf("error reading message from Reader: %w", err)) continue } err = wac.processReadData(msgType, msg) if err != nil { - wac.handle(errors.Wrap(err, "error processing data")) + wac.handle(fmt.Errorf("error processing data: %w", err)) } case <-wac.ws.close: return @@ -96,7 +96,7 @@ func (wac *Conn) processReadData(msgType int, msg []byte) error { } message, err := wac.decryptBinaryMessage([]byte(data[1])) if err != nil { - return errors.Wrap(err, "error decoding binary") + return fmt.Errorf("error decoding binary: %w", err) } wac.dispatch(message) } else { //RAW json status updates @@ -117,7 +117,9 @@ func (wac *Conn) decryptBinaryMessage(msg []byte) (*binary.Node, error) { if response.Status == http.StatusNotFound { return nil, ErrServerRespondedWith404 } - return nil, errors.New(fmt.Sprintf("server responded with %d", response.Status)) + return nil, fmt.Errorf("server responded with %d", response.Status) + } else { + return nil, ErrInvalidServerResponse } return nil, ErrInvalidServerResponse @@ -131,13 +133,13 @@ func (wac *Conn) decryptBinaryMessage(msg []byte) (*binary.Node, error) { // message decrypt d, err := cbc.Decrypt(wac.session.EncKey, nil, msg[32:]) if err != nil { - return nil, errors.Wrap(err, "decrypting message with AES-CBC failed") + return nil, fmt.Errorf("decrypting message with AES-CBC failed: %w", err) } // message unmarshal message, err := binary.Unmarshal(d) if err != nil { - return nil, errors.Wrap(err, "could not decode binary") + return nil, fmt.Errorf("could not decode binary: %w", err) } return message, nil diff --git a/vendor/github.com/Rhymen/go-whatsapp/session.go b/vendor/github.com/Rhymen/go-whatsapp/session.go index 8c829c4a..cc2cb2f7 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/session.go +++ b/vendor/github.com/Rhymen/go-whatsapp/session.go @@ -18,7 +18,7 @@ import ( ) //represents the WhatsAppWeb client version -var waVersion = []int{2, 2039, 9} +var waVersion = []int{2, 2100, 6} /* Session contains session individual information. To be able to resume the connection without scanning the qr code @@ -141,7 +141,7 @@ func CheckCurrentServerVersion() ([]int, error) { 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. */ -func (wac *Conn) SetClientName(long, short string, version string) error { +func (wac *Conn) SetClientName(long, short, version string) error { if wac.session != nil && (wac.session.EncKey != nil || wac.session.MacKey != nil) { return fmt.Errorf("cannot change client name after logging in") } @@ -157,6 +157,28 @@ func (wac *Conn) SetClientVersion(major int, minor int, patch int) { waVersion = []int{major, minor, patch} } +func (wac *Conn) adminInitRequest(clientId string) (string, time.Duration, error) { + login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName, wac.clientVersion}, clientId, true} + loginChan, err := wac.writeJson(login) + if err != nil { + return "", 0, fmt.Errorf("error writing login: %v\n", err) + } + + var r string + select { + case r = <-loginChan: + case <-time.After(wac.msgTimeout): + return "", 0, fmt.Errorf("login connection timed out") + } + + var resp map[string]interface{} + if err = json.Unmarshal([]byte(r), &resp); err != nil { + return "", 0, fmt.Errorf("error decoding login resp: %v\n", err) + } + + return resp["ref"].(string), time.Duration(resp["ttl"].(float64)) * time.Millisecond, nil +} + // GetClientVersion returns WhatsApp client version func (wac *Conn) GetClientVersion() []int { return waVersion @@ -186,6 +208,10 @@ github.com/Baozisoftware/qrcode-terminal-go Example login procedure: fmt.Printf("login successful, session: %v\n", session) */ func (wac *Conn) Login(qrChan chan<- string) (Session, error) { + return wac.LoginWithRetry(qrChan, 0) +} + +func (wac *Conn) LoginWithRetry(qrChan chan<- string, maxRetries int) (Session, error) { session := Session{} //Makes sure that only a single Login or Restore can happen at the same time if !atomic.CompareAndSwapUint32(&wac.sessionLock, 0, 1) { @@ -213,30 +239,6 @@ func (wac *Conn) Login(qrChan chan<- string) (Session, error) { } session.ClientId = base64.StdEncoding.EncodeToString(clientId) - login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName, wac.clientVersion}, session.ClientId, true} - loginChan, err := wac.writeJson(login) - if err != nil { - return session, fmt.Errorf("error writing login: %v\n", err) - } - - var r string - select { - case r = <-loginChan: - case <-time.After(wac.msgTimeout): - return session, fmt.Errorf("login connection timed out") - } - - var resp map[string]interface{} - if err = json.Unmarshal([]byte(r), &resp); err != nil { - return session, fmt.Errorf("error decoding login resp: %v\n", err) - } - - var ref string - if rref, ok := resp["ref"].(string); ok { - ref = rref - } else { - return session, fmt.Errorf("error decoding login resp: invalid resp['ref']\n") - } priv, pub, err := curve25519.GenerateKey() if err != nil { @@ -249,18 +251,35 @@ func (wac *Conn) Login(qrChan chan<- string) (Session, error) { wac.listener.m["s1"] = s1 wac.listener.Unlock() + ref, ttl, err := wac.adminInitRequest(session.ClientId) + if err != nil { + return session, err + } qrChan <- fmt.Sprintf("%v,%v,%v", ref, base64.StdEncoding.EncodeToString(pub[:]), session.ClientId) + wac.loginSessionLock.Lock() + defer wac.loginSessionLock.Unlock() var resp2 []interface{} - select { - case r1 := <-s1: - wac.loginSessionLock.Lock() - defer wac.loginSessionLock.Unlock() - if err := json.Unmarshal([]byte(r1), &resp2); err != nil { - return session, fmt.Errorf("error decoding qr code resp: %v", err) +For: + for { + select { + case r1 := <-s1: + if err := json.Unmarshal([]byte(r1), &resp2); err != nil { + return session, fmt.Errorf("error decoding qr code resp: %v", err) + } + break For + case <-time.After(ttl): + maxRetries-- + if maxRetries < 0 { + _, _ = wac.Disconnect() + return session, ErrLoginTimedOut + } + ref, ttl, err = wac.adminInitRequest(session.ClientId) + if err != nil { + return session, err + } + qrChan <- fmt.Sprintf("%v,%v,%v", ref, base64.StdEncoding.EncodeToString(pub[:]), session.ClientId) } - case <-time.After(time.Duration(resp["ttl"].(float64)) * time.Millisecond): - return session, fmt.Errorf("qr code scan timed out") } info := resp2[1].(map[string]interface{}) @@ -389,14 +408,12 @@ func (wac *Conn) Restore() error { select { case r := <-initChan: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "init"} if err = json.Unmarshal([]byte(r), &resp); err != nil { return fmt.Errorf("error decoding login connResp: %v\n", err) - } - - if int(resp["status"].(float64)) != 200 { + } else if resp.Status != 200 { wac.timeTag = "" - return fmt.Errorf("init responded with %d", resp["status"]) + return resp } case <-time.After(wac.msgTimeout): wac.timeTag = "" @@ -416,12 +433,11 @@ func (wac *Conn) Restore() error { //check for an error message select { case r := <-loginChan: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "admin login"} if err = json.Unmarshal([]byte(r), &resp); err != nil { return fmt.Errorf("error decoding login connResp: %v\n", err) - } - if int(resp["status"].(float64)) != 200 { - return fmt.Errorf("admin login responded with %d", int(resp["status"].(float64))) + } else if resp.Status != 200 { + return fmt.Errorf("admin login errored: %w", wac.getAdminLoginResponseError(resp)) } default: // not even an error message – assume timeout @@ -456,15 +472,13 @@ func (wac *Conn) Restore() error { //check for login 200 --> login success select { case r := <-loginChan: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "admin login"} if err = json.Unmarshal([]byte(r), &resp); err != nil { wac.timeTag = "" return fmt.Errorf("error decoding login connResp: %v\n", err) - } - - if int(resp["status"].(float64)) != 200 { + } else if resp.Status != 200 { wac.timeTag = "" - return fmt.Errorf("admin login responded with %d", resp["status"]) + return fmt.Errorf("admin login errored: %w", wac.getAdminLoginResponseError(resp)) } case <-time.After(wac.msgTimeout): wac.timeTag = "" @@ -484,6 +498,22 @@ func (wac *Conn) Restore() error { return nil } +func (wac *Conn) getAdminLoginResponseError(resp StatusResponse) error { + switch resp.Status { + case 400: + return ErrBadRequest + case 401: + return ErrUnpaired + case 403: + return fmt.Errorf("%w - tos: %d", ErrAccessDenied, resp.TermsOfService) + case 405: + return ErrLoggedIn + case 409: + return ErrReplaced + } + return fmt.Errorf("%d (unknown error)", status) +} + func (wac *Conn) resolveChallenge(challenge string) error { decoded, err := base64.StdEncoding.DecodeString(challenge) if err != nil { @@ -501,12 +531,11 @@ func (wac *Conn) resolveChallenge(challenge string) error { select { case r := <-challengeChan: - var resp map[string]interface{} + resp := StatusResponse{RequestType: "login challenge"} if err := json.Unmarshal([]byte(r), &resp); err != nil { return fmt.Errorf("error decoding login resp: %v\n", err) - } - if int(resp["status"].(float64)) != 200 { - return fmt.Errorf("challenge responded with %d\n", resp["status"]) + } else if resp.Status != 200 { + return resp } case <-time.After(wac.msgTimeout): return fmt.Errorf("connection timed out") diff --git a/vendor/github.com/Rhymen/go-whatsapp/write.go b/vendor/github.com/Rhymen/go-whatsapp/write.go index 74f43c42..90b543e2 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/write.go +++ b/vendor/github.com/Rhymen/go-whatsapp/write.go @@ -6,13 +6,12 @@ import ( "encoding/json" "fmt" "strconv" - "time" + "github.com/gorilla/websocket" + "github.com/Rhymen/go-whatsapp/binary" "github.com/Rhymen/go-whatsapp/crypto/cbc" - "github.com/gorilla/websocket" - "github.com/pkg/errors" ) //writeJson enqueues a json message into the writeChan @@ -54,7 +53,7 @@ func (wac *Conn) writeBinary(node binary.Node, metric metric, flag flag, message data, err := wac.encryptBinaryMessage(node) if err != nil { - return nil, errors.Wrap(err, "encryptBinaryMessage(node) failed") + return nil, fmt.Errorf("encryptBinaryMessage(node) failed: %w", err) } bytes := []byte(messageTag + ",") @@ -63,7 +62,7 @@ func (wac *Conn) writeBinary(node binary.Node, metric metric, flag flag, message ch, err := wac.write(websocket.BinaryMessage, messageTag, bytes) if err != nil { - return nil, errors.Wrap(err, "failed to write message") + return nil, fmt.Errorf("failed to write message: %w", err) } wac.msgCount++ @@ -74,14 +73,14 @@ func (wac *Conn) sendKeepAlive() error { bytes := []byte("?,,") respChan, err := wac.write(websocket.TextMessage, "!", bytes) if err != nil { - return errors.Wrap(err, "error sending keepAlive") + return fmt.Errorf("error sending keepAlive: %w", err) } select { case resp := <-respChan: msecs, err := strconv.ParseInt(resp, 10, 64) if err != nil { - return errors.Wrap(err, "Error converting time string to uint") + return fmt.Errorf("Error converting time string to uint: %w", err) } wac.ServerLastSeen = time.Unix(msecs/1000, (msecs%1000)*int64(time.Millisecond)) @@ -96,29 +95,30 @@ func (wac *Conn) sendKeepAlive() error { 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) { +func (wac *Conn) sendAdminTest() error { data := []interface{}{"admin", "test"} r, err := wac.writeJson(data) if err != nil { - return false, errors.Wrap(err, "error sending admin test") + return fmt.Errorf("error sending admin test: %w", err) } var response []interface{} + var resp string select { - case resp := <-r: + case resp = <-r: if err := json.Unmarshal([]byte(resp), &response); err != nil { - return false, fmt.Errorf("error decoding response message: %v\n", err) + return fmt.Errorf("error decoding response message: %v\n", err) } case <-time.After(wac.msgTimeout): - return false, ErrConnectionTimeout + return ErrConnectionTimeout } if len(response) == 2 && response[0].(string) == "Pong" && response[1].(bool) == true { - return true, nil + return nil } else { - return false, nil + return fmt.Errorf("unexpected ping response: %s", resp) } } @@ -145,7 +145,7 @@ func (wac *Conn) write(messageType int, answerMessageTag string, data []byte) (< delete(wac.listener.m, answerMessageTag) wac.listener.Unlock() } - return nil, errors.Wrap(err, "error writing to websocket") + return nil, fmt.Errorf("error writing to websocket: %w", err) } return ch, nil } @@ -153,12 +153,12 @@ func (wac *Conn) write(messageType int, answerMessageTag string, data []byte) (< func (wac *Conn) encryptBinaryMessage(node binary.Node) (data []byte, err error) { b, err := binary.Marshal(node) if err != nil { - return nil, errors.Wrap(err, "binary node marshal failed") + return nil, fmt.Errorf("binary node marshal failed: %w", err) } cipher, err := cbc.Encrypt(wac.session.EncKey, nil, b) if err != nil { - return nil, errors.Wrap(err, "encrypt failed") + return nil, fmt.Errorf("encrypt failed: %w", err) } h := hmac.New(sha256.New, wac.session.MacKey) diff --git a/vendor/github.com/skip2/go-qrcode/README.md b/vendor/github.com/skip2/go-qrcode/README.md index 8281ed3e..0a800b72 100644 --- a/vendor/github.com/skip2/go-qrcode/README.md +++ b/vendor/github.com/skip2/go-qrcode/README.md @@ -18,26 +18,20 @@ A command-line tool `qrcode` will be built into `$GOPATH/bin/`. import qrcode "github.com/skip2/go-qrcode" -- **Create a PNG image:** +- **Create a 256x256 PNG image:** var png []byte png, err := qrcode.Encode("https://example.org", qrcode.Medium, 256) -- **Create a PNG image and write to a file:** +- **Create a 256x256 PNG image and write to a file:** err := qrcode.WriteFile("https://example.org", qrcode.Medium, 256, "qr.png") -- **Create a PNG image with custom colors and write to file:** +- **Create a 256x256 PNG image with custom colors and write to file:** err := qrcode.WriteColorFile("https://example.org", qrcode.Medium, 256, color.Black, color.White, "qr.png") -All examples use the qrcode.Medium error Recovery Level and create a fixed -256x256px size QR Code. The last function creates a white on black instead of black -on white QR Code. - -The maximum capacity of a QR Code varies according to the content encoded and -the error recovery level. The maximum capacity is 2,953 bytes, 4,296 -alphanumeric characters, 7,089 numeric digits, or a combination of these. +All examples use the qrcode.Medium error Recovery Level and create a fixed 256x256px size QR Code. The last function creates a white on black instead of black on white QR Code. ## Documentation @@ -56,10 +50,13 @@ qrcode -- QR Code encoder in Go https://github.com/skip2/go-qrcode Flags: + -d disable QR Code border + -i invert black and white -o string - out PNG file prefix, empty for stdout + out PNG file prefix, empty for stdout -s int - image size (pixel) (default 256) + image size (pixel) (default 256) + -t print as text-art on stdout Usage: 1. Arguments except for flags are joined by " " and used to generate QR code. @@ -71,7 +68,16 @@ Usage: 2. Save to file if "display" not available: qrcode "homepage: https://github.com/skip2/go-qrcode" > out.png + ``` +## Maximum capacity +The maximum capacity of a QR Code varies according to the content encoded and the error recovery level. The maximum capacity is 2,953 bytes, 4,296 alphanumeric characters, 7,089 numeric digits, or a combination of these. + +## Borderless QR Codes + +To aid QR Code reading software, QR codes have a built in whitespace border. + +If you know what you're doing, and don't want a border, see https://gist.github.com/skip2/7e3d8a82f5317df9be437f8ec8ec0b7d for how to do it. It's still recommended you include a border manually. ## Links diff --git a/vendor/github.com/skip2/go-qrcode/encoder.go b/vendor/github.com/skip2/go-qrcode/encoder.go index 713378c0..6a809cfe 100644 --- a/vendor/github.com/skip2/go-qrcode/encoder.go +++ b/vendor/github.com/skip2/go-qrcode/encoder.go @@ -172,7 +172,7 @@ func (d *dataEncoder) encode(data []byte) (*bitset.Bitset, error) { } // Classify data into unoptimised segments. - d.classifyDataModes() + highestRequiredMode := d.classifyDataModes() // Optimise segments. err := d.optimiseDataModes() @@ -180,6 +180,25 @@ func (d *dataEncoder) encode(data []byte) (*bitset.Bitset, error) { return nil, err } + // Check if a single byte encoded segment would be more efficient. + optimizedLength := 0 + for _, s := range d.optimised { + length, err := d.encodedLength(s.dataMode, len(s.data)) + if err != nil { + return nil, err + } + optimizedLength += length + } + + singleByteSegmentLength, err := d.encodedLength(highestRequiredMode, len(d.data)) + if err != nil { + return nil, err + } + + if singleByteSegmentLength <= optimizedLength { + d.optimised = []segment{segment{dataMode: highestRequiredMode, data: d.data}} + } + // Encode data. encoded := bitset.New() for _, s := range d.optimised { @@ -192,9 +211,15 @@ func (d *dataEncoder) encode(data []byte) (*bitset.Bitset, error) { // classifyDataModes classifies the raw data into unoptimised segments. // e.g. "123ZZ#!#!" => // [numeric, 3, "123"] [alphanumeric, 2, "ZZ"] [byte, 4, "#!#!"]. -func (d *dataEncoder) classifyDataModes() { +// +// Returns the highest data mode needed to encode the data. e.g. for a mixed +// numeric/alphanumeric input, the highest is alphanumeric. +// +// dataModeNone < dataModeNumeric < dataModeAlphanumeric < dataModeByte +func (d *dataEncoder) classifyDataModes() dataMode { var start int mode := dataModeNone + highestRequiredMode := mode for i, v := range d.data { newMode := dataModeNone @@ -217,9 +242,15 @@ func (d *dataEncoder) classifyDataModes() { mode = newMode } + + if newMode > highestRequiredMode { + highestRequiredMode = newMode + } } d.actual = append(d.actual, segment{dataMode: mode, data: d.data[start:len(d.data)]}) + + return highestRequiredMode } // optimiseDataModes optimises the list of segments to reduce the overall output diff --git a/vendor/github.com/skip2/go-qrcode/go.mod b/vendor/github.com/skip2/go-qrcode/go.mod new file mode 100644 index 00000000..a915813d --- /dev/null +++ b/vendor/github.com/skip2/go-qrcode/go.mod @@ -0,0 +1,3 @@ +module github.com/skip2/go-qrcode + +go 1.13 diff --git a/vendor/github.com/skip2/go-qrcode/qrcode.go b/vendor/github.com/skip2/go-qrcode/qrcode.go index 9428d863..d0541bcb 100644 --- a/vendor/github.com/skip2/go-qrcode/qrcode.go +++ b/vendor/github.com/skip2/go-qrcode/qrcode.go @@ -51,6 +51,7 @@ package qrcode import ( "bytes" "errors" + "fmt" "image" "image/color" "image/png" @@ -135,6 +136,9 @@ type QRCode struct { ForegroundColor color.Color BackgroundColor color.Color + // Disable the QR Code border. + DisableBorder bool + encoder *dataEncoder version qrCodeVersion @@ -193,12 +197,16 @@ func New(content string, level RecoveryLevel) (*QRCode, error) { version: *chosenVersion, } - q.encode(chosenVersion.numTerminatorBitsRequired(encoded.Len())) - return q, nil } -func newWithForcedVersion(content string, version int, level RecoveryLevel) (*QRCode, error) { +// NewWithForcedVersion constructs a QRCode of a specific version. +// +// var q *qrcode.QRCode +// q, err := qrcode.NewWithForcedVersion("my content", 25, qrcode.Medium) +// +// An error occurs in case of invalid version. +func NewWithForcedVersion(content string, version int, level RecoveryLevel) (*QRCode, error) { var encoder *dataEncoder switch { @@ -209,7 +217,7 @@ func newWithForcedVersion(content string, version int, level RecoveryLevel) (*QR case version >= 27 && version <= 40: encoder = newDataEncoder(dataEncoderType27To40) default: - log.Fatalf("Invalid version %d (expected 1-40 inclusive)", version) + return nil, fmt.Errorf("Invalid version %d (expected 1-40 inclusive)", version) } var encoded *bitset.Bitset @@ -225,6 +233,13 @@ func newWithForcedVersion(content string, version int, level RecoveryLevel) (*QR return nil, errors.New("cannot find QR Code version") } + if encoded.Len() > chosenVersion.numDataBits() { + return nil, fmt.Errorf("Cannot encode QR code: content too large for fixed size QR Code version %d (encoded length is %d bits, maximum length is %d bits)", + version, + encoded.Len(), + chosenVersion.numDataBits()) + } + q := &QRCode{ Content: content, @@ -239,8 +254,6 @@ func newWithForcedVersion(content string, version int, level RecoveryLevel) (*QR version: *chosenVersion, } - q.encode(chosenVersion.numTerminatorBitsRequired(encoded.Len())) - return q, nil } @@ -251,6 +264,9 @@ func newWithForcedVersion(content string, version int, level RecoveryLevel) (*QR // The bitmap includes the required "quiet zone" around the QR Code to aid // decoding. func (q *QRCode) Bitmap() [][]bool { + // Build QR code. + q.encode() + return q.symbol.bitmap() } @@ -268,6 +284,9 @@ func (q *QRCode) Bitmap() [][]bool { // negative number to increase the scale of the image. e.g. a size of -5 causes // each module (QR Code "pixel") to be 5px in size. func (q *QRCode) Image(size int) image.Image { + // Build QR code. + q.encode() + // Minimum pixels (both width and height) required. realSize := q.symbol.size @@ -282,12 +301,7 @@ func (q *QRCode) Image(size int) image.Image { size = realSize } - // Size of each module drawn. - pixelsPerModule := size / realSize - - // Center the symbol within the image. - offset := (size - realSize*pixelsPerModule) / 2 - + // Output image. rect := image.Rectangle{Min: image.Point{0, 0}, Max: image.Point{size, size}} // Saves a few bytes to have them in this order @@ -295,18 +309,21 @@ func (q *QRCode) Image(size int) image.Image { img := image.NewPaletted(rect, p) fgClr := uint8(img.Palette.Index(q.ForegroundColor)) + // QR code bitmap. bitmap := q.symbol.bitmap() - for y, row := range bitmap { - for x, v := range row { + + // Map each image pixel to the nearest QR code module. + modulesPerPixel := float64(realSize) / float64(size) + for y := 0; y < size; y++ { + y2 := int(float64(y) * modulesPerPixel) + for x := 0; x < size; x++ { + x2 := int(float64(x) * modulesPerPixel) + + v := bitmap[y2][x2] + if v { - startX := x*pixelsPerModule + offset - startY := y*pixelsPerModule + offset - for i := startX; i < startX+pixelsPerModule; i++ { - for j := startY; j < startY+pixelsPerModule; j++ { - pos := img.PixOffset(i, j) - img.Pix[pos] = fgClr - } - } + pos := img.PixOffset(x, y) + img.Pix[pos] = fgClr } } } @@ -371,7 +388,9 @@ func (q *QRCode) WriteFile(size int, filename string) error { // encode completes the steps required to encode the QR Code. These include // adding the terminator bits and padding, splitting the data into blocks and // applying the error correction, and selecting the best data mask. -func (q *QRCode) encode(numTerminatorBits int) { +func (q *QRCode) encode() { + numTerminatorBits := q.version.numTerminatorBitsRequired(q.data.Len()) + q.addTerminatorBits(numTerminatorBits) q.addPadding() @@ -384,7 +403,7 @@ func (q *QRCode) encode(numTerminatorBits int) { var s *symbol var err error - s, err = buildRegularSymbol(q.version, mask, encoded) + s, err = buildRegularSymbol(q.version, mask, encoded, !q.DisableBorder) if err != nil { log.Panic(err.Error()) diff --git a/vendor/github.com/skip2/go-qrcode/regular_symbol.go b/vendor/github.com/skip2/go-qrcode/regular_symbol.go index 134be18e..51eb148d 100644 --- a/vendor/github.com/skip2/go-qrcode/regular_symbol.go +++ b/vendor/github.com/skip2/go-qrcode/regular_symbol.go @@ -105,13 +105,19 @@ var ( ) func buildRegularSymbol(version qrCodeVersion, mask int, - data *bitset.Bitset) (*symbol, error) { + data *bitset.Bitset, includeQuietZone bool) (*symbol, error) { + + quietZoneSize := 0 + if includeQuietZone { + quietZoneSize = version.quietZoneSize() + } + m := ®ularSymbol{ version: version, mask: mask, data: data, - symbol: newSymbol(version.symbolSize(), version.quietZoneSize()), + symbol: newSymbol(version.symbolSize(), quietZoneSize), size: version.symbolSize(), } diff --git a/vendor/modules.txt b/vendor/modules.txt index 6c4ad37d..fdeccc20 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -18,7 +18,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.1.2-0.20201226125722-8029c28f5c5a +# github.com/Rhymen/go-whatsapp v0.1.2-0.20201226125722-8029c28f5c5a => github.com/tulir/go-whatsapp v0.3.16 ## explicit github.com/Rhymen/go-whatsapp github.com/Rhymen/go-whatsapp/binary @@ -231,7 +231,8 @@ github.com/shazow/ssh-chat/sshd/terminal # github.com/sirupsen/logrus v1.7.0 ## explicit github.com/sirupsen/logrus -# github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 +# github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e +## explicit github.com/skip2/go-qrcode github.com/skip2/go-qrcode/bitset github.com/skip2/go-qrcode/reedsolomon @@ -431,3 +432,4 @@ layeh.com/gumble/gumble layeh.com/gumble/gumble/MumbleProto layeh.com/gumble/gumble/varint layeh.com/gumble/gumbleutil +# github.com/Rhymen/go-whatsapp => github.com/tulir/go-whatsapp v0.3.16