From 8950575bfbc97ec80b8648f732c02fad63a6d055 Mon Sep 17 00:00:00 2001 From: Wim Date: Thu, 9 Apr 2020 22:30:08 +0200 Subject: Update Rhymen/go-whatsapp vendor and whatsapp version (#1078) --- bridge/whatsapp/whatsapp.go | 2 +- go.mod | 2 +- go.sum | 4 +- .../Rhymen/go-whatsapp/binary/proto/def.pb.go | 1481 +++++++++++++------- .../Rhymen/go-whatsapp/binary/proto/def.proto | 78 +- vendor/github.com/Rhymen/go-whatsapp/go.mod | 2 +- vendor/github.com/Rhymen/go-whatsapp/go.sum | 3 +- vendor/github.com/Rhymen/go-whatsapp/media.go | 112 +- vendor/github.com/Rhymen/go-whatsapp/read.go | 6 +- vendor/github.com/Rhymen/go-whatsapp/session.go | 8 +- vendor/modules.txt | 2 +- 11 files changed, 1158 insertions(+), 542 deletions(-) diff --git a/bridge/whatsapp/whatsapp.go b/bridge/whatsapp/whatsapp.go index 8dfcb9cc..48b140bb 100644 --- a/bridge/whatsapp/whatsapp.go +++ b/bridge/whatsapp/whatsapp.go @@ -67,7 +67,7 @@ func (b *Bwhatsapp) Connect() error { // https://github.com/Rhymen/go-whatsapp#creating-a-connection b.Log.Debugln("Connecting to WhatsApp..") conn, err := whatsapp.NewConn(20 * time.Second) - conn.SetClientVersion(0, 4, 1307) + conn.SetClientVersion(0, 4, 2080) if err != nil { return errors.New("failed to connect to WhatsApp: " + err.Error()) } diff --git a/go.mod b/go.mod index 184514b3..13385bcd 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ require ( github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f github.com/Jeffail/gabs v1.1.1 // indirect github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 - github.com/Rhymen/go-whatsapp v0.1.0 + github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f github.com/d5/tengo/v2 v2.1.2 github.com/dfordsoft/golib v0.0.0-20180902042739-76ee6ab99bec github.com/fsnotify/fsnotify v1.4.7 diff --git a/go.sum b/go.sum index 3d16f1fc..229b9f3b 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,8 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 h1:TO7d4rocnNFng6ZQrPe7U6WqHtK5eHEMrgrnnM/72IQ= github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0/go.mod h1:HuVM+sZFzumUdKPWiz+IlCMb4RdsKdT3T+nQBKL+sYg= github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA= -github.com/Rhymen/go-whatsapp v0.1.0 h1:XTXhFIQ/fx9jKObUnUX2Q+nh58EyeHNhX7DniE8xeuA= -github.com/Rhymen/go-whatsapp v0.1.0/go.mod h1:xJSy+okeRjKkQEH/lEYrnekXB3PG33fqL0I6ncAkV50= +github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f h1:uclEol7RbpElhXXmwu38PDeGcgMXNU2vh5DWwzlg7xI= +github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f/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= 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 9c4d99de..05e6b259 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 @@ -201,18 +201,24 @@ func (VideoMessage_VIDEO_MESSAGE_ATTRIBUTION) EnumDescriptor() ([]byte, []int) { type ProtocolMessage_PROTOCOL_MESSAGE_TYPE int32 const ( - ProtocolMessage_REVOKE ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 0 - ProtocolMessage_EPHEMERAL_SETTING ProtocolMessage_PROTOCOL_MESSAGE_TYPE = 3 + 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 ) var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_name = map[int32]string{ 0: "REVOKE", 3: "EPHEMERAL_SETTING", + 4: "EPHEMERAL_SYNC_RESPONSE", + 5: "HISTORY_SYNC_NOTIFICATION", } var ProtocolMessage_PROTOCOL_MESSAGE_TYPE_value = map[string]int32{ - "REVOKE": 0, - "EPHEMERAL_SETTING": 3, + "REVOKE": 0, + "EPHEMERAL_SETTING": 3, + "EPHEMERAL_SYNC_RESPONSE": 4, + "HISTORY_SYNC_NOTIFICATION": 5, } func (x ProtocolMessage_PROTOCOL_MESSAGE_TYPE) Enum() *ProtocolMessage_PROTOCOL_MESSAGE_TYPE { @@ -238,6 +244,52 @@ func (ProtocolMessage_PROTOCOL_MESSAGE_TYPE) EnumDescriptor() ([]byte, []int) { return fileDescriptor_76fb0470a3b910d8, []int{23, 0} } +type HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE 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 +) + +var HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_name = map[int32]string{ + 0: "INITIAL_BOOTSTRAP", + 1: "INITIAL_STATUS_V3", + 2: "FULL", + 3: "RECENT", +} + +var HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_value = map[string]int32{ + "INITIAL_BOOTSTRAP": 0, + "INITIAL_STATUS_V3": 1, + "FULL": 2, + "RECENT": 3, +} + +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 (x HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) String() string { + return proto.EnumName(HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE_name, int32(x)) +} + +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") + if err != nil { + return err + } + *x = HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE(value) + return nil +} + +func (HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{24, 0} +} + type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE int32 const ( @@ -290,7 +342,7 @@ func (x *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) UnmarshalJS } func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_DAYOFWEEKTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{26, 0} + return fileDescriptor_76fb0470a3b910d8, []int{27, 0} } type HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE int32 @@ -330,7 +382,7 @@ func (x *HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) UnmarshalJSO } func (HSMDateTimeComponent_HSM_DATE_TIME_COMPONENT_CALENDARTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{26, 1} + return fileDescriptor_76fb0470a3b910d8, []int{27, 1} } type WebFeatures_WEB_FEATURES_FLAG int32 @@ -376,7 +428,47 @@ func (x *WebFeatures_WEB_FEATURES_FLAG) UnmarshalJSON(data []byte) error { } func (WebFeatures_WEB_FEATURES_FLAG) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{48, 0} + return fileDescriptor_76fb0470a3b910d8, []int{50, 0} +} + +type PaymentInfo_PAYMENT_INFO_CURRENCY int32 + +const ( + PaymentInfo_UNKNOWN_CURRENCY PaymentInfo_PAYMENT_INFO_CURRENCY = 0 + PaymentInfo_INR PaymentInfo_PAYMENT_INFO_CURRENCY = 1 +) + +var PaymentInfo_PAYMENT_INFO_CURRENCY_name = map[int32]string{ + 0: "UNKNOWN_CURRENCY", + 1: "INR", +} + +var PaymentInfo_PAYMENT_INFO_CURRENCY_value = map[string]int32{ + "UNKNOWN_CURRENCY": 0, + "INR": 1, +} + +func (x PaymentInfo_PAYMENT_INFO_CURRENCY) Enum() *PaymentInfo_PAYMENT_INFO_CURRENCY { + p := new(PaymentInfo_PAYMENT_INFO_CURRENCY) + *p = x + return p +} + +func (x PaymentInfo_PAYMENT_INFO_CURRENCY) String() string { + return proto.EnumName(PaymentInfo_PAYMENT_INFO_CURRENCY_name, int32(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") + if err != nil { + return err + } + *x = PaymentInfo_PAYMENT_INFO_CURRENCY(value) + return nil +} + +func (PaymentInfo_PAYMENT_INFO_CURRENCY) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{54, 0} } type PaymentInfo_PAYMENT_INFO_STATUS int32 @@ -446,7 +538,125 @@ func (x *PaymentInfo_PAYMENT_INFO_STATUS) UnmarshalJSON(data []byte) error { } func (PaymentInfo_PAYMENT_INFO_STATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{52, 0} + return fileDescriptor_76fb0470a3b910d8, []int{54, 1} +} + +type PaymentInfo_PAYMENT_INFO_TXNSTATUS 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 +) + +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) + *p = x + return p +} + +func (x PaymentInfo_PAYMENT_INFO_TXNSTATUS) String() string { + return proto.EnumName(PaymentInfo_PAYMENT_INFO_TXNSTATUS_name, int32(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") + if err != nil { + return err + } + *x = PaymentInfo_PAYMENT_INFO_TXNSTATUS(value) + return nil +} + +func (PaymentInfo_PAYMENT_INFO_TXNSTATUS) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_76fb0470a3b910d8, []int{54, 2} } type WebMessageInfo_WEB_MESSAGE_INFO_STATUS int32 @@ -498,7 +708,7 @@ func (x *WebMessageInfo_WEB_MESSAGE_INFO_STATUS) UnmarshalJSON(data []byte) erro } func (WebMessageInfo_WEB_MESSAGE_INFO_STATUS) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{53, 0} + return fileDescriptor_76fb0470a3b910d8, []int{55, 0} } type WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE int32 @@ -751,7 +961,7 @@ func (x *WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) UnmarshalJSON(data []byte) er } func (WebMessageInfo_WEB_MESSAGE_INFO_STUBTYPE) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{53, 1} + return fileDescriptor_76fb0470a3b910d8, []int{55, 1} } type HydratedQuickReplyButton struct { @@ -1298,6 +1508,8 @@ func (m *Location) GetName() string { } 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:"-"` @@ -1330,6 +1542,20 @@ func (m *Point) XXX_DiscardUnknown() { var xxx_messageInfo_Point proto.InternalMessageInfo +func (m *Point) GetXDeprecated() int32 { + if m != nil && m.XDeprecated != nil { + return *m.XDeprecated + } + return 0 +} + +func (m *Point) GetYDeprecated() int32 { + if m != nil && m.YDeprecated != nil { + return *m.YDeprecated + } + return 0 +} + func (m *Point) GetX() float64 { if m != nil && m.X != nil { return *m.X @@ -1481,22 +1707,23 @@ func (m *AdReplyInfo) GetCaption() string { } 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"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + 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{} } @@ -1615,6 +1842,13 @@ func (m *ContextInfo) GetExpiration() uint32 { return 0 } +func (m *ContextInfo) GetEphemeralSettingTimestamp() int64 { + if m != nil && m.EphemeralSettingTimestamp != nil { + return *m.EphemeralSettingTimestamp + } + return 0 +} + 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"` @@ -1917,16 +2151,21 @@ func (m *ContactMessage) GetContextInfo() *ContextInfo { } type LocationMessage struct { - DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"` - DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"` - Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Address *string `protobuf:"bytes,4,opt,name=address" json:"address,omitempty"` - Url *string `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"` - JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"` - ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + 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 (m *LocationMessage) Reset() { *m = LocationMessage{} } @@ -1989,6 +2228,41 @@ func (m *LocationMessage) GetUrl() string { return "" } +func (m *LocationMessage) GetIsLive() bool { + if m != nil && m.IsLive != nil { + return *m.IsLive + } + return false +} + +func (m *LocationMessage) GetAccuracyInMeters() uint32 { + if m != nil && m.AccuracyInMeters != nil { + return *m.AccuracyInMeters + } + return 0 +} + +func (m *LocationMessage) GetSpeedInMps() float32 { + if m != nil && m.SpeedInMps != nil { + return *m.SpeedInMps + } + return 0 +} + +func (m *LocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 { + if m != nil && m.DegreesClockwiseFromMagneticNorth != nil { + return *m.DegreesClockwiseFromMagneticNorth + } + return 0 +} + +func (m *LocationMessage) GetComment() string { + if m != nil && m.Comment != nil { + return *m.Comment + } + return "" +} + func (m *LocationMessage) GetJpegThumbnail() []byte { if m != nil { return m.JpegThumbnail @@ -2654,12 +2928,14 @@ func (m *Chat) GetId() string { } 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"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + 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{} } @@ -2708,6 +2984,107 @@ func (m *ProtocolMessage) GetEphemeralExpiration() uint32 { return 0 } +func (m *ProtocolMessage) GetEphemeralSettingTimestamp() int64 { + if m != nil && m.EphemeralSettingTimestamp != nil { + return *m.EphemeralSettingTimestamp + } + return 0 +} + +func (m *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification { + if m != nil { + return m.HistorySyncNotification + } + return nil +} + +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 (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) +} + +var xxx_messageInfo_HistorySyncNotification proto.InternalMessageInfo + +func (m *HistorySyncNotification) GetFileSha256() []byte { + if m != nil { + return m.FileSha256 + } + return nil +} + +func (m *HistorySyncNotification) GetFileLength() uint64 { + if m != nil && m.FileLength != nil { + return *m.FileLength + } + return 0 +} + +func (m *HistorySyncNotification) GetMediaKey() []byte { + if m != nil { + return m.MediaKey + } + return nil +} + +func (m *HistorySyncNotification) GetFileEncSha256() []byte { + if m != nil { + return m.FileEncSha256 + } + return nil +} + +func (m *HistorySyncNotification) GetDirectPath() string { + if m != nil && m.DirectPath != nil { + return *m.DirectPath + } + return "" +} + +func (m *HistorySyncNotification) GetSyncType() HistorySyncNotification_HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE { + if m != nil && m.SyncType != nil { + return *m.SyncType + } + return HistorySyncNotification_INITIAL_BOOTSTRAP +} + +func (m *HistorySyncNotification) GetChunkOrder() uint32 { + if m != nil && m.ChunkOrder != nil { + return *m.ChunkOrder + } + 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"` @@ -2721,7 +3098,7 @@ func (m *ContactsArrayMessage) Reset() { *m = ContactsArrayMessage{} } func (m *ContactsArrayMessage) String() string { return proto.CompactTextString(m) } func (*ContactsArrayMessage) ProtoMessage() {} func (*ContactsArrayMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{24} + return fileDescriptor_76fb0470a3b910d8, []int{25} } func (m *ContactsArrayMessage) XXX_Unmarshal(b []byte) error { @@ -2775,7 +3152,7 @@ func (m *HSMCurrency) Reset() { *m = HSMCurrency{} } func (m *HSMCurrency) String() string { return proto.CompactTextString(m) } func (*HSMCurrency) ProtoMessage() {} func (*HSMCurrency) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{25} + return fileDescriptor_76fb0470a3b910d8, []int{26} } func (m *HSMCurrency) XXX_Unmarshal(b []byte) error { @@ -2827,7 +3204,7 @@ func (m *HSMDateTimeComponent) Reset() { *m = HSMDateTimeComponent{} } func (m *HSMDateTimeComponent) String() string { return proto.CompactTextString(m) } func (*HSMDateTimeComponent) ProtoMessage() {} func (*HSMDateTimeComponent) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{26} + return fileDescriptor_76fb0470a3b910d8, []int{27} } func (m *HSMDateTimeComponent) XXX_Unmarshal(b []byte) error { @@ -2908,7 +3285,7 @@ func (m *HSMDateTimeUnixEpoch) Reset() { *m = HSMDateTimeUnixEpoch{} } func (m *HSMDateTimeUnixEpoch) String() string { return proto.CompactTextString(m) } func (*HSMDateTimeUnixEpoch) ProtoMessage() {} func (*HSMDateTimeUnixEpoch) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{27} + return fileDescriptor_76fb0470a3b910d8, []int{28} } func (m *HSMDateTimeUnixEpoch) XXX_Unmarshal(b []byte) error { @@ -2950,7 +3327,7 @@ func (m *HSMDateTime) Reset() { *m = HSMDateTime{} } func (m *HSMDateTime) String() string { return proto.CompactTextString(m) } func (*HSMDateTime) ProtoMessage() {} func (*HSMDateTime) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{28} + return fileDescriptor_76fb0470a3b910d8, []int{29} } func (m *HSMDateTime) XXX_Unmarshal(b []byte) error { @@ -3031,7 +3408,7 @@ func (m *HSMLocalizableParameter) Reset() { *m = HSMLocalizableParameter func (m *HSMLocalizableParameter) String() string { return proto.CompactTextString(m) } func (*HSMLocalizableParameter) ProtoMessage() {} func (*HSMLocalizableParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{29} + return fileDescriptor_76fb0470a3b910d8, []int{30} } func (m *HSMLocalizableParameter) XXX_Unmarshal(b []byte) error { @@ -3123,7 +3500,7 @@ func (m *HighlyStructuredMessage) Reset() { *m = HighlyStructuredMessage func (m *HighlyStructuredMessage) String() string { return proto.CompactTextString(m) } func (*HighlyStructuredMessage) ProtoMessage() {} func (*HighlyStructuredMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{30} + return fileDescriptor_76fb0470a3b910d8, []int{31} } func (m *HighlyStructuredMessage) XXX_Unmarshal(b []byte) error { @@ -3219,7 +3596,7 @@ func (m *SendPaymentMessage) Reset() { *m = SendPaymentMessage{} } func (m *SendPaymentMessage) String() string { return proto.CompactTextString(m) } func (*SendPaymentMessage) ProtoMessage() {} func (*SendPaymentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{31} + return fileDescriptor_76fb0470a3b910d8, []int{32} } func (m *SendPaymentMessage) XXX_Unmarshal(b []byte) error { @@ -3269,7 +3646,7 @@ func (m *RequestPaymentMessage) Reset() { *m = RequestPaymentMessage{} } func (m *RequestPaymentMessage) String() string { return proto.CompactTextString(m) } func (*RequestPaymentMessage) ProtoMessage() {} func (*RequestPaymentMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{32} + return fileDescriptor_76fb0470a3b910d8, []int{33} } func (m *RequestPaymentMessage) XXX_Unmarshal(b []byte) error { @@ -3336,7 +3713,7 @@ func (m *DeclinePaymentRequestMessage) Reset() { *m = DeclinePaymentRequ func (m *DeclinePaymentRequestMessage) String() string { return proto.CompactTextString(m) } func (*DeclinePaymentRequestMessage) ProtoMessage() {} func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{33} + return fileDescriptor_76fb0470a3b910d8, []int{34} } func (m *DeclinePaymentRequestMessage) XXX_Unmarshal(b []byte) error { @@ -3375,7 +3752,7 @@ func (m *CancelPaymentRequestMessage) Reset() { *m = CancelPaymentReques func (m *CancelPaymentRequestMessage) String() string { return proto.CompactTextString(m) } func (*CancelPaymentRequestMessage) ProtoMessage() {} func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{34} + return fileDescriptor_76fb0470a3b910d8, []int{35} } func (m *CancelPaymentRequestMessage) XXX_Unmarshal(b []byte) error { @@ -3423,7 +3800,7 @@ func (m *LiveLocationMessage) Reset() { *m = LiveLocationMessage{} } func (m *LiveLocationMessage) String() string { return proto.CompactTextString(m) } func (*LiveLocationMessage) ProtoMessage() {} func (*LiveLocationMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{35} + return fileDescriptor_76fb0470a3b910d8, []int{36} } func (m *LiveLocationMessage) XXX_Unmarshal(b []byte) error { @@ -3527,6 +3904,8 @@ type StickerMessage struct { 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:"-"` @@ -3537,7 +3916,7 @@ func (m *StickerMessage) Reset() { *m = StickerMessage{} } func (m *StickerMessage) String() string { return proto.CompactTextString(m) } func (*StickerMessage) ProtoMessage() {} func (*StickerMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{36} + return fileDescriptor_76fb0470a3b910d8, []int{37} } func (m *StickerMessage) XXX_Unmarshal(b []byte) error { @@ -3642,6 +4021,20 @@ func (m *StickerMessage) GetFirstFrameSidecar() []byte { return nil } +func (m *StickerMessage) GetIsAnimated() bool { + if m != nil && m.IsAnimated != nil { + return *m.IsAnimated + } + return false +} + +func (m *StickerMessage) GetPngThumbnail() []byte { + if m != nil { + return m.PngThumbnail + } + return nil +} + func (m *StickerMessage) GetContextInfo() *ContextInfo { if m != nil { return m.ContextInfo @@ -3669,7 +4062,7 @@ func (m *FourRowTemplate) Reset() { *m = FourRowTemplate{} } func (m *FourRowTemplate) String() string { return proto.CompactTextString(m) } func (*FourRowTemplate) ProtoMessage() {} func (*FourRowTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{37} + return fileDescriptor_76fb0470a3b910d8, []int{38} } func (m *FourRowTemplate) XXX_Unmarshal(b []byte) error { @@ -3819,7 +4212,7 @@ func (m *HydratedFourRowTemplate) Reset() { *m = HydratedFourRowTemplate func (m *HydratedFourRowTemplate) String() string { return proto.CompactTextString(m) } func (*HydratedFourRowTemplate) ProtoMessage() {} func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{38} + return fileDescriptor_76fb0470a3b910d8, []int{39} } func (m *HydratedFourRowTemplate) XXX_Unmarshal(b []byte) error { @@ -3971,7 +4364,7 @@ func (m *TemplateMessage) Reset() { *m = TemplateMessage{} } func (m *TemplateMessage) String() string { return proto.CompactTextString(m) } func (*TemplateMessage) ProtoMessage() {} func (*TemplateMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{39} + return fileDescriptor_76fb0470a3b910d8, []int{40} } func (m *TemplateMessage) XXX_Unmarshal(b []byte) error { @@ -4065,7 +4458,7 @@ func (m *TemplateButtonReplyMessage) Reset() { *m = TemplateButtonReplyM func (m *TemplateButtonReplyMessage) String() string { return proto.CompactTextString(m) } func (*TemplateButtonReplyMessage) ProtoMessage() {} func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{40} + return fileDescriptor_76fb0470a3b910d8, []int{41} } func (m *TemplateButtonReplyMessage) XXX_Unmarshal(b []byte) error { @@ -4114,6 +4507,61 @@ func (m *TemplateButtonReplyMessage) GetSelectedIndex() uint32 { 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:"-"` +} + +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} +} + +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 (m *CatalogSnapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_CatalogSnapshot.Merge(m, src) +} +func (m *CatalogSnapshot) XXX_Size() int { + return xxx_messageInfo_CatalogSnapshot.Size(m) +} +func (m *CatalogSnapshot) XXX_DiscardUnknown() { + xxx_messageInfo_CatalogSnapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_CatalogSnapshot proto.InternalMessageInfo + +func (m *CatalogSnapshot) GetCatalogImage() *ImageMessage { + if m != nil { + return m.CatalogImage + } + return nil +} + +func (m *CatalogSnapshot) GetTitle() string { + if m != nil && m.Title != nil { + return *m.Title + } + return "" +} + +func (m *CatalogSnapshot) GetDescription() string { + if m != nil && m.Description != nil { + return *m.Description + } + return "" +} + 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"` @@ -4134,7 +4582,7 @@ func (m *ProductSnapshot) Reset() { *m = ProductSnapshot{} } func (m *ProductSnapshot) String() string { return proto.CompactTextString(m) } func (*ProductSnapshot) ProtoMessage() {} func (*ProductSnapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{41} + return fileDescriptor_76fb0470a3b910d8, []int{43} } func (m *ProductSnapshot) XXX_Unmarshal(b []byte) error { @@ -4228,6 +4676,7 @@ func (m *ProductSnapshot) GetFirstImageId() string { 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:"-"` @@ -4238,7 +4687,7 @@ func (m *ProductMessage) Reset() { *m = ProductMessage{} } func (m *ProductMessage) String() string { return proto.CompactTextString(m) } func (*ProductMessage) ProtoMessage() {} func (*ProductMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{42} + return fileDescriptor_76fb0470a3b910d8, []int{44} } func (m *ProductMessage) XXX_Unmarshal(b []byte) error { @@ -4273,6 +4722,13 @@ func (m *ProductMessage) GetBusinessOwnerJid() string { return "" } +func (m *ProductMessage) GetCatalog() *CatalogSnapshot { + if m != nil { + return m.Catalog + } + return nil +} + func (m *ProductMessage) GetContextInfo() *ContextInfo { if m != nil { return m.ContextInfo @@ -4297,7 +4753,7 @@ func (m *GroupInviteMessage) Reset() { *m = GroupInviteMessage{} } func (m *GroupInviteMessage) String() string { return proto.CompactTextString(m) } func (*GroupInviteMessage) ProtoMessage() {} func (*GroupInviteMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{43} + return fileDescriptor_76fb0470a3b910d8, []int{45} } func (m *GroupInviteMessage) XXX_Unmarshal(b []byte) error { @@ -4379,7 +4835,7 @@ 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{44} + return fileDescriptor_76fb0470a3b910d8, []int{46} } func (m *DeviceSentMessage) XXX_Unmarshal(b []byte) error { @@ -4425,7 +4881,7 @@ 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{45} + return fileDescriptor_76fb0470a3b910d8, []int{47} } func (m *DeviceSyncMessage) XXX_Unmarshal(b []byte) error { @@ -4490,7 +4946,7 @@ func (m *Message) Reset() { *m = Message{} } func (m *Message) String() string { return proto.CompactTextString(m) } func (*Message) ProtoMessage() {} func (*Message) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{46} + return fileDescriptor_76fb0470a3b910d8, []int{48} } func (m *Message) XXX_Unmarshal(b []byte) error { @@ -4714,7 +5170,7 @@ 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{47} + return fileDescriptor_76fb0470a3b910d8, []int{49} } func (m *MessageKey) XXX_Unmarshal(b []byte) error { @@ -4794,6 +5250,8 @@ type WebFeatures struct { 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:"-"` @@ -4803,7 +5261,7 @@ func (m *WebFeatures) Reset() { *m = WebFeatures{} } func (m *WebFeatures) String() string { return proto.CompactTextString(m) } func (*WebFeatures) ProtoMessage() {} func (*WebFeatures) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{48} + return fileDescriptor_76fb0470a3b910d8, []int{50} } func (m *WebFeatures) XXX_Unmarshal(b []byte) error { @@ -5034,6 +5492,20 @@ func (m *WebFeatures) GetEphemeralMessages() WebFeatures_WEB_FEATURES_FLAG { return WebFeatures_NOT_STARTED } +func (m *WebFeatures) GetE2ENotificationSync() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.E2ENotificationSync != nil { + return *m.E2ENotificationSync + } + return WebFeatures_NOT_STARTED +} + +func (m *WebFeatures) GetRecentStickersV2() WebFeatures_WEB_FEATURES_FLAG { + if m != nil && m.RecentStickersV2 != nil { + return *m.RecentStickersV2 + } + 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"` @@ -5048,7 +5520,7 @@ 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{49} + return fileDescriptor_76fb0470a3b910d8, []int{51} } func (m *TabletNotificationsInfo) XXX_Unmarshal(b []byte) error { @@ -5111,7 +5583,7 @@ 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{50} + return fileDescriptor_76fb0470a3b910d8, []int{52} } func (m *NotificationMessageInfo) XXX_Unmarshal(b []byte) error { @@ -5174,7 +5646,7 @@ 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{51} + return fileDescriptor_76fb0470a3b910d8, []int{53} } func (m *WebNotificationsInfo) XXX_Unmarshal(b []byte) error { @@ -5224,24 +5696,26 @@ func (m *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo { } type PaymentInfo struct { - Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"` - ReceiverJid *string `protobuf:"bytes,3,opt,name=receiverJid" json:"receiverJid,omitempty"` - Status *PaymentInfo_PAYMENT_INFO_STATUS `protobuf:"varint,4,opt,name=status,enum=proto.PaymentInfo_PAYMENT_INFO_STATUS" json:"status,omitempty"` - TransactionTimestamp *uint64 `protobuf:"varint,5,opt,name=transactionTimestamp" json:"transactionTimestamp,omitempty"` - RequestMessageKey *MessageKey `protobuf:"bytes,6,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"` - ExpiryTimestamp *uint64 `protobuf:"varint,7,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"` - Futureproofed *bool `protobuf:"varint,8,opt,name=futureproofed" json:"futureproofed,omitempty"` - Currency *string `protobuf:"bytes,9,opt,name=currency" json:"currency,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + 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{52} + return fileDescriptor_76fb0470a3b910d8, []int{54} } func (m *PaymentInfo) XXX_Unmarshal(b []byte) error { @@ -5262,6 +5736,13 @@ func (m *PaymentInfo) XXX_DiscardUnknown() { var xxx_messageInfo_PaymentInfo proto.InternalMessageInfo +func (m *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_PAYMENT_INFO_CURRENCY { + if m != nil && m.CurrencyDeprecated != nil { + return *m.CurrencyDeprecated + } + return PaymentInfo_UNKNOWN_CURRENCY +} + func (m *PaymentInfo) GetAmount1000() uint64 { if m != nil && m.Amount1000 != nil { return *m.Amount1000 @@ -5318,6 +5799,13 @@ func (m *PaymentInfo) GetCurrency() string { return "" } +func (m *PaymentInfo) GetTxnStatus() PaymentInfo_PAYMENT_INFO_TXNSTATUS { + if m != nil && m.TxnStatus != nil { + return *m.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"` @@ -5351,7 +5839,7 @@ func (m *WebMessageInfo) Reset() { *m = WebMessageInfo{} } func (m *WebMessageInfo) String() string { return proto.CompactTextString(m) } func (*WebMessageInfo) ProtoMessage() {} func (*WebMessageInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_76fb0470a3b910d8, []int{53} + return fileDescriptor_76fb0470a3b910d8, []int{55} } func (m *WebMessageInfo) XXX_Unmarshal(b []byte) error { @@ -5539,10 +6027,13 @@ func init() { 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") @@ -5569,6 +6060,7 @@ func init() { 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") @@ -5586,6 +6078,7 @@ func init() { 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") @@ -5604,395 +6097,435 @@ func init() { func init() { proto.RegisterFile("def.proto", fileDescriptor_76fb0470a3b910d8) } var fileDescriptor_76fb0470a3b910d8 = []byte{ - // 6235 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7b, 0x4b, 0x6f, 0x1c, 0x49, - 0x72, 0x30, 0x9b, 0xcf, 0x66, 0x34, 0x1f, 0xc5, 0xa4, 0x28, 0xf6, 0x48, 0x1a, 0x0d, 0xa7, 0x67, - 0x76, 0x96, 0xab, 0x6f, 0x46, 0xa3, 0xe1, 0x68, 0x67, 0x34, 0x3b, 0xfb, 0x50, 0xb1, 0xbb, 0x48, - 0x96, 0xd4, 0x5d, 0xd5, 0x93, 0x5d, 0x4d, 0x8a, 0x83, 0xc5, 0xd7, 0x28, 0x55, 0x25, 0xc9, 0xfa, - 0x54, 0x5d, 0xd5, 0x53, 0x55, 0xad, 0x11, 0xf7, 0xf0, 0x7d, 0xc0, 0xb7, 0x80, 0x6d, 0x18, 0x36, - 0xb0, 0x37, 0xbf, 0x4e, 0x06, 0x6c, 0xff, 0x04, 0x5f, 0x0c, 0x1b, 0x30, 0x0c, 0x5f, 0x8c, 0x05, - 0x0c, 0x1f, 0x7d, 0xf1, 0xd1, 0x8f, 0xab, 0x6f, 0xf6, 0xc9, 0xc8, 0xac, 0xac, 0x77, 0x35, 0xd5, - 0xd2, 0xec, 0xc3, 0xf0, 0xa9, 0x3b, 0x23, 0x23, 0x22, 0x33, 0x23, 0x22, 0x23, 0x23, 0x23, 0xa3, - 0x60, 0xd9, 0x24, 0x67, 0x77, 0x47, 0x9e, 0x1b, 0xb8, 0x68, 0x81, 0xfd, 0x34, 0xda, 0x50, 0x3f, - 0xba, 0x34, 0x3d, 0x3d, 0x20, 0xe6, 0x17, 0x63, 0xcb, 0x78, 0x86, 0xc9, 0xc8, 0xbe, 0xdc, 0x1f, - 0x07, 0x81, 0xeb, 0xa0, 0x1d, 0xa8, 0x99, 0x96, 0x3f, 0xb2, 0xf5, 0x4b, 0x8d, 0xbc, 0x08, 0xea, - 0x95, 0x9d, 0xca, 0xee, 0x32, 0x4e, 0x83, 0xd0, 0x1a, 0xcc, 0x5a, 0x66, 0x7d, 0x96, 0x75, 0xcc, - 0x5a, 0x66, 0xe3, 0x10, 0x36, 0x22, 0x6e, 0x7d, 0xdc, 0x9e, 0x9a, 0x8d, 0x00, 0x73, 0x63, 0xcf, - 0xe6, 0x7c, 0xe8, 0xdf, 0xc6, 0x13, 0x40, 0x11, 0xa3, 0xa6, 0x6e, 0xdb, 0x53, 0x73, 0xda, 0x81, - 0xda, 0xe8, 0xc2, 0x75, 0x88, 0x32, 0x1e, 0x3e, 0x25, 0x1e, 0xe7, 0x98, 0x06, 0x35, 0x7e, 0x63, - 0x16, 0xae, 0x47, 0xac, 0x35, 0x32, 0x1c, 0xd9, 0x7a, 0x40, 0x38, 0xfb, 0x6b, 0xb0, 0x60, 0x39, - 0x26, 0x79, 0x51, 0x9f, 0xdf, 0xa9, 0xec, 0xae, 0xe2, 0xb0, 0x81, 0x3a, 0x20, 0x7c, 0x95, 0x93, - 0x0c, 0x1b, 0xb9, 0xb6, 0xf7, 0x56, 0x28, 0xca, 0xbb, 0x93, 0x04, 0x78, 0x34, 0x83, 0x0b, 0xa4, - 0xe8, 0x01, 0x2c, 0x8f, 0x3d, 0xbe, 0x20, 0x36, 0xbf, 0xda, 0x5e, 0x3d, 0xc7, 0x27, 0x16, 0xdd, - 0xd1, 0x0c, 0x4e, 0x90, 0xd1, 0xe7, 0x00, 0x46, 0x2c, 0x8b, 0xfa, 0x1c, 0x23, 0x7d, 0x23, 0x47, - 0x9a, 0x08, 0xeb, 0x68, 0x06, 0xa7, 0xd0, 0xf7, 0x05, 0x58, 0xbb, 0xe0, 0x38, 0x21, 0xa4, 0x61, - 0x82, 0x50, 0xd0, 0xf8, 0xc3, 0xa2, 0x80, 0x6b, 0x7b, 0xb7, 0xa3, 0x31, 0xac, 0xf3, 0x0b, 0xfb, - 0xb2, 0x17, 0x78, 0x63, 0x23, 0x18, 0x7b, 0xc4, 0xec, 0x10, 0xdf, 0xd7, 0xcf, 0xc9, 0xd5, 0x16, - 0xf1, 0xff, 0x60, 0x39, 0xb1, 0x84, 0x6f, 0xce, 0xfe, 0x5e, 0x62, 0x29, 0x2f, 0xa7, 0x64, 0x96, - 0xf4, 0xb3, 0x0a, 0x40, 0xca, 0x84, 0xbe, 0xf9, 0x14, 0x1e, 0x16, 0x4d, 0x6c, 0x0a, 0x0e, 0x69, - 0x13, 0xfc, 0xa7, 0x0a, 0xac, 0x4d, 0x65, 0x7a, 0xd2, 0x44, 0xd3, 0xdb, 0xe6, 0xe3, 0x4d, 0x65, - 0x72, 0xf7, 0x8a, 0x26, 0x27, 0x70, 0xfa, 0x09, 0xa6, 0xf6, 0x71, 0x89, 0xa9, 0x6d, 0x70, 0x92, - 0x89, 0x26, 0x56, 0x85, 0xc5, 0xa7, 0xa1, 0x69, 0x05, 0x50, 0x6d, 0xbb, 0x86, 0x1e, 0x58, 0xae, - 0x83, 0x76, 0x61, 0xdd, 0x24, 0xe7, 0x1e, 0x21, 0x7e, 0x5b, 0x0f, 0xac, 0x60, 0x6c, 0x12, 0xb6, - 0x84, 0x0a, 0xce, 0x83, 0xd1, 0x1d, 0x10, 0x22, 0x90, 0xeb, 0x9c, 0x87, 0xa8, 0xb3, 0x0c, 0xb5, - 0x00, 0x47, 0x08, 0xe6, 0x1d, 0x7d, 0x48, 0xd8, 0xd4, 0x96, 0x31, 0xfb, 0xdf, 0x78, 0x07, 0x16, - 0xba, 0xae, 0xe5, 0x04, 0x68, 0x05, 0x2a, 0x2f, 0x58, 0x4f, 0x05, 0x57, 0x5e, 0xd0, 0xd6, 0x25, - 0x13, 0x6b, 0x05, 0x57, 0x2e, 0x1b, 0xbf, 0x55, 0x81, 0x2d, 0xd9, 0x09, 0x88, 0xa7, 0x1b, 0x81, - 0xf5, 0x9c, 0x88, 0x8e, 0xe3, 0x06, 0xe1, 0x44, 0x3f, 0x81, 0xf5, 0x91, 0x6b, 0x5f, 0x9e, 0xbb, - 0xce, 0x31, 0xf1, 0x02, 0xcb, 0x20, 0x7e, 0xbd, 0xb2, 0x33, 0xb7, 0x5b, 0xdb, 0x5b, 0xe1, 0x0b, - 0x67, 0xcc, 0x71, 0x1e, 0x09, 0x7d, 0x00, 0x55, 0x9b, 0x2f, 0x96, 0x0b, 0x77, 0x9d, 0x13, 0x44, - 0x32, 0x38, 0x9a, 0xc1, 0x31, 0x0a, 0x95, 0x12, 0x1d, 0xda, 0x75, 0x1a, 0xff, 0x59, 0x81, 0x9a, - 0x68, 0x32, 0x45, 0xc9, 0xce, 0x99, 0x8b, 0xde, 0x83, 0x35, 0xdd, 0x7c, 0x4e, 0xd9, 0xfa, 0xc4, - 0x53, 0xe8, 0xea, 0x42, 0x07, 0x97, 0x83, 0xa2, 0x23, 0x58, 0x1e, 0x12, 0xd3, 0xd2, 0xb5, 0xcb, - 0x51, 0x28, 0xa0, 0xb5, 0xbd, 0x3b, 0x7c, 0xc4, 0x14, 0xbb, 0xbb, 0x62, 0x6b, 0x80, 0xa5, 0x6e, - 0xfb, 0x74, 0x20, 0x2b, 0x07, 0xea, 0xa0, 0x23, 0xb5, 0x64, 0x51, 0x3b, 0xed, 0x4a, 0x38, 0x21, - 0x46, 0xef, 0xc2, 0xea, 0xff, 0x19, 0x91, 0x73, 0xed, 0x62, 0x3c, 0x7c, 0xea, 0xe8, 0x96, 0x5d, - 0x17, 0x76, 0x2a, 0xbb, 0x2b, 0x38, 0x0b, 0x44, 0x75, 0x58, 0x32, 0xf4, 0x11, 0x5b, 0xdf, 0x06, - 0x9b, 0x50, 0xd4, 0x6c, 0x7c, 0x06, 0xdb, 0x13, 0x46, 0x41, 0x55, 0x98, 0x57, 0x54, 0x45, 0x12, - 0x66, 0xd0, 0x32, 0x2c, 0xc8, 0x1d, 0xf1, 0x50, 0x12, 0x2a, 0xf4, 0xef, 0xb1, 0xdc, 0x92, 0x54, - 0x61, 0xb6, 0xf1, 0x67, 0xf3, 0x50, 0x6b, 0xba, 0x4e, 0x40, 0x5e, 0x04, 0x6c, 0xf1, 0x37, 0xa0, - 0xea, 0x07, 0xba, 0xf3, 0x13, 0x5d, 0x36, 0xf9, 0xb2, 0xe3, 0x36, 0x73, 0xea, 0x3a, 0x95, 0xb6, - 0x35, 0xd2, 0x9d, 0x20, 0x76, 0xea, 0x09, 0x08, 0xdd, 0x87, 0xd5, 0xaf, 0xc6, 0x6e, 0x10, 0xef, - 0x37, 0x6e, 0xb2, 0x6b, 0x5c, 0x2c, 0xd1, 0x2e, 0xcc, 0x22, 0xa1, 0x5b, 0xb0, 0xec, 0x91, 0xa1, - 0x1b, 0x90, 0x47, 0x96, 0xc9, 0x2c, 0x64, 0x19, 0x27, 0x00, 0xd4, 0x80, 0x95, 0x21, 0x71, 0xe8, - 0x3a, 0x89, 0x49, 0x11, 0xd6, 0x77, 0xe6, 0x76, 0x97, 0x71, 0x06, 0x46, 0x4d, 0xd6, 0x70, 0x9d, - 0xe7, 0xc4, 0xf3, 0x2d, 0xd7, 0xe9, 0xb9, 0x63, 0xcf, 0x20, 0x75, 0xc4, 0x18, 0x15, 0xe0, 0x54, - 0xbd, 0x09, 0xac, 0xa5, 0x07, 0x7a, 0x7d, 0x93, 0x49, 0x3b, 0x07, 0x45, 0x9f, 0xc0, 0xf5, 0x14, - 0x84, 0xd8, 0xfa, 0x65, 0x8f, 0x18, 0xae, 0x63, 0xfa, 0xf5, 0x6b, 0xcc, 0x37, 0x4c, 0xe8, 0xa5, - 0x1b, 0xed, 0xcc, 0xf5, 0xbe, 0xd6, 0x3d, 0xd3, 0x72, 0xce, 0x7b, 0x86, 0xeb, 0x91, 0xfa, 0x16, - 0x23, 0xc8, 0x83, 0xa9, 0x3c, 0x2d, 0xff, 0x20, 0x04, 0x12, 0xb3, 0x7e, 0x7d, 0xa7, 0xb2, 0x5b, - 0xc5, 0x69, 0x10, 0xba, 0x0b, 0xd5, 0x50, 0x54, 0xa2, 0x59, 0xdf, 0x66, 0xa2, 0x44, 0x45, 0x0b, - 0xc3, 0x31, 0x0e, 0xfa, 0x0c, 0xd6, 0x46, 0xb6, 0x6e, 0x90, 0x0b, 0xd7, 0x36, 0x89, 0xf7, 0x98, - 0x5c, 0xd6, 0xeb, 0x19, 0x9f, 0xc1, 0x25, 0xfe, 0x98, 0x5c, 0xe2, 0x1c, 0x22, 0xba, 0x0d, 0x40, - 0x5e, 0x8c, 0x2c, 0x2f, 0xdc, 0x40, 0x6f, 0xb0, 0x19, 0xa7, 0x20, 0x8d, 0xdf, 0xae, 0xc0, 0xad, - 0x1e, 0x71, 0x42, 0xec, 0x96, 0xe5, 0x07, 0x9e, 0xf5, 0x74, 0x4c, 0x7b, 0x22, 0x2d, 0xd6, 0x61, - 0xe9, 0xdc, 0x73, 0xc7, 0xa3, 0xd8, 0x70, 0xa2, 0x26, 0xea, 0xc2, 0x3b, 0xfa, 0x0b, 0xd7, 0x76, - 0x03, 0xfb, 0x2a, 0x06, 0xcc, 0x9e, 0x56, 0xf0, 0x34, 0xa8, 0x8d, 0xbf, 0x5a, 0x84, 0x15, 0x79, - 0xa8, 0x9f, 0x93, 0x68, 0x70, 0x1e, 0xb9, 0x54, 0xe2, 0xc8, 0x85, 0x1a, 0xf2, 0xd0, 0x1a, 0x92, - 0x20, 0xda, 0x9c, 0xcb, 0x38, 0x6e, 0xa7, 0x77, 0xd2, 0x5c, 0x66, 0x27, 0x51, 0x29, 0x9c, 0x59, - 0x36, 0xe9, 0x5d, 0xe8, 0x7b, 0xdf, 0xfd, 0x84, 0xd9, 0xe2, 0x0a, 0x4e, 0x41, 0xa2, 0xfe, 0x36, - 0x71, 0xce, 0x83, 0x8b, 0xfa, 0xc2, 0x4e, 0x65, 0x77, 0x1e, 0xa7, 0x20, 0xe8, 0x3a, 0x2c, 0x5e, - 0x10, 0xeb, 0xfc, 0x22, 0xa8, 0x2f, 0x32, 0x09, 0xf2, 0x16, 0x3d, 0x57, 0xbe, 0xb6, 0xcc, 0xe0, - 0xa2, 0xbe, 0x14, 0x9e, 0x2b, 0xac, 0xc1, 0xe6, 0x48, 0x9d, 0x00, 0x55, 0x54, 0x95, 0x8d, 0x15, - 0xb7, 0xa9, 0x4f, 0xa0, 0x7c, 0x25, 0xc7, 0xe0, 0x93, 0x59, 0x0e, 0x7d, 0x42, 0x06, 0x88, 0x34, - 0xb8, 0x6e, 0x95, 0x79, 0x51, 0xbf, 0x0e, 0xcc, 0x67, 0xde, 0xe2, 0x8a, 0x2f, 0x75, 0xb5, 0x78, - 0x02, 0x2d, 0x5d, 0xa5, 0x69, 0x79, 0xc4, 0x08, 0xba, 0x7a, 0x70, 0x51, 0xaf, 0x31, 0x11, 0xa5, - 0x20, 0xe8, 0x7d, 0xd8, 0x88, 0xe6, 0xa9, 0x59, 0x43, 0xe2, 0x07, 0xfa, 0x70, 0x54, 0x5f, 0xd9, - 0xa9, 0xec, 0xce, 0xe1, 0x62, 0xc7, 0x94, 0xde, 0xed, 0x3e, 0xd4, 0x8c, 0xc4, 0x0f, 0x31, 0x0f, - 0x97, 0x58, 0x7b, 0xca, 0x43, 0xe1, 0x34, 0x1a, 0xdd, 0xf8, 0x67, 0x96, 0xe7, 0x07, 0x3d, 0x43, - 0x77, 0x7a, 0x96, 0x49, 0x0c, 0xdd, 0x63, 0x1b, 0x7f, 0x05, 0x17, 0xe0, 0x6c, 0x63, 0x46, 0x30, - 0xae, 0xc0, 0x4d, 0xbe, 0x31, 0xb3, 0x60, 0xba, 0x3e, 0xf2, 0x62, 0x44, 0x3c, 0x8b, 0x3a, 0x99, - 0x43, 0x6e, 0xd4, 0xe1, 0xae, 0x2f, 0x76, 0x50, 0x07, 0xe5, 0x1b, 0xba, 0xe3, 0x47, 0xe3, 0x6f, - 0xb1, 0xf1, 0x33, 0x30, 0xba, 0xd5, 0xfd, 0x98, 0xbf, 0x5f, 0xbf, 0xbe, 0x33, 0xb7, 0xbb, 0x8a, - 0xd3, 0x20, 0xb4, 0x07, 0xd7, 0x86, 0x96, 0xf9, 0xc5, 0x58, 0xb7, 0xad, 0xe0, 0xf2, 0x20, 0xb1, - 0xc1, 0x6d, 0xc6, 0xad, 0xb4, 0x0f, 0x3d, 0x80, 0xed, 0x2c, 0x3c, 0xb1, 0x96, 0x3a, 0x23, 0x9b, - 0xd4, 0xdd, 0xf8, 0xbf, 0xb0, 0x46, 0x65, 0xaa, 0x1b, 0x41, 0xb4, 0x83, 0x92, 0x98, 0x3e, 0x75, - 0xe4, 0xa5, 0x41, 0xd4, 0x86, 0x9f, 0x1b, 0xba, 0x67, 0x32, 0xfd, 0x2d, 0xe3, 0xb0, 0xf1, 0x7a, - 0x7a, 0x6b, 0xfc, 0x74, 0x16, 0xd6, 0xa3, 0x63, 0x39, 0x9a, 0xc1, 0xaf, 0x2c, 0x42, 0xa1, 0xfb, - 0x5f, 0x37, 0x4d, 0x8f, 0xf8, 0x3e, 0x3f, 0x6e, 0xa2, 0x66, 0xe4, 0x47, 0x16, 0x12, 0x3f, 0xf2, - 0x4b, 0xb4, 0xde, 0xc6, 0xbf, 0x2d, 0xc0, 0xa6, 0xf4, 0x22, 0xa0, 0x9e, 0xce, 0xa4, 0x31, 0x6d, - 0x24, 0x09, 0x04, 0xf3, 0x41, 0x72, 0xb1, 0x62, 0xff, 0xa9, 0x7e, 0x86, 0x7a, 0x60, 0x5c, 0x84, - 0x98, 0xd1, 0xe1, 0x9b, 0x02, 0x51, 0x3b, 0x34, 0x74, 0xc7, 0x75, 0x2c, 0x43, 0xb7, 0xfb, 0x9e, - 0xcd, 0x97, 0x96, 0x81, 0x31, 0x2d, 0x13, 0xdf, 0xf0, 0xac, 0xd0, 0xfb, 0x2d, 0x70, 0x2d, 0x27, - 0x20, 0xaa, 0xe5, 0xc0, 0x0a, 0x6c, 0xc2, 0x1c, 0xd8, 0x32, 0x0e, 0x1b, 0xd4, 0x53, 0xd1, 0x59, - 0x88, 0xde, 0xf9, 0x53, 0xe6, 0xc2, 0x96, 0x70, 0xdc, 0xa6, 0x07, 0xea, 0x53, 0xdd, 0x78, 0x46, - 0xbd, 0xbd, 0x63, 0x32, 0x8c, 0x2a, 0xc3, 0xc8, 0x41, 0x51, 0x07, 0xe6, 0xcf, 0x5c, 0x27, 0x60, - 0x8e, 0x6c, 0x6d, 0xef, 0x33, 0x2e, 0x9c, 0x92, 0xf5, 0xdf, 0x95, 0x9e, 0x68, 0x92, 0xd2, 0x92, - 0x5a, 0x03, 0x4d, 0x7a, 0xa2, 0x0d, 0x3a, 0x52, 0xaf, 0x27, 0x1e, 0x4a, 0x83, 0x03, 0x55, 0xd1, - 0x58, 0xe4, 0xc4, 0xd8, 0xa0, 0xff, 0x0d, 0xb5, 0x91, 0x47, 0x9e, 0x5b, 0xe4, 0x6b, 0x16, 0x80, - 0x01, 0xe3, 0xfa, 0xfd, 0x57, 0xe6, 0xda, 0xc5, 0xd2, 0xb1, 0x2c, 0x9d, 0x30, 0xc6, 0x69, 0x86, - 0xbf, 0x54, 0xb7, 0x45, 0x4d, 0xdd, 0x55, 0xdc, 0xa0, 0x6b, 0xeb, 0x97, 0xb2, 0x63, 0x5b, 0x4e, - 0x18, 0xae, 0x54, 0x71, 0x1e, 0xdc, 0xf8, 0x9d, 0x0a, 0xdc, 0xbe, 0x5a, 0x1c, 0x68, 0x0d, 0xa0, - 0x27, 0x2a, 0xbd, 0x41, 0x4f, 0xc2, 0xf2, 0x41, 0x18, 0xe8, 0x85, 0x7f, 0x2b, 0x68, 0x13, 0xd6, - 0x15, 0x15, 0xcb, 0x4d, 0x51, 0x19, 0x60, 0xe9, 0xb0, 0xdf, 0x16, 0xb1, 0x30, 0x8b, 0x36, 0x60, - 0x75, 0x1f, 0x9f, 0x2a, 0x2d, 0x51, 0x19, 0x9c, 0x60, 0x59, 0x93, 0x84, 0x39, 0xb4, 0x05, 0x1b, - 0xfb, 0xd2, 0xbe, 0xd8, 0x53, 0xa4, 0xbe, 0x14, 0x63, 0xce, 0x23, 0x01, 0x56, 0xd4, 0xde, 0x89, - 0xd8, 0x6e, 0x0d, 0x8e, 0x24, 0xf1, 0xf8, 0x54, 0x58, 0x68, 0x3c, 0x80, 0xb7, 0x5f, 0x2a, 0xc6, - 0x6c, 0xcc, 0x19, 0x06, 0x9a, 0x95, 0xc6, 0x5f, 0xcc, 0xc1, 0x7a, 0xcb, 0x35, 0xc6, 0xd4, 0x73, - 0xbe, 0xde, 0xa9, 0x1d, 0x5b, 0xe6, 0x5c, 0xda, 0x32, 0xbf, 0xe9, 0x89, 0x7d, 0x0b, 0x96, 0x47, - 0xfa, 0x39, 0x69, 0xba, 0x63, 0x27, 0x3a, 0xb4, 0x13, 0x40, 0xe6, 0x84, 0x5e, 0xca, 0x9d, 0xd0, - 0x37, 0xa0, 0x4a, 0xf9, 0x30, 0x77, 0x59, 0x0d, 0xe7, 0x1a, 0xb5, 0xa7, 0x3c, 0xbd, 0xb3, 0xe7, - 0x2c, 0x4c, 0x77, 0xce, 0xd6, 0x7e, 0x0d, 0xe7, 0x6c, 0xe3, 0x0f, 0xe7, 0x60, 0x45, 0x1c, 0x9b, - 0x96, 0xfb, 0x7a, 0xaa, 0xcb, 0x2a, 0x69, 0xee, 0x25, 0x4a, 0x9a, 0x2f, 0x28, 0xa9, 0x0e, 0x4b, - 0x3e, 0x0f, 0xbe, 0x17, 0x98, 0x8a, 0xa2, 0x26, 0x9d, 0xc7, 0x28, 0x08, 0x15, 0x57, 0xc5, 0xf4, - 0xef, 0x95, 0x2a, 0x2b, 0xa8, 0xa5, 0xfa, 0x72, 0xb5, 0x2c, 0x4f, 0xa7, 0x16, 0x98, 0xa4, 0x96, - 0xd7, 0x0e, 0x6c, 0xfc, 0xc0, 0x23, 0xfa, 0x90, 0xde, 0x16, 0xb2, 0x81, 0x4d, 0x1e, 0xde, 0xf8, - 0xff, 0x8b, 0xb0, 0x72, 0x6c, 0x99, 0xe4, 0xbf, 0x9d, 0x72, 0xd2, 0xaa, 0x58, 0xcc, 0xa9, 0x22, - 0x15, 0x83, 0x2f, 0x65, 0x63, 0xf0, 0x1d, 0xa8, 0x9d, 0x5b, 0x67, 0xd4, 0x07, 0xd2, 0x03, 0x84, - 0xa9, 0xa8, 0x8a, 0xd3, 0xa0, 0x54, 0x94, 0xbd, 0x5c, 0x1e, 0x65, 0x43, 0x3a, 0xca, 0x2e, 0x28, - 0xbd, 0xf6, 0x6a, 0x91, 0xf4, 0xca, 0x2f, 0x2c, 0x92, 0x5e, 0x9d, 0xce, 0x94, 0xd6, 0x7e, 0x4d, - 0x91, 0xf4, 0xb4, 0x06, 0x87, 0xfa, 0xb0, 0x76, 0x6e, 0x9d, 0x89, 0x41, 0x7c, 0x2f, 0x63, 0x81, - 0xf4, 0xda, 0xde, 0x07, 0x7c, 0x90, 0xb4, 0x31, 0xde, 0x65, 0x07, 0x40, 0x7c, 0x4e, 0x88, 0x9a, - 0x86, 0xe5, 0xfd, 0xbe, 0x26, 0xab, 0x0a, 0xce, 0x31, 0x69, 0x7c, 0x0e, 0x6f, 0x4c, 0x44, 0xce, - 0x1e, 0x2a, 0x87, 0x72, 0xf7, 0xe8, 0x34, 0x4c, 0x64, 0x68, 0x92, 0xa2, 0x62, 0x61, 0xb6, 0xb1, - 0x03, 0xf3, 0x4d, 0xdd, 0xe6, 0x59, 0x12, 0xdb, 0xa6, 0x26, 0x57, 0x61, 0xd3, 0x8f, 0x9a, 0x8d, - 0x07, 0x30, 0xdf, 0xbc, 0xd0, 0x83, 0x29, 0x22, 0xdd, 0x7c, 0xf2, 0xf4, 0x9f, 0x2b, 0xb0, 0xde, - 0xa5, 0x2b, 0x33, 0x5c, 0x3b, 0xda, 0x63, 0xef, 0xc0, 0xdc, 0x33, 0x3e, 0x46, 0xe9, 0xfd, 0x9a, - 0xf6, 0xa2, 0x87, 0x30, 0x1f, 0x24, 0xd9, 0xa1, 0xf7, 0xa3, 0x04, 0x56, 0x96, 0xd5, 0xdd, 0x2e, - 0x56, 0x35, 0xb5, 0xa9, 0xb6, 0xe3, 0x75, 0x87, 0x51, 0x0e, 0xdb, 0x9c, 0xf7, 0x60, 0x93, 0x8c, - 0x2e, 0xc8, 0x90, 0x78, 0xba, 0x2d, 0x25, 0xf7, 0xf3, 0x30, 0x3d, 0x59, 0xd6, 0xd5, 0xf8, 0x1e, - 0x6c, 0x95, 0x32, 0x44, 0x00, 0x8b, 0x58, 0x3a, 0x56, 0x1f, 0x53, 0x19, 0x6e, 0xc1, 0x86, 0xd4, - 0x3d, 0x92, 0x3a, 0x12, 0x16, 0xdb, 0x83, 0x9e, 0xa4, 0x69, 0xb2, 0x72, 0x28, 0xcc, 0x35, 0xfe, - 0xb8, 0x02, 0xd7, 0xf8, 0xbd, 0xc0, 0x17, 0x3d, 0x4f, 0xbf, 0x9c, 0xfe, 0x76, 0xf0, 0x11, 0x54, - 0x0d, 0x4e, 0x59, 0x9f, 0x65, 0x3b, 0x66, 0x2b, 0x65, 0x72, 0xc9, 0x45, 0x03, 0xc7, 0x68, 0xaf, - 0x79, 0x14, 0x7d, 0x01, 0xb5, 0xa3, 0x5e, 0xa7, 0x39, 0xf6, 0x3c, 0xe2, 0x18, 0x97, 0x2c, 0xea, - 0xe5, 0xff, 0x9b, 0xae, 0x19, 0x4d, 0x2d, 0x03, 0xa3, 0xbb, 0x50, 0x1f, 0xd2, 0xf3, 0xfc, 0xa3, - 0x7b, 0xf7, 0xee, 0x31, 0x65, 0xcc, 0xe1, 0x14, 0xa4, 0xf1, 0x07, 0xf3, 0x70, 0xed, 0xa8, 0xd7, - 0x69, 0xe9, 0x01, 0xa1, 0x9b, 0xad, 0xe9, 0x0e, 0x47, 0xae, 0x43, 0x9c, 0x00, 0x0d, 0x60, 0xd9, - 0xd4, 0x2f, 0xd5, 0xb3, 0x13, 0x42, 0x9e, 0x31, 0xce, 0x6b, 0x7b, 0x62, 0x94, 0x61, 0x2e, 0xc1, - 0xa7, 0xc0, 0x41, 0x4b, 0xd4, 0xa4, 0x81, 0x26, 0x77, 0xa4, 0x41, 0x53, 0xed, 0x74, 0x55, 0x45, - 0x52, 0xb4, 0x41, 0x4b, 0x3c, 0x55, 0x0f, 0x4e, 0x24, 0xe9, 0x71, 0x98, 0xf9, 0x8b, 0x79, 0xd2, - 0x48, 0xff, 0x92, 0xe8, 0x61, 0xf6, 0x7a, 0x15, 0xb3, 0xff, 0xd4, 0x8b, 0x0d, 0x5d, 0x27, 0xb8, - 0x60, 0xae, 0x78, 0x15, 0x87, 0x0d, 0xe6, 0x49, 0x28, 0x59, 0x87, 0x75, 0x85, 0xfa, 0x4f, 0x41, - 0x28, 0xa7, 0x0b, 0x77, 0xec, 0x71, 0x17, 0xcc, 0xfe, 0x53, 0x3f, 0x39, 0xb4, 0x9c, 0x71, 0x40, - 0xa2, 0x6c, 0x44, 0xd8, 0x42, 0x3f, 0x86, 0xaa, 0xa1, 0xdb, 0xc4, 0x31, 0x75, 0x8f, 0x39, 0xdf, - 0xb5, 0xbd, 0x87, 0xaf, 0xb3, 0xaa, 0xa6, 0xd8, 0x96, 0x94, 0x96, 0x88, 0xd9, 0xa2, 0x62, 0x8e, - 0x8d, 0x9f, 0x56, 0xe0, 0x5b, 0x53, 0x09, 0x82, 0x5a, 0x64, 0x47, 0x55, 0x5a, 0x22, 0xdd, 0xca, - 0x35, 0x58, 0xd2, 0xfa, 0x52, 0x8f, 0x36, 0x66, 0xd1, 0x2a, 0x2c, 0x9f, 0x48, 0x2d, 0x25, 0x6c, - 0xce, 0xa1, 0x15, 0xa8, 0x6a, 0x47, 0x7d, 0xcc, 0x5a, 0xf3, 0x94, 0xea, 0x00, 0xcb, 0xf4, 0xff, - 0x02, 0xed, 0xe9, 0x89, 0x5a, 0x1f, 0xd3, 0xd6, 0x22, 0xed, 0xe9, 0xf5, 0x19, 0xbf, 0xa5, 0xc6, - 0x01, 0xbc, 0x3b, 0xcd, 0xbc, 0xe9, 0x50, 0x87, 0x58, 0x3a, 0x54, 0xb1, 0x2c, 0x2a, 0x42, 0x05, - 0xad, 0x43, 0xad, 0xa7, 0xb6, 0x45, 0x3c, 0x38, 0x92, 0x1f, 0x61, 0x59, 0x98, 0x6d, 0xdc, 0xcf, - 0x98, 0x46, 0xdf, 0xb1, 0x5e, 0x48, 0x23, 0xd7, 0x60, 0x71, 0x63, 0x10, 0x7b, 0xec, 0x0a, 0x33, - 0xa9, 0x04, 0xd0, 0xf8, 0xfd, 0x0a, 0xb3, 0xd2, 0x88, 0x0c, 0x7d, 0x0e, 0xcb, 0x46, 0x24, 0x4f, - 0xee, 0x33, 0x6e, 0x5e, 0x21, 0xf2, 0xa3, 0x19, 0x9c, 0xe0, 0x53, 0xe2, 0x71, 0x34, 0x2e, 0x4f, - 0x6d, 0x97, 0x10, 0xc7, 0x53, 0x63, 0x4f, 0x08, 0x51, 0x63, 0x7f, 0x1d, 0x56, 0x4d, 0x3d, 0x20, - 0x74, 0x6a, 0xaa, 0x43, 0xdc, 0xb3, 0xc6, 0x9f, 0x56, 0x60, 0xfb, 0xa8, 0xd7, 0xa1, 0xb7, 0x6f, - 0xdb, 0xfa, 0x89, 0xfe, 0xd4, 0x26, 0x5d, 0xdd, 0xd3, 0x87, 0x24, 0x20, 0x1e, 0x75, 0x9e, 0x26, - 0x39, 0xd3, 0xc7, 0x76, 0x74, 0xf7, 0x8c, 0x9a, 0xe8, 0x1e, 0x54, 0xa3, 0x2d, 0xc5, 0xa7, 0x80, - 0x92, 0x29, 0x44, 0x9b, 0xf1, 0x68, 0x06, 0xc7, 0x58, 0x94, 0xc2, 0xe4, 0x53, 0xe3, 0x69, 0x60, - 0x54, 0x9c, 0x34, 0xa5, 0x88, 0xb0, 0xf6, 0x57, 0x00, 0x46, 0x74, 0x2a, 0xe1, 0x3c, 0x7f, 0x77, - 0x0e, 0xb6, 0x27, 0x3c, 0xe3, 0x50, 0xe1, 0xd3, 0x8b, 0xbc, 0x3f, 0xd2, 0x8d, 0x68, 0xc7, 0x27, - 0x00, 0xea, 0xac, 0x88, 0x4d, 0xe8, 0x45, 0x83, 0x39, 0x2b, 0x7e, 0x55, 0x4e, 0x81, 0xe8, 0xc6, - 0x60, 0x23, 0xf9, 0xf5, 0x39, 0x96, 0x4d, 0xe6, 0x2d, 0x16, 0xea, 0xe8, 0xb6, 0x4d, 0x83, 0x8c, - 0xf6, 0x39, 0xbf, 0x40, 0xa7, 0x20, 0x99, 0x7e, 0x83, 0xdf, 0x9e, 0x53, 0x10, 0xd4, 0x86, 0x0d, - 0x3b, 0x27, 0x57, 0xbf, 0xbe, 0xc8, 0xbc, 0xe1, 0xed, 0x64, 0xf1, 0x65, 0xa2, 0xc7, 0x45, 0xc2, - 0x30, 0x21, 0x12, 0x10, 0x6f, 0x68, 0x39, 0x96, 0x1f, 0x58, 0x46, 0xfb, 0x9c, 0x87, 0x4a, 0x79, - 0x70, 0x11, 0xd3, 0xe0, 0x37, 0x92, 0x3c, 0x18, 0x3d, 0x80, 0x5a, 0xf4, 0xfe, 0x78, 0xe4, 0x0f, - 0x59, 0xfc, 0x54, 0xdb, 0xbb, 0xce, 0xe7, 0x16, 0x3d, 0x86, 0xc5, 0xaf, 0x65, 0x29, 0xd4, 0xc6, - 0x6f, 0x56, 0x00, 0xf5, 0x88, 0x63, 0x76, 0xf5, 0xcb, 0xf4, 0x1d, 0xee, 0x1e, 0xd4, 0x1c, 0x37, - 0x26, 0xe1, 0xb6, 0x91, 0x4f, 0xf8, 0xa7, 0x51, 0xd0, 0x8f, 0x60, 0xc3, 0x23, 0x5f, 0x8d, 0x89, - 0x1f, 0x24, 0xc7, 0x65, 0xee, 0x6d, 0x2b, 0x75, 0x8e, 0x16, 0x71, 0x1b, 0xff, 0x52, 0x81, 0x2d, - 0x1c, 0x42, 0xaf, 0x9e, 0xcc, 0xfc, 0xcb, 0x27, 0x73, 0x0f, 0x36, 0xd3, 0x47, 0x85, 0xec, 0xbb, - 0xf7, 0xf7, 0x3e, 0xfa, 0x94, 0xdb, 0x54, 0x59, 0x57, 0xc9, 0x61, 0x32, 0x9f, 0x3e, 0x4c, 0xa8, - 0xf5, 0xf1, 0x29, 0x1f, 0x78, 0xee, 0x90, 0x5f, 0x56, 0xd3, 0x20, 0xaa, 0x2d, 0x96, 0x58, 0x4f, - 0x85, 0x7c, 0x0b, 0xcc, 0x81, 0xe4, 0xc1, 0x8d, 0x26, 0xdc, 0x6a, 0x11, 0xc3, 0xb6, 0x1c, 0xc2, - 0x17, 0x8a, 0x33, 0xc2, 0x98, 0x2a, 0x08, 0x69, 0xec, 0xc3, 0xcd, 0xa6, 0xee, 0x18, 0xc4, 0xfe, - 0x06, 0x3c, 0xfe, 0x66, 0x0e, 0x36, 0xdb, 0xd6, 0x73, 0xf2, 0xab, 0xc9, 0xd9, 0xdd, 0x01, 0x41, - 0x37, 0x8c, 0xb1, 0xa7, 0x1b, 0x97, 0xb2, 0xd3, 0xa1, 0x16, 0xec, 0xf3, 0xc3, 0xb0, 0x00, 0xa7, - 0xea, 0xf0, 0x47, 0x84, 0x98, 0xb2, 0xd3, 0x19, 0x85, 0xe9, 0xbc, 0x59, 0x9c, 0x82, 0xa0, 0x36, - 0xbc, 0xcd, 0xf9, 0x37, 0x6d, 0xd7, 0x78, 0xf6, 0xb5, 0xe5, 0x13, 0xaa, 0x84, 0x8e, 0x7e, 0xee, - 0x90, 0xc0, 0x32, 0x14, 0xd7, 0xe3, 0x69, 0x81, 0x55, 0xfc, 0x72, 0xc4, 0xf4, 0xad, 0x65, 0x31, - 0x7b, 0x6b, 0x79, 0x0f, 0xd6, 0x7c, 0x2a, 0x58, 0xc7, 0x88, 0x5e, 0xa4, 0x97, 0x98, 0x4e, 0x73, - 0x50, 0x3a, 0x5f, 0xe6, 0x8b, 0xcf, 0xce, 0x7c, 0x12, 0xb0, 0x5d, 0xba, 0x8a, 0x53, 0x90, 0x5f, - 0xea, 0x2d, 0xfe, 0xe7, 0x73, 0xb0, 0xd6, 0x0b, 0x2c, 0xe3, 0x19, 0xf1, 0x26, 0x5f, 0x15, 0xb3, - 0xd7, 0xc1, 0xd9, 0xc2, 0x75, 0xb0, 0x70, 0x9d, 0x9a, 0x2b, 0xbb, 0x4e, 0xa5, 0xaf, 0x7e, 0xf3, - 0xc5, 0xc4, 0x49, 0x7c, 0x19, 0x5d, 0xc8, 0x5d, 0x46, 0x5f, 0xed, 0x01, 0x25, 0x7b, 0xbd, 0xaa, - 0x16, 0xae, 0x57, 0xd9, 0xab, 0xeb, 0x72, 0xe1, 0xea, 0xfa, 0x6a, 0x37, 0xf9, 0xe8, 0xb1, 0xe1, - 0x80, 0xfa, 0x6c, 0xce, 0xb3, 0x16, 0x9a, 0x65, 0x1e, 0x4e, 0x39, 0x27, 0xb0, 0xe8, 0x3e, 0xb5, - 0xc2, 0x04, 0x51, 0xec, 0x78, 0x4d, 0x75, 0xfe, 0xde, 0x3c, 0xac, 0x1f, 0xb8, 0x63, 0x0f, 0xbb, - 0x5f, 0x47, 0x9e, 0x1b, 0x3d, 0x80, 0x25, 0x86, 0xc2, 0x93, 0x59, 0x2f, 0xaf, 0x88, 0x88, 0xd0, - 0xd1, 0x27, 0xb0, 0x78, 0xe6, 0xba, 0x01, 0x37, 0xdc, 0x97, 0x13, 0x72, 0x6c, 0xf4, 0x21, 0x2c, - 0x85, 0xe5, 0x06, 0x7e, 0xbd, 0x9a, 0x89, 0xfb, 0xb3, 0xa5, 0x15, 0x38, 0xc2, 0x42, 0xfb, 0xb0, - 0x6e, 0x66, 0x13, 0x81, 0xdc, 0xf9, 0x44, 0xc7, 0x50, 0x2e, 0x4d, 0x78, 0x34, 0x83, 0xf3, 0x04, - 0xe8, 0x4b, 0xd8, 0xbe, 0x28, 0x9f, 0xd7, 0x74, 0x85, 0x20, 0x47, 0x33, 0x78, 0x12, 0x03, 0xf4, - 0x19, 0xac, 0x58, 0xa9, 0xb7, 0x45, 0x7e, 0x34, 0x6d, 0x46, 0xf7, 0xff, 0x54, 0xd7, 0xd1, 0x0c, - 0xce, 0xa0, 0x52, 0xd2, 0xe7, 0xa9, 0xbb, 0x2f, 0x3f, 0x80, 0x36, 0x4b, 0xae, 0xc5, 0x94, 0x34, - 0x8d, 0x4a, 0xa5, 0x62, 0x67, 0x9d, 0x2b, 0xdb, 0x1b, 0x89, 0x54, 0x72, 0xae, 0x97, 0x4a, 0x25, - 0x47, 0xb0, 0xbf, 0xc4, 0x33, 0xa4, 0x8d, 0x3f, 0x9a, 0x87, 0xed, 0xa8, 0x14, 0x29, 0x6f, 0x21, - 0xf7, 0x60, 0x33, 0x3a, 0xd6, 0x9b, 0xa1, 0xea, 0xd9, 0x83, 0x42, 0xe8, 0xce, 0xca, 0xba, 0xd0, - 0x5d, 0x40, 0x17, 0x31, 0x33, 0xaa, 0x73, 0x46, 0x10, 0x86, 0x22, 0x25, 0x3d, 0xe8, 0x10, 0xd6, - 0xb3, 0x35, 0x4e, 0x91, 0x65, 0xbc, 0x99, 0xab, 0x92, 0xca, 0x59, 0x48, 0x9e, 0x8a, 0xf9, 0x4a, - 0x8e, 0x22, 0x9b, 0x51, 0x22, 0x2e, 0x81, 0xfc, 0x42, 0x2c, 0xe9, 0x2e, 0x6c, 0x44, 0xc3, 0x6a, - 0x54, 0x76, 0xc9, 0xeb, 0xca, 0xd1, 0x0c, 0x2e, 0x76, 0xfd, 0x4f, 0xb0, 0x8e, 0xbf, 0x9c, 0x85, - 0xf5, 0x5c, 0xa8, 0x97, 0xf7, 0x40, 0x73, 0xd3, 0x25, 0x8d, 0x1e, 0x81, 0x70, 0x91, 0xd3, 0x25, - 0x5f, 0xd5, 0xed, 0x9c, 0xaa, 0x73, 0x56, 0x88, 0x0b, 0x74, 0x74, 0x89, 0x67, 0x59, 0xa4, 0x9c, - 0x32, 0x73, 0x2c, 0xe8, 0x12, 0x73, 0x04, 0xcc, 0x2d, 0x94, 0x0f, 0x98, 0x77, 0x0b, 0xe5, 0x58, - 0xcc, 0x2d, 0x94, 0x77, 0xed, 0x57, 0xa9, 0x7f, 0xf4, 0x86, 0x7a, 0xd0, 0xf8, 0xbb, 0x0a, 0xdc, - 0xc8, 0x99, 0x2e, 0x19, 0xd9, 0x71, 0xae, 0x84, 0x46, 0x24, 0xc4, 0x26, 0x46, 0x40, 0xcc, 0xb8, - 0x16, 0x22, 0x05, 0xa1, 0x1b, 0x30, 0x6a, 0xb5, 0x52, 0x25, 0x70, 0xe1, 0x35, 0xa5, 0xac, 0xeb, - 0x35, 0x95, 0xf3, 0x2e, 0xac, 0xc6, 0xa3, 0xa6, 0x6a, 0xda, 0xb2, 0xc0, 0xc6, 0xbf, 0xcf, 0xb2, - 0xdc, 0x96, 0x39, 0x36, 0x82, 0x9e, 0xa3, 0x8f, 0xfc, 0x0b, 0x37, 0x40, 0x9f, 0xc2, 0xca, 0x28, - 0x04, 0x31, 0x7b, 0xe6, 0x7a, 0x28, 0xb3, 0x71, 0x9c, 0x41, 0x64, 0x8f, 0x29, 0xbc, 0x1d, 0xe5, - 0xcf, 0x12, 0xc0, 0x84, 0x07, 0x9c, 0xdc, 0x93, 0xe4, 0x7c, 0xf1, 0x49, 0x32, 0x9f, 0xe2, 0x59, - 0x28, 0x49, 0xf1, 0xec, 0xc2, 0xfa, 0xc8, 0xb3, 0x0c, 0x22, 0x26, 0xa1, 0xf9, 0x62, 0x18, 0x53, - 0xe7, 0xc0, 0x54, 0x3d, 0x1e, 0x09, 0x74, 0xcb, 0x26, 0x9e, 0x6c, 0x72, 0x2f, 0x96, 0x82, 0x44, - 0x11, 0x51, 0x35, 0x89, 0x88, 0xde, 0x87, 0x8d, 0xf4, 0x2a, 0xc3, 0xa7, 0xa2, 0x30, 0xf3, 0x5c, - 0xec, 0xa0, 0xb3, 0x65, 0x07, 0x3c, 0x03, 0xc9, 0x26, 0x2f, 0x9f, 0xc8, 0xc0, 0x1a, 0x7f, 0x52, - 0x81, 0x35, 0x2e, 0xf4, 0xe4, 0x22, 0xb2, 0xc4, 0x79, 0xe5, 0xcc, 0x3e, 0xa7, 0x1c, 0x1c, 0xa1, - 0xd1, 0x70, 0xe4, 0xe9, 0xd8, 0xb7, 0x1c, 0xe2, 0xfb, 0xea, 0xd7, 0x0e, 0xf1, 0x1e, 0xc5, 0x39, - 0xcb, 0x02, 0xfc, 0x35, 0x03, 0x8c, 0x9f, 0xcd, 0x02, 0x0a, 0xab, 0x1c, 0x9c, 0xe7, 0x56, 0xe2, - 0x2b, 0x6e, 0x40, 0x95, 0x95, 0xf6, 0xd0, 0x01, 0x79, 0x8d, 0x58, 0xd4, 0xa6, 0xd2, 0xb5, 0x18, - 0x32, 0xd3, 0x54, 0x38, 0x9d, 0x14, 0x84, 0x4e, 0x3a, 0x6c, 0xa5, 0x92, 0x99, 0x73, 0x4c, 0x51, - 0x05, 0x38, 0xb5, 0x26, 0xc6, 0x97, 0xdd, 0xe2, 0x79, 0x5d, 0x58, 0x0c, 0x28, 0x06, 0xca, 0x0b, - 0x2f, 0x29, 0x9a, 0xcb, 0x05, 0xec, 0x39, 0x91, 0x2c, 0x4d, 0x27, 0x12, 0x02, 0x1b, 0x2d, 0xf2, - 0xdc, 0x32, 0x48, 0x2f, 0x75, 0x86, 0xbc, 0x07, 0x6b, 0x26, 0xf1, 0x03, 0xcb, 0x61, 0xf3, 0x4e, - 0xc4, 0x92, 0x83, 0xa2, 0x5d, 0x58, 0x1a, 0x5e, 0x79, 0x4f, 0x8e, 0xba, 0x1b, 0xcd, 0x78, 0x98, - 0x4b, 0xc7, 0x48, 0x8e, 0x2a, 0xe4, 0x13, 0xcf, 0xd2, 0x6d, 0xeb, 0x27, 0xc4, 0x7c, 0x32, 0xb4, - 0xf7, 0x2f, 0x03, 0x56, 0x1c, 0x49, 0x97, 0x5d, 0xd2, 0xd3, 0xf8, 0xeb, 0x75, 0x58, 0x8a, 0x68, - 0xe9, 0x1e, 0x0a, 0xeb, 0xd5, 0x42, 0x99, 0x47, 0x69, 0xd2, 0x14, 0x0c, 0x9d, 0xc3, 0x2d, 0xff, - 0x65, 0x05, 0x5a, 0xb5, 0xbd, 0x77, 0xf8, 0x9c, 0xaf, 0x2a, 0xd0, 0xc2, 0x57, 0x32, 0xa2, 0xfe, - 0x65, 0xca, 0x33, 0x34, 0x77, 0x82, 0xfe, 0x80, 0xd5, 0xee, 0xa5, 0xb2, 0xc9, 0xfc, 0xb4, 0x99, - 0x90, 0x6a, 0xce, 0x21, 0xa3, 0x87, 0xaf, 0x78, 0x8a, 0x16, 0xce, 0x50, 0xd4, 0x86, 0x4d, 0x52, - 0x2c, 0x2d, 0xe0, 0xa1, 0xf6, 0x8d, 0xc9, 0xc5, 0x07, 0xb8, 0x8c, 0x8c, 0xce, 0x27, 0x1f, 0xbf, - 0x2c, 0x5d, 0x15, 0xbf, 0x14, 0xa3, 0x97, 0x4f, 0x61, 0x45, 0x4f, 0x3d, 0xcb, 0x32, 0xaf, 0x95, - 0x48, 0x32, 0xfd, 0x62, 0x8b, 0x33, 0x88, 0x94, 0x30, 0x13, 0x8b, 0x2c, 0x4f, 0x8c, 0x45, 0x72, - 0x91, 0xc8, 0x5b, 0x30, 0x6f, 0xe8, 0xb6, 0xcd, 0x6e, 0x49, 0xb5, 0xbd, 0x5a, 0xaa, 0x18, 0x19, - 0xb3, 0x0e, 0x86, 0x70, 0xa1, 0x07, 0xcc, 0xef, 0xa5, 0x10, 0x2e, 0xf4, 0x00, 0xb3, 0x0e, 0xba, - 0xea, 0x51, 0xf6, 0x05, 0x84, 0x5d, 0x8c, 0x32, 0x1e, 0x2f, 0xdd, 0x8b, 0xf3, 0xe8, 0x48, 0x85, - 0x6b, 0x46, 0xc9, 0x2b, 0x05, 0x7b, 0x5f, 0x4b, 0x72, 0xa3, 0x65, 0x0f, 0x19, 0xb8, 0x94, 0x10, - 0x3d, 0x99, 0x7c, 0x9d, 0x58, 0x9b, 0xea, 0x32, 0x34, 0xf1, 0x32, 0xf1, 0xd3, 0x0a, 0xdc, 0x39, - 0xd3, 0xfd, 0x00, 0xb3, 0x42, 0x9d, 0xe0, 0x31, 0xb9, 0xbc, 0xb2, 0x06, 0x72, 0x7d, 0xfa, 0x2d, - 0xf6, 0x0a, 0x6c, 0x91, 0x4c, 0x3d, 0x47, 0x3e, 0x75, 0xc7, 0x32, 0x0b, 0xc9, 0xa7, 0x0b, 0xc5, - 0xdc, 0x1e, 0x2e, 0x21, 0xa2, 0x3b, 0xc0, 0x2e, 0x26, 0x82, 0xd8, 0x53, 0x61, 0xb2, 0x03, 0x4a, - 0x52, 0x45, 0xb8, 0x8c, 0x0c, 0x61, 0xd8, 0xf2, 0xca, 0x32, 0x79, 0xac, 0x18, 0x36, 0x79, 0x74, - 0x2d, 0xcd, 0xf6, 0xe1, 0x72, 0x52, 0xea, 0xc6, 0xcc, 0x2b, 0x92, 0x66, 0xbc, 0x90, 0x36, 0x92, - 0xf1, 0x55, 0xf9, 0x35, 0x7c, 0x25, 0x23, 0x64, 0xc2, 0x4d, 0x63, 0x72, 0x62, 0x8d, 0x97, 0xde, - 0x36, 0xe2, 0x1d, 0x32, 0x11, 0x13, 0x5f, 0xc5, 0x86, 0x6e, 0x97, 0x20, 0x1b, 0xac, 0xb3, 0xea, - 0xdc, 0xc9, 0x59, 0xdb, 0x3c, 0x3a, 0xf5, 0x9a, 0x7e, 0x26, 0xeb, 0x53, 0xbf, 0x91, 0xf1, 0x9a, - 0xd9, 0x94, 0x10, 0xce, 0x21, 0x53, 0xe3, 0x39, 0x2f, 0x04, 0x01, 0xf5, 0x5b, 0x19, 0xe3, 0x29, - 0x46, 0x09, 0xb8, 0x84, 0x08, 0xe9, 0x70, 0x23, 0x98, 0x18, 0x38, 0xd7, 0xdf, 0x64, 0x2c, 0xdf, - 0x2e, 0x4f, 0x1f, 0xa4, 0x10, 0xf1, 0x15, 0x4c, 0xe8, 0x62, 0x47, 0x99, 0xc8, 0xaa, 0x7e, 0x3b, - 0xb3, 0xd8, 0x6c, 0xd8, 0x85, 0x73, 0xc8, 0xe8, 0x00, 0x36, 0xcc, 0xfc, 0xf9, 0x5e, 0x7f, 0x2b, - 0xf3, 0x79, 0x50, 0xe1, 0xfc, 0xc7, 0x45, 0x92, 0x14, 0x9f, 0xe4, 0x00, 0xaf, 0xef, 0x94, 0xf1, - 0x49, 0xfa, 0x71, 0x91, 0xa4, 0x11, 0x00, 0x24, 0xb9, 0xd8, 0x6c, 0xa5, 0x7c, 0x25, 0x5f, 0x29, - 0x7f, 0x1d, 0x16, 0xcf, 0x3c, 0x77, 0xd8, 0x09, 0x4f, 0xea, 0x2a, 0xe6, 0x2d, 0xfe, 0x9c, 0x3d, - 0x17, 0x3d, 0x67, 0xe7, 0xeb, 0xf8, 0xe7, 0x0b, 0x75, 0xfc, 0x8d, 0xff, 0xd8, 0x84, 0xda, 0x09, - 0x79, 0x7a, 0x40, 0x74, 0xea, 0xcc, 0x7c, 0xf4, 0x08, 0x56, 0x6d, 0xfd, 0x29, 0xb1, 0x7d, 0x7e, - 0x2b, 0xe1, 0x6f, 0xa1, 0xef, 0xf2, 0x95, 0xa4, 0x50, 0xef, 0x9e, 0x48, 0xfb, 0x83, 0x03, 0x49, - 0xd4, 0xfa, 0x58, 0xea, 0x0d, 0x0e, 0xda, 0xe2, 0x21, 0xce, 0x92, 0xa2, 0x1f, 0xc3, 0xf5, 0xe7, - 0xae, 0x35, 0x92, 0x1d, 0xd3, 0x7a, 0x6e, 0x99, 0x63, 0xdd, 0x56, 0xc7, 0xc1, 0xb9, 0x6b, 0x39, - 0xe7, 0xfc, 0x95, 0x7c, 0x3a, 0xa6, 0x13, 0x78, 0xa0, 0x87, 0x3c, 0x36, 0xf5, 0x8f, 0x3f, 0x66, - 0x2b, 0x9e, 0x96, 0x5f, 0x4c, 0x85, 0xda, 0xb0, 0x16, 0xfd, 0x6f, 0x7a, 0x24, 0xba, 0xd1, 0x4e, - 0xcb, 0x27, 0x47, 0x4b, 0xb9, 0x19, 0x17, 0xba, 0x73, 0xce, 0xd3, 0xbf, 0xc7, 0x7b, 0x2c, 0xe2, - 0x98, 0x9a, 0x5b, 0x96, 0x96, 0xca, 0xee, 0xab, 0x31, 0xf1, 0x2e, 0x7b, 0x81, 0x1e, 0x8c, 0xfd, - 0xe3, 0x8f, 0x93, 0xe0, 0x77, 0xf1, 0x55, 0x64, 0x57, 0xce, 0x83, 0x69, 0x39, 0xe5, 0xa3, 0x7d, - 0xfe, 0x36, 0x3c, 0xad, 0x96, 0xd3, 0xa4, 0xa8, 0x05, 0xc0, 0x46, 0x39, 0x76, 0xa2, 0xf2, 0xb8, - 0x69, 0x19, 0xa5, 0xe8, 0x8a, 0xb6, 0x22, 0x3b, 0x86, 0x3b, 0xa4, 0xb6, 0xb2, 0xfc, 0xfa, 0xb6, - 0x12, 0xf1, 0x40, 0x18, 0x36, 0xe2, 0x6f, 0xb4, 0x2c, 0xe2, 0x7f, 0x41, 0xc7, 0xe5, 0x75, 0xa4, - 0xd3, 0x31, 0x2e, 0x92, 0x53, 0xfb, 0x1b, 0x85, 0x6e, 0xdc, 0x67, 0x11, 0xd0, 0xd4, 0xf6, 0x17, - 0x51, 0xa1, 0x2e, 0x08, 0xdc, 0x01, 0x77, 0x75, 0xe3, 0x59, 0x38, 0xa9, 0x95, 0x57, 0xe0, 0x54, - 0xa0, 0x46, 0x1a, 0xa0, 0x8c, 0x72, 0x0e, 0x2c, 0x47, 0xb7, 0x59, 0xb0, 0x34, 0x2d, 0xcf, 0x12, - 0x7a, 0xaa, 0xe1, 0x70, 0x63, 0x4b, 0xa6, 0x15, 0xb0, 0x30, 0x69, 0x6a, 0x0d, 0x27, 0x74, 0xe8, - 0x00, 0x6a, 0x2c, 0xd1, 0xde, 0x1f, 0xd9, 0xae, 0x6e, 0xb2, 0xf8, 0x67, 0x5a, 0x36, 0x69, 0x42, - 0x74, 0x06, 0x37, 0x53, 0x4d, 0x6c, 0x19, 0x17, 0x5f, 0xa4, 0x74, 0xc3, 0xc2, 0x93, 0x69, 0xf9, - 0x5e, 0xc5, 0x08, 0xfd, 0x10, 0x96, 0x9e, 0x53, 0xd3, 0x3c, 0xde, 0xe3, 0x35, 0x4f, 0xd3, 0xf1, - 0x8c, 0x88, 0xa8, 0x76, 0x59, 0x38, 0x1d, 0xd5, 0xb2, 0xf5, 0x3d, 0x9b, 0x7d, 0x59, 0x30, 0xb5, - 0x76, 0xf3, 0xd4, 0x74, 0xd7, 0xfa, 0x6c, 0x2b, 0x63, 0xdd, 0x79, 0x46, 0xb7, 0xc6, 0xd6, 0xab, - 0xec, 0xda, 0x0c, 0x29, 0x3a, 0x86, 0xcd, 0xec, 0x5e, 0x61, 0x17, 0x01, 0x16, 0x8c, 0x4d, 0xcb, - 0xb1, 0x8c, 0x01, 0xb5, 0xc0, 0xe0, 0xc2, 0xf2, 0xcc, 0xae, 0xee, 0x05, 0x97, 0x3c, 0xdc, 0xf0, - 0x59, 0x20, 0x36, 0xb5, 0x05, 0x16, 0xe9, 0x91, 0x09, 0x37, 0xce, 0x58, 0x08, 0xe8, 0x04, 0xf6, - 0x65, 0xfc, 0xd1, 0x54, 0x8f, 0x04, 0x01, 0x15, 0x43, 0xfd, 0x15, 0xb8, 0x5f, 0xc1, 0x87, 0xfa, - 0x20, 0xee, 0xd3, 0xef, 0x3f, 0x72, 0x2d, 0xa7, 0x4b, 0xbc, 0xa1, 0xe5, 0xfb, 0xd1, 0x47, 0x52, - 0x53, 0xfb, 0xa0, 0x72, 0x1e, 0xf4, 0x7c, 0xf0, 0x88, 0x41, 0x9c, 0x20, 0x96, 0xca, 0x8d, 0x57, - 0x39, 0x1f, 0xb2, 0xb4, 0xd4, 0x3a, 0x0d, 0x3d, 0xd0, 0x6d, 0xf7, 0xbc, 0x7e, 0xf3, 0x55, 0xac, - 0x93, 0x13, 0x21, 0x05, 0xd6, 0xfd, 0x40, 0xf7, 0x3c, 0x62, 0xc6, 0xd3, 0xb9, 0xf5, 0x0a, 0x7c, - 0xf2, 0xc4, 0xd4, 0x36, 0xa9, 0x39, 0xb0, 0xe8, 0x90, 0x5e, 0x11, 0x59, 0x88, 0x37, 0xb5, 0x6d, - 0x66, 0x48, 0xe9, 0xdc, 0xf2, 0x71, 0xf0, 0xed, 0x57, 0x99, 0x5b, 0x3e, 0x2a, 0xbe, 0x80, 0x5b, - 0x39, 0x50, 0x52, 0xda, 0x69, 0x05, 0x97, 0x2c, 0xe8, 0x9b, 0x96, 0xf9, 0x95, 0x9c, 0xe8, 0x39, - 0x13, 0x17, 0xea, 0x71, 0x04, 0x9f, 0xc5, 0x82, 0x53, 0x9f, 0x33, 0x05, 0xf2, 0xc6, 0x13, 0xd8, - 0x28, 0xe0, 0xa1, 0x75, 0xa8, 0x29, 0xaa, 0x36, 0xe8, 0x69, 0x22, 0xd6, 0xa4, 0x96, 0x30, 0x83, - 0x36, 0x60, 0xf5, 0x40, 0xc5, 0x4d, 0x69, 0xd0, 0xef, 0x1e, 0x62, 0xb1, 0x25, 0x85, 0x05, 0x4e, - 0x2d, 0xe9, 0x58, 0x6a, 0xab, 0xdd, 0x8e, 0xa4, 0x68, 0xc2, 0x2c, 0x5a, 0x03, 0xe8, 0x62, 0xb5, - 0xd5, 0x6f, 0x6a, 0xb2, 0xaa, 0x08, 0x73, 0x8d, 0xbf, 0xaf, 0xc0, 0xb6, 0xa6, 0x3f, 0xb5, 0x49, - 0xa0, 0xb8, 0x81, 0x75, 0x66, 0x71, 0xa7, 0xcf, 0x52, 0xca, 0x99, 0xa2, 0xa7, 0xb0, 0xf4, 0x21, - 0x01, 0xd0, 0xb8, 0x72, 0xec, 0x78, 0x44, 0x37, 0xe9, 0x65, 0x3f, 0x7a, 0xb1, 0x4f, 0x83, 0xd0, - 0x5d, 0x40, 0x0e, 0x65, 0x1a, 0x45, 0xeb, 0x61, 0x2a, 0x35, 0xcc, 0x4b, 0x97, 0xf4, 0xa0, 0x16, - 0xac, 0x66, 0xa0, 0xf5, 0x85, 0x4c, 0x2d, 0x4d, 0x7a, 0x82, 0xb1, 0xe4, 0xcf, 0x5c, 0x9c, 0x25, - 0x6a, 0xfc, 0x79, 0x05, 0xb6, 0x27, 0xa0, 0x4e, 0x57, 0xc6, 0x39, 0x75, 0xde, 0x0e, 0xdd, 0x01, - 0x81, 0xff, 0x4d, 0xde, 0x93, 0xe7, 0x98, 0x9c, 0x0a, 0xf0, 0x29, 0xc2, 0xf0, 0xbf, 0xad, 0xc0, - 0xb5, 0x13, 0xf2, 0xf4, 0xd7, 0xaf, 0x87, 0x1f, 0xc0, 0x5a, 0x06, 0xea, 0x73, 0x45, 0x6c, 0x25, - 0xe6, 0x9b, 0x96, 0x7f, 0x0e, 0xb9, 0xf1, 0xf3, 0x79, 0xa8, 0xf1, 0xcb, 0x2d, 0x9b, 0xfe, 0x54, - 0x25, 0x34, 0x06, 0xb1, 0x9e, 0x87, 0x49, 0xed, 0xb8, 0x84, 0x26, 0x06, 0xa1, 0x1f, 0xc2, 0x62, - 0x78, 0x72, 0xf1, 0xe0, 0xfc, 0xbd, 0xe8, 0x76, 0x97, 0x8c, 0x72, 0xb7, 0x2b, 0x9e, 0x52, 0x13, - 0x0f, 0xbf, 0x88, 0xee, 0x69, 0xa2, 0xd6, 0xef, 0x61, 0x4e, 0x85, 0xf6, 0xe0, 0x5a, 0xe0, 0xe9, - 0x8e, 0x1f, 0x7e, 0x02, 0x9e, 0xad, 0xc3, 0x99, 0xc7, 0xa5, 0x7d, 0xe5, 0x75, 0x4b, 0x8b, 0xd3, - 0xd7, 0x2d, 0x95, 0xd5, 0xfd, 0x2c, 0xb1, 0xf1, 0xf2, 0x60, 0x56, 0x63, 0x31, 0xa6, 0xde, 0x60, - 0xe4, 0xb9, 0xee, 0x19, 0x31, 0x79, 0x11, 0x7c, 0x16, 0x88, 0x6e, 0xa4, 0x6a, 0xf2, 0xc2, 0xc7, - 0xd1, 0xb8, 0xdd, 0xf8, 0xc7, 0x0a, 0x6c, 0x96, 0x08, 0x00, 0x21, 0x58, 0xeb, 0x2b, 0x8f, 0x15, - 0xf5, 0x44, 0xe1, 0x10, 0x61, 0x86, 0x7b, 0x80, 0xa6, 0xd4, 0xeb, 0xc9, 0xca, 0xa1, 0x50, 0x41, - 0x55, 0x98, 0xef, 0x85, 0xbe, 0x01, 0xc1, 0x9a, 0x22, 0x49, 0xad, 0x81, 0xa6, 0x0e, 0xc4, 0x66, - 0x53, 0xea, 0x6a, 0x61, 0x31, 0x66, 0x53, 0xed, 0x74, 0xdb, 0x92, 0x26, 0x09, 0xf3, 0xe8, 0x3a, - 0xa0, 0xa6, 0xda, 0x6f, 0xb7, 0x06, 0xd4, 0xf1, 0xc4, 0x70, 0x56, 0x98, 0x89, 0xa5, 0x83, 0xbe, - 0xd2, 0x92, 0x5a, 0xc2, 0x22, 0xaa, 0xc1, 0x92, 0xf4, 0xa4, 0x2b, 0x63, 0xa9, 0x25, 0x2c, 0x85, - 0x5d, 0x8f, 0xa4, 0x26, 0x75, 0x51, 0x55, 0xb4, 0x0a, 0xcb, 0x4d, 0x51, 0x69, 0x4a, 0xed, 0xb6, - 0xd4, 0x12, 0x96, 0xd1, 0x16, 0x6c, 0x9c, 0x88, 0xb2, 0x26, 0x2b, 0x87, 0x83, 0x03, 0x15, 0x0f, - 0xba, 0xe2, 0xa9, 0x84, 0x05, 0xa0, 0x0c, 0x38, 0x58, 0xa8, 0x35, 0xfe, 0xe1, 0x06, 0xac, 0x65, - 0x2d, 0x2e, 0xd9, 0xc6, 0xb3, 0xbf, 0xf2, 0x6d, 0x2c, 0xe5, 0x4c, 0xf1, 0x83, 0xd2, 0x3d, 0xc1, - 0xbc, 0x7a, 0x54, 0x8e, 0x5d, 0x66, 0x91, 0x39, 0x6f, 0xb0, 0x50, 0xfc, 0xb8, 0xfe, 0x3a, 0x2c, - 0x5a, 0xe7, 0x8e, 0xeb, 0x85, 0x89, 0xbb, 0x2a, 0xe6, 0x2d, 0xf6, 0xfd, 0x45, 0x78, 0xee, 0xb2, - 0x77, 0x9d, 0x2a, 0x8e, 0x9a, 0xd4, 0x4d, 0x3c, 0xf5, 0x5c, 0xdd, 0x34, 0x74, 0x3f, 0xe0, 0x1f, - 0x98, 0x25, 0x00, 0x6a, 0x3e, 0xa3, 0xb1, 0x7f, 0xc1, 0x5e, 0x57, 0x36, 0x43, 0xf3, 0x89, 0xda, - 0xe8, 0x3e, 0x6c, 0xb1, 0x28, 0xb8, 0x69, 0x8d, 0x2e, 0x88, 0x17, 0x90, 0x17, 0x01, 0x2f, 0xf6, - 0xb9, 0xc6, 0x5e, 0x1b, 0xca, 0x3b, 0xe9, 0x78, 0xc3, 0xb1, 0x1d, 0x58, 0x6c, 0xbc, 0xad, 0x70, - 0xbc, 0x18, 0x40, 0xe7, 0x39, 0xf6, 0x6c, 0xf6, 0xd6, 0x19, 0x7e, 0xea, 0x1e, 0x35, 0x29, 0xdd, - 0xd8, 0xb3, 0x79, 0xd9, 0xd4, 0x76, 0x48, 0x17, 0x03, 0xd0, 0x29, 0xac, 0x73, 0xa1, 0xf7, 0x82, - 0xf1, 0x53, 0xf6, 0xb1, 0x5f, 0x18, 0xdb, 0x7d, 0x38, 0xb5, 0xa4, 0xfb, 0xfb, 0xac, 0x46, 0x39, - 0xcf, 0x87, 0x3a, 0x22, 0xc3, 0x26, 0xba, 0xd7, 0xa1, 0xcb, 0x61, 0xf1, 0x5c, 0x15, 0xa7, 0x20, - 0xa1, 0x18, 0x62, 0x92, 0xb8, 0x58, 0x93, 0x06, 0x69, 0x73, 0xbb, 0xcb, 0xb8, 0xbc, 0x93, 0x0a, - 0xd6, 0x1c, 0xf3, 0xb7, 0xad, 0x9b, 0xcc, 0xa7, 0xc6, 0x6d, 0xaa, 0xc4, 0xf0, 0xf6, 0x53, 0xbf, - 0x15, 0x56, 0x9e, 0x86, 0x2d, 0x74, 0x9f, 0xaa, 0x3f, 0xf6, 0x5d, 0x3c, 0x15, 0x86, 0x8a, 0x5e, - 0x0d, 0xa7, 0xd1, 0xd0, 0x11, 0x6c, 0x9c, 0xd1, 0xcb, 0x58, 0x3a, 0xdf, 0xca, 0xf3, 0x5d, 0x57, - 0xa5, 0x62, 0x8b, 0x44, 0xe8, 0x21, 0xbd, 0x0b, 0xbb, 0x01, 0x31, 0x53, 0x63, 0xf1, 0xbc, 0x57, - 0xd9, 0x2c, 0x8a, 0xc8, 0xe8, 0x01, 0x6c, 0xc7, 0x61, 0x4a, 0x2f, 0xd0, 0xbd, 0x20, 0xd9, 0x3a, - 0x3b, 0x6c, 0xeb, 0x4c, 0xea, 0x66, 0x9f, 0x5b, 0x47, 0x5d, 0xad, 0x48, 0x70, 0x6f, 0xf3, 0xcf, - 0xad, 0xf3, 0x1d, 0x0d, 0x0b, 0xb6, 0x27, 0xec, 0x25, 0xb4, 0x0c, 0x0b, 0x12, 0xc6, 0x2a, 0x16, - 0x66, 0xa8, 0xc3, 0xe8, 0x4a, 0x4a, 0x2b, 0x74, 0x68, 0x6b, 0x00, 0x3d, 0x09, 0x1f, 0x4b, 0x78, - 0x20, 0x36, 0x1f, 0x0b, 0xb3, 0x48, 0x80, 0x95, 0x96, 0xd4, 0x96, 0x8f, 0x25, 0x7c, 0xca, 0x20, - 0x73, 0xd4, 0xe5, 0x61, 0x49, 0x6c, 0x85, 0xd5, 0xe5, 0xdd, 0xb6, 0x78, 0x2a, 0xb5, 0x84, 0x85, - 0xc6, 0xbf, 0x6e, 0xc0, 0x1b, 0x13, 0xad, 0x89, 0x0e, 0xc1, 0x5d, 0xa9, 0x30, 0x93, 0xfa, 0xb8, - 0x82, 0x0d, 0xd7, 0x94, 0xbb, 0x47, 0x12, 0xd6, 0xa4, 0x27, 0xd4, 0x8b, 0xae, 0x43, 0xed, 0xa0, - 0x4f, 0xc3, 0xb4, 0x2e, 0x56, 0xd5, 0x03, 0x61, 0x0e, 0xdd, 0x84, 0x6d, 0x45, 0x55, 0x06, 0xc7, - 0x12, 0x96, 0x0f, 0x64, 0xea, 0x5e, 0xb1, 0xa8, 0xf4, 0x64, 0x16, 0x7f, 0xcd, 0xa3, 0x37, 0x60, - 0xab, 0xaf, 0x94, 0x75, 0x2d, 0xa0, 0x6d, 0xd8, 0x2c, 0xeb, 0x58, 0x44, 0x75, 0xb8, 0x16, 0x77, - 0xb4, 0xd5, 0x93, 0x41, 0x34, 0xaf, 0x25, 0x1a, 0x01, 0xc6, 0x3d, 0x47, 0xf2, 0xe1, 0x91, 0x50, - 0x45, 0xb7, 0xa0, 0x1e, 0x83, 0x64, 0x45, 0xd6, 0x64, 0xb1, 0x1d, 0x13, 0x2c, 0x67, 0x58, 0x45, - 0xbd, 0x6d, 0xf5, 0x44, 0x00, 0x3a, 0xb1, 0x42, 0x0f, 0x63, 0x59, 0x43, 0xef, 0xc0, 0x5b, 0x25, - 0x13, 0x1b, 0x88, 0xca, 0x29, 0x3d, 0x3a, 0xd8, 0x77, 0x3b, 0x2b, 0x2f, 0x41, 0x62, 0x9c, 0x56, - 0x27, 0x21, 0xd1, 0x5e, 0x8a, 0x45, 0x67, 0xb2, 0x86, 0xbe, 0x0d, 0xef, 0x5c, 0x85, 0x14, 0x2d, - 0x66, 0x1d, 0xbd, 0x07, 0x8d, 0x32, 0xc4, 0xe8, 0x04, 0xe4, 0x0c, 0x85, 0x49, 0x78, 0x54, 0x94, - 0x29, 0x7e, 0x1b, 0x93, 0x66, 0x47, 0x17, 0x18, 0x31, 0x43, 0x93, 0x66, 0x17, 0x21, 0x45, 0xdc, - 0x36, 0xa9, 0x19, 0x1e, 0x62, 0xb5, 0xdf, 0x1d, 0x34, 0xb1, 0x24, 0x6a, 0x92, 0x70, 0x8d, 0x0a, - 0x9f, 0x43, 0x8e, 0x44, 0xe5, 0x50, 0x1a, 0xf4, 0xfa, 0xfb, 0xf4, 0xa0, 0x14, 0xb6, 0xe8, 0xb9, - 0x98, 0xe9, 0x91, 0x9b, 0xaa, 0x22, 0x5c, 0xa7, 0xba, 0xcc, 0x82, 0x95, 0x63, 0x59, 0x93, 0x06, - 0x6d, 0x59, 0x79, 0x2c, 0x6c, 0x17, 0x7a, 0x5b, 0x52, 0xaf, 0x89, 0xe5, 0x2e, 0x33, 0x9a, 0x3a, - 0xd5, 0x67, 0xa6, 0x17, 0x4b, 0x3d, 0x0d, 0xcb, 0x4d, 0x4d, 0x78, 0xa3, 0xd0, 0x25, 0x2a, 0x8a, - 0xda, 0x57, 0x9a, 0x92, 0x70, 0x23, 0xe9, 0xea, 0x8a, 0x58, 0x93, 0x9b, 0x72, 0x57, 0x54, 0xb4, - 0x81, 0xd8, 0x6a, 0x09, 0x37, 0x93, 0xe1, 0xd2, 0x5d, 0x58, 0xea, 0xa8, 0xc7, 0x92, 0x70, 0x0b, - 0xbd, 0x09, 0x6f, 0x14, 0x7b, 0xbb, 0x58, 0xed, 0xa8, 0x9a, 0x24, 0xbc, 0x59, 0x4e, 0xdc, 0x92, - 0x58, 0xef, 0xed, 0xf2, 0xde, 0x70, 0xb1, 0xc2, 0x5b, 0x74, 0x3f, 0x15, 0x7b, 0xdb, 0x92, 0x78, - 0x2c, 0x09, 0x3b, 0x54, 0x67, 0xc5, 0x4e, 0xbe, 0x2e, 0xa5, 0xdf, 0xd9, 0x97, 0xb0, 0xf0, 0x36, - 0xba, 0x06, 0xc2, 0x3e, 0x56, 0xc5, 0x56, 0x53, 0xec, 0x69, 0x91, 0x3a, 0x1a, 0xe1, 0x97, 0xd2, - 0x11, 0x94, 0xae, 0xf1, 0x9d, 0x2c, 0x22, 0x5f, 0xdb, 0xbb, 0x4c, 0x6f, 0x92, 0x22, 0x61, 0xb9, - 0x49, 0xe3, 0x20, 0xf9, 0x40, 0x6e, 0x8a, 0x4c, 0xc8, 0xdf, 0xa2, 0x3d, 0xd2, 0x9e, 0x34, 0x90, - 0x5b, 0x92, 0xa2, 0xc9, 0xda, 0x29, 0x1f, 0xb8, 0x25, 0xbc, 0x47, 0x99, 0xd3, 0x1e, 0x49, 0x69, - 0xe2, 0xd3, 0x2e, 0x8d, 0x85, 0xbe, 0x4d, 0x95, 0xdc, 0x14, 0xdb, 0xed, 0x41, 0x47, 0xee, 0xf5, - 0xa4, 0xd6, 0xe0, 0x58, 0x95, 0x9b, 0x92, 0xb0, 0x5b, 0x00, 0xb3, 0x2f, 0xaa, 0xbf, 0x43, 0x65, - 0x22, 0x2b, 0x2d, 0xf9, 0x58, 0x6e, 0xf5, 0xc5, 0x76, 0x6e, 0x45, 0x77, 0x12, 0xe3, 0x6a, 0x49, - 0x2c, 0x24, 0xfb, 0x5f, 0xd4, 0xc8, 0x43, 0x48, 0xa4, 0xcd, 0x41, 0x47, 0x6d, 0x49, 0xb1, 0x73, - 0xdb, 0x0f, 0x35, 0xfc, 0x3e, 0x95, 0x66, 0x7a, 0xb8, 0x90, 0x26, 0x9c, 0xcb, 0x07, 0x13, 0x3a, - 0xd9, 0x8c, 0xee, 0xd2, 0x60, 0x30, 0x8a, 0x39, 0x53, 0x0e, 0xf0, 0x43, 0xea, 0xb7, 0x22, 0x78, - 0xda, 0x11, 0xde, 0x43, 0xef, 0xc3, 0x6e, 0xd4, 0xc1, 0x76, 0x8a, 0xc8, 0x2e, 0xa1, 0xdc, 0x9d, - 0x0f, 0xfa, 0x5d, 0xf6, 0xf5, 0xce, 0x81, 0x28, 0xd3, 0xd8, 0xf0, 0x23, 0x74, 0x17, 0xee, 0xbc, - 0x1c, 0x3b, 0x8e, 0x3a, 0xf7, 0xd0, 0xc7, 0xf0, 0xe1, 0xb4, 0xf8, 0xd1, 0x20, 0x1f, 0xa3, 0xef, - 0xc2, 0x47, 0x57, 0x10, 0x61, 0xa9, 0x29, 0xd1, 0x73, 0x63, 0xc0, 0x0f, 0x97, 0x41, 0x4f, 0xd2, - 0xfa, 0x5d, 0xe1, 0x3e, 0xfa, 0x3e, 0x3c, 0x98, 0x86, 0xac, 0xd7, 0x6f, 0xd2, 0x38, 0x7b, 0x20, - 0x1e, 0x68, 0x12, 0x1e, 0x1c, 0xc9, 0xcd, 0x66, 0xbf, 0x2b, 0x7c, 0x17, 0x7d, 0x07, 0xbe, 0x15, - 0x51, 0x73, 0x42, 0xb1, 0xd9, 0x54, 0xfb, 0x8a, 0x16, 0xf2, 0xa7, 0x86, 0x26, 0x2b, 0x2d, 0x09, - 0x0b, 0x9f, 0xa0, 0x5d, 0x78, 0x37, 0x87, 0xda, 0x93, 0x94, 0xd6, 0x20, 0x82, 0xc5, 0x98, 0x9f, - 0xa2, 0x3b, 0xf0, 0xde, 0x55, 0x98, 0x6c, 0xf7, 0x84, 0x66, 0xfa, 0x80, 0x6e, 0x92, 0x1c, 0x2e, - 0x96, 0xbe, 0xe8, 0x4b, 0x3d, 0xba, 0x05, 0x9b, 0x6d, 0x59, 0x91, 0x5a, 0xc2, 0x67, 0xa8, 0x01, - 0xb7, 0x27, 0x20, 0x45, 0xc1, 0xfd, 0xf7, 0xd0, 0xbb, 0xb0, 0x33, 0x01, 0x27, 0x89, 0xf2, 0x3f, - 0xa7, 0xeb, 0xdd, 0x97, 0xbf, 0x2c, 0x3b, 0x00, 0x07, 0x9a, 0xda, 0xa5, 0x5e, 0x72, 0x5f, 0xd5, - 0x34, 0xb5, 0x23, 0x7c, 0xff, 0x2a, 0xd4, 0x10, 0x87, 0x62, 0x6b, 0x6a, 0x57, 0xf8, 0x01, 0xdb, - 0xae, 0xf2, 0x97, 0x03, 0x59, 0xd1, 0x70, 0x08, 0xfa, 0x21, 0xdb, 0xae, 0x31, 0x88, 0xf3, 0xfc, - 0x11, 0xda, 0x84, 0x75, 0x0a, 0x55, 0xc4, 0x8e, 0xc4, 0xf7, 0x8d, 0xf0, 0x90, 0x6e, 0x27, 0x0a, - 0xa4, 0x3b, 0x9a, 0xb2, 0x6c, 0xaa, 0x4a, 0xaf, 0xdf, 0xa1, 0x21, 0x43, 0xb7, 0x2b, 0x88, 0xe8, - 0x36, 0xdc, 0xa0, 0xbd, 0xda, 0x89, 0x3a, 0xd0, 0x64, 0x09, 0x0f, 0x3a, 0xf2, 0x21, 0x16, 0xa3, - 0x09, 0x0b, 0xfb, 0xe8, 0x6d, 0x78, 0x73, 0x42, 0x3f, 0x1f, 0xb5, 0x49, 0x6f, 0x3a, 0xea, 0xb1, - 0x84, 0x7b, 0xf2, 0x97, 0x52, 0x4b, 0x68, 0x51, 0x45, 0x66, 0x7c, 0xac, 0xa2, 0x0e, 0x0e, 0x98, - 0xac, 0x14, 0xad, 0x7d, 0x4a, 0x2f, 0x3f, 0x27, 0x22, 0xa6, 0x76, 0x2c, 0x25, 0xce, 0xef, 0xf8, - 0x3e, 0xf5, 0x42, 0x91, 0x93, 0x67, 0x77, 0xb4, 0x83, 0x64, 0x5b, 0xe7, 0x1c, 0x72, 0x2c, 0xf8, - 0x47, 0xaa, 0xac, 0x08, 0x87, 0x94, 0x0b, 0x1f, 0xa9, 0xf8, 0xe5, 0xe7, 0xd1, 0x7f, 0x05, 0x00, - 0x00, 0xff, 0xff, 0x82, 0xf8, 0x8e, 0x8c, 0x92, 0x52, 0x00, 0x00, + // 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, } 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 6d4006d7..eaf38e61 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto +++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto @@ -56,6 +56,8 @@ message Location { } message Point { + optional int32 xDeprecated = 1; + optional int32 yDeprecated = 2; optional double x = 3; optional double y = 4; } @@ -93,6 +95,7 @@ message ContextInfo { optional AdReplyInfo quotedAd = 23; optional MessageKey placeholderKey = 24; optional uint32 expiration = 25; + optional int64 ephemeralSettingTimestamp = 26; } message SenderKeyDistributionMessage { @@ -136,6 +139,11 @@ message LocationMessage { optional string name = 3; optional string address = 4; optional string url = 5; + optional bool isLive = 6; + optional uint32 accuracyInMeters = 7; + optional float speedInMps = 8; + optional uint32 degreesClockwiseFromMagneticNorth = 9; + optional string comment = 11; optional bytes jpegThumbnail = 16; optional ContextInfo contextInfo = 17; } @@ -238,9 +246,29 @@ message ProtocolMessage { enum PROTOCOL_MESSAGE_TYPE { REVOKE = 0; EPHEMERAL_SETTING = 3; + EPHEMERAL_SYNC_RESPONSE = 4; + HISTORY_SYNC_NOTIFICATION = 5; } optional PROTOCOL_MESSAGE_TYPE type = 2; optional uint32 ephemeralExpiration = 4; + optional int64 ephemeralSettingTimestamp = 5; + optional HistorySyncNotification historySyncNotification = 6; +} + +message HistorySyncNotification { + optional bytes fileSha256 = 1; + optional uint64 fileLength = 2; + optional bytes mediaKey = 3; + optional bytes fileEncSha256 = 4; + optional string directPath = 5; + enum HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE { + INITIAL_BOOTSTRAP = 0; + INITIAL_STATUS_V3 = 1; + FULL = 2; + RECENT = 3; + } + optional HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE syncType = 6; + optional uint32 chunkOrder = 7; } message ContactsArrayMessage { @@ -355,6 +383,8 @@ message StickerMessage { optional int64 mediaKeyTimestamp = 10; optional uint32 firstFrameLength = 11; optional bytes firstFrameSidecar = 12; + optional bool isAnimated = 13; + optional bytes pngThumbnail = 16; optional ContextInfo contextInfo = 17; } @@ -401,6 +431,12 @@ message TemplateButtonReplyMessage { optional uint32 selectedIndex = 4; } +message CatalogSnapshot { + optional ImageMessage catalogImage = 1; + optional string title = 2; + optional string description = 3; +} + message ProductSnapshot { optional ImageMessage productImage = 1; optional string productId = 2; @@ -417,6 +453,7 @@ message ProductSnapshot { message ProductMessage { optional ProductSnapshot product = 1; optional string businessOwnerJid = 2; + optional CatalogSnapshot catalog = 4; optional ContextInfo contextInfo = 17; } @@ -513,6 +550,8 @@ message WebFeatures { 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 { @@ -537,6 +576,11 @@ message WebNotificationsInfo { } message PaymentInfo { + enum PAYMENT_INFO_CURRENCY { + UNKNOWN_CURRENCY = 0; + INR = 1; + } + optional PAYMENT_INFO_CURRENCY currencyDeprecated = 1; optional uint64 amount1000 = 2; optional string receiverJid = 3; enum PAYMENT_INFO_STATUS { @@ -559,6 +603,37 @@ message PaymentInfo { optional uint64 expiryTimestamp = 7; optional bool futureproofed = 8; optional string currency = 9; + enum PAYMENT_INFO_TXNSTATUS { + 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; + } + optional PAYMENT_INFO_TXNSTATUS txnStatus = 10; } message WebMessageInfo { @@ -668,4 +743,5 @@ message WebMessageInfo { optional PaymentInfo quotedPaymentInfo = 31; optional uint64 ephemeralStartTimestamp = 32; optional uint32 ephemeralDuration = 33; -} \ No newline at end of file +} + diff --git a/vendor/github.com/Rhymen/go-whatsapp/go.mod b/vendor/github.com/Rhymen/go-whatsapp/go.mod index 53ba08f5..e141f6e7 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/go.mod +++ b/vendor/github.com/Rhymen/go-whatsapp/go.mod @@ -6,7 +6,7 @@ require ( 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.0 + github.com/gorilla/websocket v1.4.1 github.com/pkg/errors v0.8.1 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 ) diff --git a/vendor/github.com/Rhymen/go-whatsapp/go.sum b/vendor/github.com/Rhymen/go-whatsapp/go.sum index 9cd2a6d6..b724cb47 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/go.sum +++ b/vendor/github.com/Rhymen/go-whatsapp/go.sum @@ -12,8 +12,9 @@ github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc 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 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= 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= diff --git a/vendor/github.com/Rhymen/go-whatsapp/media.go b/vendor/github.com/Rhymen/go-whatsapp/media.go index b15b9ae2..87827d9c 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/media.go +++ b/vendor/github.com/Rhymen/go-whatsapp/media.go @@ -10,10 +10,8 @@ import ( "fmt" "io" "io/ioutil" - "mime/multipart" "net/http" - "os" - "strings" + "net/url" "time" "github.com/Rhymen/go-whatsapp/crypto/cbc" @@ -95,7 +93,50 @@ func downloadMedia(url string) (file []byte, mac []byte, err error) { return data[:n-10], data[n-10 : n], nil } -func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) { +type MediaConn struct { + Status int `json:"status"` + MediaConn struct { + Auth string `json:"auth"` + TTL int `json:"ttl"` + Hosts []struct { + Hostname string `json:"hostname"` + IPs []string `json:"ips"` + } `json:"hosts"` + } `json:"media_conn"` +} + +func (wac *Conn) queryMediaConn() (hostname, auth string, ttl int, err error) { + queryReq := []interface{}{"query", "mediaConn"} + ch, err := wac.writeJson(queryReq) + if err != nil { + return "", "", 0, err + } + + var resp MediaConn + select { + case r := <-ch: + if err = json.Unmarshal([]byte(r), &resp); err != nil { + return "", "", 0, fmt.Errorf("error decoding query media conn response: %v", err) + } + case <-time.After(wac.msgTimeout): + return "", "", 0, fmt.Errorf("query media conn timed out") + } + + if resp.Status != 200 { + return "", "", 0, fmt.Errorf("query media conn responded with %d", resp.Status) + } + + return resp.MediaConn.Hosts[0].Hostname, resp.MediaConn.Auth, resp.MediaConn.TTL, nil +} + +var mediaTypeMap = map[MediaType]string{ + MediaImage: "/mms/image", + MediaVideo: "/mms/video", + MediaDocument: "/mms/document", + MediaAudio: "/mms/audio", +} + +func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (downloadURL string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) { data, err := ioutil.ReadAll(reader) if err != nil { return "", nil, nil, nil, 0, err @@ -128,67 +169,30 @@ func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaK sha.Write(append(enc, mac...)) fileEncSha256 = sha.Sum(nil) - var filetype string - switch appInfo { - case MediaImage: - filetype = "image" - case MediaAudio: - filetype = "audio" - case MediaDocument: - filetype = "document" - case MediaVideo: - filetype = "video" - } - - uploadReq := []interface{}{"action", "encr_upload", filetype, base64.StdEncoding.EncodeToString(fileEncSha256)} - ch, err := wac.writeJson(uploadReq) - if err != nil { - return "", nil, nil, nil, 0, err + hostname, auth, _, err := wac.queryMediaConn() + token := base64.URLEncoding.EncodeToString(fileEncSha256) + q := url.Values{ + "auth": []string{auth}, + "token": []string{token}, } - - var resp map[string]interface{} - select { - case r := <-ch: - if err = json.Unmarshal([]byte(r), &resp); err != nil { - return "", nil, nil, nil, 0, fmt.Errorf("error decoding upload response: %v", err) - } - case <-time.After(wac.msgTimeout): - return "", nil, nil, nil, 0, fmt.Errorf("restore session init timed out") + path := mediaTypeMap[appInfo] + uploadURL := url.URL{ + Scheme: "https", + Host: hostname, + Path: fmt.Sprintf("%s/%s", path, token), + RawQuery: q.Encode(), } - if int(resp["status"].(float64)) != 200 { - return "", nil, nil, nil, 0, fmt.Errorf("upload responsed with %d", resp["status"]) - } + body := bytes.NewReader(append(enc, mac...)) - var b bytes.Buffer - w := multipart.NewWriter(&b) - hashWriter, err := w.CreateFormField("hash") - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - } - io.Copy(hashWriter, strings.NewReader(base64.StdEncoding.EncodeToString(fileEncSha256))) - - fileWriter, err := w.CreateFormFile("file", "blob") - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - } - io.Copy(fileWriter, bytes.NewReader(append(enc, mac...))) - err = w.Close() - if err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - } - - req, err := http.NewRequest("POST", resp["url"].(string), &b) + req, err := http.NewRequest("POST", uploadURL.String(), body) if err != nil { return "", nil, nil, nil, 0, err } - req.Header.Set("Content-Type", w.FormDataContentType()) req.Header.Set("Origin", "https://web.whatsapp.com") req.Header.Set("Referer", "https://web.whatsapp.com/") - req.URL.Query().Set("f", "j") - client := &http.Client{} // Submit the request res, err := client.Do(req) diff --git a/vendor/github.com/Rhymen/go-whatsapp/read.go b/vendor/github.com/Rhymen/go-whatsapp/read.go index 42d91ff4..b870f5f8 100644 --- a/vendor/github.com/Rhymen/go-whatsapp/read.go +++ b/vendor/github.com/Rhymen/go-whatsapp/read.go @@ -15,7 +15,10 @@ import ( ) func (wac *Conn) readPump() { - defer wac.wg.Done() + defer func() { + wac.wg.Done() + _, _ = wac.Disconnect() + }() var readErr error var msgType int @@ -31,7 +34,6 @@ func (wac *Conn) readPump() { case <-readerFound: if readErr != nil { wac.handle(&ErrConnectionFailed{Err: readErr}) - _, _ = wac.Disconnect() return } msg, err := ioutil.ReadAll(reader) diff --git a/vendor/github.com/Rhymen/go-whatsapp/session.go b/vendor/github.com/Rhymen/go-whatsapp/session.go index e13c4504..b4690d21 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{0, 3, 3324} +var waVersion = []int{0, 4, 2080} /* Session contains session individual information. To be able to resume the connection without scanning the qr code @@ -110,7 +110,7 @@ func CheckCurrentServerVersion() ([]int, error) { login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName}, b64ClientId, true} loginChan, err := wac.writeJson(login) if err != nil { - return nil, fmt.Errorf("error writing login", err) + return nil, fmt.Errorf("error writing login: %s", err.Error()) } // Retrieve an answer from the websocket @@ -123,7 +123,7 @@ func CheckCurrentServerVersion() ([]int, error) { var resp map[string]interface{} if err = json.Unmarshal([]byte(r), &resp); err != nil { - return nil, fmt.Errorf("error decoding login", err) + return nil, fmt.Errorf("error decoding login: %s", err.Error()) } // Take the curr property as X.Y.Z and split it into as int slice @@ -151,7 +151,7 @@ func (wac *Conn) SetClientName(long, short string) error { /* SetClientVersion sets WhatsApp client version -Default value is 0.3.3324 +Default value is 0.4.2080 */ func (wac *Conn) SetClientVersion(major int, minor int, patch int) { waVersion = []int{major, minor, patch} diff --git a/vendor/modules.txt b/vendor/modules.txt index 54b6eab9..ea9b923d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -15,7 +15,7 @@ github.com/Philipp15b/go-steam/protocol/steamlang github.com/Philipp15b/go-steam/rwu github.com/Philipp15b/go-steam/socialcache github.com/Philipp15b/go-steam/steamid -# github.com/Rhymen/go-whatsapp v0.1.0 +# github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f github.com/Rhymen/go-whatsapp github.com/Rhymen/go-whatsapp/binary github.com/Rhymen/go-whatsapp/binary/proto -- cgit v1.2.3