From 035397f3c855501008e115894c22b11036449fb2 Mon Sep 17 00:00:00 2001 From: D4ryl00 Date: Wed, 21 Jun 2023 14:02:51 +0200 Subject: [PATCH 1/4] feat: implement OutOfStoreReceive and OutOfStoreSeal and move all push notification stuff in Berty Signed-off-by: D4ryl00 --- .tool-versions | 2 +- api/protocol/errcode/errcode.proto | 14 - api/protocol/protocoltypes.proto | 95 +- api/protocol/pushtypes/pushtypes.proto | 135 - api_app.go | 43 + api_client.go | 12 +- api_event.go | 4 + api_push.go | 122 - api_services_auth.go | 25 +- docs/apis/protocoltypes.md | 79 +- docs/apis/protocoltypes.swagger.json | 60 +- events.go | 3 - pkg/errcode/errcode.pb.go | 221 +- pkg/protocoltypes/events_account.go | 12 - pkg/protocoltypes/protocoltypes.pb.go | 3506 ++++++------------- pkg/pushtypes/consts.go | 3 - pkg/pushtypes/pushtypes.pb.go | 3594 -------------------- pkg/pushtypes/pushtypes.pb.gw.go | 250 -- pkg/pushtypes/pushtypes_grpc.pb.go | 150 - pkg/secretstore/secret_store.go | 13 +- pkg/secretstore/secret_store_interfaces.go | 9 +- pkg/testutil/push.go | 78 - service.go | 37 +- store_message.go | 3 +- store_metadata.go | 57 - store_metadata_index.go | 88 - testing.go | 23 +- 27 files changed, 1249 insertions(+), 7389 deletions(-) delete mode 100644 api/protocol/pushtypes/pushtypes.proto delete mode 100644 api_push.go delete mode 100644 pkg/pushtypes/consts.go delete mode 100644 pkg/pushtypes/pushtypes.pb.go delete mode 100644 pkg/pushtypes/pushtypes.pb.gw.go delete mode 100644 pkg/pushtypes/pushtypes_grpc.pb.go delete mode 100644 pkg/testutil/push.go diff --git a/.tool-versions b/.tool-versions index 5c185ad3..5df0ec7c 100644 --- a/.tool-versions +++ b/.tool-versions @@ -2,7 +2,7 @@ # https://github.com/berty/weshnet/blame/main/.tool-versions #----- -# This is simply the most recent version available to date of the lowest +# This is simply the most recent version available to date of the lowest # major version of Go which is allowed by kubo. # There is no contraindication for updating it. #----- diff --git a/api/protocol/errcode/errcode.proto b/api/protocol/errcode/errcode.proto index 08dd43cf..4d6b6254 100644 --- a/api/protocol/errcode/errcode.proto +++ b/api/protocol/errcode/errcode.proto @@ -157,20 +157,6 @@ enum ErrCode { ErrServicesDirectoryInvalidVerifiedCredential = 4205; ErrServicesDirectoryExpiredVerifiedCredential = 4206; ErrServicesDirectoryInvalidVerifiedCredentialID = 4207; - - // Services Push - - ErrPush = 6000; - ErrPushWrongAccount = 6001; - ErrPushUnableToDecrypt = 6002; - ErrPushInvalidPayload = 6003; - ErrPushInvalidServerConfig = 6004; - ErrPushMissingBundleID = 6005; - ErrPushUnknownDestination = 6006; - ErrPushProvider = 6007; - ErrPushUnknownProvider = 6008; - ErrNoProvidersConfigured = 6009; - ErrInvalidPrivateKey = 6010; } message ErrDetails { repeated ErrCode codes = 1; } diff --git a/api/protocol/protocoltypes.proto b/api/protocol/protocoltypes.proto index 4da5d717..21f88dc4 100644 --- a/api/protocol/protocoltypes.proto +++ b/api/protocol/protocoltypes.proto @@ -3,7 +3,6 @@ syntax = "proto3"; package weshnet.protocol.v1; import "gogoproto/gogo.proto"; -import "pushtypes/pushtypes.proto"; option go_package = "berty.tech/weshnet/pkg/protocoltypes"; @@ -242,15 +241,6 @@ enum EventType { // EventTypeGroupReplicating indicates that the group has been registered for replication on a server EventTypeGroupReplicating = 403; - // EventTypePushMemberTokenUpdate - EventTypePushMemberTokenUpdate = 404; - - // EventTypePushDeviceTokenRegistered - EventTypePushDeviceTokenRegistered = 405; - - // EventTypePushDeviceServerRegistered - EventTypePushDeviceServerRegistered = 406; - // EventTypeAccountVerifiedCredentialRegistered EventTypeAccountVerifiedCredentialRegistered = 500; @@ -691,8 +681,6 @@ message ServiceGetConfiguration { SettingState wifi_p2p_enabled = 7; // MultiPeerConnectivity for Darwin and Nearby for Android SettingState mdns_enabled = 8; SettingState relay_enabled = 9; - PushServiceReceiver device_push_token = 10; - PushServer device_push_server = 11; } } @@ -1380,11 +1368,6 @@ message Progress { uint64 delay = 6; } -message MemberWithDevices { - bytes member_pk = 1 [(gogoproto.customname) = "MemberPK"]; - repeated bytes devices_pks = 2 [(gogoproto.customname) = "DevicePKs"]; -} - message OutOfStoreMessage { bytes cid = 1 [(gogoproto.customname) = "CID"]; bytes device_pk = 2 [(gogoproto.customname) = "DevicePK"]; @@ -1395,63 +1378,10 @@ message OutOfStoreMessage { bytes nonce = 7; } -message PushServiceReceiver { - // token_type is the type of the token used, it allows us to act as a proxy to the appropriate push server - push.v1.PushServiceTokenType token_type = 1; - - // bundle_id is the app identifier - string bundle_id = 2 [(gogoproto.customname) = "BundleID"]; - - // token is the device identifier used - bytes token = 3; - - // recipient_public_key is the public key which will be used to encrypt the payload - bytes recipient_public_key = 4; -} - -message PushServer { - bytes server_key = 1; - string service_addr = 2; -} - -message PushDeviceTokenRegistered { - PushServiceReceiver token = 1; - - // device_pk is the public key of the device sending the message - bytes device_pk = 2 [(gogoproto.customname) = "DevicePK"]; -} - -message PushDeviceServerRegistered { - PushServer server = 1; - - // device_pk is the public key of the device sending the message - bytes device_pk = 2 [(gogoproto.customname) = "DevicePK"]; -} - -message AccountVerifiedCredentialRegistered { - // device_pk is the public key of the device sending the message - bytes device_pk = 1 [(gogoproto.customname) = "DevicePK"]; - - bytes signed_identity_public_key = 2; - - string verified_credential = 3; - - int64 registration_date = 4; - - int64 expiration_date = 5; - - string identifier = 6; - - string issuer = 7; -} - -message PushMemberTokenUpdate { - PushServer server = 1; - - bytes token = 2; - - // device_pk is the public key of the device sending the message - bytes device_pk = 3 [(gogoproto.customname) = "DevicePK"]; +message OutOfStoreMessageEnvelope { + bytes nonce = 1; + bytes box = 2; + bytes group_reference = 3; } message OutOfStoreReceive { @@ -1476,6 +1406,23 @@ message OutOfStoreSeal { } } +message AccountVerifiedCredentialRegistered { + // device_pk is the public key of the device sending the message + bytes device_pk = 1 [(gogoproto.customname) = "DevicePK"]; + + bytes signed_identity_public_key = 2; + + string verified_credential = 3; + + int64 registration_date = 4; + + int64 expiration_date = 5; + + string identifier = 6; + + string issuer = 7; +} + message FirstLastCounters { uint64 first = 1; uint64 last = 2; diff --git a/api/protocol/pushtypes/pushtypes.proto b/api/protocol/pushtypes/pushtypes.proto deleted file mode 100644 index 3d5e8285..00000000 --- a/api/protocol/pushtypes/pushtypes.proto +++ /dev/null @@ -1,135 +0,0 @@ -syntax = "proto3"; - -package weshnet.push.v1; - -import "gogoproto/gogo.proto"; - -option go_package = "berty.tech/weshnet/pkg/pushtypes"; - -option (gogoproto.marshaler_all) = true; -option (gogoproto.unmarshaler_all) = true; -option (gogoproto.sizer_all) = true; - -// PushService -service PushService { - // ServerInfo retrieves metadata about the current push service - rpc ServerInfo (PushServiceServerInfo.Request) returns (PushServiceServerInfo.Reply); - - // Send dispatch a push payload to one or multiple recipients - rpc Send(PushServiceSend.Request) returns (PushServiceSend.Reply); -} - -message PushServiceServerInfo { - message Request {} - - message Reply { - // public_key the public key used to encrypt data to the server (ie. a PushServiceReceiver), - // to be used with NaCl's Seal and Open - bytes public_key = 1; - - // supported_token_types list of token types supported by the server - repeated PushServiceSupportedTokenType supported_token_types = 2; - } -} - -message PushServiceSupportedTokenType { - string app_bundle_id = 1 [(gogoproto.customname) = "AppBundleID"]; - PushServiceTokenType token_type = 2; -} - -enum PushServiceTokenType { - PushTokenUndefined = 0; - - // PushTokenMQTT: Platform independent - PushTokenMQTT = 1; - - // PushTokenApplePushNotificationService: iOS, iPadOS, tvOS, macOS - PushTokenApplePushNotificationService = 2; - - // PushTokenFirebaseCloudMessaging: Android with GMS, Chrome OS - PushTokenFirebaseCloudMessaging = 3; - - // PushTokenWindowsPushNotificationService: Windows, XBox - PushTokenWindowsPushNotificationService = 4; - - // PushTokenHuaweiPushKit: Huawei Android devices with AppGallery - PushTokenHuaweiPushKit = 5; - - // PushTokenAmazonDeviceMessaging: Fire OS devices - PushTokenAmazonDeviceMessaging = 6; -} - -message PushServiceSend { - message Request { - OutOfStoreMessageEnvelope envelope = 1; - - PushServicePriority priority = 2; - - repeated PushServiceOpaqueReceiver receivers = 3; - } - - message Reply {} -} - -message OutOfStoreMessageEnvelope { - bytes nonce = 1; - bytes box = 2; - bytes group_reference = 4 [(gogoproto.customname) = "GroupReference"]; -} - -message OutOfStoreExposedData { - bytes nonce = 1; - bytes box = 2; -} - - -enum PushServicePriority { - PushPriorityUndefined = 0; - PushPriorityLow = 1; - PushPriorityNormal = 2; -} - -message PushServiceOpaqueReceiver { - bytes opaque_token = 1; - string service_addr = 2; -} - - -message DecryptedPush { - enum PushType { - Unknown = 0; - Message = 1; - reserved 2; // Reaction = 2; - reserved 3, 4, 5, 6; // Media, Photo, Gif, VoiceMessage - GroupInvitation = 7; - ConversationNameChanged = 8; - MemberNameChanged = 9; - reserved 10; // MemberPictureChanged - MemberDetailsChanged = 11; - } - - string account_id = 1 [(gogoproto.customname) = "AccountID"]; - string account_name = 2; - string conversation_public_key = 3; - string conversation_display_name = 4; - string member_public_key = 5; - string member_display_name = 6; - PushType push_type = 7; - string payload_attrs_json = 8 [(gogoproto.customname) = "PayloadAttrsJSON"]; - string deep_link = 9; - bool already_received = 10; - bool account_muted = 11; - bool conversation_muted = 12; - bool hide_preview = 13; -} - -message FormatedPush { - DecryptedPush.PushType push_type = 1; - string title = 2; - string subtitle = 3; - string body = 4; - string deep_link = 5; - bool muted = 6; - bool hide_preview = 7; - string conversation_identifier = 8; -} diff --git a/api_app.go b/api_app.go index 00bf504c..9dc3ec07 100644 --- a/api_app.go +++ b/api_app.go @@ -5,6 +5,7 @@ import ( "encoding/base64" "fmt" + "github.com/ipfs/go-cid" "go.uber.org/zap" "berty.tech/weshnet/pkg/errcode" @@ -48,6 +49,48 @@ func (s *service) AppMessageSend(ctx context.Context, req *protocoltypes.AppMess return &protocoltypes.AppMessageSend_Reply{CID: op.GetEntry().GetHash().Bytes()}, nil } +// OutOfStoreReceive parses a payload received outside a synchronized store +func (s *service) OutOfStoreReceive(ctx context.Context, request *protocoltypes.OutOfStoreReceive_Request) (*protocoltypes.OutOfStoreReceive_Reply, error) { + outOfStoreMessage, group, clearPayload, alreadyDecrypted, err := s.secretStore.OpenOutOfStoreMessage(ctx, request.Payload) + if err != nil { + return nil, errcode.ErrCryptoDecrypt.Wrap(err) + } + + return &protocoltypes.OutOfStoreReceive_Reply{ + Message: outOfStoreMessage, + Cleartext: clearPayload, + GroupPublicKey: group.PublicKey, + AlreadyReceived: alreadyDecrypted, + }, nil +} + +// OutOfStoreSeal creates a payload of a message present in store to be sent outside a synchronized store +func (s *service) OutOfStoreSeal(ctx context.Context, request *protocoltypes.OutOfStoreSeal_Request) (*protocoltypes.OutOfStoreSeal_Reply, error) { + gc, err := s.GetContextGroupForID(request.GroupPublicKey) + if err != nil { + return nil, err + } + + _, c, err := cid.CidFromBytes(request.CID) + if err != nil { + return nil, errcode.ErrInvalidInput.Wrap(err) + } + + sealedMessageEnvelope, err := gc.messageStore.GetOutOfStoreMessageEnvelope(ctx, c) + if err != nil { + return nil, errcode.ErrInternal.Wrap(err) + } + + sealedMessageEnvelopeBytes, err := sealedMessageEnvelope.Marshal() + if err != nil { + return nil, errcode.ErrSerialization.Wrap(err) + } + + return &protocoltypes.OutOfStoreSeal_Reply{ + Encrypted: sealedMessageEnvelopeBytes, + }, nil +} + func tyberLogGroupContext(ctx context.Context, logger *zap.Logger, gc *GroupContext) { memberPK, err := gc.MemberPubKey().Raw() if err != nil { diff --git a/api_client.go b/api_client.go index 8a475d0a..48d93ecd 100644 --- a/api_client.go +++ b/api_client.go @@ -88,12 +88,10 @@ func (s *service) ServiceGetConfiguration(ctx context.Context, req *protocoltype } return &protocoltypes.ServiceGetConfiguration_Reply{ - AccountPK: member, - DevicePK: device, - AccountGroupPK: accountGroup.Group().PublicKey, - PeerID: key.ID().Pretty(), - Listeners: listeners, - DevicePushToken: accountGroup.metadataStore.getCurrentDevicePushToken(), - DevicePushServer: accountGroup.metadataStore.getCurrentDevicePushServer(), + AccountPK: member, + DevicePK: device, + AccountGroupPK: accountGroup.Group().PublicKey, + PeerID: key.ID().Pretty(), + Listeners: listeners, }, nil } diff --git a/api_event.go b/api_event.go index 558766c0..a98466eb 100644 --- a/api_event.go +++ b/api_event.go @@ -87,6 +87,8 @@ func (s *service) GroupMetadataList(req *protocoltypes.GroupMetadataList_Request previousEvents <- protocoltypes.GroupMetadataEvent{EventContext: nil} } + cg.logger.Debug("GroupMetadataList: previous events stream ended") + return } @@ -172,6 +174,8 @@ func (s *service) GroupMessageList(req *protocoltypes.GroupMessageList_Request, previousEvents <- protocoltypes.GroupMessageEvent{EventContext: nil} } + cg.logger.Debug("GroupMessageList: previous events stream ended") + return } diff --git a/api_push.go b/api_push.go deleted file mode 100644 index 83919fde..00000000 --- a/api_push.go +++ /dev/null @@ -1,122 +0,0 @@ -package weshnet - -import ( - "context" - "crypto/tls" - "time" - - "github.com/ipfs/go-cid" - "go.uber.org/zap" - "google.golang.org/grpc" - "google.golang.org/grpc/backoff" - "google.golang.org/grpc/credentials" - "google.golang.org/grpc/credentials/insecure" - - "berty.tech/weshnet/pkg/errcode" - "berty.tech/weshnet/pkg/logutil" - "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" -) - -func (s *service) getPushClient(host string) (pushtypes.PushServiceClient, error) { - s.muPushClients.Lock() - defer s.muPushClients.Unlock() - - if cc, ok := s.pushClients[host]; ok { - return pushtypes.NewPushServiceClient(cc), nil - } - - var creds grpc.DialOption - if s.grpcInsecure { - creds = grpc.WithTransportCredentials(insecure.NewCredentials()) - } else { - tlsconfig := credentials.NewTLS(&tls.Config{ - MinVersion: tls.VersionTLS12, - }) - creds = grpc.WithTransportCredentials(tlsconfig) - } - - // retry policies - connectParams := grpc.WithConnectParams(grpc.ConnectParams{ - Backoff: backoff.Config{ - BaseDelay: 1.0 * time.Second, - Multiplier: 1.5, - Jitter: 0.2, - MaxDelay: 60 * time.Second, - }, - MinConnectTimeout: time.Second * 10, - }) - - cc, err := grpc.DialContext(s.ctx, host, creds, connectParams) - if err != nil { - return nil, err - } - s.pushClients[host] = cc - - // monitor push client state - go monitorPushServer(s.ctx, cc, s.logger) - - return pushtypes.NewPushServiceClient(cc), err -} - -func (s *service) OutOfStoreReceive(ctx context.Context, request *protocoltypes.OutOfStoreReceive_Request) (*protocoltypes.OutOfStoreReceive_Reply, error) { - outOfStoreMessage, group, clearPayload, alreadyDecrypted, err := s.secretStore.OpenOutOfStoreMessage(ctx, request.Payload) - if err != nil { - return nil, errcode.ErrCryptoDecrypt.Wrap(err) - } - - return &protocoltypes.OutOfStoreReceive_Reply{ - Message: outOfStoreMessage, - Cleartext: clearPayload, - GroupPublicKey: group.PublicKey, - AlreadyReceived: alreadyDecrypted, - }, nil -} - -func (s *service) OutOfStoreSeal(ctx context.Context, request *protocoltypes.OutOfStoreSeal_Request) (*protocoltypes.OutOfStoreSeal_Reply, error) { - gc, err := s.GetContextGroupForID(request.GroupPublicKey) - if err != nil { - return nil, err - } - - _, c, err := cid.CidFromBytes(request.CID) - if err != nil { - return nil, errcode.ErrInvalidInput.Wrap(err) - } - - sealedMessageEnvelope, err := gc.messageStore.GetOutOfStoreMessageEnvelope(ctx, c) - if err != nil { - return nil, errcode.ErrInternal.Wrap(err) - } - - sealedMessageEnvelopeBytes, err := sealedMessageEnvelope.Marshal() - if err != nil { - return nil, errcode.ErrSerialization.Wrap(err) - } - - return &protocoltypes.OutOfStoreSeal_Reply{ - Encrypted: sealedMessageEnvelopeBytes, - }, nil -} - -func (s *service) GetCurrentDevicePushConfig() (*protocoltypes.PushServiceReceiver, *protocoltypes.PushServer) { - accountGroup := s.getAccountGroup() - if accountGroup == nil { - return nil, nil - } - - currentToken := accountGroup.metadataStore.getCurrentDevicePushToken() - currentServer := accountGroup.metadataStore.getCurrentDevicePushServer() - - return currentToken, currentServer -} - -func monitorPushServer(ctx context.Context, cc *grpc.ClientConn, logger *zap.Logger) { - currentState := cc.GetState() - for cc.WaitForStateChange(ctx, currentState) { - currentState = cc.GetState() - logger.Debug("push grpc client state updated", - logutil.PrivateString("target", cc.Target()), - logutil.PrivateString("state", currentState.String())) - } -} diff --git a/api_services_auth.go b/api_services_auth.go index 0ce0afcb..630748c7 100644 --- a/api_services_auth.go +++ b/api_services_auth.go @@ -17,7 +17,6 @@ import ( "berty.tech/weshnet/pkg/errcode" "berty.tech/weshnet/pkg/logutil" "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" ) func (s *service) authInitURL(baseURL string, services ...string) (string, error) { @@ -169,21 +168,21 @@ func (s *service) AuthServiceCompleteFlow(ctx context.Context, request *protocol continue } - s.logger.Debug("registering push server", logutil.PrivateString("endpoint", service.GetServiceEndpoint())) - client, err := s.getPushClient(service.ServiceEndpoint) - if err != nil { - s.logger.Warn("unable to connect to push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) - continue - } + // s.logger.Debug("registering push server", logutil.PrivateString("endpoint", service.GetServiceEndpoint())) + // client, err := s.getPushClient(service.ServiceEndpoint) + // if err != nil { + // s.logger.Warn("unable to connect to push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) + // continue + // } - repl, err := client.ServerInfo(ctx, &pushtypes.PushServiceServerInfo_Request{}) + // repl, err := client.ServerInfo(ctx, &pushtypes.PushServiceServerInfo_Request{}) - s.logger.Debug("server info", zap.Int("supported push services ", len(repl.GetSupportedTokenTypes()))) + // s.logger.Debug("server info", zap.Int("supported push services ", len(repl.GetSupportedTokenTypes()))) - if err != nil { - s.logger.Warn("unable to get server info from push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) - continue - } + // if err != nil { + // s.logger.Warn("unable to get server info from push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) + // continue + // } // _, err = s.PushSetServer(ctx, &protocoltypes.PushSetServer_Request{ // Server: &protocoltypes.PushServer{ diff --git a/docs/apis/protocoltypes.md b/docs/apis/protocoltypes.md index 264dd172..47c92556 100644 --- a/docs/apis/protocoltypes.md +++ b/docs/apis/protocoltypes.md @@ -121,7 +121,6 @@ - [GroupMetadataPayloadSent](#weshnet-protocol-v1-GroupMetadataPayloadSent) - [GroupRemoveAdditionalRendezvousSeed](#weshnet-protocol-v1-GroupRemoveAdditionalRendezvousSeed) - [GroupReplicating](#weshnet-protocol-v1-GroupReplicating) - - [MemberWithDevices](#weshnet-protocol-v1-MemberWithDevices) - [MessageEnvelope](#weshnet-protocol-v1-MessageEnvelope) - [MessageHeaders](#weshnet-protocol-v1-MessageHeaders) - [MessageHeaders.MetadataEntry](#weshnet-protocol-v1-MessageHeaders-MetadataEntry) @@ -149,6 +148,7 @@ - [OrbitDBMessageHeads](#weshnet-protocol-v1-OrbitDBMessageHeads) - [OrbitDBMessageHeads.Box](#weshnet-protocol-v1-OrbitDBMessageHeads-Box) - [OutOfStoreMessage](#weshnet-protocol-v1-OutOfStoreMessage) + - [OutOfStoreMessageEnvelope](#weshnet-protocol-v1-OutOfStoreMessageEnvelope) - [OutOfStoreReceive](#weshnet-protocol-v1-OutOfStoreReceive) - [OutOfStoreReceive.Reply](#weshnet-protocol-v1-OutOfStoreReceive-Reply) - [OutOfStoreReceive.Request](#weshnet-protocol-v1-OutOfStoreReceive-Request) @@ -163,11 +163,6 @@ - [PeerList.Stream](#weshnet-protocol-v1-PeerList-Stream) - [Progress](#weshnet-protocol-v1-Progress) - [ProtocolMetadata](#weshnet-protocol-v1-ProtocolMetadata) - - [PushDeviceServerRegistered](#weshnet-protocol-v1-PushDeviceServerRegistered) - - [PushDeviceTokenRegistered](#weshnet-protocol-v1-PushDeviceTokenRegistered) - - [PushMemberTokenUpdate](#weshnet-protocol-v1-PushMemberTokenUpdate) - - [PushServer](#weshnet-protocol-v1-PushServer) - - [PushServiceReceiver](#weshnet-protocol-v1-PushServiceReceiver) - [RefreshContactRequest](#weshnet-protocol-v1-RefreshContactRequest) - [RefreshContactRequest.Peer](#weshnet-protocol-v1-RefreshContactRequest-Peer) - [RefreshContactRequest.Reply](#weshnet-protocol-v1-RefreshContactRequest-Reply) @@ -1126,15 +1121,6 @@ GroupRemoveAdditionalRendezvousSeed indicates that a previously added rendezvous | authentication_url | [string](#string) | | authentication_url indicates which server has been used for authentication | | replication_server | [string](#string) | | replication_server indicates which server will be used for replication | - - -### MemberWithDevices - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| member_pk | [bytes](#bytes) | | | -| devices_pks | [bytes](#bytes) | repeated | | - ### MessageEnvelope @@ -1333,6 +1319,16 @@ OrbitDBMessageHeads is the payload sent on orbitdb to share peer's heads | encrypted_payload | [bytes](#bytes) | | | | nonce | [bytes](#bytes) | | | + + +### OutOfStoreMessageEnvelope + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| nonce | [bytes](#bytes) | | | +| box | [bytes](#bytes) | | | +| group_reference | [bytes](#bytes) | | | + ### OutOfStoreReceive @@ -1445,54 +1441,6 @@ Progress define a generic object that can be used to display a progress bar for ### ProtocolMetadata - - -### PushDeviceServerRegistered - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| server | [PushServer](#weshnet-protocol-v1-PushServer) | | | -| device_pk | [bytes](#bytes) | | device_pk is the public key of the device sending the message | - - - -### PushDeviceTokenRegistered - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| token | [PushServiceReceiver](#weshnet-protocol-v1-PushServiceReceiver) | | | -| device_pk | [bytes](#bytes) | | device_pk is the public key of the device sending the message | - - - -### PushMemberTokenUpdate - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| server | [PushServer](#weshnet-protocol-v1-PushServer) | | | -| token | [bytes](#bytes) | | | -| device_pk | [bytes](#bytes) | | device_pk is the public key of the device sending the message | - - - -### PushServer - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| server_key | [bytes](#bytes) | | | -| service_addr | [string](#string) | | | - - - -### PushServiceReceiver - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| token_type | [weshnet.push.v1.PushServiceTokenType](#weshnet-push-v1-PushServiceTokenType) | | token_type is the type of the token used, it allows us to act as a proxy to the appropriate push server | -| bundle_id | [string](#string) | | bundle_id is the app identifier | -| token | [bytes](#bytes) | | token is the device identifier used | -| recipient_public_key | [bytes](#bytes) | | recipient_public_key is the public key which will be used to encrypt the payload | - ### RefreshContactRequest @@ -1595,8 +1543,6 @@ Progress define a generic object that can be used to display a progress bar for | wifi_p2p_enabled | [ServiceGetConfiguration.SettingState](#weshnet-protocol-v1-ServiceGetConfiguration-SettingState) | | MultiPeerConnectivity for Darwin and Nearby for Android | | mdns_enabled | [ServiceGetConfiguration.SettingState](#weshnet-protocol-v1-ServiceGetConfiguration-SettingState) | | | | relay_enabled | [ServiceGetConfiguration.SettingState](#weshnet-protocol-v1-ServiceGetConfiguration-SettingState) | | | -| device_push_token | [PushServiceReceiver](#weshnet-protocol-v1-PushServiceReceiver) | | | -| device_push_server | [PushServer](#weshnet-protocol-v1-PushServer) | | | @@ -1837,9 +1783,6 @@ Progress define a generic object that can be used to display a progress bar for | EventTypeAccountServiceTokenAdded | 401 | EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account | | EventTypeAccountServiceTokenRemoved | 402 | EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore | | EventTypeGroupReplicating | 403 | EventTypeGroupReplicating indicates that the group has been registered for replication on a server | -| EventTypePushMemberTokenUpdate | 404 | EventTypePushMemberTokenUpdate | -| EventTypePushDeviceTokenRegistered | 405 | EventTypePushDeviceTokenRegistered | -| EventTypePushDeviceServerRegistered | 406 | EventTypePushDeviceServerRegistered | | EventTypeAccountVerifiedCredentialRegistered | 500 | EventTypeAccountVerifiedCredentialRegistered | | EventTypeGroupMetadataPayloadSent | 1001 | EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key | diff --git a/docs/apis/protocoltypes.swagger.json b/docs/apis/protocoltypes.swagger.json index c1b74fd8..7a4b365e 100644 --- a/docs/apis/protocoltypes.swagger.json +++ b/docs/apis/protocoltypes.swagger.json @@ -566,14 +566,11 @@ "EventTypeAccountServiceTokenAdded", "EventTypeAccountServiceTokenRemoved", "EventTypeGroupReplicating", - "EventTypePushMemberTokenUpdate", - "EventTypePushDeviceTokenRegistered", - "EventTypePushDeviceServerRegistered", "EventTypeAccountVerifiedCredentialRegistered", "EventTypeGroupMetadataPayloadSent" ], "default": "EventTypeUndefined", - "title": "- EventTypeUndefined: EventTypeUndefined indicates that the value has not been set. Should not happen.\n - EventTypeGroupMemberDeviceAdded: EventTypeGroupMemberDeviceAdded indicates the payload includes that a member has added their device to the group\n - EventTypeGroupDeviceChainKeyAdded: EventTypeGroupDeviceChainKeyAdded indicates the payload includes that a member has sent their device chain key to another member\n - EventTypeAccountGroupJoined: EventTypeAccountGroupJoined indicates the payload includes that the account has joined a group\n - EventTypeAccountGroupLeft: EventTypeAccountGroupLeft indicates the payload includes that the account has left a group\n - EventTypeAccountContactRequestDisabled: EventTypeAccountContactRequestDisabled indicates the payload includes that the account has disabled incoming contact requests\n - EventTypeAccountContactRequestEnabled: EventTypeAccountContactRequestEnabled indicates the payload includes that the account has enabled incoming contact requests\n - EventTypeAccountContactRequestReferenceReset: EventTypeAccountContactRequestReferenceReset indicates the payload includes that the account has a new contact request rendezvous seed\n - EventTypeAccountContactRequestOutgoingEnqueued: EventTypeAccountContactRequestOutgoingEnqueued indicates the payload includes that the account will attempt to send a new contact request\n - EventTypeAccountContactRequestOutgoingSent: EventTypeAccountContactRequestOutgoingSent indicates the payload includes that the account has sent a contact request\n - EventTypeAccountContactRequestIncomingReceived: EventTypeAccountContactRequestIncomingReceived indicates the payload includes that the account has received a contact request\n - EventTypeAccountContactRequestIncomingDiscarded: EventTypeAccountContactRequestIncomingDiscarded indicates the payload includes that the account has ignored a contact request\n - EventTypeAccountContactRequestIncomingAccepted: EventTypeAccountContactRequestIncomingAccepted indicates the payload includes that the account has accepted a contact request\n - EventTypeAccountContactBlocked: EventTypeAccountContactBlocked indicates the payload includes that the account has blocked a contact\n - EventTypeAccountContactUnblocked: EventTypeAccountContactUnblocked indicates the payload includes that the account has unblocked a contact\n - EventTypeContactAliasKeyAdded: EventTypeContactAliasKeyAdded indicates the payload includes that the contact group has received an alias key\n - EventTypeMultiMemberGroupAliasResolverAdded: EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof\n - EventTypeMultiMemberGroupInitialMemberAnnounced: EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner\n - EventTypeMultiMemberGroupAdminRoleGranted: EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin\n - EventTypeAccountServiceTokenAdded: EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account\n - EventTypeAccountServiceTokenRemoved: EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore\n - EventTypeGroupReplicating: EventTypeGroupReplicating indicates that the group has been registered for replication on a server\n - EventTypePushMemberTokenUpdate: EventTypePushMemberTokenUpdate\n - EventTypePushDeviceTokenRegistered: EventTypePushDeviceTokenRegistered\n - EventTypePushDeviceServerRegistered: EventTypePushDeviceServerRegistered\n - EventTypeAccountVerifiedCredentialRegistered: EventTypeAccountVerifiedCredentialRegistered\n - EventTypeGroupMetadataPayloadSent: EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key" + "title": "- EventTypeUndefined: EventTypeUndefined indicates that the value has not been set. Should not happen.\n - EventTypeGroupMemberDeviceAdded: EventTypeGroupMemberDeviceAdded indicates the payload includes that a member has added their device to the group\n - EventTypeGroupDeviceChainKeyAdded: EventTypeGroupDeviceChainKeyAdded indicates the payload includes that a member has sent their device chain key to another member\n - EventTypeAccountGroupJoined: EventTypeAccountGroupJoined indicates the payload includes that the account has joined a group\n - EventTypeAccountGroupLeft: EventTypeAccountGroupLeft indicates the payload includes that the account has left a group\n - EventTypeAccountContactRequestDisabled: EventTypeAccountContactRequestDisabled indicates the payload includes that the account has disabled incoming contact requests\n - EventTypeAccountContactRequestEnabled: EventTypeAccountContactRequestEnabled indicates the payload includes that the account has enabled incoming contact requests\n - EventTypeAccountContactRequestReferenceReset: EventTypeAccountContactRequestReferenceReset indicates the payload includes that the account has a new contact request rendezvous seed\n - EventTypeAccountContactRequestOutgoingEnqueued: EventTypeAccountContactRequestOutgoingEnqueued indicates the payload includes that the account will attempt to send a new contact request\n - EventTypeAccountContactRequestOutgoingSent: EventTypeAccountContactRequestOutgoingSent indicates the payload includes that the account has sent a contact request\n - EventTypeAccountContactRequestIncomingReceived: EventTypeAccountContactRequestIncomingReceived indicates the payload includes that the account has received a contact request\n - EventTypeAccountContactRequestIncomingDiscarded: EventTypeAccountContactRequestIncomingDiscarded indicates the payload includes that the account has ignored a contact request\n - EventTypeAccountContactRequestIncomingAccepted: EventTypeAccountContactRequestIncomingAccepted indicates the payload includes that the account has accepted a contact request\n - EventTypeAccountContactBlocked: EventTypeAccountContactBlocked indicates the payload includes that the account has blocked a contact\n - EventTypeAccountContactUnblocked: EventTypeAccountContactUnblocked indicates the payload includes that the account has unblocked a contact\n - EventTypeContactAliasKeyAdded: EventTypeContactAliasKeyAdded indicates the payload includes that the contact group has received an alias key\n - EventTypeMultiMemberGroupAliasResolverAdded: EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof\n - EventTypeMultiMemberGroupInitialMemberAnnounced: EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner\n - EventTypeMultiMemberGroupAdminRoleGranted: EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin\n - EventTypeAccountServiceTokenAdded: EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account\n - EventTypeAccountServiceTokenRemoved: EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore\n - EventTypeGroupReplicating: EventTypeGroupReplicating indicates that the group has been registered for replication on a server\n - EventTypeAccountVerifiedCredentialRegistered: EventTypeAccountVerifiedCredentialRegistered\n - EventTypeGroupMetadataPayloadSent: EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key" }, "v1Group": { "type": "object", @@ -904,55 +901,6 @@ "v1ProtocolMetadata": { "type": "object" }, - "v1PushServer": { - "type": "object", - "properties": { - "server_key": { - "type": "string", - "format": "byte" - }, - "service_addr": { - "type": "string" - } - } - }, - "v1PushServiceReceiver": { - "type": "object", - "properties": { - "token_type": { - "$ref": "#/definitions/v1PushServiceTokenType", - "title": "token_type is the type of the token used, it allows us to act as a proxy to the appropriate push server" - }, - "bundle_id": { - "type": "string", - "title": "bundle_id is the app identifier" - }, - "token": { - "type": "string", - "format": "byte", - "title": "token is the device identifier used" - }, - "recipient_public_key": { - "type": "string", - "format": "byte", - "title": "recipient_public_key is the public key which will be used to encrypt the payload" - } - } - }, - "v1PushServiceTokenType": { - "type": "string", - "enum": [ - "PushTokenUndefined", - "PushTokenMQTT", - "PushTokenApplePushNotificationService", - "PushTokenFirebaseCloudMessaging", - "PushTokenWindowsPushNotificationService", - "PushTokenHuaweiPushKit", - "PushTokenAmazonDeviceMessaging" - ], - "default": "PushTokenUndefined", - "title": "- PushTokenMQTT: PushTokenMQTT: Platform independent\n - PushTokenApplePushNotificationService: PushTokenApplePushNotificationService: iOS, iPadOS, tvOS, macOS\n - PushTokenFirebaseCloudMessaging: PushTokenFirebaseCloudMessaging: Android with GMS, Chrome OS\n - PushTokenWindowsPushNotificationService: PushTokenWindowsPushNotificationService: Windows, XBox\n - PushTokenHuaweiPushKit: PushTokenHuaweiPushKit: Huawei Android devices with AppGallery\n - PushTokenAmazonDeviceMessaging: PushTokenAmazonDeviceMessaging: Fire OS devices" - }, "v1RefreshContactRequestPeer": { "type": "object", "properties": { @@ -1033,12 +981,6 @@ }, "relay_enabled": { "$ref": "#/definitions/ServiceGetConfigurationSettingState" - }, - "device_push_token": { - "$ref": "#/definitions/v1PushServiceReceiver" - }, - "device_push_server": { - "$ref": "#/definitions/v1PushServer" } } }, diff --git a/events.go b/events.go index 1fa8f958..f9332ad1 100644 --- a/events.go +++ b/events.go @@ -39,9 +39,6 @@ var eventTypesMapper = map[protocoltypes.EventType]struct { protocoltypes.EventTypeAccountServiceTokenAdded: {Message: &protocoltypes.AccountServiceTokenAdded{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeAccountServiceTokenRemoved: {Message: &protocoltypes.AccountServiceTokenRemoved{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeGroupReplicating: {Message: &protocoltypes.GroupReplicating{}, SigChecker: sigCheckerDeviceSigned}, - protocoltypes.EventTypePushDeviceServerRegistered: {Message: &protocoltypes.PushDeviceServerRegistered{}, SigChecker: sigCheckerDeviceSigned}, - protocoltypes.EventTypePushDeviceTokenRegistered: {Message: &protocoltypes.PushDeviceTokenRegistered{}, SigChecker: sigCheckerDeviceSigned}, - protocoltypes.EventTypePushMemberTokenUpdate: {Message: &protocoltypes.PushMemberTokenUpdate{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeAccountVerifiedCredentialRegistered: {Message: &protocoltypes.AccountVerifiedCredentialRegistered{}, SigChecker: sigCheckerDeviceSigned}, } diff --git a/pkg/errcode/errcode.pb.go b/pkg/errcode/errcode.pb.go index f468f7bf..f96368f3 100644 --- a/pkg/errcode/errcode.pb.go +++ b/pkg/errcode/errcode.pb.go @@ -122,17 +122,6 @@ const ( ErrServicesDirectoryInvalidVerifiedCredential ErrCode = 4205 ErrServicesDirectoryExpiredVerifiedCredential ErrCode = 4206 ErrServicesDirectoryInvalidVerifiedCredentialID ErrCode = 4207 - ErrPush ErrCode = 6000 - ErrPushWrongAccount ErrCode = 6001 - ErrPushUnableToDecrypt ErrCode = 6002 - ErrPushInvalidPayload ErrCode = 6003 - ErrPushInvalidServerConfig ErrCode = 6004 - ErrPushMissingBundleID ErrCode = 6005 - ErrPushUnknownDestination ErrCode = 6006 - ErrPushProvider ErrCode = 6007 - ErrPushUnknownProvider ErrCode = 6008 - ErrNoProvidersConfigured ErrCode = 6009 - ErrInvalidPrivateKey ErrCode = 6010 ) var ErrCode_name = map[int32]string{ @@ -232,17 +221,6 @@ var ErrCode_name = map[int32]string{ 4205: "ErrServicesDirectoryInvalidVerifiedCredential", 4206: "ErrServicesDirectoryExpiredVerifiedCredential", 4207: "ErrServicesDirectoryInvalidVerifiedCredentialID", - 6000: "ErrPush", - 6001: "ErrPushWrongAccount", - 6002: "ErrPushUnableToDecrypt", - 6003: "ErrPushInvalidPayload", - 6004: "ErrPushInvalidServerConfig", - 6005: "ErrPushMissingBundleID", - 6006: "ErrPushUnknownDestination", - 6007: "ErrPushProvider", - 6008: "ErrPushUnknownProvider", - 6009: "ErrNoProvidersConfigured", - 6010: "ErrInvalidPrivateKey", } var ErrCode_value = map[string]int32{ @@ -342,17 +320,6 @@ var ErrCode_value = map[string]int32{ "ErrServicesDirectoryInvalidVerifiedCredential": 4205, "ErrServicesDirectoryExpiredVerifiedCredential": 4206, "ErrServicesDirectoryInvalidVerifiedCredentialID": 4207, - "ErrPush": 6000, - "ErrPushWrongAccount": 6001, - "ErrPushUnableToDecrypt": 6002, - "ErrPushInvalidPayload": 6003, - "ErrPushInvalidServerConfig": 6004, - "ErrPushMissingBundleID": 6005, - "ErrPushUnknownDestination": 6006, - "ErrPushProvider": 6007, - "ErrPushUnknownProvider": 6008, - "ErrNoProvidersConfigured": 6009, - "ErrInvalidPrivateKey": 6010, } func (x ErrCode) String() string { @@ -418,104 +385,96 @@ func init() { func init() { proto.RegisterFile("errcode/errcode.proto", fileDescriptor_fb5abb189af31c1a) } var fileDescriptor_fb5abb189af31c1a = []byte{ - // 1552 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x57, 0xdb, 0x6f, 0x9c, 0x47, - 0x15, 0xef, 0x36, 0xd4, 0x97, 0x71, 0x1b, 0x9f, 0x4c, 0x9c, 0xc4, 0x49, 0x5b, 0xef, 0x36, 0x14, - 0x28, 0x95, 0xba, 0x86, 0x52, 0x21, 0x21, 0xf1, 0xb2, 0xde, 0xdd, 0x24, 0x2b, 0xc7, 0x17, 0xed, - 0xda, 0x54, 0xe2, 0x6d, 0xfc, 0xcd, 0xf1, 0xb7, 0x53, 0x7f, 0x3b, 0xf3, 0x75, 0xbe, 0xd9, 0x8d, - 0xb7, 0xc0, 0x1b, 0x20, 0xf1, 0x06, 0x52, 0xb9, 0x95, 0xfb, 0x1d, 0x24, 0x90, 0xb8, 0xfd, 0x11, - 0x05, 0xda, 0xc4, 0x09, 0xbc, 0x20, 0x81, 0x04, 0x79, 0xca, 0x8d, 0xfb, 0x2d, 0xf0, 0x84, 0xe6, - 0xb2, 0xeb, 0x6f, 0xed, 0x75, 0x10, 0x4f, 0xf6, 0x77, 0xce, 0xef, 0xdc, 0xe6, 0x9c, 0xf9, 0xcd, - 0x59, 0x72, 0x0a, 0xb5, 0x8e, 0x14, 0xc7, 0xc5, 0xf0, 0xb7, 0x9c, 0x6a, 0x65, 0x14, 0x9d, 0xbd, - 0x82, 0x59, 0x5b, 0xa2, 0x29, 0x07, 0xf1, 0xb9, 0xb9, 0x58, 0xc5, 0xca, 0xe9, 0x16, 0xed, 0x7f, - 0x1e, 0x76, 0xfe, 0xfd, 0x84, 0xd4, 0xb5, 0xae, 0xa1, 0x61, 0x22, 0xc9, 0x68, 0x99, 0x3c, 0x62, - 0xb1, 0xd9, 0x7c, 0xa1, 0x74, 0xec, 0x99, 0xe3, 0xcf, 0xcf, 0x97, 0x0f, 0x38, 0x29, 0xd7, 0xb5, - 0xae, 0x2a, 0x8e, 0x4d, 0x0f, 0x7b, 0xf6, 0xd7, 0xf3, 0x64, 0x32, 0x88, 0xe8, 0x63, 0x64, 0x7a, - 0x53, 0x72, 0xdc, 0x16, 0x12, 0x39, 0x3c, 0x44, 0xa7, 0xc9, 0x5b, 0x36, 0xd6, 0x6a, 0x6b, 0xf0, - 0xda, 0x23, 0xf4, 0x34, 0x39, 0x51, 0xd7, 0x7a, 0x55, 0x99, 0x46, 0x27, 0x4d, 0xb0, 0x83, 0xd2, - 0x20, 0x87, 0x4f, 0x4c, 0x50, 0x20, 0x33, 0x75, 0xad, 0x1b, 0xd2, 0xa0, 0x96, 0x2c, 0x81, 0xfb, - 0x13, 0xf4, 0x24, 0x99, 0x75, 0x92, 0x1e, 0x4b, 0x04, 0x6f, 0xc8, 0xb4, 0x6b, 0x80, 0x8f, 0x0a, - 0x9b, 0x4c, 0xc6, 0x08, 0x18, 0x84, 0x2b, 0x22, 0xcb, 0x84, 0x8c, 0x3d, 0x72, 0x9b, 0xce, 0x11, - 0xa8, 0x6b, 0xdd, 0x42, 0x2d, 0x58, 0x22, 0x5e, 0x61, 0x46, 0x28, 0x09, 0x31, 0x3d, 0x4d, 0xa8, - 0x2b, 0x31, 0x1b, 0x91, 0xb7, 0xe9, 0x09, 0xf2, 0x98, 0x45, 0x1b, 0x8d, 0xac, 0xd3, 0x44, 0xc6, - 0x41, 0x50, 0x4a, 0x8e, 0x0f, 0x45, 0x2f, 0x6a, 0x61, 0x10, 0x5e, 0x0a, 0xe6, 0x5e, 0xb6, 0xa1, - 0x99, 0xcc, 0xb6, 0x95, 0xee, 0x80, 0xa4, 0x67, 0xc9, 0xa9, 0xa1, 0xbc, 0x85, 0x92, 0x57, 0x24, - 0xaf, 0x26, 0x2a, 0x43, 0x50, 0x74, 0x9e, 0xcc, 0x0d, 0x55, 0x97, 0x90, 0x71, 0xd4, 0xde, 0x59, - 0x4a, 0xcf, 0x90, 0x93, 0x07, 0x34, 0x2e, 0x72, 0x36, 0x92, 0x4c, 0x4b, 0xc8, 0x1d, 0x78, 0x79, - 0x24, 0x80, 0xf3, 0x5c, 0x91, 0xbc, 0x89, 0x51, 0x0f, 0x74, 0x28, 0x34, 0x54, 0xbf, 0xc2, 0xd2, - 0x65, 0xec, 0xc3, 0x0e, 0x3d, 0xee, 0x7b, 0xb9, 0xe4, 0x83, 0x25, 0xb6, 0x23, 0xee, 0xdb, 0x85, - 0xe8, 0x50, 0x20, 0x8f, 0xba, 0xcf, 0x1a, 0x66, 0x46, 0xab, 0x3e, 0xec, 0x0e, 0x25, 0x2b, 0x22, - 0xd6, 0xcc, 0x20, 0xf4, 0xe9, 0xac, 0x6b, 0x89, 0x35, 0x49, 0x13, 0xd6, 0x87, 0x57, 0x86, 0x90, - 0x26, 0x66, 0x46, 0x69, 0x84, 0x0f, 0x0d, 0xbd, 0xae, 0xa5, 0x28, 0xe1, 0xc3, 0xc3, 0xa0, 0xbe, - 0xf6, 0x8f, 0xd0, 0x05, 0x72, 0xd6, 0x4e, 0x84, 0xee, 0xa7, 0x46, 0x35, 0x99, 0xe4, 0xaa, 0x73, - 0x11, 0x25, 0x6a, 0x7f, 0xe8, 0xaf, 0x17, 0xe8, 0xe3, 0xe4, 0xf4, 0x50, 0xbf, 0x8c, 0xfd, 0x9c, - 0xf2, 0x67, 0x05, 0xfa, 0x24, 0x99, 0x1f, 0x2a, 0x57, 0x95, 0x8c, 0x30, 0xa7, 0xfe, 0x79, 0x81, - 0x9e, 0x71, 0xad, 0xf0, 0xea, 0x96, 0x88, 0x25, 0x33, 0x5d, 0x8d, 0xf0, 0x8b, 0x02, 0x7d, 0x2b, - 0x59, 0x38, 0xac, 0xf8, 0x00, 0x6a, 0xb1, 0x2d, 0x22, 0x6f, 0xfd, 0x46, 0x81, 0x9e, 0x72, 0x87, - 0xe6, 0x41, 0x35, 0x8c, 0xec, 0x5f, 0x78, 0xb3, 0x40, 0x9f, 0x20, 0x67, 0x0e, 0x8a, 0xd7, 0x59, - 0x3f, 0x51, 0x8c, 0xc3, 0xd5, 0x51, 0xa3, 0xba, 0xf4, 0x46, 0xd7, 0x0e, 0x55, 0x51, 0x55, 0xb2, - 0x87, 0x3a, 0xb3, 0x81, 0xf6, 0x0a, 0x74, 0xde, 0x35, 0xd9, 0x2b, 0xab, 0x22, 0x6d, 0xa3, 0x6e, - 0x48, 0x61, 0xe0, 0xfa, 0x21, 0xb3, 0x1a, 0x6a, 0xd1, 0xf3, 0xf9, 0xdd, 0x28, 0xd0, 0x19, 0x32, - 0x61, 0x9b, 0xca, 0x52, 0xf8, 0xfe, 0xc3, 0x74, 0xd6, 0x1d, 0xeb, 0x05, 0xa5, 0xeb, 0x2c, 0x6a, - 0xc3, 0x0f, 0x1e, 0xa6, 0x27, 0xdd, 0x68, 0x2e, 0x63, 0xdf, 0xf5, 0xe1, 0x22, 0x1a, 0xf8, 0xe4, - 0xb1, 0x03, 0xc2, 0xf5, 0xae, 0x81, 0x4f, 0x1d, 0x0b, 0xd7, 0x6a, 0x55, 0x99, 0x0b, 0xaa, 0x2b, - 0x39, 0xbc, 0x3a, 0x80, 0xad, 0xe9, 0x2d, 0x61, 0x6a, 0x4b, 0x2e, 0x97, 0x5b, 0x93, 0xa3, 0x42, - 0xd7, 0xcc, 0xdb, 0x93, 0xa1, 0xdc, 0x20, 0xac, 0xa4, 0x29, 0x4a, 0x0e, 0x77, 0x26, 0x43, 0x53, - 0x83, 0xf8, 0xe0, 0x4d, 0xba, 0x3b, 0x19, 0x2a, 0x0e, 0xfa, 0x96, 0xcd, 0xa5, 0xca, 0x32, 0x03, - 0xf7, 0x26, 0xe9, 0x3b, 0xc8, 0xf9, 0xba, 0xd6, 0x97, 0x98, 0xe4, 0x59, 0x9b, 0xed, 0xe0, 0xda, - 0x15, 0x59, 0x4f, 0xdb, 0xd8, 0x41, 0xcd, 0x12, 0xdf, 0x7d, 0x7b, 0x75, 0xe0, 0x8d, 0x29, 0xfa, - 0x36, 0x52, 0xca, 0x03, 0xd7, 0x11, 0x75, 0x1e, 0xe9, 0x06, 0xff, 0xcd, 0x29, 0xba, 0x48, 0x9e, - 0xcd, 0xc3, 0x9a, 0xf8, 0x72, 0x17, 0x33, 0x83, 0xba, 0xd2, 0x35, 0x6d, 0x94, 0xc6, 0xb6, 0x1b, - 0x97, 0xd4, 0xae, 0xf7, 0x0d, 0x57, 0xa7, 0xe8, 0x3b, 0xc9, 0xd3, 0xa3, 0x06, 0x59, 0xaa, 0x24, - 0x47, 0x5d, 0x89, 0x22, 0x4c, 0xcd, 0x3e, 0xf4, 0xda, 0x14, 0x2d, 0x92, 0x73, 0x63, 0x7d, 0x5f, - 0xc2, 0x24, 0x51, 0xb0, 0x37, 0x06, 0x10, 0x7c, 0x79, 0xc0, 0xf5, 0x29, 0xfa, 0x76, 0xf2, 0xd4, - 0xff, 0xcc, 0x0e, 0x6e, 0x4c, 0xd1, 0x12, 0x79, 0xfc, 0x01, 0x49, 0xc1, 0x2f, 0x0f, 0x1d, 0xc7, - 0xbe, 0xa7, 0x68, 0x47, 0xaa, 0x2b, 0x09, 0xf2, 0x18, 0xe1, 0x57, 0x53, 0xf4, 0x29, 0xf2, 0x84, - 0xe3, 0x5f, 0x69, 0x58, 0x64, 0x02, 0xa8, 0xc5, 0x3a, 0x58, 0x89, 0x22, 0xd5, 0x95, 0x06, 0x7e, - 0x38, 0x1d, 0x0e, 0x60, 0x14, 0x12, 0xbe, 0x2a, 0x89, 0x46, 0xc6, 0xfb, 0x15, 0xce, 0x91, 0xc3, - 0x8f, 0xa6, 0xe9, 0xd3, 0xa4, 0x78, 0x14, 0x74, 0x29, 0x51, 0xd1, 0x0e, 0x72, 0xf8, 0xf1, 0x74, - 0x28, 0x72, 0x2c, 0x6a, 0xff, 0x01, 0xf8, 0xc9, 0x34, 0x7d, 0x8e, 0x3c, 0x73, 0x08, 0xd7, 0x90, - 0x91, 0xea, 0x08, 0x19, 0x87, 0xc8, 0x4d, 0x8c, 0x50, 0xf4, 0x90, 0xc3, 0x4f, 0xa7, 0xc3, 0xe1, - 0x5e, 0xd4, 0xaa, 0x9b, 0xae, 0x60, 0x67, 0x0b, 0xf5, 0x65, 0x15, 0xd7, 0x7b, 0x28, 0x8d, 0x9b, - 0xcd, 0x57, 0x49, 0xc8, 0x6e, 0x0c, 0x60, 0x9f, 0x0a, 0x3e, 0x4d, 0xc2, 0x89, 0xe4, 0x50, 0x9b, - 0xd2, 0x9e, 0x98, 0x74, 0x92, 0x46, 0x0d, 0x3e, 0x43, 0xe8, 0x79, 0xf2, 0xe4, 0x00, 0xd2, 0xc2, - 0x48, 0xa3, 0x59, 0x33, 0x6d, 0xb4, 0x0f, 0x84, 0xf1, 0x16, 0xf0, 0x59, 0x12, 0x8a, 0xcc, 0x61, - 0x42, 0xc6, 0x2d, 0x94, 0x66, 0x43, 0x05, 0xdc, 0xe7, 0x48, 0x98, 0x7c, 0xef, 0xdc, 0xbf, 0x50, - 0x1b, 0xfd, 0x14, 0xe1, 0xf3, 0x84, 0xce, 0xb9, 0x17, 0xca, 0x27, 0xe2, 0x89, 0x1a, 0x5e, 0x23, - 0xe1, 0x82, 0x39, 0x69, 0x25, 0x32, 0xf6, 0xf6, 0x23, 0x7c, 0x81, 0x04, 0x66, 0x73, 0xe2, 0x1a, - 0xb2, 0x81, 0xe2, 0x8b, 0x84, 0x9e, 0x70, 0xfc, 0x1b, 0xfc, 0x6f, 0x2b, 0xf8, 0xd2, 0x88, 0xe3, - 0x50, 0x1b, 0x7c, 0x79, 0x04, 0xe8, 0x0e, 0xec, 0x2b, 0x24, 0x4c, 0xd9, 0x0a, 0x66, 0x19, 0x8b, - 0x71, 0x19, 0xfb, 0xeb, 0x96, 0xa2, 0x32, 0x83, 0x32, 0x72, 0x54, 0xf1, 0x9b, 0x99, 0x07, 0x21, - 0x2c, 0xc3, 0xfc, 0x76, 0x26, 0x04, 0x6b, 0xa1, 0xee, 0x89, 0x08, 0x33, 0x3b, 0xc7, 0xf0, 0xd5, - 0x62, 0x38, 0xc1, 0xbc, 0xd4, 0xbe, 0xee, 0x52, 0x18, 0x47, 0x0b, 0xc8, 0xe1, 0x6b, 0xc5, 0xc0, - 0x19, 0x79, 0xcc, 0x8b, 0x5a, 0xc9, 0xb8, 0x65, 0x6c, 0x65, 0x5f, 0x2f, 0x06, 0xce, 0xce, 0xeb, - 0x07, 0x4f, 0xbc, 0xbb, 0x0d, 0x19, 0xc2, 0x37, 0x8a, 0xf4, 0x9c, 0x7f, 0x03, 0x73, 0x20, 0xfb, - 0x3f, 0x6a, 0xf8, 0x66, 0x31, 0x74, 0x3a, 0xaf, 0xb3, 0x7b, 0x48, 0xb5, 0xcd, 0x92, 0x04, 0xed, - 0x92, 0xf0, 0xad, 0x62, 0x60, 0x9f, 0x83, 0xe6, 0x22, 0xc2, 0x41, 0xaf, 0xd4, 0x0e, 0x4a, 0xf8, - 0xf6, 0x03, 0x80, 0xab, 0xca, 0xb4, 0xba, 0x69, 0xaa, 0xb4, 0xdd, 0x59, 0xbe, 0x53, 0x0c, 0x27, - 0x96, 0x07, 0x86, 0x1e, 0x78, 0x57, 0xdf, 0x1d, 0x57, 0x77, 0x08, 0xb6, 0xd9, 0xbc, 0x0c, 0xdf, - 0x3b, 0x50, 0x92, 0x7d, 0x67, 0x07, 0x4f, 0xd4, 0x47, 0x4b, 0xa3, 0xde, 0x73, 0xba, 0x50, 0xf4, - 0xc7, 0x4a, 0xe1, 0x36, 0x1f, 0x46, 0x84, 0x11, 0xab, 0x4b, 0x9e, 0x2a, 0x21, 0x0d, 0x7c, 0xbc, - 0x44, 0xcf, 0xfa, 0x2d, 0x24, 0x24, 0x52, 0x13, 0x1a, 0x23, 0xa3, 0x74, 0x1f, 0x6e, 0x95, 0xe8, - 0xfb, 0xc8, 0x0b, 0xe3, 0x54, 0x21, 0x51, 0xff, 0x70, 0x22, 0xaf, 0x6a, 0xe4, 0x96, 0xb5, 0x58, - 0xd2, 0xea, 0x6e, 0xbd, 0x84, 0x91, 0x81, 0xdb, 0xa5, 0x40, 0xc0, 0x87, 0x4c, 0xeb, 0xbb, 0x22, - 0x33, 0x42, 0xc6, 0x4d, 0x8c, 0x94, 0xe6, 0xc3, 0xc7, 0xe7, 0x4e, 0x89, 0xbe, 0x97, 0xbc, 0x7b, - 0x9c, 0x81, 0x07, 0x5e, 0x76, 0xac, 0x62, 0x57, 0x27, 0x26, 0xcd, 0x92, 0x2b, 0x88, 0x45, 0xc8, - 0xe1, 0x6e, 0x89, 0xbe, 0x40, 0x16, 0xc7, 0x07, 0xb2, 0x35, 0x0b, 0x13, 0xa0, 0x17, 0x12, 0x16, - 0x5b, 0x6e, 0x11, 0x1a, 0x39, 0xdc, 0x2b, 0xd1, 0xe7, 0xc9, 0x73, 0xff, 0x57, 0x65, 0xf0, 0x87, - 0x23, 0x6d, 0xea, 0xbb, 0xa9, 0xf5, 0x3a, 0xc6, 0xe6, 0x8f, 0x47, 0x66, 0x77, 0x64, 0x9c, 0x46, - 0x0d, 0xfe, 0x54, 0xa2, 0x8f, 0xba, 0x75, 0x79, 0xbd, 0x9b, 0xb5, 0xe1, 0xcf, 0xe5, 0xc0, 0x1d, - 0xf6, 0xcb, 0xdd, 0x8c, 0x01, 0x67, 0xff, 0xa5, 0x1c, 0xf6, 0x04, 0xab, 0xd9, 0x94, 0x6c, 0x2b, - 0xc1, 0x8d, 0xe1, 0xc2, 0xf2, 0xd7, 0x72, 0x18, 0x20, 0xab, 0x0c, 0xd1, 0x06, 0xeb, 0xca, 0xdf, - 0xca, 0x81, 0x44, 0x73, 0x3a, 0x3f, 0x39, 0x55, 0x25, 0xb7, 0x45, 0x0c, 0x7f, 0xcf, 0x7b, 0x0e, - 0x13, 0xb3, 0xd4, 0x95, 0x3c, 0xc1, 0x46, 0x0d, 0xfe, 0x51, 0x0e, 0xa3, 0xeb, 0xc3, 0xba, 0xa1, - 0xb6, 0x9c, 0x28, 0xa4, 0x1f, 0xcf, 0x7f, 0x96, 0x03, 0x19, 0x58, 0xfd, 0xba, 0x56, 0x3d, 0xc1, - 0x51, 0xc3, 0xbf, 0x46, 0x93, 0x75, 0x56, 0x43, 0xe5, 0xfd, 0x72, 0xd8, 0xe8, 0x56, 0xd5, 0x40, - 0x96, 0xf9, 0x54, 0xba, 0xb6, 0x5d, 0xff, 0x2e, 0x87, 0x19, 0x1d, 0xd4, 0xe1, 0xb6, 0x21, 0xcb, - 0x43, 0xf0, 0x9f, 0xf2, 0xd2, 0xbb, 0xf6, 0x7e, 0xbf, 0xf0, 0xd0, 0xeb, 0x37, 0x17, 0x0a, 0x7b, - 0x37, 0x17, 0x0a, 0xbf, 0xbb, 0xb9, 0x50, 0xf8, 0xe0, 0xc2, 0x16, 0x6a, 0xd3, 0x2f, 0x1b, 0x8c, - 0xda, 0x8b, 0xe1, 0x87, 0xc9, 0x62, 0xba, 0x13, 0x0f, 0x7e, 0xf8, 0x6c, 0x4d, 0xb8, 0x9f, 0x34, - 0xef, 0xf9, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x32, 0x17, 0x7f, 0x89, 0x12, 0x0d, 0x00, 0x00, + // 1413 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xc9, 0x6f, 0x54, 0x47, + 0x1a, 0xa7, 0x61, 0xf0, 0x52, 0x1e, 0xf0, 0x47, 0x61, 0x8c, 0xd9, 0xdc, 0x0d, 0xc3, 0xcc, 0x30, + 0x48, 0xd8, 0x33, 0x0c, 0x1a, 0x69, 0xa4, 0x5c, 0xda, 0xee, 0x06, 0x2c, 0xe3, 0x45, 0xdd, 0x26, + 0x48, 0xb9, 0x95, 0x5f, 0x7d, 0x7e, 0x5d, 0xf8, 0x75, 0xd5, 0xa3, 0x5e, 0xb5, 0x71, 0x93, 0xe4, + 0x96, 0x44, 0xca, 0x2d, 0x91, 0xc8, 0x46, 0xf6, 0x3d, 0x91, 0x82, 0x94, 0xed, 0x8f, 0x20, 0x09, + 0x8b, 0x21, 0x39, 0x26, 0x52, 0xc2, 0x89, 0x2d, 0xc9, 0x35, 0xc7, 0xa8, 0xea, 0x95, 0xdb, 0xdd, + 0x76, 0x9b, 0x28, 0xa7, 0xee, 0xf7, 0xfb, 0x7e, 0xdf, 0x5e, 0xf5, 0x7d, 0x45, 0x76, 0xa0, 0xd6, + 0x81, 0xe2, 0x38, 0xec, 0x7f, 0x87, 0x62, 0xad, 0x8c, 0xa2, 0xbd, 0xe7, 0x31, 0xa9, 0x48, 0x34, + 0x43, 0x1e, 0xde, 0xdd, 0x17, 0xaa, 0x50, 0x39, 0xd9, 0xb0, 0xfd, 0x97, 0xd2, 0x0e, 0x3c, 0x42, + 0x48, 0x51, 0xeb, 0x02, 0x1a, 0x26, 0xa2, 0x84, 0x0e, 0x91, 0xcd, 0x96, 0x9b, 0x0c, 0x64, 0x72, + 0x9b, 0x0e, 0x6d, 0x3d, 0x3a, 0x30, 0xb4, 0xca, 0xc8, 0x50, 0x51, 0xeb, 0x51, 0xc5, 0xb1, 0x94, + 0xd2, 0x0e, 0x5f, 0xee, 0x27, 0x9d, 0x1e, 0xa2, 0x5b, 0x48, 0xf7, 0x69, 0xc9, 0x71, 0x4e, 0x48, + 0xe4, 0xb0, 0x81, 0x76, 0x93, 0xbf, 0xcc, 0x4c, 0x15, 0xa6, 0xe0, 0xd2, 0x66, 0xda, 0x4f, 0xb6, + 0x15, 0xb5, 0x9e, 0x54, 0x66, 0xac, 0x1a, 0x47, 0x58, 0x45, 0x69, 0x90, 0xc3, 0xb3, 0x1d, 0x14, + 0x48, 0x4f, 0x51, 0xeb, 0x31, 0x69, 0x50, 0x4b, 0x16, 0xc1, 0x6f, 0x1d, 0x74, 0x3b, 0xe9, 0x75, + 0xc8, 0x02, 0x8b, 0x04, 0x1f, 0x93, 0x71, 0xcd, 0x00, 0x6f, 0x05, 0x4b, 0x4c, 0x86, 0x08, 0xe8, + 0xc1, 0x09, 0x91, 0x24, 0x42, 0x86, 0x29, 0x73, 0x8e, 0xf6, 0x11, 0x28, 0x6a, 0x5d, 0x46, 0x2d, + 0x58, 0x24, 0x2e, 0x30, 0x23, 0x94, 0x84, 0x90, 0xf6, 0x13, 0xea, 0x52, 0x4c, 0x5a, 0xf0, 0x0a, + 0xdd, 0x46, 0xb6, 0x58, 0xb6, 0xd1, 0xc8, 0xaa, 0x25, 0x64, 0x1c, 0x04, 0xa5, 0x64, 0x6b, 0x03, + 0x3a, 0xa3, 0x85, 0x41, 0x38, 0xeb, 0xd5, 0x53, 0x6c, 0x46, 0x33, 0x99, 0xcc, 0x29, 0x5d, 0x05, + 0x49, 0x77, 0x91, 0x1d, 0x0d, 0xbc, 0x8c, 0x92, 0xe7, 0x25, 0x1f, 0x8d, 0x54, 0x82, 0xa0, 0xe8, + 0x00, 0xe9, 0x6b, 0x88, 0x4e, 0x22, 0xe3, 0xa8, 0x53, 0x63, 0x31, 0xdd, 0x49, 0xb6, 0xaf, 0x92, + 0x38, 0xcf, 0x49, 0x4b, 0x30, 0x65, 0x21, 0xe7, 0xe1, 0x5c, 0x8b, 0x03, 0x67, 0x39, 0x2f, 0x79, + 0x09, 0x83, 0x05, 0xd0, 0x3e, 0x51, 0x9f, 0xfd, 0x04, 0x8b, 0xc7, 0xb1, 0x0e, 0xf3, 0x74, 0x6b, + 0xda, 0xcb, 0x91, 0xd4, 0x59, 0x64, 0x3b, 0xe2, 0xbe, 0x9d, 0x8b, 0x2a, 0x05, 0xf2, 0x57, 0xf7, + 0x59, 0xc0, 0xc4, 0x68, 0x55, 0x87, 0xc5, 0x06, 0x32, 0x21, 0x42, 0xcd, 0x0c, 0x42, 0x9d, 0xf6, + 0xba, 0x96, 0x58, 0x95, 0x38, 0x62, 0x75, 0xb8, 0xd0, 0xa0, 0x94, 0x30, 0x31, 0x4a, 0x23, 0x3c, + 0xde, 0xb0, 0x3a, 0x15, 0xa3, 0x84, 0x27, 0x1a, 0x4e, 0xd3, 0xdc, 0x9f, 0xa4, 0x83, 0x64, 0x97, + 0x3d, 0x11, 0xba, 0x1e, 0x1b, 0x55, 0x62, 0x92, 0xab, 0xea, 0x09, 0x94, 0xa8, 0xd3, 0xa2, 0x5f, + 0xc9, 0xd0, 0x3d, 0xa4, 0xbf, 0x21, 0x1f, 0xc7, 0x7a, 0x93, 0xf0, 0xab, 0x0c, 0xdd, 0x47, 0x06, + 0x1a, 0xc2, 0x49, 0x25, 0x03, 0x6c, 0x12, 0x7f, 0x9d, 0xa1, 0x3b, 0x5d, 0x2b, 0x52, 0x71, 0x59, + 0x84, 0x92, 0x99, 0x9a, 0x46, 0xf8, 0x26, 0x43, 0xff, 0x46, 0x06, 0xd7, 0x0a, 0x1e, 0x45, 0x2d, + 0xe6, 0x44, 0x90, 0x6a, 0x5f, 0xcd, 0xd0, 0x1d, 0xae, 0x68, 0x29, 0xa9, 0x80, 0x81, 0xfd, 0x85, + 0x6b, 0x19, 0xba, 0x97, 0xec, 0x5c, 0x0d, 0x4f, 0xb3, 0x7a, 0xa4, 0x18, 0x87, 0xeb, 0xad, 0x4a, + 0x45, 0x99, 0x2a, 0xdd, 0x58, 0x93, 0xc5, 0xa8, 0x92, 0x0b, 0xa8, 0x13, 0xeb, 0x68, 0x29, 0x43, + 0x07, 0x5c, 0x93, 0x53, 0xe1, 0xa8, 0x88, 0x2b, 0xa8, 0xc7, 0xa4, 0x30, 0x70, 0x73, 0x8d, 0x5a, + 0x01, 0xb5, 0x58, 0x48, 0xe3, 0xbb, 0x95, 0xa1, 0x3d, 0xa4, 0xc3, 0x36, 0x95, 0xc5, 0xf0, 0xc9, + 0x46, 0xda, 0xeb, 0xca, 0x7a, 0x5c, 0xe9, 0x22, 0x0b, 0x2a, 0x70, 0x79, 0x23, 0xdd, 0xee, 0x8e, + 0xe6, 0x38, 0xd6, 0x5d, 0x1f, 0x4e, 0xa0, 0x81, 0xe7, 0x36, 0xad, 0x02, 0xa7, 0x6b, 0x06, 0x9e, + 0xdf, 0xe4, 0xaf, 0xd5, 0xa4, 0x32, 0xc7, 0x55, 0x4d, 0x72, 0xb8, 0xb8, 0x4c, 0x9b, 0xd2, 0xb3, + 0xc2, 0x14, 0x46, 0x5c, 0x2c, 0x77, 0x3a, 0x5b, 0x41, 0xd7, 0xcc, 0xbb, 0x9d, 0x3e, 0x5d, 0x0f, + 0xe6, 0xe3, 0x18, 0x25, 0x87, 0x7b, 0x9d, 0xbe, 0xa9, 0x1e, 0x5e, 0x7d, 0x93, 0xee, 0x77, 0xfa, + 0x8c, 0xbd, 0xbc, 0x6c, 0x63, 0x19, 0x65, 0x89, 0x81, 0x07, 0x9d, 0xf4, 0x9f, 0xe4, 0x40, 0x51, + 0xeb, 0x93, 0x4c, 0xf2, 0xa4, 0xc2, 0xe6, 0x71, 0xea, 0xbc, 0x2c, 0xc6, 0x15, 0xac, 0xa2, 0x66, + 0x51, 0xda, 0x7d, 0x7b, 0x75, 0xe0, 0x6a, 0x17, 0xfd, 0x3b, 0xc9, 0x35, 0x13, 0xa7, 0x11, 0x75, + 0x33, 0xd3, 0x1d, 0xfc, 0x6b, 0x5d, 0x74, 0x98, 0x1c, 0x6e, 0xa6, 0x95, 0xf0, 0x5c, 0x0d, 0x13, + 0x83, 0x3a, 0x5f, 0x33, 0x15, 0x94, 0xc6, 0xb6, 0x1b, 0x47, 0xd4, 0x62, 0x6a, 0x1b, 0xae, 0x77, + 0xd1, 0x7f, 0x91, 0x83, 0xad, 0x0a, 0x49, 0xac, 0x24, 0x47, 0x9d, 0x0f, 0x02, 0x8c, 0xcd, 0x0a, + 0xf5, 0x46, 0x17, 0xcd, 0x92, 0xdd, 0x6d, 0x6d, 0x9f, 0xc4, 0x28, 0x52, 0xb0, 0xd4, 0x86, 0xe0, + 0x6d, 0xa5, 0x84, 0x9b, 0x5d, 0xf4, 0x1f, 0x64, 0xff, 0x1f, 0x46, 0x07, 0xb7, 0xba, 0x68, 0x8e, + 0xec, 0x79, 0x48, 0x50, 0xf0, 0xed, 0x9a, 0x72, 0xac, 0x58, 0x0a, 0xe6, 0xa5, 0x3a, 0x1f, 0x21, + 0x0f, 0x11, 0xbe, 0xeb, 0xa2, 0xfb, 0xc9, 0x5e, 0x37, 0x7f, 0xa5, 0x61, 0x81, 0xf1, 0xa4, 0x32, + 0xab, 0x62, 0x3e, 0x08, 0x54, 0x4d, 0x1a, 0xf8, 0xb4, 0xdb, 0x17, 0xa0, 0x95, 0xe2, 0xbf, 0xf2, + 0x91, 0x46, 0xc6, 0xeb, 0x79, 0xce, 0x91, 0xc3, 0x67, 0xdd, 0xf4, 0x20, 0xc9, 0xae, 0x47, 0x1d, + 0x89, 0x54, 0x30, 0x8f, 0x1c, 0x3e, 0xef, 0xf6, 0x49, 0xb6, 0x65, 0xad, 0x2c, 0x80, 0x2f, 0xba, + 0xe9, 0x11, 0x72, 0x68, 0x0d, 0x6f, 0x4c, 0x06, 0xaa, 0x2a, 0x64, 0xe8, 0x3d, 0x97, 0x30, 0x40, + 0xb1, 0x80, 0x1c, 0xbe, 0xec, 0xf6, 0xc5, 0x3d, 0xa1, 0x55, 0x2d, 0x9e, 0xc0, 0xea, 0x2c, 0xea, + 0x53, 0x2a, 0x2c, 0x2e, 0xa0, 0x34, 0xee, 0x6c, 0x5e, 0x24, 0x3e, 0xba, 0x36, 0x84, 0x95, 0x51, + 0xf0, 0x02, 0xf1, 0x15, 0x69, 0x62, 0x9d, 0x96, 0xb6, 0x62, 0xd2, 0x21, 0x63, 0x05, 0x78, 0x91, + 0xd0, 0x03, 0x64, 0xdf, 0x32, 0xa5, 0x8c, 0x81, 0x46, 0x33, 0x65, 0x2a, 0x68, 0x17, 0x84, 0x49, + 0x35, 0xe0, 0x25, 0xe2, 0x93, 0x6c, 0xe2, 0xf8, 0x88, 0xcb, 0x28, 0xcd, 0x8c, 0xf2, 0xbc, 0x97, + 0x89, 0x3f, 0xf9, 0xa9, 0xf1, 0x74, 0x43, 0xcd, 0xd4, 0x63, 0x84, 0x57, 0x08, 0xed, 0x73, 0x1b, + 0x2a, 0x0d, 0x24, 0x1d, 0xd4, 0x70, 0x89, 0xf8, 0x0b, 0xe6, 0xd0, 0x7c, 0x60, 0xec, 0xed, 0x47, + 0x78, 0x95, 0xf8, 0xc9, 0xe6, 0xe0, 0x02, 0xb2, 0x65, 0xc1, 0x6b, 0x84, 0x6e, 0x73, 0xf3, 0xd7, + 0xdb, 0x9f, 0x53, 0xf0, 0x7a, 0x8b, 0x61, 0x9f, 0x1b, 0xbc, 0xd1, 0x42, 0x74, 0x05, 0x7b, 0x93, + 0xf8, 0x53, 0x36, 0x81, 0x49, 0xc2, 0x42, 0x1c, 0xc7, 0xfa, 0xb4, 0x1d, 0x51, 0x89, 0x41, 0x19, + 0xb8, 0x51, 0xf1, 0x7d, 0xcf, 0xc3, 0x18, 0x76, 0xc2, 0xfc, 0xd0, 0xe3, 0x9d, 0x95, 0x51, 0x2f, + 0x88, 0x00, 0x13, 0x7b, 0x8e, 0xe1, 0xad, 0xac, 0xaf, 0x60, 0x33, 0x6a, 0xb7, 0xbb, 0x14, 0xc6, + 0x8d, 0x05, 0xe4, 0xf0, 0x76, 0xd6, 0xcf, 0x8c, 0x66, 0xce, 0x19, 0xad, 0x64, 0x58, 0x36, 0x36, + 0xb3, 0x77, 0xb2, 0x7e, 0x66, 0x37, 0xcb, 0x97, 0x57, 0xbc, 0xbb, 0x0d, 0x09, 0xc2, 0xbb, 0x59, + 0xba, 0x3b, 0xdd, 0x81, 0x4d, 0x24, 0xfb, 0x1f, 0x35, 0xbc, 0x97, 0xf5, 0x9d, 0x6e, 0x96, 0xd9, + 0x77, 0xc8, 0x68, 0x85, 0x45, 0x11, 0xda, 0x47, 0xc2, 0xfb, 0x59, 0x3f, 0x7d, 0x56, 0xab, 0x8b, + 0x00, 0x97, 0x7b, 0xa5, 0xe6, 0x51, 0xc2, 0x07, 0x0f, 0x21, 0x4e, 0x2a, 0x53, 0xae, 0xc5, 0xb1, + 0xd2, 0xf6, 0xcd, 0xf2, 0x61, 0xd6, 0x57, 0xac, 0x99, 0xe8, 0x7b, 0x90, 0x9a, 0xfa, 0xa8, 0x5d, + 0xde, 0xde, 0xd9, 0xe9, 0xd2, 0x29, 0xf8, 0x78, 0x55, 0x4a, 0x76, 0xcf, 0x2e, 0xaf, 0xa8, 0xa7, + 0x72, 0xad, 0xd6, 0x9b, 0x64, 0x3e, 0xe9, 0xa7, 0x73, 0xfe, 0x36, 0xaf, 0x65, 0xf8, 0x23, 0x56, + 0x94, 0x3c, 0x56, 0x42, 0x1a, 0x78, 0x26, 0x47, 0x77, 0xa5, 0xaf, 0x10, 0x1f, 0x48, 0x41, 0x68, + 0x0c, 0x8c, 0xd2, 0x75, 0xb8, 0x93, 0xa3, 0xff, 0x27, 0xc7, 0xda, 0x89, 0x7c, 0xa0, 0xe9, 0xe2, + 0x44, 0x3e, 0xaa, 0x91, 0xdb, 0xa9, 0xc5, 0xa2, 0x72, 0x6d, 0xf6, 0x2c, 0x06, 0x06, 0xee, 0xe6, + 0xfc, 0x00, 0x5e, 0xa3, 0x5a, 0x5c, 0x14, 0x89, 0x11, 0x32, 0x2c, 0x61, 0xa0, 0x34, 0x6f, 0x2c, + 0x9f, 0x7b, 0x39, 0xfa, 0x3f, 0xf2, 0x9f, 0x76, 0x0a, 0x29, 0xf1, 0x94, 0x9b, 0x2a, 0xf6, 0xe9, + 0xc4, 0xa4, 0x19, 0x71, 0x09, 0xb1, 0x00, 0x39, 0xdc, 0xcf, 0xd1, 0x63, 0x64, 0xb8, 0xbd, 0x23, + 0x9b, 0xb3, 0x30, 0x9e, 0x7a, 0x3c, 0x62, 0xa1, 0x9d, 0x2d, 0x42, 0x23, 0x87, 0x07, 0x39, 0x7a, + 0x94, 0x1c, 0xf9, 0x53, 0x99, 0xc1, 0xcf, 0xeb, 0xea, 0x14, 0x17, 0x63, 0x6b, 0xb5, 0x8d, 0xce, + 0x2f, 0xeb, 0x46, 0xb7, 0xae, 0x9f, 0xb1, 0x02, 0xfc, 0x9a, 0x1b, 0xf9, 0xf7, 0xd2, 0x4f, 0x83, + 0x1b, 0xae, 0xdc, 0x1e, 0xcc, 0x2c, 0xdd, 0x1e, 0xcc, 0xfc, 0x78, 0x7b, 0x30, 0xf3, 0xd8, 0xe0, + 0x2c, 0x6a, 0x53, 0x1f, 0x32, 0x18, 0x54, 0x86, 0xfd, 0x63, 0x7b, 0x38, 0x9e, 0x0f, 0x97, 0x1f, + 0xf3, 0xb3, 0x1d, 0xee, 0x99, 0xfe, 0xdf, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x5d, 0x98, + 0xbc, 0xe6, 0x0b, 0x00, 0x00, } func (m *ErrDetails) Marshal() (dAtA []byte, err error) { diff --git a/pkg/protocoltypes/events_account.go b/pkg/protocoltypes/events_account.go index d88dfb30..6b6e681b 100644 --- a/pkg/protocoltypes/events_account.go +++ b/pkg/protocoltypes/events_account.go @@ -100,18 +100,6 @@ func (m *GroupReplicating) SetDevicePK(pk []byte) { m.DevicePK = pk } -func (m *PushDeviceTokenRegistered) SetDevicePK(pk []byte) { - m.DevicePK = pk -} - -func (m *PushDeviceServerRegistered) SetDevicePK(pk []byte) { - m.DevicePK = pk -} - -func (m *PushMemberTokenUpdate) SetDevicePK(pk []byte) { - m.DevicePK = pk -} - func (m *AccountVerifiedCredentialRegistered) SetDevicePK(pk []byte) { m.DevicePK = pk } diff --git a/pkg/protocoltypes/protocoltypes.pb.go b/pkg/protocoltypes/protocoltypes.pb.go index 0c91fa3d..6264695f 100644 --- a/pkg/protocoltypes/protocoltypes.pb.go +++ b/pkg/protocoltypes/protocoltypes.pb.go @@ -4,7 +4,6 @@ package protocoltypes import ( - pushtypes "berty.tech/weshnet/pkg/pushtypes" encoding_binary "encoding/binary" fmt "fmt" _ "github.com/gogo/protobuf/gogoproto" @@ -107,12 +106,6 @@ const ( EventTypeAccountServiceTokenRemoved EventType = 402 // EventTypeGroupReplicating indicates that the group has been registered for replication on a server EventTypeGroupReplicating EventType = 403 - // EventTypePushMemberTokenUpdate - EventTypePushMemberTokenUpdate EventType = 404 - // EventTypePushDeviceTokenRegistered - EventTypePushDeviceTokenRegistered EventType = 405 - // EventTypePushDeviceServerRegistered - EventTypePushDeviceServerRegistered EventType = 406 // EventTypeAccountVerifiedCredentialRegistered EventTypeAccountVerifiedCredentialRegistered EventType = 500 // EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key @@ -142,9 +135,6 @@ var EventType_name = map[int32]string{ 401: "EventTypeAccountServiceTokenAdded", 402: "EventTypeAccountServiceTokenRemoved", 403: "EventTypeGroupReplicating", - 404: "EventTypePushMemberTokenUpdate", - 405: "EventTypePushDeviceTokenRegistered", - 406: "EventTypePushDeviceServerRegistered", 500: "EventTypeAccountVerifiedCredentialRegistered", 1001: "EventTypeGroupMetadataPayloadSent", } @@ -172,9 +162,6 @@ var EventType_value = map[string]int32{ "EventTypeAccountServiceTokenAdded": 401, "EventTypeAccountServiceTokenRemoved": 402, "EventTypeGroupReplicating": 403, - "EventTypePushMemberTokenUpdate": 404, - "EventTypePushDeviceTokenRegistered": 405, - "EventTypePushDeviceServerRegistered": 406, "EventTypeAccountVerifiedCredentialRegistered": 500, "EventTypeGroupMetadataPayloadSent": 1001, } @@ -2853,8 +2840,6 @@ type ServiceGetConfiguration_Reply struct { WifiP2PEnabled ServiceGetConfiguration_SettingState `protobuf:"varint,7,opt,name=wifi_p2p_enabled,json=wifiP2pEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"wifi_p2p_enabled,omitempty"` MdnsEnabled ServiceGetConfiguration_SettingState `protobuf:"varint,8,opt,name=mdns_enabled,json=mdnsEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"mdns_enabled,omitempty"` RelayEnabled ServiceGetConfiguration_SettingState `protobuf:"varint,9,opt,name=relay_enabled,json=relayEnabled,proto3,enum=weshnet.protocol.v1.ServiceGetConfiguration_SettingState" json:"relay_enabled,omitempty"` - DevicePushToken *PushServiceReceiver `protobuf:"bytes,10,opt,name=device_push_token,json=devicePushToken,proto3" json:"device_push_token,omitempty"` - DevicePushServer *PushServer `protobuf:"bytes,11,opt,name=device_push_server,json=devicePushServer,proto3" json:"device_push_server,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2956,20 +2941,6 @@ func (m *ServiceGetConfiguration_Reply) GetRelayEnabled() ServiceGetConfiguratio return Unknown } -func (m *ServiceGetConfiguration_Reply) GetDevicePushToken() *PushServiceReceiver { - if m != nil { - return m.DevicePushToken - } - return nil -} - -func (m *ServiceGetConfiguration_Reply) GetDevicePushServer() *PushServer { - if m != nil { - return m.DevicePushServer - } - return nil -} - type ContactRequestReference struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -9761,61 +9732,6 @@ func (m *Progress) GetDelay() uint64 { return 0 } -type MemberWithDevices struct { - MemberPK []byte `protobuf:"bytes,1,opt,name=member_pk,json=memberPk,proto3" json:"member_pk,omitempty"` - DevicePKs [][]byte `protobuf:"bytes,2,rep,name=devices_pks,json=devicesPks,proto3" json:"devices_pks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MemberWithDevices) Reset() { *m = MemberWithDevices{} } -func (m *MemberWithDevices) String() string { return proto.CompactTextString(m) } -func (*MemberWithDevices) ProtoMessage() {} -func (*MemberWithDevices) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{85} -} -func (m *MemberWithDevices) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MemberWithDevices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MemberWithDevices.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MemberWithDevices) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberWithDevices.Merge(m, src) -} -func (m *MemberWithDevices) XXX_Size() int { - return m.Size() -} -func (m *MemberWithDevices) XXX_DiscardUnknown() { - xxx_messageInfo_MemberWithDevices.DiscardUnknown(m) -} - -var xxx_messageInfo_MemberWithDevices proto.InternalMessageInfo - -func (m *MemberWithDevices) GetMemberPK() []byte { - if m != nil { - return m.MemberPK - } - return nil -} - -func (m *MemberWithDevices) GetDevicePKs() [][]byte { - if m != nil { - return m.DevicePKs - } - return nil -} - type OutOfStoreMessage struct { CID []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"` DevicePK []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` @@ -9833,7 +9749,7 @@ func (m *OutOfStoreMessage) Reset() { *m = OutOfStoreMessage{} } func (m *OutOfStoreMessage) String() string { return proto.CompactTextString(m) } func (*OutOfStoreMessage) ProtoMessage() {} func (*OutOfStoreMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{86} + return fileDescriptor_8aa93e54ccb19003, []int{85} } func (m *OutOfStoreMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9911,32 +9827,27 @@ func (m *OutOfStoreMessage) GetNonce() []byte { return nil } -type PushServiceReceiver struct { - // token_type is the type of the token used, it allows us to act as a proxy to the appropriate push server - TokenType pushtypes.PushServiceTokenType `protobuf:"varint,1,opt,name=token_type,json=tokenType,proto3,enum=weshnet.push.v1.PushServiceTokenType" json:"token_type,omitempty"` - // bundle_id is the app identifier - BundleID string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"` - // token is the device identifier used - Token []byte `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - // recipient_public_key is the public key which will be used to encrypt the payload - RecipientPublicKey []byte `protobuf:"bytes,4,opt,name=recipient_public_key,json=recipientPublicKey,proto3" json:"recipient_public_key,omitempty"` +type OutOfStoreMessageEnvelope struct { + Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` + Box []byte `protobuf:"bytes,2,opt,name=box,proto3" json:"box,omitempty"` + GroupReference []byte `protobuf:"bytes,3,opt,name=group_reference,json=groupReference,proto3" json:"group_reference,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *PushServiceReceiver) Reset() { *m = PushServiceReceiver{} } -func (m *PushServiceReceiver) String() string { return proto.CompactTextString(m) } -func (*PushServiceReceiver) ProtoMessage() {} -func (*PushServiceReceiver) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{87} +func (m *OutOfStoreMessageEnvelope) Reset() { *m = OutOfStoreMessageEnvelope{} } +func (m *OutOfStoreMessageEnvelope) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreMessageEnvelope) ProtoMessage() {} +func (*OutOfStoreMessageEnvelope) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{86} } -func (m *PushServiceReceiver) XXX_Unmarshal(b []byte) error { +func (m *OutOfStoreMessageEnvelope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *PushServiceReceiver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *OutOfStoreMessageEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_PushServiceReceiver.Marshal(b, m, deterministic) + return xxx_messageInfo_OutOfStoreMessageEnvelope.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -9946,66 +9857,97 @@ func (m *PushServiceReceiver) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *PushServiceReceiver) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceReceiver.Merge(m, src) +func (m *OutOfStoreMessageEnvelope) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreMessageEnvelope.Merge(m, src) } -func (m *PushServiceReceiver) XXX_Size() int { +func (m *OutOfStoreMessageEnvelope) XXX_Size() int { return m.Size() } -func (m *PushServiceReceiver) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceReceiver.DiscardUnknown(m) +func (m *OutOfStoreMessageEnvelope) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreMessageEnvelope.DiscardUnknown(m) } -var xxx_messageInfo_PushServiceReceiver proto.InternalMessageInfo +var xxx_messageInfo_OutOfStoreMessageEnvelope proto.InternalMessageInfo -func (m *PushServiceReceiver) GetTokenType() pushtypes.PushServiceTokenType { +func (m *OutOfStoreMessageEnvelope) GetNonce() []byte { if m != nil { - return m.TokenType + return m.Nonce } - return pushtypes.PushServiceTokenType_PushTokenUndefined + return nil } -func (m *PushServiceReceiver) GetBundleID() string { +func (m *OutOfStoreMessageEnvelope) GetBox() []byte { if m != nil { - return m.BundleID + return m.Box } - return "" + return nil } -func (m *PushServiceReceiver) GetToken() []byte { +func (m *OutOfStoreMessageEnvelope) GetGroupReference() []byte { if m != nil { - return m.Token + return m.GroupReference } return nil } -func (m *PushServiceReceiver) GetRecipientPublicKey() []byte { - if m != nil { - return m.RecipientPublicKey +type OutOfStoreReceive struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OutOfStoreReceive) Reset() { *m = OutOfStoreReceive{} } +func (m *OutOfStoreReceive) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreReceive) ProtoMessage() {} +func (*OutOfStoreReceive) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{87} +} +func (m *OutOfStoreReceive) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutOfStoreReceive) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutOfStoreReceive.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return nil } +func (m *OutOfStoreReceive) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreReceive.Merge(m, src) +} +func (m *OutOfStoreReceive) XXX_Size() int { + return m.Size() +} +func (m *OutOfStoreReceive) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreReceive.DiscardUnknown(m) +} + +var xxx_messageInfo_OutOfStoreReceive proto.InternalMessageInfo -type PushServer struct { - ServerKey []byte `protobuf:"bytes,1,opt,name=server_key,json=serverKey,proto3" json:"server_key,omitempty"` - ServiceAddr string `protobuf:"bytes,2,opt,name=service_addr,json=serviceAddr,proto3" json:"service_addr,omitempty"` +type OutOfStoreReceive_Request struct { + Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *PushServer) Reset() { *m = PushServer{} } -func (m *PushServer) String() string { return proto.CompactTextString(m) } -func (*PushServer) ProtoMessage() {} -func (*PushServer) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{88} +func (m *OutOfStoreReceive_Request) Reset() { *m = OutOfStoreReceive_Request{} } +func (m *OutOfStoreReceive_Request) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreReceive_Request) ProtoMessage() {} +func (*OutOfStoreReceive_Request) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{87, 0} } -func (m *PushServer) XXX_Unmarshal(b []byte) error { +func (m *OutOfStoreReceive_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *PushServer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *OutOfStoreReceive_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_PushServer.Marshal(b, m, deterministic) + return xxx_messageInfo_OutOfStoreReceive_Request.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -10015,53 +9957,114 @@ func (m *PushServer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *PushServer) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServer.Merge(m, src) +func (m *OutOfStoreReceive_Request) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreReceive_Request.Merge(m, src) } -func (m *PushServer) XXX_Size() int { +func (m *OutOfStoreReceive_Request) XXX_Size() int { return m.Size() } -func (m *PushServer) XXX_DiscardUnknown() { - xxx_messageInfo_PushServer.DiscardUnknown(m) +func (m *OutOfStoreReceive_Request) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreReceive_Request.DiscardUnknown(m) } -var xxx_messageInfo_PushServer proto.InternalMessageInfo +var xxx_messageInfo_OutOfStoreReceive_Request proto.InternalMessageInfo -func (m *PushServer) GetServerKey() []byte { +func (m *OutOfStoreReceive_Request) GetPayload() []byte { if m != nil { - return m.ServerKey + return m.Payload } return nil } -func (m *PushServer) GetServiceAddr() string { +type OutOfStoreReceive_Reply struct { + Message *OutOfStoreMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Cleartext []byte `protobuf:"bytes,2,opt,name=cleartext,proto3" json:"cleartext,omitempty"` + GroupPublicKey []byte `protobuf:"bytes,3,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"` + AlreadyReceived bool `protobuf:"varint,4,opt,name=already_received,json=alreadyReceived,proto3" json:"already_received,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OutOfStoreReceive_Reply) Reset() { *m = OutOfStoreReceive_Reply{} } +func (m *OutOfStoreReceive_Reply) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreReceive_Reply) ProtoMessage() {} +func (*OutOfStoreReceive_Reply) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{87, 1} +} +func (m *OutOfStoreReceive_Reply) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutOfStoreReceive_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutOfStoreReceive_Reply.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutOfStoreReceive_Reply) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreReceive_Reply.Merge(m, src) +} +func (m *OutOfStoreReceive_Reply) XXX_Size() int { + return m.Size() +} +func (m *OutOfStoreReceive_Reply) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreReceive_Reply.DiscardUnknown(m) +} + +var xxx_messageInfo_OutOfStoreReceive_Reply proto.InternalMessageInfo + +func (m *OutOfStoreReceive_Reply) GetMessage() *OutOfStoreMessage { if m != nil { - return m.ServiceAddr + return m.Message } - return "" + return nil } -type PushDeviceTokenRegistered struct { - Token *PushServiceReceiver `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - // device_pk is the public key of the device sending the message - DevicePK []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` +func (m *OutOfStoreReceive_Reply) GetCleartext() []byte { + if m != nil { + return m.Cleartext + } + return nil +} + +func (m *OutOfStoreReceive_Reply) GetGroupPublicKey() []byte { + if m != nil { + return m.GroupPublicKey + } + return nil +} + +func (m *OutOfStoreReceive_Reply) GetAlreadyReceived() bool { + if m != nil { + return m.AlreadyReceived + } + return false +} + +type OutOfStoreSeal struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *PushDeviceTokenRegistered) Reset() { *m = PushDeviceTokenRegistered{} } -func (m *PushDeviceTokenRegistered) String() string { return proto.CompactTextString(m) } -func (*PushDeviceTokenRegistered) ProtoMessage() {} -func (*PushDeviceTokenRegistered) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{89} +func (m *OutOfStoreSeal) Reset() { *m = OutOfStoreSeal{} } +func (m *OutOfStoreSeal) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreSeal) ProtoMessage() {} +func (*OutOfStoreSeal) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{88} } -func (m *PushDeviceTokenRegistered) XXX_Unmarshal(b []byte) error { +func (m *OutOfStoreSeal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *PushDeviceTokenRegistered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *OutOfStoreSeal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_PushDeviceTokenRegistered.Marshal(b, m, deterministic) + return xxx_messageInfo_OutOfStoreSeal.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -10071,53 +10074,92 @@ func (m *PushDeviceTokenRegistered) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *PushDeviceTokenRegistered) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushDeviceTokenRegistered.Merge(m, src) +func (m *OutOfStoreSeal) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreSeal.Merge(m, src) } -func (m *PushDeviceTokenRegistered) XXX_Size() int { +func (m *OutOfStoreSeal) XXX_Size() int { return m.Size() } -func (m *PushDeviceTokenRegistered) XXX_DiscardUnknown() { - xxx_messageInfo_PushDeviceTokenRegistered.DiscardUnknown(m) +func (m *OutOfStoreSeal) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreSeal.DiscardUnknown(m) } -var xxx_messageInfo_PushDeviceTokenRegistered proto.InternalMessageInfo +var xxx_messageInfo_OutOfStoreSeal proto.InternalMessageInfo -func (m *PushDeviceTokenRegistered) GetToken() *PushServiceReceiver { +type OutOfStoreSeal_Request struct { + CID []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"` + GroupPublicKey []byte `protobuf:"bytes,2,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OutOfStoreSeal_Request) Reset() { *m = OutOfStoreSeal_Request{} } +func (m *OutOfStoreSeal_Request) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreSeal_Request) ProtoMessage() {} +func (*OutOfStoreSeal_Request) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{88, 0} +} +func (m *OutOfStoreSeal_Request) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutOfStoreSeal_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutOfStoreSeal_Request.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutOfStoreSeal_Request) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreSeal_Request.Merge(m, src) +} +func (m *OutOfStoreSeal_Request) XXX_Size() int { + return m.Size() +} +func (m *OutOfStoreSeal_Request) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreSeal_Request.DiscardUnknown(m) +} + +var xxx_messageInfo_OutOfStoreSeal_Request proto.InternalMessageInfo + +func (m *OutOfStoreSeal_Request) GetCID() []byte { if m != nil { - return m.Token + return m.CID } return nil } -func (m *PushDeviceTokenRegistered) GetDevicePK() []byte { +func (m *OutOfStoreSeal_Request) GetGroupPublicKey() []byte { if m != nil { - return m.DevicePK + return m.GroupPublicKey } return nil } -type PushDeviceServerRegistered struct { - Server *PushServer `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` - // device_pk is the public key of the device sending the message - DevicePK []byte `protobuf:"bytes,2,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` +type OutOfStoreSeal_Reply struct { + Encrypted []byte `protobuf:"bytes,1,opt,name=encrypted,proto3" json:"encrypted,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *PushDeviceServerRegistered) Reset() { *m = PushDeviceServerRegistered{} } -func (m *PushDeviceServerRegistered) String() string { return proto.CompactTextString(m) } -func (*PushDeviceServerRegistered) ProtoMessage() {} -func (*PushDeviceServerRegistered) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{90} +func (m *OutOfStoreSeal_Reply) Reset() { *m = OutOfStoreSeal_Reply{} } +func (m *OutOfStoreSeal_Reply) String() string { return proto.CompactTextString(m) } +func (*OutOfStoreSeal_Reply) ProtoMessage() {} +func (*OutOfStoreSeal_Reply) Descriptor() ([]byte, []int) { + return fileDescriptor_8aa93e54ccb19003, []int{88, 1} } -func (m *PushDeviceServerRegistered) XXX_Unmarshal(b []byte) error { +func (m *OutOfStoreSeal_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *PushDeviceServerRegistered) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *OutOfStoreSeal_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_PushDeviceServerRegistered.Marshal(b, m, deterministic) + return xxx_messageInfo_OutOfStoreSeal_Reply.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -10127,28 +10169,21 @@ func (m *PushDeviceServerRegistered) XXX_Marshal(b []byte, deterministic bool) ( return b[:n], nil } } -func (m *PushDeviceServerRegistered) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushDeviceServerRegistered.Merge(m, src) +func (m *OutOfStoreSeal_Reply) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutOfStoreSeal_Reply.Merge(m, src) } -func (m *PushDeviceServerRegistered) XXX_Size() int { +func (m *OutOfStoreSeal_Reply) XXX_Size() int { return m.Size() } -func (m *PushDeviceServerRegistered) XXX_DiscardUnknown() { - xxx_messageInfo_PushDeviceServerRegistered.DiscardUnknown(m) +func (m *OutOfStoreSeal_Reply) XXX_DiscardUnknown() { + xxx_messageInfo_OutOfStoreSeal_Reply.DiscardUnknown(m) } -var xxx_messageInfo_PushDeviceServerRegistered proto.InternalMessageInfo - -func (m *PushDeviceServerRegistered) GetServer() *PushServer { - if m != nil { - return m.Server - } - return nil -} +var xxx_messageInfo_OutOfStoreSeal_Reply proto.InternalMessageInfo -func (m *PushDeviceServerRegistered) GetDevicePK() []byte { +func (m *OutOfStoreSeal_Reply) GetEncrypted() []byte { if m != nil { - return m.DevicePK + return m.Encrypted } return nil } @@ -10171,7 +10206,7 @@ func (m *AccountVerifiedCredentialRegistered) Reset() { *m = AccountVeri func (m *AccountVerifiedCredentialRegistered) String() string { return proto.CompactTextString(m) } func (*AccountVerifiedCredentialRegistered) ProtoMessage() {} func (*AccountVerifiedCredentialRegistered) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{91} + return fileDescriptor_8aa93e54ccb19003, []int{89} } func (m *AccountVerifiedCredentialRegistered) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10249,368 +10284,6 @@ func (m *AccountVerifiedCredentialRegistered) GetIssuer() string { return "" } -type PushMemberTokenUpdate struct { - Server *PushServer `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` - Token []byte `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - // device_pk is the public key of the device sending the message - DevicePK []byte `protobuf:"bytes,3,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushMemberTokenUpdate) Reset() { *m = PushMemberTokenUpdate{} } -func (m *PushMemberTokenUpdate) String() string { return proto.CompactTextString(m) } -func (*PushMemberTokenUpdate) ProtoMessage() {} -func (*PushMemberTokenUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{92} -} -func (m *PushMemberTokenUpdate) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushMemberTokenUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushMemberTokenUpdate.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushMemberTokenUpdate) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushMemberTokenUpdate.Merge(m, src) -} -func (m *PushMemberTokenUpdate) XXX_Size() int { - return m.Size() -} -func (m *PushMemberTokenUpdate) XXX_DiscardUnknown() { - xxx_messageInfo_PushMemberTokenUpdate.DiscardUnknown(m) -} - -var xxx_messageInfo_PushMemberTokenUpdate proto.InternalMessageInfo - -func (m *PushMemberTokenUpdate) GetServer() *PushServer { - if m != nil { - return m.Server - } - return nil -} - -func (m *PushMemberTokenUpdate) GetToken() []byte { - if m != nil { - return m.Token - } - return nil -} - -func (m *PushMemberTokenUpdate) GetDevicePK() []byte { - if m != nil { - return m.DevicePK - } - return nil -} - -type OutOfStoreReceive struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreReceive) Reset() { *m = OutOfStoreReceive{} } -func (m *OutOfStoreReceive) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreReceive) ProtoMessage() {} -func (*OutOfStoreReceive) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{93} -} -func (m *OutOfStoreReceive) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreReceive) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreReceive.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreReceive) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreReceive.Merge(m, src) -} -func (m *OutOfStoreReceive) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreReceive) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreReceive.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreReceive proto.InternalMessageInfo - -type OutOfStoreReceive_Request struct { - Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreReceive_Request) Reset() { *m = OutOfStoreReceive_Request{} } -func (m *OutOfStoreReceive_Request) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreReceive_Request) ProtoMessage() {} -func (*OutOfStoreReceive_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{93, 0} -} -func (m *OutOfStoreReceive_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreReceive_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreReceive_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreReceive_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreReceive_Request.Merge(m, src) -} -func (m *OutOfStoreReceive_Request) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreReceive_Request) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreReceive_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreReceive_Request proto.InternalMessageInfo - -func (m *OutOfStoreReceive_Request) GetPayload() []byte { - if m != nil { - return m.Payload - } - return nil -} - -type OutOfStoreReceive_Reply struct { - Message *OutOfStoreMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Cleartext []byte `protobuf:"bytes,2,opt,name=cleartext,proto3" json:"cleartext,omitempty"` - GroupPublicKey []byte `protobuf:"bytes,3,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"` - AlreadyReceived bool `protobuf:"varint,4,opt,name=already_received,json=alreadyReceived,proto3" json:"already_received,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreReceive_Reply) Reset() { *m = OutOfStoreReceive_Reply{} } -func (m *OutOfStoreReceive_Reply) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreReceive_Reply) ProtoMessage() {} -func (*OutOfStoreReceive_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{93, 1} -} -func (m *OutOfStoreReceive_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreReceive_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreReceive_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreReceive_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreReceive_Reply.Merge(m, src) -} -func (m *OutOfStoreReceive_Reply) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreReceive_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreReceive_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreReceive_Reply proto.InternalMessageInfo - -func (m *OutOfStoreReceive_Reply) GetMessage() *OutOfStoreMessage { - if m != nil { - return m.Message - } - return nil -} - -func (m *OutOfStoreReceive_Reply) GetCleartext() []byte { - if m != nil { - return m.Cleartext - } - return nil -} - -func (m *OutOfStoreReceive_Reply) GetGroupPublicKey() []byte { - if m != nil { - return m.GroupPublicKey - } - return nil -} - -func (m *OutOfStoreReceive_Reply) GetAlreadyReceived() bool { - if m != nil { - return m.AlreadyReceived - } - return false -} - -type OutOfStoreSeal struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreSeal) Reset() { *m = OutOfStoreSeal{} } -func (m *OutOfStoreSeal) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreSeal) ProtoMessage() {} -func (*OutOfStoreSeal) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{94} -} -func (m *OutOfStoreSeal) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreSeal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreSeal.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreSeal) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreSeal.Merge(m, src) -} -func (m *OutOfStoreSeal) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreSeal) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreSeal.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreSeal proto.InternalMessageInfo - -type OutOfStoreSeal_Request struct { - CID []byte `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"` - GroupPublicKey []byte `protobuf:"bytes,2,opt,name=group_public_key,json=groupPublicKey,proto3" json:"group_public_key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreSeal_Request) Reset() { *m = OutOfStoreSeal_Request{} } -func (m *OutOfStoreSeal_Request) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreSeal_Request) ProtoMessage() {} -func (*OutOfStoreSeal_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{94, 0} -} -func (m *OutOfStoreSeal_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreSeal_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreSeal_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreSeal_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreSeal_Request.Merge(m, src) -} -func (m *OutOfStoreSeal_Request) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreSeal_Request) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreSeal_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreSeal_Request proto.InternalMessageInfo - -func (m *OutOfStoreSeal_Request) GetCID() []byte { - if m != nil { - return m.CID - } - return nil -} - -func (m *OutOfStoreSeal_Request) GetGroupPublicKey() []byte { - if m != nil { - return m.GroupPublicKey - } - return nil -} - -type OutOfStoreSeal_Reply struct { - Encrypted []byte `protobuf:"bytes,1,opt,name=encrypted,proto3" json:"encrypted,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreSeal_Reply) Reset() { *m = OutOfStoreSeal_Reply{} } -func (m *OutOfStoreSeal_Reply) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreSeal_Reply) ProtoMessage() {} -func (*OutOfStoreSeal_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{94, 1} -} -func (m *OutOfStoreSeal_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreSeal_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreSeal_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreSeal_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreSeal_Reply.Merge(m, src) -} -func (m *OutOfStoreSeal_Reply) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreSeal_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreSeal_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreSeal_Reply proto.InternalMessageInfo - -func (m *OutOfStoreSeal_Reply) GetEncrypted() []byte { - if m != nil { - return m.Encrypted - } - return nil -} - type FirstLastCounters struct { First uint64 `protobuf:"varint,1,opt,name=first,proto3" json:"first,omitempty"` Last uint64 `protobuf:"varint,2,opt,name=last,proto3" json:"last,omitempty"` @@ -10623,7 +10296,7 @@ func (m *FirstLastCounters) Reset() { *m = FirstLastCounters{} } func (m *FirstLastCounters) String() string { return proto.CompactTextString(m) } func (*FirstLastCounters) ProtoMessage() {} func (*FirstLastCounters) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{95} + return fileDescriptor_8aa93e54ccb19003, []int{90} } func (m *FirstLastCounters) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10681,7 +10354,7 @@ func (m *OrbitDBMessageHeads) Reset() { *m = OrbitDBMessageHeads{} } func (m *OrbitDBMessageHeads) String() string { return proto.CompactTextString(m) } func (*OrbitDBMessageHeads) ProtoMessage() {} func (*OrbitDBMessageHeads) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{96} + return fileDescriptor_8aa93e54ccb19003, []int{91} } func (m *OrbitDBMessageHeads) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10738,7 +10411,7 @@ func (m *OrbitDBMessageHeads_Box) Reset() { *m = OrbitDBMessageHeads_Box func (m *OrbitDBMessageHeads_Box) String() string { return proto.CompactTextString(m) } func (*OrbitDBMessageHeads_Box) ProtoMessage() {} func (*OrbitDBMessageHeads_Box) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{96, 0} + return fileDescriptor_8aa93e54ccb19003, []int{91, 0} } func (m *OrbitDBMessageHeads_Box) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10805,7 +10478,7 @@ func (m *RefreshContactRequest) Reset() { *m = RefreshContactRequest{} } func (m *RefreshContactRequest) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest) ProtoMessage() {} func (*RefreshContactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{97} + return fileDescriptor_8aa93e54ccb19003, []int{92} } func (m *RefreshContactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10848,7 +10521,7 @@ func (m *RefreshContactRequest_Peer) Reset() { *m = RefreshContactReques func (m *RefreshContactRequest_Peer) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Peer) ProtoMessage() {} func (*RefreshContactRequest_Peer) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{97, 0} + return fileDescriptor_8aa93e54ccb19003, []int{92, 0} } func (m *RefreshContactRequest_Peer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10904,7 +10577,7 @@ func (m *RefreshContactRequest_Request) Reset() { *m = RefreshContactReq func (m *RefreshContactRequest_Request) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Request) ProtoMessage() {} func (*RefreshContactRequest_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{97, 1} + return fileDescriptor_8aa93e54ccb19003, []int{92, 1} } func (m *RefreshContactRequest_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10959,7 +10632,7 @@ func (m *RefreshContactRequest_Reply) Reset() { *m = RefreshContactReque func (m *RefreshContactRequest_Reply) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Reply) ProtoMessage() {} func (*RefreshContactRequest_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{97, 2} + return fileDescriptor_8aa93e54ccb19003, []int{92, 2} } func (m *RefreshContactRequest_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11184,20 +10857,15 @@ func init() { proto.RegisterType((*PeerList_Route)(nil), "weshnet.protocol.v1.PeerList.Route") proto.RegisterType((*PeerList_Stream)(nil), "weshnet.protocol.v1.PeerList.Stream") proto.RegisterType((*Progress)(nil), "weshnet.protocol.v1.Progress") - proto.RegisterType((*MemberWithDevices)(nil), "weshnet.protocol.v1.MemberWithDevices") proto.RegisterType((*OutOfStoreMessage)(nil), "weshnet.protocol.v1.OutOfStoreMessage") - proto.RegisterType((*PushServiceReceiver)(nil), "weshnet.protocol.v1.PushServiceReceiver") - proto.RegisterType((*PushServer)(nil), "weshnet.protocol.v1.PushServer") - proto.RegisterType((*PushDeviceTokenRegistered)(nil), "weshnet.protocol.v1.PushDeviceTokenRegistered") - proto.RegisterType((*PushDeviceServerRegistered)(nil), "weshnet.protocol.v1.PushDeviceServerRegistered") - proto.RegisterType((*AccountVerifiedCredentialRegistered)(nil), "weshnet.protocol.v1.AccountVerifiedCredentialRegistered") - proto.RegisterType((*PushMemberTokenUpdate)(nil), "weshnet.protocol.v1.PushMemberTokenUpdate") + proto.RegisterType((*OutOfStoreMessageEnvelope)(nil), "weshnet.protocol.v1.OutOfStoreMessageEnvelope") proto.RegisterType((*OutOfStoreReceive)(nil), "weshnet.protocol.v1.OutOfStoreReceive") proto.RegisterType((*OutOfStoreReceive_Request)(nil), "weshnet.protocol.v1.OutOfStoreReceive.Request") proto.RegisterType((*OutOfStoreReceive_Reply)(nil), "weshnet.protocol.v1.OutOfStoreReceive.Reply") proto.RegisterType((*OutOfStoreSeal)(nil), "weshnet.protocol.v1.OutOfStoreSeal") proto.RegisterType((*OutOfStoreSeal_Request)(nil), "weshnet.protocol.v1.OutOfStoreSeal.Request") proto.RegisterType((*OutOfStoreSeal_Reply)(nil), "weshnet.protocol.v1.OutOfStoreSeal.Reply") + proto.RegisterType((*AccountVerifiedCredentialRegistered)(nil), "weshnet.protocol.v1.AccountVerifiedCredentialRegistered") proto.RegisterType((*FirstLastCounters)(nil), "weshnet.protocol.v1.FirstLastCounters") proto.RegisterType((*OrbitDBMessageHeads)(nil), "weshnet.protocol.v1.OrbitDBMessageHeads") proto.RegisterType((*OrbitDBMessageHeads_Box)(nil), "weshnet.protocol.v1.OrbitDBMessageHeads.Box") @@ -11210,411 +10878,392 @@ func init() { func init() { proto.RegisterFile("protocoltypes.proto", fileDescriptor_8aa93e54ccb19003) } var fileDescriptor_8aa93e54ccb19003 = []byte{ - // 6449 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x4b, 0x6c, 0x1c, 0xd9, - 0x75, 0xe8, 0x54, 0x37, 0xc9, 0xee, 0x3e, 0x6c, 0x36, 0x8b, 0x57, 0x94, 0xd4, 0xea, 0x91, 0x44, - 0x4d, 0x69, 0xf4, 0x9d, 0x19, 0x4a, 0xc3, 0x99, 0xe7, 0xf1, 0x58, 0x9e, 0xb1, 0x29, 0x52, 0x92, - 0x39, 0xfa, 0xf5, 0x14, 0x45, 0x8f, 0xc7, 0x18, 0xbc, 0x72, 0xb1, 0xea, 0xb2, 0x59, 0x66, 0x75, - 0x55, 0x4d, 0x55, 0x35, 0x25, 0x1a, 0xf6, 0x83, 0x9f, 0xed, 0xf1, 0xf3, 0x03, 0x6c, 0xc7, 0x9f, - 0xfc, 0x80, 0x18, 0x59, 0x65, 0x11, 0x20, 0x70, 0x02, 0x18, 0x81, 0x81, 0x00, 0x59, 0x65, 0x15, - 0x07, 0x89, 0xe1, 0x55, 0x16, 0x59, 0x30, 0x0e, 0xb3, 0x71, 0x80, 0x20, 0x08, 0x10, 0x3b, 0x59, - 0x18, 0x08, 0x82, 0xfb, 0xab, 0xba, 0xd5, 0xac, 0xea, 0x8f, 0xa4, 0x41, 0x16, 0x59, 0xa9, 0xef, - 0xa9, 0xf3, 0xbb, 0xe7, 0xfe, 0xce, 0x3d, 0xf7, 0x1c, 0x0a, 0x8e, 0x04, 0xa1, 0x1f, 0xfb, 0x96, - 0xef, 0xc6, 0x7b, 0x01, 0x8e, 0x16, 0x69, 0x0b, 0x1d, 0x79, 0x88, 0xa3, 0x6d, 0x0f, 0xc7, 0x8b, - 0xe2, 0xe3, 0xe2, 0xee, 0xcb, 0xad, 0xf9, 0x8e, 0xdf, 0xf1, 0x29, 0xe0, 0x0a, 0xf9, 0xc5, 0xbe, - 0xb5, 0x4e, 0x04, 0xbd, 0x68, 0x9b, 0xd2, 0x5e, 0x49, 0x7e, 0xb1, 0x4f, 0xda, 0xdf, 0x28, 0x50, - 0x59, 0xb6, 0x2c, 0xbf, 0xe7, 0xc5, 0xe8, 0x2a, 0x4c, 0x76, 0x42, 0xbf, 0x17, 0x34, 0x95, 0x33, - 0xca, 0xc5, 0xe9, 0xa5, 0xd6, 0x62, 0x8e, 0x84, 0xc5, 0x5b, 0x04, 0x43, 0x67, 0x88, 0x68, 0x11, - 0x8e, 0x98, 0x8c, 0xd8, 0x08, 0x42, 0x67, 0xd7, 0x8c, 0xb1, 0xb1, 0x83, 0xf7, 0x9a, 0xa5, 0x33, - 0xca, 0xc5, 0xba, 0x3e, 0xc7, 0x3f, 0xb5, 0xd9, 0x97, 0xdb, 0x78, 0x0f, 0x5d, 0x86, 0x39, 0xd3, - 0x75, 0xcc, 0x28, 0x83, 0x5d, 0xa6, 0xd8, 0xb3, 0xf4, 0x83, 0x84, 0xfb, 0x2a, 0x1c, 0x0b, 0x7a, - 0x9b, 0xae, 0x63, 0x19, 0x21, 0xf6, 0x6c, 0xfc, 0x85, 0x5d, 0xbf, 0x17, 0x19, 0x11, 0xc6, 0x76, - 0x73, 0x82, 0x12, 0xcc, 0xb3, 0xaf, 0x7a, 0xf2, 0x71, 0x1d, 0x63, 0x5b, 0xfb, 0xa5, 0x02, 0x93, - 0x54, 0x45, 0x74, 0x0a, 0x80, 0xd3, 0x13, 0x21, 0x0a, 0xa5, 0xa9, 0x31, 0x08, 0x61, 0x7f, 0x0c, - 0xa6, 0x22, 0x6c, 0x85, 0x38, 0xe6, 0xda, 0xf2, 0x16, 0x21, 0x63, 0xbf, 0x8c, 0xc8, 0xe9, 0x70, - 0xdd, 0x6a, 0x0c, 0xb2, 0xee, 0x74, 0xd0, 0x1b, 0x00, 0xb4, 0xeb, 0x06, 0x31, 0x22, 0xd5, 0xa4, - 0xb1, 0x74, 0xba, 0xd8, 0x50, 0x0f, 0xf6, 0x02, 0xac, 0xd7, 0x3a, 0xe2, 0x27, 0x3a, 0x01, 0xd5, - 0xc8, 0xe9, 0x78, 0x46, 0xd0, 0xdb, 0x6c, 0x4e, 0x52, 0xde, 0x15, 0xd2, 0x6e, 0xf7, 0x36, 0xc9, - 0x27, 0xd7, 0xf1, 0x76, 0xa8, 0xb6, 0x53, 0xec, 0x13, 0x69, 0x13, 0x5d, 0xcf, 0x40, 0x5d, 0x7c, - 0xa2, 0x5a, 0x55, 0xe8, 0x67, 0xe0, 0x9f, 0xd7, 0x9d, 0x8e, 0xf6, 0x2b, 0x05, 0x54, 0x2a, 0xf0, - 0x53, 0xd8, 0xb4, 0xa3, 0x1b, 0x8f, 0x02, 0x3f, 0x8c, 0x87, 0x59, 0x40, 0xd6, 0xa5, 0x94, 0xd5, - 0xe5, 0x06, 0x1c, 0xe9, 0xe2, 0xd8, 0xb4, 0xcd, 0xd8, 0x34, 0xb6, 0x09, 0x47, 0xc3, 0x72, 0xec, - 0xa8, 0x59, 0x3e, 0x53, 0xbe, 0x58, 0xbf, 0x7e, 0xf4, 0x60, 0x7f, 0x61, 0xee, 0x2e, 0xff, 0x4c, - 0xe5, 0xad, 0xac, 0xad, 0x46, 0xfa, 0x5c, 0x37, 0x03, 0x72, 0xec, 0x88, 0xb1, 0x89, 0x22, 0xb3, - 0x83, 0x23, 0x99, 0xcd, 0x84, 0xcc, 0x86, 0x7d, 0xce, 0xb0, 0x91, 0x41, 0x84, 0x8d, 0x6c, 0x99, - 0xc9, 0x8c, 0x65, 0xb4, 0x9f, 0x2a, 0x30, 0x43, 0xfb, 0x2d, 0xf4, 0x21, 0x03, 0x84, 0x77, 0xb1, - 0x17, 0xb3, 0x01, 0x52, 0x06, 0x0c, 0xd0, 0x0d, 0x82, 0xc6, 0x06, 0x08, 0x8b, 0x9f, 0xa8, 0x09, - 0x95, 0xc0, 0xdc, 0x73, 0x7d, 0xd3, 0x16, 0x36, 0xe1, 0x4d, 0xa4, 0x42, 0x39, 0x9d, 0x11, 0xe4, - 0x27, 0xd2, 0x61, 0x4e, 0xf0, 0x33, 0x44, 0xe7, 0xe9, 0x94, 0x98, 0x5e, 0x3a, 0x97, 0x2b, 0xb1, - 0xcd, 0x7f, 0x0b, 0x65, 0x75, 0x35, 0xe8, 0x83, 0x68, 0xcb, 0xbc, 0x3f, 0x37, 0xbc, 0x5d, 0xec, - 0xfa, 0x01, 0x46, 0xf3, 0x30, 0xe9, 0xf9, 0x9e, 0x85, 0xf9, 0xf8, 0xb1, 0x06, 0x81, 0x52, 0x9d, - 0xb9, 0x92, 0xac, 0xf1, 0xd6, 0x44, 0xb5, 0xac, 0x4e, 0x68, 0xff, 0xa6, 0x40, 0x83, 0xdb, 0x95, - 0xd8, 0x10, 0x87, 0x11, 0xe9, 0x15, 0x5d, 0x8a, 0x38, 0xa4, 0x6c, 0x26, 0x74, 0xd1, 0x44, 0x97, - 0xa0, 0x66, 0xe3, 0x5d, 0xc7, 0xc2, 0x46, 0xb0, 0xc3, 0x98, 0x5d, 0xaf, 0x1f, 0xec, 0x2f, 0x54, - 0x57, 0x29, 0xb0, 0x7d, 0x5b, 0xaf, 0xb2, 0xcf, 0xed, 0x9d, 0x1c, 0x03, 0xdc, 0x85, 0xaa, 0xd4, - 0xef, 0xf2, 0xc5, 0xe9, 0xa5, 0x97, 0x73, 0xfb, 0x9d, 0xd5, 0x66, 0x51, 0x74, 0xf6, 0x86, 0x17, - 0x87, 0x7b, 0x7a, 0xc2, 0xa2, 0x75, 0x0d, 0x66, 0x32, 0x9f, 0x88, 0x44, 0x31, 0x73, 0x6b, 0x3a, - 0xf9, 0x49, 0xfa, 0xbd, 0x6b, 0xba, 0x3d, 0x4c, 0x55, 0xad, 0xe9, 0xac, 0xf1, 0xb1, 0xd2, 0x47, - 0x15, 0xad, 0x09, 0x6a, 0xbf, 0x79, 0xdf, 0x9a, 0xa8, 0x2a, 0x6a, 0x49, 0xfb, 0x9a, 0x02, 0xea, - 0x0d, 0xcf, 0x0a, 0xf7, 0x82, 0x18, 0xdb, 0x5c, 0x15, 0x74, 0x12, 0x6a, 0x81, 0x6b, 0x3a, 0x5e, - 0x8c, 0x1f, 0xc5, 0xc9, 0xd2, 0x10, 0x80, 0xfc, 0x91, 0x2d, 0x3d, 0xd9, 0xc8, 0x06, 0x30, 0xcb, - 0x85, 0x27, 0x63, 0x7b, 0x01, 0x66, 0xf9, 0x6c, 0xa7, 0xcb, 0x03, 0x87, 0x11, 0x57, 0xa5, 0xd1, - 0x3d, 0x34, 0x7e, 0x1c, 0x22, 0x66, 0x25, 0x6f, 0xa6, 0xd3, 0xa3, 0x2c, 0x4d, 0x8f, 0xb7, 0x26, - 0xaa, 0x13, 0xea, 0xa4, 0xf6, 0x15, 0x05, 0xea, 0x74, 0x92, 0xaf, 0xf8, 0xac, 0x5b, 0xc7, 0xa0, - 0xe4, 0xd8, 0x4c, 0xc4, 0xf5, 0xa9, 0x83, 0xfd, 0x85, 0xd2, 0xda, 0xaa, 0x5e, 0x72, 0x6c, 0xf4, - 0x22, 0x40, 0x60, 0x86, 0x64, 0xd1, 0x90, 0xe5, 0x59, 0xa2, 0xcb, 0x73, 0xe6, 0x60, 0x7f, 0xa1, - 0xd6, 0xa6, 0x50, 0xb2, 0x2c, 0x6b, 0x0c, 0x61, 0xcd, 0x8e, 0xd0, 0x79, 0xa8, 0xb2, 0x2d, 0x30, - 0xd8, 0x61, 0x52, 0xaf, 0x4f, 0x1f, 0xec, 0x2f, 0x54, 0xe8, 0xb4, 0x6d, 0xdf, 0xd6, 0x2b, 0xf4, - 0x63, 0x7b, 0x87, 0x2b, 0x61, 0x40, 0x33, 0xb3, 0x40, 0xdb, 0x6c, 0x39, 0xad, 0x63, 0x2f, 0xce, - 0x4e, 0x3e, 0x65, 0xe0, 0xe4, 0x2b, 0xb4, 0x80, 0xe6, 0xc0, 0x3c, 0xe9, 0x9f, 0x69, 0xc5, 0xcb, - 0xe4, 0x04, 0xb9, 0x8d, 0xf7, 0x96, 0x6d, 0x1b, 0xdb, 0xe3, 0x30, 0x3f, 0x0f, 0x55, 0x7e, 0x2c, - 0x89, 0x35, 0x40, 0x7b, 0x44, 0xf9, 0x91, 0x1e, 0xb1, 0xa3, 0x69, 0x47, 0xfb, 0x96, 0x02, 0xc7, - 0x78, 0x67, 0xba, 0x9b, 0x38, 0x64, 0x9c, 0x12, 0x69, 0x5d, 0x0a, 0xec, 0x93, 0xc6, 0x30, 0x89, - 0x34, 0xf6, 0xb9, 0xbd, 0x33, 0xce, 0x92, 0x3b, 0x05, 0xc0, 0xb9, 0x4a, 0x87, 0x11, 0x83, 0x90, - 0x5d, 0xff, 0x16, 0x34, 0x18, 0xd1, 0xca, 0xb6, 0xe9, 0x78, 0x64, 0x4f, 0x7f, 0x16, 0x6a, 0x16, - 0xf9, 0x2d, 0xed, 0xf8, 0x55, 0x4b, 0x7c, 0x94, 0x76, 0x81, 0x52, 0x66, 0x17, 0xd0, 0x7e, 0x47, - 0xe1, 0xa3, 0x94, 0x65, 0x37, 0xb6, 0x21, 0x3f, 0x02, 0x0d, 0x1b, 0x47, 0xb1, 0x91, 0x9a, 0x82, - 0xf5, 0x4f, 0x3d, 0xd8, 0x5f, 0xa8, 0xaf, 0xe2, 0x28, 0x4e, 0xcc, 0x51, 0xb7, 0xd3, 0xd6, 0x8e, - 0xbc, 0xeb, 0x96, 0x33, 0xbb, 0x2e, 0xd1, 0x4c, 0xbb, 0xdb, 0x73, 0x63, 0x87, 0xe1, 0x52, 0x25, - 0xe9, 0xb8, 0xe8, 0x38, 0xf2, 0xdd, 0x5d, 0x1c, 0x8e, 0xad, 0xe3, 0x39, 0x68, 0xb0, 0xc1, 0x0e, - 0x39, 0x07, 0x3e, 0xa1, 0x66, 0x4c, 0x99, 0x2d, 0x5a, 0x80, 0x69, 0xe1, 0xaa, 0xf8, 0xfe, 0x16, - 0x57, 0x0b, 0xb8, 0x93, 0xe2, 0xfb, 0x5b, 0xda, 0xb7, 0x15, 0x38, 0x73, 0x48, 0x33, 0xbb, 0xeb, - 0x78, 0xba, 0xef, 0xe2, 0x5b, 0xa1, 0xe9, 0xc5, 0xe3, 0xe9, 0xf5, 0x09, 0x98, 0xeb, 0x50, 0x2a, - 0x7c, 0xc8, 0x7c, 0x47, 0x0e, 0xf6, 0x17, 0x66, 0x19, 0x4b, 0x9c, 0x58, 0x70, 0xb6, 0x93, 0x01, - 0xec, 0x68, 0xeb, 0x70, 0xbe, 0x5f, 0x9f, 0x35, 0xcf, 0x89, 0x1d, 0xd3, 0x65, 0x90, 0x65, 0xcf, - 0xf3, 0x7b, 0x9e, 0x35, 0xd6, 0x64, 0xd5, 0x4c, 0x38, 0xc3, 0x7b, 0x66, 0x2f, 0xdb, 0xb6, 0x13, - 0x3b, 0xbe, 0x67, 0xba, 0x59, 0x9f, 0x6b, 0x9c, 0x4e, 0x22, 0x98, 0xa0, 0x2e, 0x1c, 0x33, 0x39, - 0xfd, 0xad, 0xd9, 0x70, 0x96, 0x39, 0x95, 0xb8, 0xeb, 0xef, 0xe2, 0x0f, 0x4b, 0xca, 0xfb, 0x80, - 0xb8, 0x9f, 0x4b, 0x85, 0xbd, 0xe5, 0x3b, 0xde, 0x78, 0x4c, 0x13, 0xef, 0xb8, 0x34, 0xa2, 0x77, - 0xac, 0x61, 0x50, 0x65, 0x91, 0x77, 0xf0, 0x56, 0x3c, 0xe6, 0xae, 0x94, 0xec, 0xb3, 0xa5, 0xe2, - 0x7d, 0x56, 0x7b, 0x0b, 0x4e, 0x71, 0x31, 0x7c, 0x1f, 0xd4, 0xf1, 0xfb, 0x3d, 0x1c, 0xc5, 0xab, - 0x4e, 0x64, 0x6e, 0xba, 0x63, 0x75, 0x52, 0x5b, 0x83, 0x93, 0xb9, 0xbc, 0x6e, 0x78, 0x63, 0xb3, - 0xfa, 0xba, 0x02, 0x67, 0x73, 0x79, 0xe9, 0x78, 0x0b, 0x87, 0xd8, 0xb3, 0xb0, 0x8e, 0x23, 0x3c, - 0x96, 0x45, 0x8a, 0xaf, 0x04, 0xa5, 0x01, 0x57, 0x82, 0x7d, 0x05, 0xce, 0xe5, 0x2a, 0x72, 0xbf, - 0x17, 0x77, 0x7c, 0xc7, 0xeb, 0xdc, 0xf0, 0xde, 0xef, 0xe1, 0xde, 0xd8, 0x47, 0xc6, 0x28, 0x83, - 0x83, 0x3e, 0x41, 0xf6, 0x5c, 0x2a, 0x94, 0x6e, 0x21, 0x45, 0xfe, 0xc3, 0xfa, 0xb6, 0x19, 0x62, - 0x62, 0x62, 0xa1, 0xa1, 0xa0, 0x42, 0xcf, 0x41, 0xdd, 0x7f, 0xe8, 0x65, 0xfd, 0xcb, 0xba, 0x3e, - 0xed, 0x3f, 0xf4, 0x12, 0xcf, 0xe2, 0x8b, 0xf0, 0xdc, 0xc0, 0xfe, 0x8d, 0x7b, 0xd6, 0xbe, 0x08, - 0xc0, 0xa5, 0xa7, 0xbd, 0xa3, 0xee, 0x00, 0x67, 0xdf, 0xbe, 0xad, 0xd7, 0x38, 0x42, 0x7b, 0x47, - 0xfb, 0xc7, 0x22, 0xf3, 0xae, 0x79, 0x96, 0xdf, 0x75, 0xbc, 0x8e, 0x8e, 0x2d, 0xec, 0xec, 0x8e, - 0x67, 0xde, 0xb1, 0x54, 0x40, 0x1f, 0x81, 0xe3, 0x02, 0xbb, 0x7f, 0x62, 0xb0, 0x7d, 0xfb, 0xa8, - 0x25, 0x34, 0xeb, 0xdb, 0x52, 0x54, 0x41, 0xd7, 0x67, 0xdf, 0x59, 0x0e, 0x4f, 0x6c, 0xfc, 0x7f, - 0x15, 0x38, 0x3f, 0xb0, 0x97, 0xab, 0x4e, 0x64, 0x99, 0xa1, 0xfd, 0x21, 0x76, 0x53, 0xfb, 0xc3, - 0x61, 0x96, 0x5e, 0xb6, 0x2c, 0x1c, 0xc4, 0x1f, 0xa6, 0xa5, 0x47, 0xf4, 0xfd, 0xb4, 0x00, 0x8e, - 0x66, 0x35, 0xbd, 0xee, 0xfa, 0xd6, 0xce, 0x87, 0x69, 0x9c, 0x10, 0x8e, 0x67, 0x25, 0x6e, 0x78, - 0x9b, 0x1f, 0xb6, 0xcc, 0x6f, 0x29, 0xd0, 0xe4, 0x42, 0xd7, 0x71, 0x48, 0x58, 0x3c, 0xf0, 0x77, - 0xb0, 0x37, 0xb6, 0x4b, 0x72, 0x13, 0x66, 0x22, 0x46, 0x6f, 0xc4, 0x84, 0x01, 0x3f, 0x62, 0x9e, - 0xcb, 0xdf, 0x2a, 0x24, 0x49, 0x7a, 0x3d, 0x92, 0x5a, 0x9a, 0x0f, 0xad, 0x1c, 0x75, 0xd8, 0xb9, - 0x3a, 0xee, 0xee, 0x46, 0x15, 0x31, 0x1c, 0xb6, 0xb5, 0xd6, 0xd8, 0x30, 0x53, 0x76, 0x6b, 0xab, - 0x7a, 0x85, 0x7e, 0x5c, 0xb3, 0xb5, 0x1f, 0x89, 0xb0, 0x83, 0x8e, 0x03, 0xd7, 0xb1, 0xcc, 0xd8, - 0xf1, 0x3a, 0xe3, 0xc8, 0x59, 0x05, 0x64, 0xf6, 0xe2, 0x6d, 0xec, 0xc5, 0x94, 0xd8, 0xf7, 0x8c, - 0x5e, 0xe8, 0x72, 0x89, 0x34, 0x3e, 0xb0, 0x9c, 0xf9, 0xba, 0xa1, 0xdf, 0xd1, 0xe7, 0xb2, 0x04, - 0x1b, 0xa1, 0x8b, 0x5e, 0x02, 0x14, 0x0a, 0xf9, 0xbe, 0x67, 0x10, 0x93, 0xe0, 0x90, 0x4e, 0xcf, - 0x9a, 0x3e, 0x27, 0x7d, 0x59, 0xa7, 0x1f, 0xb4, 0x3b, 0x30, 0xc7, 0xcd, 0xc3, 0xe2, 0x24, 0xab, - 0xe4, 0xee, 0x59, 0x83, 0x0a, 0x5f, 0x4c, 0xad, 0x17, 0x61, 0x92, 0x74, 0x67, 0x0f, 0x9d, 0x85, - 0x19, 0x4c, 0x31, 0xb0, 0x6d, 0xd0, 0xbd, 0x81, 0x39, 0xd4, 0x75, 0x01, 0x24, 0x84, 0xda, 0xaf, - 0xa6, 0xe0, 0x38, 0x67, 0x77, 0x0b, 0x93, 0xb9, 0xb7, 0xe5, 0x74, 0x7a, 0x21, 0x95, 0x27, 0x33, - 0xfd, 0x60, 0x4a, 0x70, 0x7d, 0x11, 0x20, 0x89, 0x99, 0x09, 0xfb, 0xd0, 0x29, 0xc6, 0x87, 0x8e, - 0x4c, 0x31, 0x11, 0x39, 0x1b, 0xeb, 0xb2, 0xf0, 0x71, 0x50, 0x05, 0xe3, 0xbe, 0x35, 0x8a, 0x0e, - 0xf6, 0x17, 0x1a, 0xb2, 0x2b, 0xd2, 0xbe, 0xad, 0x37, 0x4c, 0xb9, 0xbd, 0x83, 0xce, 0x42, 0x25, - 0xc0, 0x38, 0x24, 0x23, 0x3e, 0x41, 0xed, 0x0f, 0x07, 0xfb, 0x0b, 0x53, 0x6d, 0x8c, 0xc3, 0xb5, - 0x55, 0x7d, 0x8a, 0x7c, 0x5a, 0xb3, 0xc9, 0xad, 0xd9, 0x75, 0xa2, 0x18, 0x7b, 0xe4, 0xaa, 0x3a, - 0x79, 0xa6, 0x7c, 0xb1, 0xa6, 0xa7, 0x00, 0xf4, 0x59, 0x98, 0xde, 0x74, 0xb1, 0x81, 0x99, 0xaf, - 0x40, 0x83, 0x58, 0x8d, 0xa5, 0xd7, 0x07, 0x4d, 0xe2, 0x7e, 0x8b, 0x2d, 0xae, 0xe3, 0x98, 0xcc, - 0xa1, 0xf5, 0xd8, 0x8c, 0xb1, 0x0e, 0x9b, 0x2e, 0x16, 0x8e, 0x87, 0x05, 0xea, 0x43, 0x67, 0xcb, - 0x31, 0x82, 0xa5, 0x20, 0x11, 0x50, 0x79, 0x52, 0x01, 0x0d, 0xc2, 0xb2, 0xbd, 0x14, 0x08, 0x21, - 0xef, 0x41, 0xbd, 0x6b, 0x7b, 0x51, 0x22, 0xa0, 0xfa, 0xa4, 0x02, 0xa6, 0x09, 0x3b, 0xc1, 0xfd, - 0x7f, 0xc3, 0x4c, 0x88, 0x5d, 0x73, 0x2f, 0x61, 0x5f, 0x7b, 0x52, 0xf6, 0x75, 0xca, 0x4f, 0xf0, - 0x7f, 0x00, 0x73, 0x62, 0xaa, 0xf4, 0xa2, 0x6d, 0xbe, 0x93, 0x00, 0xdd, 0x49, 0x2e, 0xe6, 0x07, - 0x2d, 0x7a, 0xd1, 0x36, 0x97, 0xc3, 0xcf, 0xe8, 0x50, 0x9f, 0xe5, 0xd3, 0xa9, 0x17, 0x6d, 0xd3, - 0xd5, 0x8e, 0xee, 0x02, 0x92, 0xb9, 0xf2, 0xc5, 0x35, 0x4d, 0xd9, 0x2e, 0x0c, 0x64, 0x8b, 0x43, - 0x5d, 0x4d, 0xb9, 0xf1, 0xc5, 0x77, 0x0b, 0xea, 0x72, 0x17, 0xd0, 0x34, 0x54, 0x36, 0xbc, 0x1d, - 0xcf, 0x7f, 0xe8, 0xa9, 0xcf, 0x90, 0x06, 0xef, 0x8c, 0xaa, 0xa0, 0x3a, 0x54, 0x85, 0x07, 0xab, - 0x96, 0xd0, 0x2c, 0x4c, 0x6f, 0x78, 0xe6, 0xae, 0xe9, 0xb8, 0x04, 0xa2, 0x96, 0xb5, 0x2f, 0xc1, - 0xf1, 0x02, 0xb7, 0x52, 0x5e, 0x76, 0xef, 0x88, 0x55, 0x57, 0xec, 0x3a, 0x2a, 0xc5, 0xae, 0x23, - 0xb9, 0x97, 0x8a, 0xc1, 0x22, 0x6b, 0xaf, 0xaa, 0x8b, 0xa6, 0xf6, 0x02, 0x1c, 0xcd, 0xf5, 0xb6, - 0x65, 0xe1, 0x15, 0x2e, 0x5c, 0xfb, 0x5c, 0x12, 0xa2, 0xc8, 0xb8, 0xd3, 0x32, 0xee, 0x1b, 0x4f, - 0xa4, 0xa8, 0xb6, 0x0d, 0x27, 0xfb, 0xad, 0x11, 0xe1, 0x7c, 0x93, 0x3c, 0xa1, 0xa4, 0x6f, 0x2a, - 0x80, 0xb2, 0xa2, 0xd6, 0xb1, 0x67, 0xb7, 0xba, 0x89, 0x00, 0xd9, 0xe5, 0x55, 0x9e, 0x8a, 0xcb, - 0x5b, 0x3a, 0xe4, 0xf2, 0xa6, 0xa6, 0xfd, 0x4c, 0xbf, 0x69, 0x99, 0x0f, 0xd4, 0x7a, 0x2d, 0xd5, - 0x27, 0x7b, 0xa6, 0x2b, 0x83, 0xcf, 0xf4, 0x94, 0xf3, 0xbb, 0x39, 0x23, 0x4c, 0x3c, 0xbc, 0xa7, - 0xc0, 0xfa, 0x36, 0xd4, 0x69, 0xef, 0x39, 0x96, 0x3c, 0x3a, 0x57, 0xc5, 0xe8, 0x5c, 0x80, 0x59, - 0xec, 0x59, 0xbe, 0x8d, 0x6d, 0x43, 0xb6, 0x66, 0x5d, 0x6f, 0x70, 0x30, 0x27, 0x26, 0x4e, 0xc8, - 0xcc, 0x2a, 0x26, 0x20, 0xc1, 0x6e, 0x29, 0x55, 0x70, 0x54, 0x2e, 0xad, 0x4f, 0x09, 0xb9, 0x4f, - 0x3a, 0x7a, 0x5a, 0x1b, 0xea, 0xb2, 0xcf, 0xf7, 0x14, 0xcc, 0xa5, 0x43, 0x23, 0xeb, 0xd3, 0x3d, - 0x05, 0x9e, 0x6f, 0xc3, 0x91, 0xbe, 0xa8, 0x21, 0x9d, 0xc6, 0x2f, 0xa7, 0x8c, 0x65, 0x57, 0x57, - 0x29, 0x76, 0x75, 0x53, 0x96, 0x0f, 0xe0, 0x58, 0x7f, 0xfc, 0x65, 0x25, 0xc4, 0x66, 0x9c, 0x59, - 0x7d, 0x57, 0x84, 0x9d, 0x47, 0x64, 0xaf, 0xbd, 0x07, 0xf3, 0xfd, 0x5c, 0xdf, 0xf2, 0x1d, 0xaf, - 0x75, 0x2d, 0xd5, 0x74, 0xec, 0x77, 0xbb, 0x54, 0xe7, 0x75, 0x38, 0xda, 0xcf, 0xfd, 0x0e, 0x36, - 0x77, 0xf1, 0x13, 0x19, 0xc2, 0x82, 0x73, 0x03, 0x43, 0x76, 0x64, 0x21, 0xb9, 0x7e, 0xf4, 0x64, - 0x42, 0xfe, 0x9f, 0x02, 0xa7, 0x07, 0x87, 0xdf, 0x5a, 0xef, 0x8d, 0xcd, 0x3e, 0x1b, 0x19, 0x2b, - 0x0d, 0x8a, 0x8c, 0xa5, 0x9a, 0x7c, 0x27, 0x27, 0x10, 0xb8, 0xe6, 0xed, 0x3a, 0x31, 0x3d, 0xb1, - 0xf9, 0x14, 0x78, 0x8c, 0xae, 0xbe, 0x2e, 0xa6, 0xca, 0xd8, 0xe3, 0xab, 0x7d, 0x43, 0x81, 0xd9, - 0xe5, 0x20, 0x89, 0xb9, 0xd3, 0xa9, 0xfd, 0xf6, 0xf8, 0xd6, 0x28, 0x7c, 0x0c, 0x63, 0x2f, 0x4d, - 0x2d, 0x4d, 0x68, 0x78, 0x02, 0xca, 0x56, 0xf2, 0xb2, 0x50, 0x39, 0xd8, 0x5f, 0x28, 0xaf, 0xac, - 0xad, 0xea, 0x04, 0x46, 0xc6, 0xa9, 0x41, 0x55, 0xa1, 0xd1, 0xfa, 0xff, 0x4e, 0x4d, 0x7e, 0xa4, - 0x00, 0xca, 0x3c, 0x45, 0xd0, 0xb7, 0x11, 0x72, 0xf9, 0x62, 0x0f, 0x86, 0x96, 0x9f, 0xbe, 0x06, - 0x15, 0x5d, 0xbe, 0xe4, 0xe7, 0x14, 0xbd, 0x8e, 0xe5, 0xc7, 0x95, 0x37, 0xa5, 0xc7, 0x30, 0x76, - 0x7f, 0xd3, 0x8a, 0x07, 0x2a, 0x79, 0x27, 0x4a, 0x68, 0xd2, 0x27, 0xbd, 0xb2, 0xf4, 0xa4, 0xa7, - 0xfd, 0xa9, 0x02, 0x73, 0x9c, 0x82, 0xbd, 0x1d, 0x3d, 0x55, 0x9d, 0xdf, 0x80, 0x8a, 0x78, 0x78, - 0x62, 0x2a, 0x9f, 0x1d, 0xe1, 0xfd, 0x4e, 0x17, 0x34, 0xf2, 0xa3, 0x4c, 0x39, 0xfb, 0x28, 0xf3, - 0xef, 0xa9, 0xda, 0xac, 0x7b, 0x77, 0x9c, 0x28, 0x6e, 0xfd, 0x5c, 0x19, 0x7f, 0xe4, 0xcf, 0x43, - 0x35, 0x72, 0x3c, 0x0b, 0x8b, 0xab, 0x28, 0xc7, 0x5b, 0x27, 0x30, 0x72, 0x15, 0xa5, 0x1f, 0xd7, - 0x6c, 0xf4, 0x2c, 0xd4, 0x18, 0x9e, 0xe7, 0x3f, 0xa4, 0xda, 0x54, 0x75, 0x46, 0x78, 0xcf, 0x7f, - 0x48, 0x98, 0xf4, 0xbc, 0xd8, 0x71, 0xc5, 0xed, 0x86, 0x33, 0xd9, 0x20, 0x30, 0xc2, 0x84, 0x7e, - 0x64, 0x4c, 0x18, 0x1e, 0x61, 0x32, 0xc9, 0x98, 0x50, 0x00, 0x61, 0x72, 0x96, 0xf8, 0xef, 0xbb, - 0x38, 0x8c, 0xb0, 0xe1, 0x87, 0x36, 0x0e, 0xe9, 0x05, 0xa7, 0x4a, 0x9c, 0x70, 0x0a, 0xbc, 0x4f, - 0x60, 0xe9, 0x43, 0x3c, 0xb7, 0xd9, 0xff, 0x94, 0x7e, 0xff, 0xa7, 0x02, 0x35, 0xbe, 0xf3, 0x6d, - 0xf9, 0x2d, 0x63, 0xfc, 0xfe, 0x8e, 0x15, 0x79, 0x69, 0xfd, 0x86, 0xf2, 0xd8, 0x9b, 0xe3, 0x18, - 0x7b, 0x7c, 0xf6, 0xf6, 0x5d, 0x1e, 0x18, 0xee, 0xfe, 0x3c, 0xcc, 0x2c, 0x5b, 0x31, 0xcd, 0x5e, - 0xa1, 0xd2, 0x5a, 0xed, 0xf1, 0x6d, 0x70, 0x0a, 0xc0, 0xf5, 0x2d, 0xd3, 0x35, 0x7c, 0xcf, 0xdd, - 0xe3, 0x37, 0x8e, 0x1a, 0x85, 0xdc, 0xf7, 0xdc, 0xbd, 0xf4, 0xc4, 0xb9, 0x0b, 0xb3, 0xab, 0xd8, - 0xcc, 0x48, 0x7b, 0x92, 0xa3, 0xf4, 0x3b, 0x93, 0x7c, 0xb1, 0xb2, 0x6e, 0x91, 0x8b, 0x59, 0x2f, - 0x7a, 0x1c, 0x8e, 0x3f, 0x28, 0xa7, 0x5e, 0xe4, 0x84, 0x94, 0x7f, 0xf1, 0x42, 0xf1, 0xa0, 0xc8, - 0x22, 0x17, 0x69, 0x32, 0x06, 0x25, 0xcc, 0x4f, 0x70, 0x68, 0xfd, 0x44, 0x81, 0x99, 0x36, 0xc6, - 0xe1, 0x8a, 0xef, 0x79, 0xd8, 0x8a, 0xb1, 0x2d, 0x87, 0x2d, 0x94, 0xc2, 0xb0, 0xc5, 0x18, 0x41, - 0x94, 0x36, 0x40, 0x1c, 0x9a, 0x5e, 0x14, 0xf8, 0x61, 0xcc, 0x12, 0x5e, 0x1a, 0x4b, 0x57, 0x47, - 0x55, 0x5f, 0x10, 0xea, 0x12, 0x0f, 0x74, 0x0c, 0xa6, 0xba, 0xa6, 0x6d, 0x87, 0x2c, 0xef, 0xa5, - 0xa6, 0xf3, 0x56, 0xeb, 0x35, 0x50, 0x89, 0x9a, 0x3a, 0xb6, 0x58, 0x67, 0x1c, 0xaf, 0x33, 0x52, - 0x6f, 0x04, 0x21, 0xf1, 0xa2, 0xc6, 0x32, 0x83, 0xb6, 0x09, 0x13, 0x34, 0xc7, 0x65, 0x16, 0xa6, - 0xc9, 0xbf, 0xe9, 0xbd, 0xbb, 0x09, 0xf3, 0x04, 0xd0, 0xcf, 0x55, 0x55, 0xd0, 0x51, 0x98, 0x13, - 0x5f, 0x12, 0x9b, 0xab, 0x25, 0x99, 0x40, 0xd6, 0x5f, 0x2d, 0x6b, 0x37, 0xa0, 0x96, 0x98, 0x01, - 0x35, 0x00, 0x1e, 0x04, 0x71, 0x2a, 0x07, 0x60, 0xea, 0x41, 0x10, 0xdf, 0x59, 0xbe, 0xa7, 0x2a, - 0xfc, 0xf7, 0x3b, 0xcb, 0xf7, 0xd4, 0x12, 0x52, 0xa1, 0xfe, 0x20, 0x88, 0xdb, 0xa1, 0xff, 0xc8, - 0xe9, 0x3a, 0xf1, 0x9e, 0x5a, 0xd6, 0xfe, 0x4a, 0x21, 0x53, 0x7c, 0xb3, 0xd7, 0x21, 0xfb, 0x27, - 0xb5, 0x74, 0x24, 0x7b, 0xd1, 0x7f, 0xa4, 0x8c, 0xe9, 0x46, 0xa3, 0x3b, 0x99, 0xbc, 0xad, 0xd2, - 0x28, 0x79, 0x5b, 0x6c, 0xfb, 0xc9, 0x4d, 0xe3, 0xca, 0x6e, 0x56, 0xe5, 0x21, 0x61, 0xe2, 0x6f, - 0x97, 0xe1, 0x18, 0xed, 0xcc, 0x9a, 0x17, 0x05, 0xd8, 0x62, 0xfd, 0x59, 0x8f, 0xfd, 0x10, 0xb7, - 0xbe, 0xf1, 0x18, 0x27, 0xc3, 0x06, 0x54, 0x5d, 0xbf, 0x23, 0x77, 0xe4, 0xa5, 0xdc, 0x8e, 0x1c, - 0x12, 0x79, 0xc7, 0xef, 0xd0, 0x7e, 0x51, 0xb6, 0xbc, 0xa1, 0x57, 0x5c, 0xf6, 0xa3, 0xf5, 0x0b, - 0x65, 0xb8, 0x0f, 0x85, 0xae, 0xc0, 0x34, 0xcf, 0x14, 0xb1, 0xd2, 0x54, 0x91, 0xc6, 0xc1, 0xfe, - 0x02, 0xb0, 0x54, 0x11, 0x9a, 0xc2, 0xc5, 0x93, 0x49, 0x68, 0xee, 0xd6, 0x3d, 0x29, 0x93, 0x4c, - 0xca, 0xcb, 0x2a, 0x8f, 0x94, 0x97, 0x95, 0xa4, 0x94, 0x25, 0xa0, 0xec, 0x52, 0x9e, 0x18, 0x96, - 0x32, 0x22, 0x7c, 0xc6, 0xa9, 0x6c, 0x52, 0x41, 0x00, 0x40, 0x8d, 0xf3, 0xd8, 0x5b, 0xa7, 0x7c, - 0x8b, 0xe3, 0xeb, 0x2e, 0x6a, 0x2a, 0x64, 0x79, 0x33, 0x02, 0xb6, 0xf0, 0x22, 0xbd, 0xc2, 0x56, - 0x5e, 0xa4, 0xfd, 0x41, 0x09, 0xe6, 0x97, 0x7b, 0xf1, 0xf6, 0x8d, 0x47, 0xd6, 0xb6, 0xe9, 0x75, - 0xb0, 0x8e, 0xa3, 0xc0, 0xf7, 0x22, 0x8c, 0x9e, 0x83, 0xba, 0x69, 0x59, 0x38, 0x8a, 0x78, 0xbc, - 0x8e, 0xe5, 0x3a, 0x4d, 0x33, 0x18, 0x8b, 0xc0, 0xcd, 0xc3, 0x64, 0x64, 0xf9, 0x41, 0x92, 0xf3, - 0x44, 0x1b, 0x74, 0x83, 0x0c, 0x43, 0x5f, 0xc4, 0xb9, 0x59, 0x03, 0xbd, 0x00, 0x73, 0xf4, 0x87, - 0x61, 0xe3, 0xc8, 0x0a, 0x9d, 0x80, 0xdc, 0x40, 0x58, 0x3c, 0x57, 0x57, 0xe9, 0x87, 0xd5, 0x14, - 0x8e, 0xd6, 0xa1, 0xca, 0x9f, 0x0f, 0x58, 0x30, 0x77, 0x7a, 0xe9, 0xb5, 0xdc, 0x01, 0xc9, 0x53, - 0x5c, 0x04, 0x28, 0x23, 0x9e, 0xc4, 0x25, 0x18, 0xb5, 0xae, 0xc1, 0x4c, 0xe6, 0xd3, 0x58, 0x49, - 0x5c, 0x3f, 0x56, 0xa0, 0x49, 0x47, 0x86, 0x88, 0xe4, 0x6c, 0xd6, 0x71, 0x4c, 0xed, 0xd0, 0xfa, - 0x8e, 0x22, 0xc7, 0x98, 0x26, 0x53, 0x7b, 0x4d, 0x2f, 0x5d, 0x1a, 0x59, 0x6f, 0x9d, 0xd1, 0x3d, - 0x9d, 0x97, 0x87, 0xf4, 0x08, 0xfd, 0x22, 0xa8, 0xfd, 0x11, 0x11, 0x74, 0x0c, 0x4a, 0xc9, 0x34, - 0xa2, 0xd9, 0x56, 0xed, 0xdb, 0x7a, 0x29, 0x78, 0xcc, 0x57, 0x6c, 0xd4, 0x92, 0xae, 0x17, 0xcc, - 0xd9, 0x4e, 0xda, 0x9a, 0x0b, 0x27, 0xe5, 0x07, 0x9f, 0xf5, 0x5e, 0xc0, 0x1e, 0x28, 0x38, 0x90, - 0x4c, 0xb2, 0xe4, 0x7d, 0x49, 0x9c, 0xca, 0x35, 0x7d, 0x5a, 0xbc, 0x1d, 0xb1, 0x75, 0xa5, 0x0a, - 0x14, 0xec, 0xd9, 0x81, 0xef, 0xf0, 0xa3, 0xb7, 0xa6, 0xcf, 0x72, 0xf8, 0x0d, 0x0e, 0xd6, 0xfe, - 0x59, 0x81, 0xba, 0x2c, 0x8e, 0x8c, 0xa7, 0x3c, 0x79, 0x9f, 0xa6, 0x85, 0xd1, 0xe7, 0x00, 0x45, - 0xa2, 0x3b, 0x46, 0x32, 0x5b, 0xcb, 0x03, 0x92, 0x0d, 0x07, 0x59, 0x42, 0x9f, 0x8b, 0xfa, 0x20, - 0x11, 0x3a, 0x0d, 0x80, 0x1f, 0x05, 0x0e, 0x8b, 0xaf, 0xd3, 0xb5, 0x52, 0xd6, 0x25, 0x88, 0xf6, - 0xff, 0x15, 0x38, 0x2e, 0x4d, 0xc7, 0x15, 0xbf, 0x1b, 0xb8, 0x38, 0xc6, 0x37, 0x5d, 0xff, 0x61, - 0xeb, 0x8d, 0x74, 0x46, 0x2e, 0x41, 0xdd, 0x32, 0x5d, 0x77, 0xd3, 0xb4, 0x76, 0x68, 0x47, 0xd9, - 0x31, 0x3c, 0x7b, 0xb0, 0xbf, 0x30, 0xbd, 0xc2, 0xe1, 0xa4, 0x8b, 0xd3, 0x02, 0x89, 0x4c, 0x1f, - 0x79, 0x1b, 0x49, 0xde, 0xdb, 0x94, 0x01, 0xef, 0x6d, 0x3f, 0x56, 0xe0, 0x88, 0xa4, 0xcb, 0x9a, - 0xe7, 0xc4, 0x54, 0x8f, 0xbb, 0x99, 0x2d, 0x8c, 0x58, 0x51, 0xd2, 0x81, 0xe5, 0xb2, 0xf5, 0xe2, - 0x6d, 0x22, 0xbf, 0x42, 0x3e, 0x12, 0xc3, 0xb6, 0xa4, 0xc5, 0x5f, 0xa6, 0x8e, 0x49, 0xba, 0x86, - 0xdb, 0xd2, 0x49, 0x90, 0xf2, 0xa1, 0x27, 0x01, 0xe1, 0x41, 0x60, 0xe4, 0x08, 0x8c, 0xb0, 0xd5, - 0x0b, 0x71, 0x32, 0xac, 0x55, 0x76, 0x04, 0xae, 0x53, 0x28, 0xc1, 0xab, 0x31, 0x84, 0x8d, 0xd0, - 0xd5, 0x7e, 0xa1, 0xc0, 0xb9, 0x95, 0x10, 0xdb, 0x64, 0x70, 0x4d, 0xf7, 0xd3, 0x38, 0x74, 0xb6, - 0xa4, 0x47, 0x39, 0xb9, 0x2b, 0x52, 0x20, 0xf9, 0x0a, 0x88, 0x29, 0x2a, 0xf5, 0x86, 0x1e, 0x36, - 0x9c, 0x88, 0x08, 0x01, 0x8e, 0x42, 0xfa, 0x94, 0x4d, 0x78, 0x2e, 0xf5, 0x27, 0x3c, 0x23, 0x98, - 0x70, 0x1d, 0x6f, 0x87, 0xef, 0x98, 0xf4, 0xf7, 0x87, 0xd0, 0xd5, 0xef, 0x2b, 0x70, 0x69, 0x60, - 0x57, 0x47, 0x9b, 0x41, 0x4e, 0xfe, 0x0c, 0x5a, 0x93, 0x67, 0x90, 0xd3, 0xba, 0x20, 0xd4, 0x3f, - 0x0d, 0xe0, 0x50, 0x91, 0x5b, 0x0e, 0x4f, 0xf2, 0xad, 0xe9, 0x12, 0x44, 0xfb, 0x6a, 0x09, 0x8e, - 0x33, 0x5d, 0xb0, 0x9d, 0x6a, 0x17, 0xd1, 0xeb, 0xe9, 0xd7, 0xa4, 0x8d, 0xf5, 0x05, 0x98, 0xdb, - 0x72, 0xdc, 0x98, 0x1e, 0x69, 0x7d, 0xec, 0x54, 0xf6, 0x61, 0x2d, 0x81, 0x93, 0x9b, 0xa1, 0x40, - 0x8e, 0xa2, 0x1e, 0xcf, 0xa4, 0xab, 0xe9, 0x75, 0x8e, 0x48, 0x61, 0x34, 0x04, 0xfd, 0xc8, 0x72, - 0x7b, 0x36, 0x36, 0xe8, 0xaa, 0xe2, 0x49, 0x19, 0x55, 0xbd, 0xc1, 0xc1, 0x37, 0x18, 0xb4, 0x65, - 0x8a, 0xbe, 0x7c, 0x06, 0xc0, 0x4a, 0x54, 0xe4, 0x3b, 0xfc, 0x47, 0xf3, 0x77, 0x78, 0xf6, 0x86, - 0x79, 0xb8, 0x63, 0x3a, 0xee, 0x38, 0x51, 0x8c, 0x43, 0x6c, 0xeb, 0x12, 0x2f, 0xed, 0x9b, 0x4a, - 0xf2, 0xf6, 0xcb, 0x0e, 0x57, 0xda, 0x7f, 0xc9, 0xb1, 0x74, 0xc7, 0x5c, 0x91, 0xe8, 0x1a, 0x54, - 0xf8, 0x04, 0x1c, 0xfd, 0xd1, 0x5e, 0x50, 0x68, 0xff, 0xa7, 0x4f, 0x9b, 0x15, 0xdf, 0xc6, 0x99, - 0x85, 0xa9, 0x64, 0x17, 0x26, 0x3a, 0x07, 0x0d, 0xcb, 0xb7, 0xb1, 0x61, 0x6d, 0x9b, 0xae, 0x8b, - 0xbd, 0x8e, 0x38, 0x42, 0x67, 0x68, 0xf8, 0x5f, 0x00, 0x33, 0xca, 0x97, 0x07, 0x6c, 0x27, 0x1f, - 0x28, 0xb0, 0xa0, 0x67, 0xdf, 0xc7, 0xe9, 0x5b, 0x20, 0xb3, 0x1d, 0xf3, 0x8e, 0xde, 0xcd, 0x6c, - 0x2d, 0x23, 0xd9, 0x64, 0xc4, 0xdc, 0xa8, 0xf4, 0xf4, 0xfc, 0xb2, 0x02, 0x67, 0xf2, 0xf4, 0x60, - 0x10, 0x7e, 0xc3, 0x7d, 0xa2, 0x80, 0xf7, 0x82, 0x18, 0xd7, 0x63, 0x50, 0xf2, 0xd9, 0xa1, 0x5c, - 0x65, 0x87, 0xf2, 0xfd, 0xdb, 0x7a, 0xc9, 0xdf, 0xd1, 0x7e, 0x0c, 0x00, 0xeb, 0x7b, 0x51, 0x8c, - 0xbb, 0x34, 0x80, 0x21, 0x4d, 0x89, 0x7f, 0x4d, 0xfc, 0xe2, 0x65, 0xa8, 0x04, 0xa1, 0x4f, 0x1c, - 0x33, 0x2e, 0xf8, 0x42, 0xfe, 0x58, 0x27, 0x6c, 0x16, 0xdb, 0x0c, 0x5d, 0x17, 0x74, 0xe8, 0x4d, - 0x28, 0x07, 0x4b, 0xc1, 0xc0, 0x60, 0x9b, 0x4c, 0xbe, 0xd4, 0x66, 0x5b, 0x51, 0x7b, 0xa9, 0xad, - 0x13, 0x42, 0x74, 0x0f, 0x2a, 0x7e, 0xb8, 0xe9, 0xc4, 0xf6, 0x26, 0x4f, 0x27, 0x1b, 0xaa, 0xc2, - 0x7d, 0x82, 0xbe, 0x7a, 0x9d, 0x0d, 0x01, 0x6f, 0xe8, 0x82, 0x09, 0x39, 0xba, 0x1f, 0x9a, 0xa1, - 0x27, 0xee, 0xa6, 0xac, 0xd1, 0xfa, 0x17, 0x05, 0x04, 0x2a, 0xb2, 0xd3, 0xac, 0x82, 0xc4, 0xff, - 0x60, 0xbd, 0x7f, 0x7d, 0x44, 0xd1, 0x8b, 0xf2, 0xd0, 0xd2, 0x9b, 0xb2, 0x3e, 0xcb, 0x59, 0x26, - 0xef, 0x79, 0x5f, 0x82, 0xb9, 0x43, 0x58, 0x64, 0x25, 0x04, 0xa1, 0xdf, 0x09, 0x85, 0xc1, 0xcb, - 0x7a, 0xd2, 0xa6, 0xa1, 0x47, 0xf3, 0x91, 0xd3, 0xed, 0x75, 0xa9, 0x31, 0xcb, 0xba, 0x68, 0x12, - 0xaa, 0xcd, 0xde, 0xd6, 0x16, 0x16, 0x1b, 0x4d, 0x59, 0x4f, 0xda, 0xe4, 0x2e, 0xce, 0x52, 0xfd, - 0xf8, 0x39, 0xcf, 0x5b, 0xad, 0x45, 0x20, 0x26, 0x26, 0x5b, 0x55, 0x72, 0xf9, 0x35, 0x88, 0xeb, - 0x2e, 0xe4, 0x36, 0x12, 0x30, 0xf1, 0xec, 0xa3, 0xd6, 0x37, 0xa6, 0xa0, 0xc2, 0xc7, 0x96, 0x68, - 0xb2, 0x8b, 0xc3, 0x88, 0x38, 0x0f, 0x6c, 0x9f, 0x14, 0x4d, 0x74, 0x1c, 0x2a, 0xbb, 0x56, 0x64, - 0x84, 0x78, 0x8b, 0x2f, 0xd3, 0xa9, 0x5d, 0x2b, 0xd2, 0xf1, 0x16, 0xb9, 0xc4, 0xf4, 0x82, 0xd8, - 0xe9, 0x62, 0xa3, 0x1b, 0x31, 0x1d, 0xd9, 0x25, 0x66, 0x83, 0x02, 0xef, 0xae, 0xeb, 0x55, 0xf6, - 0xf9, 0x6e, 0x84, 0x3e, 0x06, 0x6a, 0x2f, 0xc2, 0xa1, 0x61, 0x05, 0x3d, 0x43, 0x50, 0x00, 0xa5, - 0x98, 0x3b, 0xd8, 0x5f, 0x98, 0xd9, 0x88, 0x70, 0xb8, 0xd2, 0xde, 0x78, 0xc0, 0xc8, 0x66, 0x08, - 0xea, 0x4a, 0xd0, 0x7b, 0xc0, 0x68, 0x3f, 0x09, 0x28, 0xa2, 0xa3, 0x91, 0xa1, 0x9e, 0xa6, 0xd4, - 0x34, 0xa5, 0x98, 0x8d, 0x55, 0x4a, 0x3f, 0xcb, 0xd0, 0x53, 0x0e, 0xa7, 0x00, 0xa2, 0xd8, 0xa4, - 0xbe, 0x97, 0x19, 0x37, 0xeb, 0xd4, 0x16, 0x35, 0x0e, 0x59, 0xa6, 0x05, 0x46, 0xa1, 0x4b, 0xae, - 0xec, 0x86, 0xd5, 0x0b, 0x9b, 0x33, 0x34, 0xa7, 0xbc, 0xc6, 0x20, 0x2b, 0x3d, 0x7a, 0x3c, 0x78, - 0xbd, 0xae, 0xd1, 0xf1, 0x43, 0xbf, 0x17, 0x3b, 0x1e, 0x6e, 0x36, 0x28, 0x83, 0xba, 0xd7, 0xeb, - 0xde, 0x12, 0x30, 0x32, 0x24, 0x9e, 0xbf, 0xe5, 0xb8, 0xb8, 0x39, 0xcb, 0x86, 0x84, 0xb5, 0xd0, - 0x4b, 0x70, 0x24, 0xf6, 0x7d, 0xa3, 0x6b, 0x7a, 0x7b, 0x86, 0x1f, 0x60, 0xcf, 0x20, 0xd0, 0xa8, - 0xa9, 0xd2, 0xa3, 0x43, 0x8d, 0x7d, 0xff, 0xae, 0xe9, 0xed, 0xdd, 0x0f, 0xb0, 0x77, 0x93, 0xc0, - 0xd1, 0x59, 0xa8, 0x10, 0x59, 0x56, 0xd0, 0x6b, 0xce, 0xd1, 0x0e, 0xd2, 0x00, 0xc8, 0xbd, 0x1e, - 0xe9, 0x9d, 0x3e, 0xe5, 0xf5, 0x48, 0xa7, 0x88, 0xbe, 0x1d, 0xdf, 0x10, 0xa3, 0x85, 0xe8, 0x98, - 0xd4, 0x3a, 0xfe, 0xa7, 0xf9, 0x78, 0x5d, 0x02, 0xd5, 0x0f, 0x70, 0x48, 0xb3, 0x98, 0x0c, 0x66, - 0x8a, 0xe6, 0x11, 0xe6, 0x03, 0x27, 0x70, 0x66, 0x32, 0xf4, 0x2c, 0xd4, 0xb6, 0xfd, 0x28, 0x36, - 0x3c, 0xb3, 0x8b, 0x9b, 0xf3, 0x14, 0xa7, 0x4a, 0x00, 0xf7, 0xcc, 0x2e, 0x26, 0x7e, 0x86, 0x19, - 0x5a, 0xdb, 0xcd, 0xa3, 0xcc, 0xcf, 0x20, 0xbf, 0x25, 0x53, 0x75, 0xcd, 0x47, 0xcd, 0x63, 0xb2, - 0xa9, 0xee, 0x9a, 0x8f, 0x88, 0xf7, 0x11, 0x38, 0x76, 0xf3, 0x38, 0x55, 0x9d, 0x2d, 0x79, 0x72, - 0xe5, 0x0e, 0x1c, 0x1b, 0x9d, 0x84, 0x89, 0x80, 0x7c, 0x6b, 0xd2, 0x6f, 0xd5, 0x83, 0xfd, 0x85, - 0x89, 0x36, 0xf9, 0x48, 0xa1, 0x6c, 0x8d, 0x38, 0x7e, 0xe8, 0xc4, 0x7b, 0xcd, 0x13, 0x62, 0x8d, - 0xb0, 0x36, 0x75, 0x69, 0x1c, 0xbb, 0xd9, 0x4a, 0x99, 0x6e, 0x10, 0xa6, 0x3d, 0xc7, 0x46, 0x0b, - 0x30, 0xfd, 0xd0, 0x0f, 0x77, 0x48, 0x47, 0x6d, 0x27, 0x6c, 0x3e, 0xcb, 0xfc, 0x05, 0x0e, 0x5a, - 0x75, 0xe8, 0xa9, 0xcd, 0xe7, 0x0e, 0x99, 0x53, 0xb4, 0x9b, 0x27, 0x29, 0x52, 0x83, 0x81, 0x37, - 0x38, 0x54, 0xfb, 0xf5, 0x24, 0x54, 0xc9, 0xa2, 0xe8, 0x3f, 0x49, 0x97, 0xc5, 0xae, 0xf9, 0x51, - 0x98, 0x14, 0x4b, 0xa9, 0x5c, 0xf8, 0x28, 0x22, 0x38, 0xd0, 0x1f, 0x3a, 0x23, 0x68, 0xfd, 0xa8, - 0x04, 0x13, 0xa4, 0x2d, 0xd5, 0xad, 0xd4, 0x32, 0x75, 0x2b, 0xd7, 0x60, 0x8a, 0x4c, 0x23, 0xcc, - 0x02, 0x11, 0x45, 0x1b, 0x6a, 0xc2, 0x5b, 0x27, 0xb8, 0x3a, 0x27, 0x21, 0x13, 0x8f, 0xde, 0x88, - 0x85, 0xfb, 0xcb, 0x5b, 0x68, 0x19, 0xaa, 0x5b, 0xd8, 0x8c, 0x7b, 0x21, 0x66, 0xbb, 0x62, 0xa3, - 0xa8, 0xe4, 0x47, 0xb0, 0xbd, 0xc9, 0xb0, 0xf5, 0x84, 0x8c, 0x58, 0xb7, 0xeb, 0x78, 0x86, 0x6b, - 0xc6, 0xd8, 0xb3, 0x58, 0xcd, 0x5a, 0x59, 0x87, 0xae, 0xe3, 0xdd, 0x61, 0x10, 0x32, 0x7d, 0x9c, - 0xc8, 0xa0, 0x11, 0x5c, 0xcc, 0xc3, 0xe9, 0x55, 0x27, 0xa2, 0xf1, 0x63, 0x8c, 0x3e, 0x0e, 0x35, - 0xdb, 0x09, 0xb1, 0x45, 0xef, 0x23, 0x95, 0x01, 0x81, 0x92, 0x55, 0x81, 0xa5, 0xa7, 0x04, 0xad, - 0xbf, 0x25, 0xc7, 0x15, 0xe9, 0x61, 0x56, 0x88, 0xd2, 0x27, 0xa4, 0x09, 0x15, 0xd3, 0xb6, 0xe9, - 0xd6, 0xca, 0xf6, 0x26, 0xd1, 0xcc, 0x8a, 0x2f, 0x8f, 0x29, 0x9e, 0xf0, 0x15, 0xdd, 0x66, 0x5b, - 0xac, 0x68, 0xa2, 0x37, 0xa1, 0x12, 0xc5, 0x21, 0x36, 0xbb, 0x22, 0xd8, 0xf0, 0xfc, 0x60, 0xb3, - 0xae, 0x53, 0x64, 0x5d, 0x10, 0xb5, 0xce, 0xc0, 0x14, 0x03, 0x15, 0x4d, 0x07, 0xed, 0x7d, 0xa8, - 0xf0, 0xb1, 0x40, 0x08, 0x1a, 0x3c, 0xec, 0xc8, 0x21, 0xea, 0x33, 0x68, 0x16, 0xa6, 0xdf, 0xc1, - 0xd1, 0xb6, 0x00, 0x28, 0xa8, 0x01, 0x70, 0xfd, 0xce, 0x0d, 0xd1, 0xa6, 0x61, 0xc8, 0x3b, 0xbe, - 0x65, 0xba, 0x02, 0x52, 0xa6, 0x01, 0x4c, 0x3f, 0x14, 0xed, 0x09, 0xc2, 0xe2, 0xed, 0x9e, 0x63, - 0x09, 0xc0, 0xa4, 0xf6, 0x03, 0x05, 0xaa, 0x6d, 0x71, 0x26, 0xcd, 0xc3, 0x64, 0x14, 0x9b, 0xb1, - 0xb8, 0x5f, 0xb3, 0x06, 0x81, 0xda, 0xbe, 0xe3, 0x75, 0x44, 0xb4, 0x83, 0x36, 0x32, 0x67, 0x1b, - 0x31, 0x72, 0x49, 0x3a, 0xdb, 0x4e, 0x42, 0xcd, 0xe2, 0x77, 0x04, 0x76, 0x50, 0x4d, 0xe8, 0x29, - 0x80, 0xdd, 0xb6, 0x63, 0xd3, 0xa5, 0xd3, 0x6a, 0x42, 0x67, 0x0d, 0x2a, 0x05, 0xbb, 0x26, 0x2b, - 0x1d, 0x9d, 0xd0, 0x59, 0x43, 0xf3, 0x60, 0x8e, 0xbd, 0x6a, 0xbc, 0xe3, 0xc4, 0xdb, 0x2c, 0x44, - 0x16, 0x8d, 0x53, 0xaa, 0xb4, 0x08, 0xd3, 0x2c, 0x9c, 0x16, 0x19, 0xc1, 0x4e, 0xa6, 0x32, 0x4c, - 0xc4, 0xdb, 0x22, 0x1d, 0x38, 0x46, 0x7b, 0x27, 0xd2, 0xf6, 0x15, 0x98, 0xbb, 0xdf, 0x8b, 0xef, - 0x6f, 0xd1, 0xe8, 0xa6, 0xa8, 0xb5, 0x1b, 0x10, 0x4f, 0x1c, 0x23, 0x32, 0x2f, 0x55, 0x2f, 0x11, - 0x83, 0x4d, 0xa5, 0x35, 0x8c, 0xbc, 0x30, 0x71, 0x22, 0x2d, 0x4c, 0x9c, 0x87, 0xc9, 0x2d, 0xd7, - 0xec, 0x44, 0xd4, 0x46, 0x15, 0x9d, 0x35, 0x68, 0x70, 0x4c, 0xd4, 0x01, 0x1a, 0xd9, 0xd0, 0xa0, - 0x9a, 0x7c, 0xe0, 0xf5, 0x69, 0x69, 0x61, 0x5d, 0x45, 0x2a, 0xac, 0xd3, 0x7e, 0xaa, 0xc0, 0x91, - 0x9c, 0xb4, 0x39, 0xb4, 0x0a, 0xc0, 0x5c, 0x63, 0xe9, 0xd5, 0x43, 0xda, 0x36, 0x7a, 0xd1, 0x76, - 0x5f, 0xc2, 0x1d, 0x75, 0x9a, 0x59, 0x58, 0x39, 0x16, 0x3f, 0x89, 0x35, 0x36, 0x7b, 0x9e, 0xed, - 0xe2, 0x34, 0xef, 0x96, 0x5a, 0xe3, 0x3a, 0x05, 0xae, 0xad, 0x12, 0x4f, 0x86, 0xfe, 0xb2, 0xd3, - 0x98, 0x0b, 0x7f, 0x2d, 0x66, 0x31, 0x97, 0xab, 0x30, 0x1f, 0x62, 0xcb, 0x09, 0x1c, 0xec, 0xc5, - 0x86, 0x74, 0x15, 0x66, 0xa6, 0x41, 0xc9, 0xb7, 0xb6, 0xb8, 0x13, 0x6b, 0xf7, 0x00, 0xd2, 0xec, - 0x3c, 0x56, 0xfc, 0x4c, 0x7e, 0xc9, 0x15, 0xc3, 0x0c, 0x42, 0x2e, 0xd0, 0x52, 0x1c, 0x89, 0xec, - 0x16, 0x7c, 0x46, 0x8b, 0x4b, 0xfa, 0xb2, 0x6d, 0x87, 0xda, 0xd7, 0x15, 0x38, 0x41, 0x18, 0xb2, - 0x01, 0xe4, 0xf9, 0xc7, 0xe2, 0x2e, 0x86, 0xde, 0xcc, 0x86, 0xed, 0x46, 0x4f, 0x4b, 0xe4, 0xfd, - 0x1b, 0x7d, 0xba, 0x90, 0x3b, 0x45, 0x2b, 0x55, 0x84, 0xe7, 0x23, 0xa6, 0x9a, 0xbc, 0x06, 0x53, - 0x3c, 0x95, 0x51, 0x19, 0x2d, 0x95, 0x91, 0xa3, 0x8f, 0xa3, 0xc2, 0x5f, 0x97, 0x92, 0x0a, 0x98, - 0x41, 0x37, 0xd4, 0x71, 0x12, 0xa6, 0xaf, 0x41, 0x2b, 0x72, 0x3a, 0x1e, 0xb6, 0xf9, 0xf5, 0x3c, - 0xde, 0x33, 0x0e, 0x45, 0x3c, 0x8e, 0x33, 0x8c, 0x35, 0x8e, 0x90, 0x8c, 0x35, 0xba, 0x02, 0x47, - 0x76, 0xb9, 0x1e, 0x86, 0x74, 0xc1, 0x66, 0xe1, 0x10, 0xb4, 0x7b, 0x48, 0x45, 0xb2, 0x60, 0x42, - 0xaa, 0x26, 0x0b, 0x85, 0x19, 0x36, 0xd9, 0xdc, 0xd8, 0xb6, 0xae, 0xca, 0x1f, 0x56, 0xc9, 0x3e, - 0x47, 0xef, 0xf9, 0x22, 0x6a, 0xc6, 0x50, 0xd9, 0xc1, 0xd7, 0x48, 0xc1, 0x14, 0x31, 0x1b, 0xaa, - 0x98, 0xea, 0x0f, 0x55, 0x90, 0x83, 0x99, 0x87, 0x13, 0x2a, 0xcc, 0x6b, 0x66, 0x2d, 0xed, 0xbb, - 0x0a, 0x1c, 0x25, 0x03, 0xc2, 0xf6, 0x29, 0x3a, 0xb5, 0x36, 0x02, 0x22, 0xe7, 0xf1, 0x07, 0x33, - 0x59, 0x45, 0x25, 0x79, 0x15, 0x8d, 0xf1, 0xea, 0xfb, 0x1f, 0x99, 0x0d, 0x8f, 0x4f, 0xd7, 0xd6, - 0xd9, 0xf4, 0xaa, 0x2a, 0x3d, 0x42, 0x28, 0x99, 0x47, 0x88, 0xd6, 0x9f, 0x27, 0xf7, 0xca, 0x4f, - 0xa6, 0x69, 0x14, 0x4c, 0xff, 0xf3, 0xb9, 0xfa, 0x1f, 0xda, 0x58, 0xd3, 0x2a, 0x60, 0x72, 0x62, - 0xb8, 0x98, 0xb8, 0xe5, 0x8f, 0xc4, 0x8b, 0x69, 0x0a, 0x40, 0x17, 0x41, 0xe5, 0xf7, 0xf1, 0x74, - 0xaa, 0xb0, 0x6d, 0xa3, 0xc1, 0xae, 0xe2, 0xc9, 0x0c, 0xb9, 0x04, 0xaa, 0xe9, 0x86, 0xd8, 0xb4, - 0xf7, 0x8c, 0x90, 0x57, 0xed, 0xd0, 0xf1, 0xae, 0xea, 0xb3, 0x1c, 0x2e, 0x8a, 0x79, 0x68, 0x5e, - 0x4f, 0xaa, 0xd1, 0x3a, 0x36, 0xdd, 0xd6, 0xbd, 0xb4, 0xdb, 0x03, 0xb6, 0xfc, 0x3c, 0x6d, 0x4a, - 0x79, 0xda, 0xb4, 0xce, 0x09, 0x03, 0x9d, 0x84, 0x5a, 0xb2, 0x3f, 0x8b, 0x5d, 0x29, 0x01, 0x68, - 0x6f, 0xc0, 0xdc, 0x4d, 0x27, 0x8c, 0xe2, 0x3b, 0x66, 0x14, 0xaf, 0xb0, 0x23, 0x81, 0x9e, 0xc5, - 0x5b, 0x04, 0xc8, 0xeb, 0xdd, 0x59, 0x83, 0x46, 0x00, 0xcd, 0x28, 0xe6, 0xe5, 0xaf, 0xf4, 0xb7, - 0xf6, 0xf7, 0x0a, 0x1c, 0xe1, 0x37, 0x55, 0x29, 0xcf, 0x85, 0xdd, 0x7d, 0xb0, 0xe9, 0x62, 0xdb, - 0xd8, 0xf4, 0x1f, 0x09, 0xa3, 0x32, 0xc8, 0x75, 0xff, 0x11, 0xd9, 0x0b, 0x43, 0xf3, 0xa1, 0x11, - 0xfa, 0x2c, 0xcd, 0x8b, 0x1b, 0x74, 0x3a, 0x34, 0x1f, 0xea, 0x1c, 0xd4, 0xfa, 0x40, 0x81, 0x32, - 0x41, 0x95, 0x7c, 0x2d, 0x25, 0xeb, 0x6b, 0xcd, 0xc3, 0x24, 0xfd, 0xbb, 0x08, 0x62, 0xfe, 0xd1, - 0xc6, 0x18, 0xf3, 0xaf, 0x3f, 0x6b, 0xbf, 0x9e, 0xfb, 0xee, 0xfb, 0x6b, 0x05, 0x8e, 0xea, 0x78, - 0x2b, 0xc4, 0xd1, 0x76, 0x36, 0xa3, 0xb5, 0xf5, 0xea, 0x10, 0x07, 0x7b, 0x1e, 0x26, 0xd9, 0xd3, - 0x75, 0x89, 0x85, 0x07, 0xd8, 0xcb, 0xf5, 0xdb, 0x8f, 0x99, 0x7d, 0x49, 0x0c, 0x41, 0x6e, 0xa1, - 0x7e, 0x2f, 0x16, 0x97, 0x76, 0xde, 0x6c, 0xbd, 0x2b, 0x86, 0xba, 0x0d, 0xd3, 0xd4, 0xf9, 0x37, - 0xb6, 0xfc, 0x9e, 0x67, 0xf3, 0x3b, 0xc3, 0x95, 0xdc, 0xf5, 0x90, 0xdb, 0x25, 0x76, 0x81, 0x00, - 0xca, 0xe3, 0x26, 0x61, 0x71, 0xd9, 0x81, 0xf4, 0x0d, 0x17, 0x1d, 0xe3, 0x29, 0x60, 0xec, 0xfd, - 0xdb, 0xc6, 0x5b, 0x8e, 0x87, 0x6d, 0xf5, 0x19, 0x34, 0xcf, 0xb3, 0x76, 0x08, 0x9c, 0x6f, 0xd9, - 0xaa, 0x92, 0x81, 0x72, 0x31, 0xec, 0xf1, 0x3b, 0x81, 0x4a, 0x79, 0x7f, 0x6a, 0xf9, 0xf2, 0xd7, - 0x6a, 0x50, 0x4b, 0x9f, 0x2a, 0x8f, 0x01, 0x4a, 0x1a, 0xb2, 0xac, 0xb3, 0xb0, 0x90, 0xc0, 0xf3, - 0xab, 0xc9, 0x55, 0x05, 0x9d, 0x83, 0xe7, 0xb2, 0x48, 0x39, 0x95, 0xd9, 0x6a, 0x09, 0x2d, 0xc0, - 0xb3, 0x09, 0xda, 0xe1, 0xf2, 0x56, 0x15, 0xa3, 0x53, 0x70, 0x22, 0x17, 0xe1, 0x0e, 0xde, 0x8a, - 0xd5, 0x2d, 0x74, 0x19, 0xce, 0xf7, 0x7f, 0xce, 0x2f, 0x22, 0x55, 0x3b, 0xe8, 0x12, 0x9c, 0x1b, - 0x8c, 0x2b, 0x72, 0xf7, 0xb7, 0xd1, 0x55, 0x78, 0x71, 0x30, 0x6a, 0xb6, 0x06, 0x54, 0x75, 0xd0, - 0x12, 0x2c, 0x0e, 0xa6, 0xe8, 0x2f, 0xd6, 0x54, 0x3f, 0x8f, 0x16, 0xe1, 0xf2, 0x68, 0x34, 0xeb, - 0xd8, 0x8b, 0xd5, 0x9d, 0xe1, 0x32, 0xfa, 0x2b, 0x16, 0x55, 0x17, 0xbd, 0x02, 0x57, 0x46, 0xa3, - 0x49, 0xea, 0xff, 0xd4, 0xee, 0xe8, 0x82, 0x44, 0xc1, 0x9e, 0xea, 0x21, 0x0d, 0x4e, 0x17, 0xd0, - 0xf0, 0xd2, 0x39, 0xd5, 0x47, 0xcf, 0xc3, 0x99, 0x02, 0x9c, 0xa4, 0xd8, 0x4d, 0x0d, 0x90, 0x06, - 0xa7, 0x12, 0xac, 0xbc, 0xbf, 0x8c, 0xa0, 0xfe, 0x44, 0x41, 0x57, 0xe1, 0x85, 0x04, 0x67, 0x78, - 0x79, 0xbd, 0xfa, 0xc3, 0x12, 0x7a, 0x55, 0x32, 0xc4, 0x68, 0x65, 0xe6, 0xea, 0x1f, 0x97, 0xd0, - 0x22, 0x5c, 0x2a, 0x96, 0xd3, 0x57, 0x2c, 0xaf, 0xfe, 0x49, 0x09, 0x9d, 0x97, 0xa6, 0x7d, 0x51, - 0x65, 0x9d, 0xfa, 0xdd, 0x32, 0xba, 0x08, 0x67, 0x07, 0xe1, 0xf1, 0x92, 0x37, 0xf5, 0x7b, 0x65, - 0x74, 0x5a, 0x5a, 0x00, 0xfd, 0xa5, 0x6a, 0xea, 0xf7, 0xcb, 0xe8, 0xac, 0x64, 0xf7, 0x5c, 0xef, - 0x42, 0xfd, 0xcd, 0x32, 0xba, 0x00, 0x5a, 0x06, 0x29, 0xd7, 0xbb, 0x55, 0x7f, 0x2b, 0xab, 0x57, - 0xb1, 0xf7, 0xa9, 0xfe, 0x76, 0x19, 0xbd, 0x7c, 0x78, 0x89, 0x0c, 0x72, 0x12, 0xd5, 0x5f, 0x96, - 0x33, 0xc6, 0x29, 0xfa, 0x9b, 0x1a, 0xea, 0x3f, 0x55, 0x2e, 0x7f, 0x53, 0xbc, 0xa2, 0xe7, 0x24, - 0x7f, 0x90, 0x8d, 0xa5, 0xe8, 0x5b, 0xdf, 0x26, 0x55, 0x84, 0xc6, 0x4f, 0x49, 0x55, 0x21, 0xf3, - 0xb1, 0x18, 0x89, 0xa9, 0xa6, 0x96, 0x2e, 0xff, 0x85, 0x92, 0x54, 0x04, 0xb0, 0x9a, 0x9f, 0x13, - 0x49, 0x65, 0x05, 0x6d, 0xcb, 0x62, 0xfb, 0x3e, 0x3d, 0xf0, 0xf9, 0x82, 0x51, 0x15, 0xb2, 0xed, - 0xca, 0x9f, 0x92, 0x35, 0x5a, 0x42, 0x47, 0x61, 0x4e, 0xfe, 0xc2, 0x26, 0x49, 0x19, 0x1d, 0x4f, - 0x52, 0xfc, 0x39, 0x01, 0x9b, 0x13, 0x13, 0xfd, 0x42, 0xd2, 0x95, 0x3b, 0xd9, 0x4f, 0x23, 0x96, - 0xde, 0xd4, 0xe5, 0x5b, 0x50, 0x4b, 0xe2, 0x1d, 0xa8, 0x01, 0xc0, 0xa3, 0x0b, 0xab, 0x4e, 0xa8, - 0x3e, 0x43, 0xda, 0x6b, 0xde, 0x26, 0x39, 0x6d, 0x48, 0x5b, 0x41, 0xb3, 0x30, 0x7d, 0xbf, 0x17, - 0x27, 0x80, 0x12, 0xaa, 0xc1, 0xe4, 0x75, 0x87, 0xfc, 0x2c, 0x2f, 0xfd, 0xdd, 0x65, 0x98, 0x15, - 0x7f, 0x2d, 0x46, 0xbc, 0xcf, 0x47, 0x39, 0x15, 0x89, 0x68, 0x71, 0xd0, 0x43, 0x52, 0x8a, 0xb7, - 0x98, 0x94, 0x2d, 0x8e, 0x8c, 0x1f, 0xb8, 0x7b, 0x57, 0x15, 0xf4, 0x55, 0xa5, 0xb0, 0x70, 0x11, - 0xbd, 0x3a, 0x56, 0x4d, 0x9a, 0xd0, 0x60, 0x69, 0x4c, 0x2a, 0x72, 0xde, 0x13, 0x2d, 0x0a, 0x8e, - 0x86, 0x02, 0x2d, 0x0a, 0xb0, 0x87, 0x68, 0x51, 0x4c, 0x45, 0xb4, 0xf8, 0x52, 0x41, 0x35, 0x17, - 0x1a, 0x85, 0x19, 0xc7, 0x4d, 0x14, 0xb8, 0x3a, 0x16, 0x0d, 0x11, 0xff, 0x85, 0xfc, 0xfa, 0x30, - 0xf4, 0xf2, 0x08, 0x9c, 0x18, 0x6a, 0x22, 0xfc, 0xca, 0x38, 0x24, 0x44, 0xf6, 0xf7, 0x94, 0xc1, - 0xa5, 0x63, 0xe8, 0xf5, 0x91, 0xec, 0x29, 0x93, 0x24, 0xca, 0xbc, 0xf6, 0x38, 0xa4, 0x44, 0xa9, - 0x38, 0xaf, 0xc6, 0x0c, 0x8d, 0xd2, 0x37, 0x82, 0x98, 0xc8, 0x7f, 0x69, 0x74, 0x82, 0xdc, 0x61, - 0x60, 0xc7, 0xf3, 0x48, 0xc3, 0xc0, 0x50, 0xc7, 0x1a, 0x86, 0x84, 0xa4, 0x68, 0x06, 0x92, 0x5d, - 0x69, 0xd4, 0x19, 0x48, 0x70, 0xc7, 0x9d, 0x81, 0x9c, 0x86, 0x88, 0xdf, 0xcc, 0x56, 0xa4, 0xa1, - 0x4b, 0xc5, 0x45, 0x5f, 0x1c, 0x25, 0x11, 0x76, 0x61, 0x14, 0x54, 0x22, 0x03, 0xf7, 0xd5, 0xa9, - 0xa1, 0xcb, 0x05, 0x69, 0x8b, 0x12, 0x4e, 0x22, 0xe5, 0xe2, 0x48, 0xb8, 0xbc, 0x2b, 0xb2, 0xe3, - 0x54, 0xd0, 0x15, 0x19, 0x65, 0x48, 0x57, 0xfa, 0x50, 0x89, 0x8c, 0xed, 0xfe, 0x8a, 0x34, 0xf4, - 0xc2, 0x20, 0x52, 0x8e, 0x94, 0xc8, 0xb9, 0x34, 0x1a, 0x32, 0x91, 0xf4, 0x30, 0xb7, 0x4e, 0x0d, - 0x0d, 0x1c, 0x61, 0x19, 0x33, 0x91, 0xb9, 0x38, 0x06, 0x05, 0x11, 0xfc, 0x65, 0xa5, 0xa8, 0x9c, - 0x0d, 0xbd, 0x92, 0x5f, 0x24, 0x92, 0x8b, 0x9c, 0xc8, 0x7f, 0x79, 0x3c, 0x22, 0xbe, 0x1e, 0xf3, - 0x4a, 0xdf, 0xd0, 0x68, 0xac, 0x08, 0xea, 0x90, 0xf5, 0x58, 0x40, 0xc2, 0xd7, 0x63, 0x6e, 0x61, - 0x5c, 0xc1, 0x7a, 0xcc, 0xc5, 0x1d, 0xb2, 0x1e, 0x8b, 0x68, 0x88, 0xf8, 0x1f, 0x2a, 0x23, 0xd6, - 0xd0, 0xa1, 0xeb, 0x23, 0xf1, 0xce, 0xa5, 0x4d, 0xf4, 0xfb, 0xe4, 0x13, 0xf1, 0x20, 0xfa, 0xfe, - 0xee, 0xd0, 0x6a, 0x3c, 0x74, 0x6d, 0x34, 0x21, 0x19, 0xa2, 0x44, 0xc3, 0xd7, 0x1f, 0x8f, 0x98, - 0xa8, 0xf6, 0xfb, 0x23, 0x94, 0xe7, 0xa1, 0x37, 0x46, 0xe2, 0xdf, 0x4f, 0x96, 0xa8, 0x77, 0xed, - 0x71, 0xc9, 0x89, 0x82, 0x3b, 0x87, 0x6a, 0xf5, 0x50, 0xbe, 0x2f, 0xd7, 0x87, 0x95, 0x48, 0xbf, - 0x3c, 0x22, 0x36, 0xdf, 0xb9, 0xb2, 0xd5, 0x78, 0x05, 0x3b, 0x57, 0x16, 0x69, 0xc8, 0xce, 0x75, - 0x08, 0x99, 0x48, 0xf2, 0x72, 0x2a, 0xc0, 0x0a, 0x9c, 0xda, 0x43, 0x78, 0x43, 0x76, 0xe4, 0xc3, - 0x55, 0x7c, 0x57, 0x15, 0xb4, 0x73, 0xb8, 0xf0, 0x0a, 0xbd, 0x34, 0x88, 0x3c, 0x41, 0x4b, 0xa4, - 0x9d, 0x1f, 0x8a, 0x2e, 0x84, 0xbd, 0x2b, 0x55, 0x3b, 0xa1, 0x01, 0x64, 0x34, 0x0f, 0x46, 0xb0, - 0x7f, 0x7e, 0x28, 0x1e, 0x3f, 0x26, 0x33, 0x85, 0x44, 0x05, 0xc7, 0x64, 0x06, 0x67, 0xc8, 0x31, - 0xd9, 0x8f, 0xcb, 0x67, 0x5d, 0x5f, 0x0d, 0x51, 0xc1, 0xac, 0xeb, 0xc3, 0x1a, 0x32, 0xeb, 0x0e, - 0x63, 0x13, 0x61, 0x51, 0x4e, 0x81, 0xd1, 0xa0, 0xb9, 0x90, 0x29, 0xab, 0x19, 0x7c, 0xc1, 0xc9, - 0xc3, 0x67, 0x17, 0x9c, 0xee, 0xa1, 0x12, 0x92, 0xc2, 0x1e, 0x66, 0xb0, 0x86, 0xf6, 0xb0, 0x1f, - 0x9b, 0x89, 0xfb, 0x8a, 0x52, 0x54, 0xe5, 0x51, 0x70, 0x60, 0xe6, 0x23, 0x0f, 0x39, 0x30, 0x0b, - 0x89, 0x98, 0x12, 0xef, 0xc9, 0x95, 0x0d, 0xe8, 0x42, 0x31, 0x8b, 0xec, 0x58, 0x9e, 0x1b, 0x8e, - 0x48, 0x86, 0xf1, 0xeb, 0x03, 0xd2, 0xf3, 0xd1, 0xff, 0x2a, 0xe6, 0x91, 0x83, 0x9e, 0x88, 0x7e, - 0x65, 0x5c, 0x32, 0xa2, 0xc8, 0x7b, 0x72, 0xb2, 0x1e, 0x1a, 0x9a, 0x03, 0x37, 0xb8, 0x9b, 0x19, - 0x44, 0xee, 0x73, 0xe5, 0x24, 0x59, 0x17, 0xf8, 0x5c, 0x39, 0x98, 0x43, 0x7c, 0xae, 0x7c, 0x0a, - 0x71, 0x19, 0x2e, 0x48, 0x35, 0x2f, 0xb8, 0x0c, 0x17, 0x60, 0x0f, 0xb9, 0x0c, 0x17, 0x53, 0x09, - 0xdf, 0x63, 0xa4, 0x5c, 0xed, 0x02, 0xdf, 0x63, 0x24, 0xda, 0x21, 0xbe, 0xc7, 0xa8, 0x3c, 0x88, - 0xbe, 0x7f, 0x36, 0x4e, 0xc2, 0x35, 0xba, 0x39, 0xbe, 0xbc, 0x5c, 0xcb, 0xae, 0x3e, 0x31, 0x1f, - 0xa2, 0xfb, 0x07, 0x4a, 0x61, 0x5a, 0x76, 0xc1, 0x88, 0x17, 0x60, 0x0f, 0x19, 0xf1, 0x62, 0x2a, - 0xb6, 0x6f, 0x44, 0x39, 0x79, 0xd1, 0x83, 0x23, 0x50, 0x29, 0xde, 0x68, 0x11, 0xa8, 0x0c, 0x3e, - 0x13, 0xfa, 0x7b, 0xc3, 0xd3, 0x8f, 0xd1, 0xc7, 0x0b, 0x9e, 0x7e, 0x06, 0x52, 0x25, 0x1a, 0x7d, - 0xec, 0x31, 0xa9, 0xc9, 0xd0, 0x7c, 0x3a, 0xcd, 0x6b, 0x43, 0x43, 0x32, 0xc0, 0x84, 0xb8, 0x61, - 0xf9, 0x67, 0x94, 0xef, 0xfb, 0x39, 0x2f, 0xc6, 0x05, 0xa6, 0x3e, 0x84, 0x37, 0xc4, 0xd4, 0x79, - 0xf8, 0xdc, 0xe9, 0xcb, 0x3e, 0xd5, 0x16, 0x38, 0x7d, 0x59, 0xa4, 0x21, 0x4e, 0xdf, 0x21, 0x64, - 0x7e, 0x6d, 0xca, 0x7d, 0x96, 0x2b, 0xb8, 0x36, 0xe5, 0x3f, 0xe1, 0x0d, 0xbe, 0x36, 0x15, 0xd1, - 0x04, 0xee, 0xde, 0xf5, 0x8f, 0xfc, 0xec, 0x1f, 0x4e, 0x3f, 0xf3, 0x97, 0x07, 0xa7, 0x95, 0x9f, - 0x1d, 0x9c, 0x56, 0x7e, 0x7e, 0x70, 0x5a, 0xf9, 0xec, 0xf3, 0x9b, 0x38, 0x8c, 0xf7, 0x16, 0x63, - 0x6c, 0x6d, 0x5f, 0xe1, 0xdc, 0xae, 0x04, 0x3b, 0x9d, 0x2b, 0x99, 0xff, 0x51, 0x61, 0x73, 0x8a, - 0x36, 0x5f, 0xf9, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xeb, 0xa0, 0xf4, 0x69, 0x61, 0x00, - 0x00, + // 6158 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x5d, 0x6c, 0x1c, 0xd7, + 0x75, 0xb0, 0x67, 0x97, 0xe4, 0xee, 0x1e, 0x2e, 0x97, 0xc3, 0x2b, 0x4a, 0x5a, 0xaf, 0x25, 0x51, + 0x1e, 0x59, 0xb2, 0x24, 0xdb, 0x94, 0x4c, 0xfb, 0x8b, 0xe3, 0x28, 0x4e, 0x42, 0x91, 0x94, 0x42, + 0x8b, 0x92, 0xd6, 0x43, 0x31, 0x89, 0x03, 0xe3, 0x9b, 0x0c, 0x67, 0xee, 0x2e, 0x27, 0x9c, 0x9d, + 0x19, 0xcf, 0xcc, 0x92, 0x62, 0x90, 0x14, 0x69, 0xfe, 0x9a, 0x02, 0x4e, 0x9a, 0x26, 0x0f, 0x2d, + 0xd0, 0xa0, 0x4f, 0x7d, 0x28, 0x50, 0xa4, 0x05, 0x82, 0x22, 0x40, 0x81, 0x3e, 0xf5, 0xa9, 0x29, + 0xda, 0x22, 0x4f, 0x7d, 0xe8, 0x03, 0x9b, 0xb2, 0x2f, 0x29, 0x50, 0x14, 0x05, 0x9a, 0xb6, 0x0f, + 0x01, 0x8a, 0xe2, 0xfe, 0xcd, 0xcf, 0x72, 0x66, 0x77, 0x47, 0x94, 0xd1, 0x87, 0x3e, 0x71, 0xef, + 0x99, 0xf3, 0x77, 0xcf, 0xfd, 0x3b, 0xf7, 0xdc, 0x73, 0x08, 0xa7, 0x3c, 0xdf, 0x0d, 0x5d, 0xc3, + 0xb5, 0xc3, 0x03, 0x0f, 0x07, 0x8b, 0xb4, 0x85, 0x4e, 0xed, 0xe3, 0x60, 0xc7, 0xc1, 0xe1, 0xa2, + 0xf8, 0xb8, 0xb8, 0xf7, 0x6a, 0x6b, 0xbe, 0xeb, 0x76, 0x5d, 0x0a, 0xb8, 0x41, 0x7e, 0xb1, 0x6f, + 0xca, 0xdf, 0x48, 0x50, 0x59, 0x36, 0x0c, 0xb7, 0xef, 0x84, 0xe8, 0x26, 0x4c, 0x76, 0x7d, 0xb7, + 0xef, 0x35, 0xa5, 0x8b, 0xd2, 0xd5, 0xe9, 0xa5, 0xd6, 0x62, 0x06, 0x9b, 0xc5, 0xbb, 0x04, 0x43, + 0x65, 0x88, 0x68, 0x11, 0x4e, 0xe9, 0x8c, 0x58, 0xf3, 0x7c, 0x6b, 0x4f, 0x0f, 0xb1, 0xb6, 0x8b, + 0x0f, 0x9a, 0xa5, 0x8b, 0xd2, 0xd5, 0xba, 0x3a, 0xc7, 0x3f, 0xb5, 0xd9, 0x97, 0x7b, 0xf8, 0x00, + 0x5d, 0x87, 0x39, 0xdd, 0xb6, 0xf4, 0x20, 0x85, 0x5d, 0xa6, 0xd8, 0xb3, 0xf4, 0x43, 0x02, 0xf7, + 0x75, 0x38, 0xe3, 0xf5, 0xb7, 0x6d, 0xcb, 0xd0, 0x7c, 0xec, 0x98, 0xf8, 0x4b, 0x7b, 0x6e, 0x3f, + 0xd0, 0x02, 0x8c, 0xcd, 0xe6, 0x04, 0x25, 0x98, 0x67, 0x5f, 0xd5, 0xe8, 0xe3, 0x26, 0xc6, 0xa6, + 0xf2, 0x4b, 0x09, 0x26, 0xa9, 0x8a, 0xe8, 0x3c, 0x00, 0xa7, 0x27, 0x42, 0x24, 0x4a, 0x53, 0x63, + 0x10, 0xc2, 0xfe, 0x0c, 0x4c, 0x05, 0xd8, 0xf0, 0x71, 0xc8, 0xb5, 0xe5, 0x2d, 0x42, 0xc6, 0x7e, + 0x69, 0x81, 0xd5, 0xe5, 0xba, 0xd5, 0x18, 0x64, 0xd3, 0xea, 0xa2, 0xb7, 0x00, 0x68, 0xd7, 0x35, + 0x62, 0x6f, 0xaa, 0x49, 0x63, 0xe9, 0x42, 0xbe, 0xa1, 0x1e, 0x1d, 0x78, 0x58, 0xad, 0x75, 0xc5, + 0x4f, 0xf4, 0x2c, 0x54, 0x03, 0xab, 0xeb, 0x68, 0x5e, 0x7f, 0xbb, 0x39, 0x49, 0x79, 0x57, 0x48, + 0xbb, 0xdd, 0xdf, 0x26, 0x9f, 0x6c, 0xcb, 0xd9, 0xa5, 0xda, 0x4e, 0xb1, 0x4f, 0xa4, 0x4d, 0x74, + 0xbd, 0x08, 0x75, 0xf1, 0x89, 0x6a, 0x55, 0xa1, 0x9f, 0x81, 0x7f, 0xde, 0xb4, 0xba, 0xca, 0x7f, + 0x48, 0x20, 0x53, 0x81, 0x9f, 0xc6, 0xba, 0x19, 0xac, 0x3d, 0xf6, 0x5c, 0x3f, 0x1c, 0x65, 0x81, + 0xa4, 0x2e, 0xa5, 0xb4, 0x2e, 0x6b, 0x70, 0xaa, 0x87, 0x43, 0xdd, 0xd4, 0x43, 0x5d, 0xdb, 0x21, + 0x1c, 0x35, 0xc3, 0x32, 0x83, 0x66, 0xf9, 0x62, 0xf9, 0x6a, 0xfd, 0xf6, 0xe9, 0xa3, 0xc3, 0x85, + 0xb9, 0xfb, 0xfc, 0x33, 0x95, 0xb7, 0xb2, 0xbe, 0x1a, 0xa8, 0x73, 0xbd, 0x14, 0xc8, 0x32, 0x03, + 0xc6, 0x26, 0x08, 0xf4, 0x2e, 0x0e, 0x92, 0x6c, 0x26, 0x92, 0x6c, 0xd8, 0xe7, 0x14, 0x9b, 0x24, + 0x88, 0xb0, 0x49, 0x5a, 0x66, 0x32, 0x65, 0x19, 0xe5, 0x6f, 0x25, 0x98, 0xa1, 0xfd, 0x16, 0xfa, + 0x90, 0x01, 0xc2, 0x7b, 0xd8, 0x09, 0xd9, 0x00, 0x49, 0x43, 0x06, 0x68, 0x8d, 0xa0, 0xb1, 0x01, + 0xc2, 0xe2, 0x27, 0x6a, 0x42, 0xc5, 0xd3, 0x0f, 0x6c, 0x57, 0x37, 0x85, 0x4d, 0x78, 0x13, 0xc9, + 0x50, 0x8e, 0x67, 0x04, 0xf9, 0x89, 0x54, 0x98, 0x13, 0xfc, 0x34, 0xd1, 0x79, 0x3a, 0x25, 0xa6, + 0x97, 0x2e, 0x67, 0x4a, 0x6c, 0xf3, 0xdf, 0x42, 0x59, 0x55, 0xf6, 0x06, 0x20, 0xca, 0x32, 0xef, + 0xcf, 0x9a, 0xb3, 0x87, 0x6d, 0xd7, 0xc3, 0x68, 0x1e, 0x26, 0x1d, 0xd7, 0x31, 0x30, 0x1f, 0x3f, + 0xd6, 0x20, 0x50, 0xaa, 0x33, 0x57, 0x92, 0x35, 0xde, 0x9e, 0xa8, 0x96, 0xe5, 0x09, 0xe5, 0xdf, + 0x25, 0x68, 0x70, 0xbb, 0x12, 0x1b, 0x62, 0x3f, 0x20, 0xbd, 0xa2, 0x4b, 0x11, 0xfb, 0x94, 0xcd, + 0x84, 0x2a, 0x9a, 0xe8, 0x1a, 0xd4, 0x4c, 0xbc, 0x67, 0x19, 0x58, 0xf3, 0x76, 0x19, 0xb3, 0xdb, + 0xf5, 0xa3, 0xc3, 0x85, 0xea, 0x2a, 0x05, 0xb6, 0xef, 0xa9, 0x55, 0xf6, 0xb9, 0xbd, 0x9b, 0x61, + 0x80, 0xfb, 0x50, 0x4d, 0xf4, 0xbb, 0x7c, 0x75, 0x7a, 0xe9, 0xd5, 0xcc, 0x7e, 0xa7, 0xb5, 0x59, + 0x14, 0x9d, 0x5d, 0x73, 0x42, 0xff, 0x40, 0x8d, 0x58, 0xb4, 0x6e, 0xc1, 0x4c, 0xea, 0x13, 0x91, + 0x28, 0x66, 0x6e, 0x4d, 0x25, 0x3f, 0x49, 0xbf, 0xf7, 0x74, 0xbb, 0x8f, 0xa9, 0xaa, 0x35, 0x95, + 0x35, 0x3e, 0x56, 0xfa, 0xa8, 0xa4, 0x34, 0x41, 0x1e, 0x34, 0xef, 0xdb, 0x13, 0x55, 0x49, 0x2e, + 0x29, 0xdf, 0x90, 0x40, 0x5e, 0x73, 0x0c, 0xff, 0xc0, 0x0b, 0xb1, 0xc9, 0x55, 0x41, 0xe7, 0xa0, + 0xe6, 0xd9, 0xba, 0xe5, 0x84, 0xf8, 0x71, 0x18, 0x2d, 0x0d, 0x01, 0xc8, 0x1e, 0xd9, 0xd2, 0xc9, + 0x46, 0xd6, 0x83, 0x59, 0x2e, 0x3c, 0x1a, 0xdb, 0x17, 0x61, 0x96, 0xcf, 0x76, 0xba, 0x3c, 0xb0, + 0x1f, 0x70, 0x55, 0x1a, 0xbd, 0x63, 0xe3, 0xc7, 0x21, 0x62, 0x56, 0xf2, 0x66, 0x3c, 0x3d, 0xca, + 0x89, 0xe9, 0xf1, 0xf6, 0x44, 0x75, 0x42, 0x9e, 0x54, 0xbe, 0x26, 0x41, 0x9d, 0x4e, 0xf2, 0x15, + 0x97, 0x75, 0xeb, 0x0c, 0x94, 0x2c, 0x93, 0x89, 0xb8, 0x3d, 0x75, 0x74, 0xb8, 0x50, 0x5a, 0x5f, + 0x55, 0x4b, 0x96, 0x89, 0x5e, 0x06, 0xf0, 0x74, 0x9f, 0x2c, 0x1a, 0xb2, 0x3c, 0x4b, 0x74, 0x79, + 0xce, 0x1c, 0x1d, 0x2e, 0xd4, 0xda, 0x14, 0x4a, 0x96, 0x65, 0x8d, 0x21, 0xac, 0x9b, 0x01, 0xba, + 0x02, 0x55, 0xb6, 0x05, 0x7a, 0xbb, 0x4c, 0xea, 0xed, 0xe9, 0xa3, 0xc3, 0x85, 0x0a, 0x9d, 0xb6, + 0xed, 0x7b, 0x6a, 0x85, 0x7e, 0x6c, 0xef, 0x72, 0x25, 0x34, 0x68, 0xa6, 0x16, 0x68, 0x9b, 0x2d, + 0xa7, 0x4d, 0xec, 0x84, 0xe9, 0xc9, 0x27, 0x0d, 0x9d, 0x7c, 0xb9, 0x16, 0x50, 0x2c, 0x98, 0x27, + 0xfd, 0xd3, 0x8d, 0x70, 0x99, 0x9c, 0x20, 0xf7, 0xf0, 0xc1, 0xb2, 0x69, 0x62, 0xb3, 0x08, 0xf3, + 0x2b, 0x50, 0xe5, 0xc7, 0x92, 0x58, 0x03, 0xb4, 0x47, 0x94, 0x1f, 0xe9, 0x11, 0x3b, 0x9a, 0x76, + 0x95, 0xef, 0x48, 0x70, 0x86, 0x77, 0xa6, 0xb7, 0x8d, 0x7d, 0xc6, 0x29, 0x92, 0xd6, 0xa3, 0xc0, + 0x01, 0x69, 0x0c, 0x93, 0x48, 0x63, 0x9f, 0xdb, 0xbb, 0x45, 0x96, 0xdc, 0x79, 0x00, 0xce, 0x35, + 0x71, 0x18, 0x31, 0x08, 0xd9, 0xf5, 0xef, 0x42, 0x83, 0x11, 0xad, 0xec, 0xe8, 0x96, 0x43, 0xf6, + 0xf4, 0xe7, 0xa0, 0x66, 0x90, 0xdf, 0x89, 0x1d, 0xbf, 0x6a, 0x88, 0x8f, 0x89, 0x5d, 0xa0, 0x94, + 0xda, 0x05, 0x94, 0xdf, 0x91, 0xf8, 0x28, 0xa5, 0xd9, 0x15, 0x36, 0xe4, 0x47, 0xa0, 0x61, 0xe2, + 0x20, 0xd4, 0x62, 0x53, 0xb0, 0xfe, 0xc9, 0x47, 0x87, 0x0b, 0xf5, 0x55, 0x1c, 0x84, 0x91, 0x39, + 0xea, 0x66, 0xdc, 0xda, 0x4d, 0xee, 0xba, 0xe5, 0xd4, 0xae, 0x4b, 0x34, 0x53, 0xee, 0xf7, 0xed, + 0xd0, 0x62, 0xb8, 0x54, 0x49, 0x3a, 0x2e, 0x2a, 0x0e, 0x5c, 0x7b, 0x0f, 0xfb, 0x85, 0x75, 0xbc, + 0x0c, 0x0d, 0x36, 0xd8, 0x3e, 0xe7, 0xc0, 0x27, 0xd4, 0x8c, 0x9e, 0x64, 0x8b, 0x16, 0x60, 0x5a, + 0xb8, 0x2a, 0xae, 0xdb, 0xe1, 0x6a, 0x01, 0x77, 0x52, 0x5c, 0xb7, 0xa3, 0x7c, 0x57, 0x82, 0x8b, + 0xc7, 0x34, 0x33, 0x7b, 0x96, 0xa3, 0xba, 0x36, 0xbe, 0xeb, 0xeb, 0x4e, 0x58, 0x4c, 0xaf, 0x4f, + 0xc2, 0x5c, 0x97, 0x52, 0xe1, 0x63, 0xe6, 0x3b, 0x75, 0x74, 0xb8, 0x30, 0xcb, 0x58, 0xe2, 0xc8, + 0x82, 0xb3, 0xdd, 0x14, 0x60, 0x57, 0xd9, 0x84, 0x2b, 0x83, 0xfa, 0xac, 0x3b, 0x56, 0x68, 0xe9, + 0x36, 0x83, 0x2c, 0x3b, 0x8e, 0xdb, 0x77, 0x8c, 0x42, 0x93, 0x55, 0xd1, 0xe1, 0x22, 0xef, 0x99, + 0xb9, 0x6c, 0x9a, 0x56, 0x68, 0xb9, 0x8e, 0x6e, 0xa7, 0x7d, 0xae, 0x22, 0x9d, 0x44, 0x30, 0x41, + 0x5d, 0x38, 0x66, 0x72, 0xfa, 0x5b, 0x31, 0xe1, 0x12, 0x73, 0x2a, 0x71, 0xcf, 0xdd, 0xc3, 0x1f, + 0x96, 0x94, 0xf7, 0x01, 0x71, 0x3f, 0x97, 0x0a, 0x7b, 0xdb, 0xb5, 0x9c, 0x62, 0x4c, 0x23, 0xef, + 0xb8, 0x34, 0xa6, 0x77, 0xac, 0x60, 0x90, 0x93, 0x22, 0x37, 0x70, 0x27, 0x2c, 0xb8, 0x2b, 0x45, + 0xfb, 0x6c, 0x29, 0x7f, 0x9f, 0x55, 0xde, 0x86, 0xf3, 0x5c, 0x0c, 0xdf, 0x07, 0x55, 0xfc, 0x7e, + 0x1f, 0x07, 0xe1, 0xaa, 0x15, 0xe8, 0xdb, 0x76, 0xa1, 0x4e, 0x2a, 0xeb, 0x70, 0x2e, 0x93, 0xd7, + 0x9a, 0x53, 0x98, 0xd5, 0xb7, 0x24, 0xb8, 0x94, 0xc9, 0x4b, 0xc5, 0x1d, 0xec, 0x63, 0xc7, 0xc0, + 0x2a, 0x0e, 0x70, 0x21, 0x8b, 0xe4, 0x5f, 0x09, 0x4a, 0x43, 0xae, 0x04, 0x87, 0x12, 0x5c, 0xce, + 0x54, 0xe4, 0x61, 0x3f, 0xec, 0xba, 0x96, 0xd3, 0x5d, 0x73, 0xde, 0xef, 0xe3, 0x7e, 0xe1, 0x23, + 0x63, 0x9c, 0xc1, 0x41, 0x9f, 0x24, 0x7b, 0x2e, 0x15, 0x4a, 0xb7, 0x90, 0x3c, 0xff, 0x61, 0x73, + 0x47, 0xf7, 0x31, 0x31, 0xb1, 0xd0, 0x50, 0x50, 0xa1, 0xe7, 0xa1, 0xee, 0xee, 0x3b, 0x69, 0xff, + 0xb2, 0xae, 0x4e, 0xbb, 0xfb, 0x4e, 0xe4, 0x59, 0x7c, 0x19, 0x9e, 0x1f, 0xda, 0xbf, 0xa2, 0x67, + 0xed, 0xcb, 0x00, 0x5c, 0x7a, 0xdc, 0x3b, 0xea, 0x0e, 0x70, 0xf6, 0xed, 0x7b, 0x6a, 0x8d, 0x23, + 0xb4, 0x77, 0x95, 0x7f, 0xca, 0x33, 0xef, 0xba, 0x63, 0xb8, 0x3d, 0xcb, 0xe9, 0xaa, 0xd8, 0xc0, + 0xd6, 0x5e, 0x31, 0xf3, 0x16, 0x52, 0x01, 0x7d, 0x04, 0xce, 0x0a, 0xec, 0xc1, 0x89, 0xc1, 0xf6, + 0xed, 0xd3, 0x86, 0xd0, 0x6c, 0x60, 0x4b, 0x91, 0x05, 0xdd, 0x80, 0x7d, 0x67, 0x39, 0x3c, 0xb2, + 0xf1, 0xaf, 0x4b, 0x70, 0x65, 0x68, 0x2f, 0x57, 0xad, 0xc0, 0xd0, 0x7d, 0xf3, 0x43, 0xec, 0xa6, + 0xf2, 0x87, 0xa3, 0x2c, 0xbd, 0x6c, 0x18, 0xd8, 0x0b, 0x3f, 0x4c, 0x4b, 0x8f, 0xe9, 0xfb, 0x29, + 0x1e, 0x9c, 0x4e, 0x6b, 0x7a, 0xdb, 0x76, 0x8d, 0xdd, 0x0f, 0xd3, 0x38, 0x3e, 0x9c, 0x4d, 0x4b, + 0xdc, 0x72, 0xb6, 0x3f, 0x6c, 0x99, 0xdf, 0x91, 0xa0, 0xc9, 0x85, 0x6e, 0x62, 0x9f, 0xb0, 0x78, + 0xe4, 0xee, 0x62, 0xa7, 0xb0, 0x4b, 0x72, 0x07, 0x66, 0x02, 0x46, 0xaf, 0x85, 0x84, 0x01, 0x3f, + 0x62, 0x9e, 0xcf, 0xde, 0x2a, 0x12, 0x92, 0xd4, 0x7a, 0x90, 0x68, 0x29, 0x2e, 0xb4, 0x32, 0xd4, + 0x61, 0xe7, 0x6a, 0xd1, 0xdd, 0x8d, 0x2a, 0xa2, 0x59, 0x6c, 0x6b, 0xad, 0xb1, 0x61, 0xa6, 0xec, + 0xd6, 0x57, 0xd5, 0x0a, 0xfd, 0xb8, 0x6e, 0x2a, 0x3f, 0x16, 0x61, 0x07, 0x15, 0x7b, 0xb6, 0x65, + 0xe8, 0xa1, 0xe5, 0x74, 0x8b, 0xc8, 0x59, 0x05, 0xa4, 0xf7, 0xc3, 0x1d, 0xec, 0x84, 0x94, 0xd8, + 0x75, 0xb4, 0xbe, 0x6f, 0x73, 0x89, 0x34, 0x3e, 0xb0, 0x9c, 0xfa, 0xba, 0xa5, 0x6e, 0xa8, 0x73, + 0x69, 0x82, 0x2d, 0xdf, 0x46, 0xaf, 0x00, 0xf2, 0x85, 0x7c, 0xd7, 0xd1, 0x88, 0x49, 0xb0, 0x4f, + 0xa7, 0x67, 0x4d, 0x9d, 0x4b, 0x7c, 0xd9, 0xa4, 0x1f, 0x94, 0x0d, 0x98, 0xe3, 0xe6, 0x61, 0x71, + 0x92, 0x55, 0x72, 0xf7, 0xac, 0x41, 0x85, 0x2f, 0xa6, 0xd6, 0xcb, 0x30, 0x49, 0xba, 0x73, 0x80, + 0x2e, 0xc1, 0x0c, 0xa6, 0x18, 0xd8, 0xd4, 0xe8, 0xde, 0xc0, 0x1c, 0xea, 0xba, 0x00, 0x12, 0x42, + 0xe5, 0x67, 0x93, 0x70, 0x96, 0xb3, 0xbb, 0x8b, 0xc9, 0xdc, 0xeb, 0x58, 0xdd, 0xbe, 0x4f, 0xe5, + 0x25, 0x99, 0xfe, 0x7c, 0x42, 0x70, 0x7d, 0x19, 0x20, 0x8a, 0x99, 0x09, 0xfb, 0xd0, 0x29, 0xc6, + 0x87, 0x8e, 0x4c, 0x31, 0x11, 0x39, 0x2b, 0x74, 0x59, 0xf8, 0x38, 0xc8, 0x82, 0xf1, 0xc0, 0x1a, + 0x45, 0x47, 0x87, 0x0b, 0x8d, 0xa4, 0x2b, 0xd2, 0xbe, 0xa7, 0x36, 0xf4, 0x64, 0x7b, 0x17, 0x5d, + 0x82, 0x8a, 0x87, 0xb1, 0x4f, 0x46, 0x7c, 0x82, 0xda, 0x1f, 0x8e, 0x0e, 0x17, 0xa6, 0xda, 0x18, + 0xfb, 0xeb, 0xab, 0xea, 0x14, 0xf9, 0xb4, 0x6e, 0x92, 0x5b, 0xb3, 0x6d, 0x05, 0x21, 0x76, 0xc8, + 0x55, 0x75, 0xf2, 0x62, 0xf9, 0x6a, 0x4d, 0x8d, 0x01, 0xe8, 0xf3, 0x30, 0xbd, 0x6d, 0x63, 0x0d, + 0x33, 0x5f, 0x81, 0x06, 0xb1, 0x1a, 0x4b, 0x6f, 0x0e, 0x9b, 0xc4, 0x83, 0x16, 0x5b, 0xdc, 0xc4, + 0x21, 0x99, 0x43, 0x9b, 0xa1, 0x1e, 0x62, 0x15, 0xb6, 0x6d, 0x2c, 0x1c, 0x0f, 0x03, 0xe4, 0x7d, + 0xab, 0x63, 0x69, 0xde, 0x92, 0x17, 0x09, 0xa8, 0x9c, 0x54, 0x40, 0x83, 0xb0, 0x6c, 0x2f, 0x79, + 0x42, 0xc8, 0x7b, 0x50, 0xef, 0x99, 0x4e, 0x10, 0x09, 0xa8, 0x9e, 0x54, 0xc0, 0x34, 0x61, 0x27, + 0xb8, 0xff, 0x7f, 0x98, 0xf1, 0xb1, 0xad, 0x1f, 0x44, 0xec, 0x6b, 0x27, 0x65, 0x5f, 0xa7, 0xfc, + 0x38, 0x7f, 0xe5, 0x2e, 0xd4, 0x93, 0x5f, 0xd1, 0x34, 0x54, 0xb6, 0x9c, 0x5d, 0xc7, 0xdd, 0x77, + 0xe4, 0x67, 0x48, 0x83, 0xe3, 0xc9, 0x12, 0xaa, 0x43, 0x55, 0x38, 0x87, 0x72, 0x09, 0xcd, 0xc2, + 0xf4, 0x96, 0xa3, 0xef, 0xe9, 0x96, 0x4d, 0x20, 0x72, 0x59, 0xf9, 0x0a, 0x9c, 0xcd, 0xf1, 0xd8, + 0x92, 0x33, 0xfa, 0xb3, 0x62, 0x42, 0xe7, 0x7b, 0x65, 0x52, 0xbe, 0x57, 0x46, 0xae, 0x7c, 0xc2, + 0x0e, 0x64, 0x5a, 0x57, 0x55, 0xd1, 0x54, 0x5e, 0x82, 0xd3, 0x99, 0x8e, 0x6c, 0x52, 0x78, 0x85, + 0x0b, 0x57, 0xbe, 0x10, 0xdd, 0xfe, 0x53, 0x9e, 0x6a, 0x12, 0xf7, 0xad, 0x13, 0x29, 0xaa, 0xec, + 0xc0, 0xb9, 0x41, 0x6b, 0x04, 0x38, 0xdb, 0x24, 0x27, 0x94, 0xf4, 0x81, 0x04, 0x28, 0x2d, 0x6a, + 0x13, 0x3b, 0x66, 0xab, 0x17, 0x09, 0x48, 0x7a, 0x93, 0xd2, 0x53, 0xf1, 0x26, 0x4b, 0xc7, 0xbc, + 0xc9, 0xd8, 0xb4, 0x9f, 0x1b, 0x34, 0x2d, 0x73, 0x2f, 0x5a, 0x6f, 0xc4, 0xfa, 0xa4, 0x8f, 0x4b, + 0x69, 0xf8, 0x71, 0x19, 0x73, 0x7e, 0x37, 0x63, 0x84, 0x89, 0xf3, 0xf4, 0x14, 0x58, 0xdf, 0x83, + 0x3a, 0xed, 0x3d, 0xc7, 0x4a, 0x8e, 0xce, 0x4d, 0x31, 0x3a, 0x2f, 0xc2, 0x2c, 0x76, 0x0c, 0xd7, + 0xc4, 0xa6, 0x96, 0xb4, 0x66, 0x5d, 0x6d, 0x70, 0x30, 0x27, 0x26, 0xe7, 0xfb, 0xcc, 0x2a, 0x26, + 0x20, 0xc1, 0x6e, 0x29, 0x56, 0x70, 0x5c, 0x2e, 0xad, 0x4f, 0x0b, 0xb9, 0x27, 0x1d, 0x3d, 0xa5, + 0x0d, 0xf5, 0xa4, 0x3b, 0xf5, 0x14, 0xcc, 0xa5, 0x42, 0x23, 0xed, 0x2e, 0x3d, 0x05, 0x9e, 0xef, + 0xc0, 0xa9, 0x81, 0x80, 0x1c, 0x9d, 0xc6, 0xaf, 0xc6, 0x8c, 0x93, 0x5e, 0xa4, 0x94, 0xef, 0x45, + 0xc6, 0x2c, 0x1f, 0xc1, 0x99, 0xc1, 0xd0, 0xc6, 0x8a, 0x8f, 0xf5, 0x30, 0xb5, 0xfa, 0x6e, 0x08, + 0x3b, 0x8f, 0xc9, 0x5e, 0x79, 0x0f, 0xe6, 0x07, 0xb9, 0xbe, 0xed, 0x5a, 0x4e, 0xeb, 0x56, 0xac, + 0x69, 0xe1, 0x27, 0xb1, 0x58, 0xe7, 0x4d, 0x38, 0x3d, 0xc8, 0x7d, 0x03, 0xeb, 0x7b, 0xf8, 0x44, + 0x86, 0x30, 0xe0, 0xf2, 0xd0, 0x68, 0x18, 0x59, 0x48, 0xb6, 0x1b, 0x9c, 0x4c, 0xc8, 0x6f, 0x48, + 0x70, 0x61, 0x78, 0x64, 0xab, 0xf5, 0x5e, 0x61, 0xf6, 0xe9, 0xa0, 0x53, 0x69, 0x58, 0xd0, 0x29, + 0xd6, 0xe4, 0x7b, 0x19, 0x31, 0xb6, 0x75, 0x67, 0xcf, 0x0a, 0xe9, 0x61, 0xc8, 0xa7, 0xc0, 0x13, + 0x74, 0xf5, 0x4d, 0x31, 0x55, 0x0a, 0x8f, 0xaf, 0xf2, 0x6d, 0x09, 0x66, 0x97, 0xbd, 0x28, 0x9c, + 0x4d, 0xa7, 0xf6, 0x3b, 0xc5, 0xad, 0x91, 0xfb, 0xce, 0xc4, 0x1e, 0x71, 0x5a, 0x8a, 0xd0, 0xf0, + 0x59, 0x28, 0x1b, 0x51, 0xd0, 0xbe, 0x72, 0x74, 0xb8, 0x50, 0x5e, 0x59, 0x5f, 0x55, 0x09, 0x8c, + 0x8c, 0x53, 0x83, 0xaa, 0x42, 0x03, 0xe1, 0xff, 0x9b, 0x9a, 0xfc, 0x58, 0x02, 0x94, 0x8a, 0xf2, + 0xd3, 0x67, 0x07, 0x72, 0xaf, 0x61, 0x6f, 0x71, 0x86, 0x1b, 0x3f, 0xb4, 0xe4, 0xdd, 0x6b, 0x92, + 0x2f, 0x15, 0x6a, 0x1d, 0x27, 0xdf, 0x2d, 0x3e, 0x91, 0x78, 0x67, 0x62, 0x57, 0x23, 0x25, 0x7f, + 0xa0, 0xa2, 0x27, 0x98, 0x88, 0x26, 0x7e, 0x2d, 0x2b, 0x27, 0x5e, 0xcb, 0x94, 0x3f, 0x95, 0x60, + 0x8e, 0x53, 0xb0, 0x67, 0x99, 0xa7, 0xaa, 0xf3, 0x5b, 0x50, 0x11, 0x6f, 0x3a, 0x4c, 0xe5, 0x4b, + 0x63, 0x3c, 0x8d, 0xa9, 0x82, 0x26, 0xf9, 0xde, 0x51, 0x4e, 0xbf, 0x77, 0xfc, 0x67, 0xac, 0x36, + 0xeb, 0xde, 0x86, 0x45, 0xee, 0x17, 0x52, 0xf1, 0x91, 0xbf, 0x02, 0xd5, 0xc0, 0x72, 0x0c, 0x2c, + 0x6e, 0x79, 0x1c, 0x6f, 0x93, 0xc0, 0xc8, 0x2d, 0x8f, 0x7e, 0x5c, 0x37, 0xd1, 0x73, 0x50, 0x63, + 0x78, 0x8e, 0xbb, 0x4f, 0xb5, 0xa9, 0xaa, 0x8c, 0xf0, 0x81, 0xbb, 0x4f, 0x98, 0xf4, 0x9d, 0xd0, + 0xb2, 0xc5, 0xc5, 0x81, 0x33, 0xd9, 0x22, 0x30, 0xc2, 0x84, 0x7e, 0x64, 0x4c, 0x18, 0x1e, 0x61, + 0x32, 0xc9, 0x98, 0x50, 0x00, 0x61, 0x72, 0x89, 0xb8, 0xc6, 0x7b, 0xd8, 0x0f, 0xb0, 0xe6, 0xfa, + 0x26, 0xf6, 0xe9, 0xdd, 0xa1, 0x4a, 0xfc, 0x5b, 0x0a, 0x7c, 0x48, 0x60, 0xf1, 0x1b, 0x37, 0xb7, + 0xd9, 0xff, 0x95, 0x7e, 0xff, 0xb7, 0x04, 0x35, 0xbe, 0xf3, 0x75, 0xdc, 0x96, 0x56, 0xbc, 0xbf, + 0x85, 0x82, 0x1a, 0xad, 0xdf, 0x92, 0x9e, 0x78, 0x73, 0x2c, 0xb0, 0xc7, 0xa7, 0x2f, 0xb6, 0xe5, + 0xa1, 0x91, 0xe4, 0x2f, 0xc2, 0xcc, 0xb2, 0x11, 0xd2, 0xc4, 0x10, 0x2a, 0xad, 0xd5, 0x2e, 0x6e, + 0x83, 0xf3, 0x00, 0xb6, 0x6b, 0xe8, 0xb6, 0xe6, 0x3a, 0xf6, 0x01, 0xbf, 0x71, 0xd4, 0x28, 0xe4, + 0xa1, 0x63, 0x1f, 0xc4, 0x27, 0xce, 0x7d, 0x98, 0x5d, 0xc5, 0x7a, 0x4a, 0xda, 0x49, 0x8e, 0xd2, + 0xef, 0x4d, 0xf2, 0xc5, 0xca, 0xba, 0x45, 0x2e, 0x66, 0xfd, 0xe0, 0x49, 0x38, 0xfe, 0xb0, 0x1c, + 0x7b, 0x91, 0x13, 0x89, 0xd4, 0x86, 0x97, 0xf2, 0x07, 0x25, 0x29, 0x72, 0x91, 0xe6, 0x39, 0x50, + 0xc2, 0xec, 0xdc, 0x81, 0xd6, 0x4f, 0x25, 0x98, 0x21, 0xb7, 0xfd, 0x15, 0xd7, 0x71, 0xb0, 0x11, + 0x62, 0x33, 0x19, 0x11, 0x90, 0x72, 0x23, 0x02, 0x05, 0xe2, 0x13, 0x6d, 0x80, 0xd0, 0xd7, 0x9d, + 0xc0, 0x73, 0xfd, 0x90, 0xe5, 0x92, 0x34, 0x96, 0x6e, 0x8e, 0xab, 0xbe, 0x20, 0x54, 0x13, 0x3c, + 0xd0, 0x19, 0x98, 0xea, 0xe9, 0xa6, 0xe9, 0xb3, 0x94, 0x92, 0x9a, 0xca, 0x5b, 0xad, 0x37, 0x40, + 0x26, 0x6a, 0xaa, 0xd8, 0x60, 0x9d, 0xb1, 0x9c, 0xee, 0x58, 0xbd, 0x11, 0x84, 0xc4, 0x8b, 0x2a, + 0x64, 0x06, 0x65, 0x1b, 0x26, 0x68, 0xfa, 0xc8, 0x2c, 0x4c, 0x93, 0xbf, 0xf1, 0xbd, 0xbb, 0x09, + 0xf3, 0x04, 0x30, 0xc8, 0x55, 0x96, 0xd0, 0x69, 0x98, 0x13, 0x5f, 0x22, 0x9b, 0xcb, 0xa5, 0x24, + 0x41, 0x52, 0x7f, 0xb9, 0xac, 0xac, 0x41, 0x2d, 0x32, 0x03, 0x6a, 0x00, 0x3c, 0xf2, 0xc2, 0x58, + 0x0e, 0xc0, 0xd4, 0x23, 0x2f, 0xdc, 0x58, 0x7e, 0x20, 0x4b, 0xfc, 0xf7, 0x67, 0x97, 0x1f, 0xc8, + 0x25, 0x24, 0x43, 0xfd, 0x91, 0x17, 0xb6, 0x7d, 0xf7, 0xb1, 0xd5, 0xb3, 0xc2, 0x03, 0xb9, 0xac, + 0xfc, 0x95, 0x44, 0xa6, 0xf8, 0x76, 0xbf, 0x4b, 0xf6, 0x4f, 0x6a, 0xe9, 0x20, 0xe9, 0x45, 0xff, + 0x91, 0x54, 0xd0, 0x8d, 0x46, 0x1b, 0xa9, 0x94, 0xa8, 0xd2, 0x38, 0x29, 0x51, 0x6c, 0xfb, 0xc9, + 0xcc, 0x90, 0x4a, 0x6f, 0x56, 0xe5, 0x11, 0x11, 0xd8, 0xef, 0x96, 0xe1, 0x0c, 0xed, 0xcc, 0xba, + 0x13, 0x78, 0xd8, 0x60, 0xfd, 0xd9, 0x0c, 0x5d, 0x1f, 0xb7, 0xbe, 0xfd, 0x04, 0x27, 0xc3, 0x16, + 0x54, 0x6d, 0xb7, 0x9b, 0xec, 0xc8, 0x2b, 0x99, 0x1d, 0x39, 0x26, 0x72, 0xc3, 0xed, 0xd2, 0x7e, + 0x51, 0xb6, 0xbc, 0xa1, 0x56, 0x6c, 0xf6, 0xa3, 0xf5, 0x0b, 0x69, 0xb4, 0x0f, 0x85, 0x6e, 0xc0, + 0x34, 0x4f, 0xc2, 0x30, 0xe2, 0x2c, 0x8c, 0xc6, 0xd1, 0xe1, 0x02, 0xb0, 0x2c, 0x0c, 0x9a, 0x1d, + 0xc5, 0xf3, 0x34, 0x68, 0x5a, 0xd4, 0x83, 0x44, 0x92, 0x56, 0x22, 0xe5, 0xa9, 0x3c, 0x56, 0xca, + 0x53, 0x94, 0xad, 0x15, 0x81, 0xd2, 0x4b, 0x79, 0x62, 0x54, 0x36, 0x86, 0xf0, 0x19, 0xa7, 0xd2, + 0xef, 0xf5, 0x1e, 0x00, 0x35, 0xce, 0x13, 0x6f, 0x9d, 0xc9, 0x5b, 0x1c, 0x5f, 0x77, 0x41, 0x53, + 0x22, 0xcb, 0x9b, 0x11, 0xb0, 0x85, 0x17, 0xa8, 0x15, 0xb6, 0xf2, 0x02, 0xe5, 0x0f, 0x4a, 0x30, + 0xbf, 0xdc, 0x0f, 0x77, 0xd6, 0x1e, 0x1b, 0x3b, 0xba, 0xd3, 0xc5, 0x2a, 0x0e, 0x3c, 0xd7, 0x09, + 0x30, 0x7a, 0x1e, 0xea, 0xba, 0x61, 0xe0, 0x20, 0xe0, 0x41, 0x75, 0x96, 0x46, 0x34, 0xcd, 0x60, + 0x34, 0x94, 0x4d, 0xb6, 0xc2, 0xc0, 0x70, 0xbd, 0x28, 0x9d, 0x88, 0x36, 0xe8, 0x06, 0xe9, 0xfb, + 0xae, 0x08, 0x21, 0xb3, 0x06, 0x7a, 0x09, 0xe6, 0xe8, 0x0f, 0xcd, 0xc4, 0x81, 0xe1, 0x5b, 0x1e, + 0xb9, 0x81, 0xb0, 0x50, 0xa9, 0x2a, 0xd3, 0x0f, 0xab, 0x31, 0x1c, 0x6d, 0x42, 0x95, 0x47, 0xe6, + 0x59, 0x9c, 0x74, 0x7a, 0xe9, 0x8d, 0xcc, 0x01, 0xc9, 0x52, 0x5c, 0xc4, 0xfe, 0x02, 0x9e, 0x1f, + 0x25, 0x18, 0xb5, 0x6e, 0xc1, 0x4c, 0xea, 0x53, 0xa1, 0xfc, 0xa8, 0x9f, 0x48, 0xd0, 0xa4, 0x23, + 0x43, 0x44, 0x72, 0x36, 0x9b, 0x38, 0xa4, 0x76, 0x68, 0x7d, 0x4f, 0x4a, 0xc6, 0x98, 0x26, 0x63, + 0x7b, 0x4d, 0x2f, 0x5d, 0x1b, 0x5b, 0x6f, 0x95, 0xd1, 0x3d, 0x9d, 0xa0, 0x7e, 0x7c, 0x84, 0x7e, + 0x19, 0xe4, 0xc1, 0x88, 0x08, 0x3a, 0x03, 0xa5, 0x68, 0x1a, 0xd1, 0x44, 0xa6, 0xf6, 0x3d, 0xb5, + 0xe4, 0x3d, 0xe1, 0x03, 0x31, 0x6a, 0x25, 0xae, 0x17, 0xcc, 0xd9, 0x8e, 0xda, 0x8a, 0x0d, 0xe7, + 0x92, 0x6f, 0x29, 0x9b, 0x7d, 0x8f, 0xc5, 0xfe, 0x39, 0x90, 0x4c, 0xb2, 0xe8, 0xe9, 0x46, 0x9c, + 0xca, 0x35, 0x75, 0x5a, 0x3c, 0xcb, 0xb0, 0x75, 0x25, 0x0b, 0x14, 0xec, 0x98, 0x9e, 0x6b, 0xf1, + 0xa3, 0xb7, 0xa6, 0xce, 0x72, 0xf8, 0x1a, 0x07, 0x2b, 0xff, 0x22, 0x41, 0x3d, 0x29, 0x8e, 0x8c, + 0x67, 0x72, 0xf2, 0x3e, 0x4d, 0x0b, 0xa3, 0x2f, 0x00, 0x0a, 0x44, 0x77, 0xb4, 0x68, 0xb6, 0x96, + 0x87, 0xe4, 0xf1, 0x0d, 0xb3, 0x84, 0x3a, 0x17, 0x0c, 0x40, 0x02, 0x74, 0x01, 0x00, 0x3f, 0xf6, + 0x2c, 0x16, 0xba, 0xa6, 0x6b, 0xa5, 0xac, 0x26, 0x20, 0xca, 0x6f, 0x4a, 0x70, 0x36, 0x31, 0x1d, + 0x57, 0xdc, 0x9e, 0x67, 0xe3, 0x10, 0xdf, 0xb1, 0xdd, 0xfd, 0xd6, 0x5b, 0xf1, 0x8c, 0x5c, 0x82, + 0xba, 0xa1, 0xdb, 0xf6, 0xb6, 0x6e, 0xec, 0xd2, 0x8e, 0xb2, 0x63, 0x78, 0xf6, 0xe8, 0x70, 0x61, + 0x7a, 0x85, 0xc3, 0x49, 0x17, 0xa7, 0x05, 0x12, 0x99, 0x3e, 0xc9, 0x6d, 0x24, 0x7a, 0xca, 0x92, + 0x86, 0x3c, 0x65, 0xfd, 0x44, 0x82, 0x53, 0x09, 0x5d, 0xd6, 0x1d, 0x2b, 0xa4, 0x7a, 0xdc, 0x4f, + 0x6d, 0x61, 0xc4, 0x8a, 0x09, 0x1d, 0x58, 0x9a, 0x58, 0x3f, 0xdc, 0x21, 0xf2, 0x2b, 0xe4, 0x23, + 0x31, 0x6c, 0x2b, 0xb1, 0xf8, 0xcb, 0xd4, 0x31, 0x89, 0xd7, 0x70, 0x3b, 0x71, 0x12, 0xc4, 0x7c, + 0xe8, 0x49, 0x40, 0x78, 0x10, 0x18, 0x39, 0x02, 0x03, 0x6c, 0xf4, 0x7d, 0x1c, 0x0d, 0x6b, 0x95, + 0x1d, 0x81, 0x9b, 0x14, 0x4a, 0xf0, 0x6a, 0x0c, 0x61, 0xcb, 0xb7, 0x95, 0x5f, 0x48, 0x70, 0x79, + 0xc5, 0xc7, 0x26, 0x19, 0x5c, 0xdd, 0xfe, 0x0c, 0xf6, 0xad, 0x4e, 0xe2, 0xbd, 0x2b, 0xd9, 0x95, + 0x44, 0x20, 0xf9, 0x06, 0x88, 0x29, 0x9a, 0xe8, 0x0d, 0x3d, 0x6c, 0x38, 0x11, 0x11, 0x02, 0x1c, + 0x85, 0xf4, 0x29, 0x9d, 0x4b, 0x5c, 0x1a, 0xcc, 0x25, 0x46, 0x30, 0x61, 0x5b, 0xce, 0x2e, 0xdf, + 0x31, 0xe9, 0xef, 0x0f, 0xa1, 0xab, 0x3f, 0x90, 0xe0, 0xda, 0xd0, 0xae, 0x8e, 0x37, 0x83, 0xac, + 0xec, 0x19, 0xb4, 0x9e, 0x9c, 0x41, 0x56, 0xeb, 0x45, 0xa1, 0xfe, 0x05, 0x00, 0x8b, 0x8a, 0xec, + 0x58, 0x3c, 0x7f, 0xb6, 0xa6, 0x26, 0x20, 0xca, 0xd7, 0x4b, 0x70, 0x96, 0xe9, 0x82, 0xcd, 0x58, + 0xbb, 0x80, 0x5e, 0x4f, 0xbf, 0x91, 0xd8, 0x58, 0x5f, 0x82, 0xb9, 0x8e, 0x65, 0x87, 0xf4, 0x48, + 0x1b, 0x60, 0x27, 0xb3, 0x0f, 0xeb, 0x11, 0x9c, 0xdc, 0x0c, 0x05, 0x72, 0x10, 0xf4, 0x79, 0x92, + 0x5a, 0x4d, 0xad, 0x73, 0x44, 0x0a, 0xa3, 0x21, 0xe8, 0xc7, 0x86, 0xdd, 0x37, 0xb1, 0x46, 0x57, + 0x15, 0xcf, 0x77, 0xa8, 0xaa, 0x0d, 0x0e, 0x5e, 0x63, 0xd0, 0x96, 0x2e, 0xfa, 0xf2, 0x39, 0x00, + 0x23, 0x52, 0x91, 0xef, 0xf0, 0x1f, 0xcd, 0xde, 0xe1, 0xd9, 0xf3, 0xe0, 0xf1, 0x8e, 0xa9, 0xb8, + 0x6b, 0x05, 0x21, 0xf6, 0xb1, 0xa9, 0x26, 0x78, 0x29, 0x1f, 0x48, 0xd1, 0xb3, 0x2a, 0x3b, 0x5c, + 0x69, 0xff, 0x13, 0x8e, 0xa5, 0x5d, 0x70, 0x45, 0xa2, 0x5b, 0x50, 0xe1, 0x13, 0x70, 0xfc, 0xf7, + 0x70, 0x41, 0xa1, 0xfc, 0xda, 0x80, 0x36, 0x2b, 0xae, 0x89, 0x53, 0x0b, 0x53, 0x4a, 0x2f, 0x4c, + 0x74, 0x19, 0x1a, 0x86, 0x6b, 0x62, 0xcd, 0xd8, 0xd1, 0x6d, 0x1b, 0x3b, 0x5d, 0x71, 0x84, 0xce, + 0xd0, 0xf0, 0xbf, 0x00, 0xa6, 0x94, 0x2f, 0x0f, 0xd9, 0x4e, 0xbe, 0x29, 0xc1, 0x82, 0x9a, 0x7e, + 0x7a, 0x26, 0x9b, 0x24, 0xb7, 0x1d, 0xf3, 0x8e, 0xde, 0x4d, 0x6d, 0x2d, 0x63, 0xd9, 0x64, 0xcc, + 0xb4, 0xa3, 0xf8, 0xf4, 0xfc, 0xaa, 0x04, 0x17, 0xb3, 0xf4, 0x60, 0x10, 0x7e, 0xc3, 0x3d, 0x51, + 0xc0, 0x7b, 0x41, 0x8c, 0xeb, 0x19, 0x28, 0xb9, 0xec, 0x50, 0xae, 0xb2, 0x43, 0xf9, 0xe1, 0x3d, + 0xb5, 0xe4, 0xee, 0x2a, 0x3f, 0x01, 0x80, 0xcd, 0x83, 0x20, 0xc4, 0x3d, 0x1a, 0xc0, 0x48, 0x4c, + 0x89, 0x7f, 0x8b, 0xfc, 0xe2, 0x65, 0xa8, 0x78, 0xbe, 0x4b, 0x1c, 0x33, 0x2e, 0xf8, 0xc5, 0xec, + 0xb1, 0x8e, 0xd8, 0x2c, 0xb6, 0x19, 0xba, 0x2a, 0xe8, 0xd0, 0x27, 0xa0, 0xec, 0x2d, 0x79, 0x43, + 0x83, 0x6d, 0x49, 0xf2, 0xa5, 0x36, 0xdb, 0x8a, 0xda, 0x4b, 0x6d, 0x95, 0x10, 0xa2, 0x07, 0x50, + 0x71, 0xfd, 0x6d, 0x2b, 0x34, 0xb7, 0x79, 0xa6, 0xd6, 0x48, 0x15, 0x1e, 0x12, 0xf4, 0xd5, 0xdb, + 0x6c, 0x08, 0x78, 0x43, 0x15, 0x4c, 0xc8, 0xd1, 0xbd, 0xaf, 0xfb, 0x8e, 0xb8, 0x9b, 0xb2, 0x46, + 0xeb, 0x5f, 0x25, 0x10, 0xa8, 0xc8, 0x8c, 0x1f, 0xec, 0x23, 0xff, 0x83, 0xf5, 0xfe, 0xcd, 0x31, + 0x45, 0x2f, 0x26, 0x87, 0x96, 0xde, 0x94, 0xd5, 0x59, 0xce, 0x32, 0x7a, 0xcf, 0xfb, 0x0a, 0xcc, + 0x1d, 0xc3, 0x22, 0x2b, 0xc1, 0xf3, 0xdd, 0xae, 0x2f, 0x0c, 0x5e, 0x56, 0xa3, 0x36, 0x0d, 0x3d, + 0xea, 0x8f, 0xad, 0x5e, 0xbf, 0x47, 0x8d, 0x59, 0x56, 0x45, 0x93, 0x50, 0x6d, 0xf7, 0x3b, 0x1d, + 0x2c, 0x36, 0x9a, 0xb2, 0x1a, 0xb5, 0xc9, 0x5d, 0x9c, 0x65, 0xd1, 0xf1, 0x73, 0x9e, 0xb7, 0x5a, + 0x8b, 0x40, 0x4c, 0x4c, 0xb6, 0xaa, 0xe8, 0xf2, 0xab, 0x11, 0xd7, 0x5d, 0xc8, 0x6d, 0x44, 0x60, + 0xe2, 0xd9, 0x07, 0xad, 0x6f, 0x4f, 0x41, 0x85, 0x8f, 0x2d, 0xd1, 0x64, 0x0f, 0xfb, 0x01, 0x71, + 0x1e, 0xd8, 0x3e, 0x29, 0x9a, 0xe8, 0x2c, 0x54, 0xf6, 0x8c, 0x40, 0xf3, 0x71, 0x87, 0x2f, 0xd3, + 0xa9, 0x3d, 0x23, 0x50, 0x71, 0x87, 0x5c, 0x62, 0xfa, 0x5e, 0x68, 0xf5, 0xb0, 0xd6, 0x0b, 0x98, + 0x8e, 0xec, 0x12, 0xb3, 0x45, 0x81, 0xf7, 0x37, 0xd5, 0x2a, 0xfb, 0x7c, 0x3f, 0x40, 0x1f, 0x03, + 0xb9, 0x1f, 0x60, 0x5f, 0x33, 0xbc, 0xbe, 0x26, 0x28, 0x80, 0x52, 0xcc, 0x1d, 0x1d, 0x2e, 0xcc, + 0x6c, 0x05, 0xd8, 0x5f, 0x69, 0x6f, 0x3d, 0x62, 0x64, 0x33, 0x04, 0x75, 0xc5, 0xeb, 0x3f, 0x62, + 0xb4, 0x9f, 0x02, 0x14, 0xd0, 0xd1, 0x48, 0x51, 0x4f, 0x53, 0x6a, 0x9a, 0xad, 0xcb, 0xc6, 0x2a, + 0xa6, 0x9f, 0x65, 0xe8, 0x31, 0x87, 0xf3, 0x00, 0x41, 0xa8, 0x53, 0xdf, 0x4b, 0x0f, 0x9b, 0x75, + 0x6a, 0x8b, 0x1a, 0x87, 0x2c, 0xd3, 0xda, 0x1d, 0xdf, 0x26, 0x57, 0x76, 0xcd, 0xe8, 0xfb, 0xcd, + 0x19, 0x9a, 0xae, 0x5d, 0x63, 0x90, 0x95, 0x3e, 0x3d, 0x1e, 0x9c, 0x7e, 0x4f, 0xeb, 0xba, 0xbe, + 0xdb, 0x0f, 0x2d, 0x07, 0x37, 0x1b, 0x94, 0x41, 0xdd, 0xe9, 0xf7, 0xee, 0x0a, 0x18, 0x19, 0x12, + 0xc7, 0xed, 0x58, 0x36, 0x6e, 0xce, 0xb2, 0x21, 0x61, 0x2d, 0xf4, 0x0a, 0x9c, 0x0a, 0x5d, 0x57, + 0xeb, 0xe9, 0xce, 0x81, 0xe6, 0x7a, 0xd8, 0xd1, 0x08, 0x34, 0x68, 0xca, 0xf4, 0xe8, 0x90, 0x43, + 0xd7, 0xbd, 0xaf, 0x3b, 0x07, 0x0f, 0x3d, 0xec, 0xdc, 0x21, 0x70, 0x74, 0x09, 0x2a, 0x44, 0x96, + 0xe1, 0xf5, 0x9b, 0x73, 0xb4, 0x83, 0x34, 0x00, 0xf2, 0xa0, 0x4f, 0x7a, 0xa7, 0x4e, 0x39, 0x7d, + 0xd2, 0x29, 0xa2, 0x6f, 0xd7, 0xd5, 0xc4, 0x68, 0x21, 0x3a, 0x26, 0xb5, 0xae, 0xfb, 0x19, 0x3e, + 0x5e, 0xd7, 0x40, 0x76, 0x3d, 0xec, 0xd3, 0x04, 0x21, 0x8d, 0x99, 0xa2, 0x79, 0x8a, 0xf9, 0xc0, + 0x11, 0x9c, 0x99, 0x0c, 0x3d, 0x07, 0xb5, 0x1d, 0x37, 0x08, 0x35, 0x47, 0xef, 0xe1, 0xe6, 0x3c, + 0xc5, 0xa9, 0x12, 0xc0, 0x03, 0xbd, 0x87, 0x89, 0x9f, 0xa1, 0xfb, 0xc6, 0x4e, 0xf3, 0x34, 0xf3, + 0x33, 0xc8, 0xef, 0x84, 0xa9, 0x7a, 0xfa, 0xe3, 0xe6, 0x99, 0xa4, 0xa9, 0xee, 0xeb, 0x8f, 0x89, + 0xf7, 0xe1, 0x59, 0x66, 0xf3, 0x2c, 0x55, 0x9d, 0x2d, 0x79, 0x72, 0xe5, 0xf6, 0x2c, 0x13, 0x9d, + 0x83, 0x09, 0x8f, 0x7c, 0x6b, 0xd2, 0x6f, 0xd5, 0xa3, 0xc3, 0x85, 0x89, 0x36, 0xf9, 0x48, 0xa1, + 0x6c, 0x8d, 0x58, 0xae, 0x6f, 0x85, 0x07, 0xcd, 0x67, 0xc5, 0x1a, 0x61, 0x6d, 0xea, 0xd2, 0x58, + 0x66, 0xb3, 0x15, 0x33, 0xdd, 0x22, 0x4c, 0xfb, 0x96, 0x89, 0x16, 0x60, 0x7a, 0xdf, 0xf5, 0x77, + 0x49, 0x47, 0x4d, 0xcb, 0x6f, 0x3e, 0xc7, 0xfc, 0x05, 0x0e, 0x5a, 0xb5, 0xe8, 0xa9, 0xcd, 0xe7, + 0x0e, 0x99, 0x53, 0xb4, 0x9b, 0xe7, 0x28, 0x52, 0x83, 0x81, 0xb7, 0x38, 0x54, 0xf9, 0xd5, 0x24, + 0x54, 0xc9, 0xa2, 0x18, 0x3c, 0x49, 0x97, 0xc5, 0xae, 0xf9, 0x51, 0x98, 0x14, 0x4b, 0xa9, 0x9c, + 0xfb, 0x28, 0x22, 0x38, 0xd0, 0x1f, 0x2a, 0x23, 0x68, 0xfd, 0xb8, 0x04, 0x13, 0xa4, 0x9d, 0x28, + 0x09, 0xa9, 0xa5, 0x4a, 0x42, 0x6e, 0xc1, 0x14, 0x99, 0x46, 0x98, 0x05, 0x22, 0xf2, 0x36, 0xd4, + 0x88, 0xb7, 0x4a, 0x70, 0x55, 0x4e, 0x42, 0x26, 0x1e, 0xbd, 0x11, 0x0b, 0xf7, 0x97, 0xb7, 0xd0, + 0x32, 0x54, 0x3b, 0x58, 0x0f, 0xfb, 0x3e, 0x66, 0xbb, 0x62, 0x23, 0xaf, 0x9a, 0x46, 0xb0, 0xbd, + 0xc3, 0xb0, 0xd5, 0x88, 0x8c, 0x58, 0xb7, 0x67, 0x39, 0x9a, 0xad, 0x87, 0xd8, 0x31, 0x58, 0x39, + 0x58, 0x59, 0x85, 0x9e, 0xe5, 0x6c, 0x30, 0x08, 0x99, 0x3e, 0x56, 0xa0, 0xd1, 0x08, 0x2e, 0xe6, + 0xe1, 0xf4, 0xaa, 0x15, 0xd0, 0xf8, 0x31, 0x46, 0x1f, 0x87, 0x9a, 0x69, 0xf9, 0xd8, 0xa0, 0xf7, + 0x91, 0xca, 0x90, 0x40, 0xc9, 0xaa, 0xc0, 0x52, 0x63, 0x82, 0xd6, 0xdf, 0x91, 0xe3, 0x8a, 0xf4, + 0x30, 0x2d, 0x44, 0x1a, 0x10, 0xd2, 0x84, 0x8a, 0x6e, 0x9a, 0x74, 0x6b, 0x65, 0x7b, 0x93, 0x68, + 0xa6, 0xc5, 0x97, 0x0b, 0x8a, 0x27, 0x7c, 0x45, 0xb7, 0xd9, 0x16, 0x2b, 0x9a, 0xe8, 0x13, 0x50, + 0x09, 0x42, 0x1f, 0xeb, 0x3d, 0x11, 0x6c, 0x78, 0x61, 0xb8, 0x59, 0x37, 0x29, 0xb2, 0x2a, 0x88, + 0x5a, 0x17, 0x61, 0x8a, 0x81, 0xf2, 0xa6, 0x83, 0xf2, 0x3e, 0x54, 0xf8, 0x58, 0x20, 0x04, 0x0d, + 0x1e, 0x76, 0xe4, 0x10, 0xf9, 0x19, 0x34, 0x0b, 0xd3, 0x9f, 0xc5, 0xc1, 0x8e, 0x00, 0x48, 0xa8, + 0x01, 0x70, 0x7b, 0x63, 0x4d, 0xb4, 0x69, 0x18, 0x72, 0xc3, 0x35, 0x74, 0x5b, 0x40, 0xca, 0x34, + 0x80, 0xe9, 0xfa, 0xa2, 0x3d, 0x41, 0x58, 0xbc, 0xd3, 0xb7, 0x0c, 0x01, 0x98, 0x54, 0x7e, 0x28, + 0x41, 0xb5, 0x2d, 0xce, 0xa4, 0x79, 0x98, 0x0c, 0x42, 0x3d, 0x14, 0xf7, 0x6b, 0xd6, 0x20, 0x50, + 0xd3, 0xb5, 0x9c, 0xae, 0x88, 0x76, 0xd0, 0x46, 0xea, 0x6c, 0x23, 0x46, 0x2e, 0x25, 0xce, 0xb6, + 0x73, 0x50, 0x33, 0xf8, 0x1d, 0x81, 0x1d, 0x54, 0x13, 0x6a, 0x0c, 0x60, 0xb7, 0xed, 0x50, 0xb7, + 0xe9, 0xb4, 0x9a, 0x50, 0x59, 0x83, 0x4a, 0xc1, 0xb6, 0xce, 0xaa, 0x32, 0x27, 0x54, 0xd6, 0x50, + 0x0e, 0x25, 0x98, 0x7b, 0xd8, 0x0f, 0x1f, 0x76, 0x68, 0xb4, 0x51, 0x94, 0x95, 0x0d, 0x89, 0xef, + 0x15, 0x88, 0x94, 0x27, 0x0a, 0x75, 0x48, 0x07, 0xa6, 0xe2, 0x72, 0x3d, 0x5e, 0x83, 0x37, 0x11, + 0xd7, 0xe0, 0xcd, 0xc3, 0x64, 0xc7, 0xd6, 0xbb, 0x01, 0xd5, 0xb9, 0xa2, 0xb2, 0x06, 0x0d, 0x56, + 0x89, 0x92, 0x37, 0x2d, 0x1d, 0xaa, 0x93, 0xa3, 0x0f, 0xbc, 0x14, 0x2b, 0xae, 0x21, 0xab, 0x24, + 0x6a, 0xc8, 0x14, 0x1b, 0x9e, 0x3d, 0xd6, 0xbf, 0x11, 0x55, 0x89, 0x32, 0x94, 0xb7, 0xdd, 0xc7, + 0xfc, 0x76, 0x48, 0x7e, 0x92, 0xbd, 0x8e, 0xf9, 0xab, 0xbe, 0xc8, 0x97, 0xe2, 0x11, 0x96, 0x46, + 0x97, 0xa5, 0x8d, 0x72, 0xa8, 0xf2, 0x5f, 0x29, 0x73, 0xf2, 0x94, 0xf1, 0xd6, 0xa5, 0xd8, 0x31, + 0x4d, 0x84, 0x1c, 0xa5, 0x54, 0xc8, 0xb1, 0xf5, 0xe7, 0x91, 0x17, 0xf9, 0xa9, 0xf8, 0xd1, 0x94, + 0xf9, 0x51, 0x57, 0x32, 0xd7, 0xc1, 0xb1, 0x6e, 0xc5, 0xe5, 0x74, 0x64, 0x7e, 0xd8, 0x98, 0x1c, + 0xc2, 0x8f, 0xc5, 0xfb, 0x48, 0x0c, 0x40, 0x57, 0x41, 0xe6, 0xde, 0x77, 0x7c, 0x15, 0x4e, 0x76, + 0xa7, 0x1d, 0xdd, 0x87, 0xaf, 0x81, 0xac, 0xdb, 0x3e, 0xd6, 0xcd, 0x03, 0xcd, 0xe7, 0xe9, 0xef, + 0x74, 0xd0, 0xaa, 0xea, 0x2c, 0x87, 0x8b, 0xac, 0x78, 0xfa, 0x8a, 0x1f, 0x6b, 0xb4, 0x89, 0x75, + 0xbb, 0xf5, 0x20, 0xee, 0xf6, 0x90, 0x09, 0x95, 0xa5, 0x4d, 0x29, 0x4b, 0x9b, 0xd6, 0x65, 0x61, + 0xa0, 0x73, 0x50, 0x8b, 0x46, 0x5f, 0x54, 0x3d, 0x46, 0x00, 0xe5, 0xaf, 0x4b, 0x51, 0xc5, 0xc6, + 0xb0, 0x6b, 0x5f, 0x91, 0x04, 0xdf, 0x5b, 0xd0, 0x0a, 0xac, 0xae, 0x83, 0x4d, 0x7e, 0xe7, 0x0d, + 0x0f, 0x8e, 0x6b, 0x7b, 0x96, 0x61, 0xac, 0x73, 0x84, 0xd8, 0x88, 0x37, 0xe0, 0xd4, 0x1e, 0xd7, + 0x43, 0x4b, 0xdc, 0x5a, 0x59, 0x8c, 0x01, 0xed, 0x1d, 0x53, 0x91, 0xcc, 0x7a, 0x9f, 0xaa, 0xc9, + 0xe2, 0x4b, 0x9a, 0x49, 0x76, 0x0c, 0xb6, 0x57, 0xca, 0xc9, 0x0f, 0xab, 0x64, 0xf3, 0xa0, 0x97, + 0x67, 0x11, 0x8a, 0x62, 0xa8, 0xec, 0x34, 0x69, 0xc4, 0x60, 0x8a, 0x98, 0xbe, 0xff, 0x4f, 0x0d, + 0xde, 0xff, 0xc9, 0x69, 0xc7, 0xef, 0xe8, 0x15, 0xe6, 0x8a, 0xb2, 0x96, 0xf2, 0x16, 0xcc, 0xdd, + 0xb1, 0xfc, 0x20, 0xdc, 0xd0, 0x83, 0x70, 0x85, 0xad, 0x5f, 0xba, 0x91, 0x75, 0x08, 0x90, 0xd7, + 0xe1, 0xb2, 0x06, 0x0d, 0x9f, 0xe8, 0x41, 0xc8, 0xcb, 0xf2, 0xe8, 0x6f, 0xe5, 0x1f, 0x24, 0x38, + 0xc5, 0xdd, 0xfc, 0x44, 0x92, 0x00, 0x73, 0x1c, 0xb1, 0x6e, 0x63, 0x53, 0x8b, 0xd7, 0x5a, 0x8d, + 0x41, 0x6e, 0xbb, 0x8f, 0xd1, 0xf3, 0x50, 0xf7, 0xf5, 0x7d, 0xcd, 0x77, 0x59, 0x8e, 0x0c, 0x9f, + 0x9f, 0xd3, 0xbe, 0xbe, 0xaf, 0x72, 0x50, 0xeb, 0x9b, 0x12, 0x94, 0x09, 0x6a, 0xe2, 0xa0, 0x92, + 0xd2, 0x07, 0xd5, 0x3c, 0x4c, 0xd2, 0x7a, 0x6d, 0xf1, 0x44, 0x48, 0x1b, 0x05, 0x9e, 0x6c, 0x07, + 0xb3, 0x89, 0xeb, 0x99, 0x8f, 0x66, 0xbf, 0x92, 0xe0, 0xb4, 0x8a, 0x3b, 0x3e, 0x0e, 0x76, 0xd2, + 0xe9, 0x80, 0xad, 0xd7, 0x47, 0x78, 0x27, 0xf3, 0x30, 0xc9, 0xde, 0xfd, 0x4a, 0xec, 0x6e, 0xc5, + 0x9e, 0xfd, 0xde, 0x79, 0xc2, 0xd4, 0x35, 0x62, 0x08, 0xe2, 0xc2, 0xbb, 0xfd, 0x50, 0xdc, 0x78, + 0x78, 0xb3, 0xf5, 0xae, 0x58, 0x39, 0x6d, 0x98, 0xa6, 0x9e, 0x93, 0xd6, 0x71, 0xfb, 0x8e, 0xc9, + 0x1d, 0xae, 0x1b, 0x99, 0xdb, 0x4b, 0x66, 0x97, 0x98, 0xf7, 0x05, 0x94, 0xc7, 0x1d, 0xc2, 0xe2, + 0xba, 0x05, 0xf1, 0x03, 0x18, 0x3a, 0xc3, 0xf3, 0x67, 0xd8, 0xe3, 0xa1, 0x89, 0x3b, 0x96, 0x83, + 0x4d, 0xf9, 0x19, 0x34, 0xcf, 0x53, 0x1e, 0x08, 0x9c, 0x2f, 0x4d, 0x59, 0x4a, 0x41, 0xb9, 0x18, + 0xf6, 0x72, 0x18, 0x41, 0x13, 0x49, 0x53, 0x72, 0xf9, 0xfa, 0x07, 0x55, 0xa8, 0xc5, 0xef, 0x3c, + 0x67, 0x00, 0x45, 0x8d, 0xa4, 0xac, 0x4b, 0xb0, 0x10, 0xc1, 0xb3, 0xab, 0x5c, 0x65, 0x09, 0x5d, + 0x86, 0xe7, 0xd3, 0x48, 0x19, 0x15, 0xa3, 0x72, 0x09, 0x2d, 0xc0, 0x73, 0x11, 0xda, 0xf1, 0xb2, + 0x3b, 0x19, 0xa3, 0xf3, 0xf0, 0x6c, 0x26, 0xc2, 0x06, 0xee, 0x84, 0x72, 0x07, 0x5d, 0x87, 0x2b, + 0x83, 0x9f, 0xb3, 0x8b, 0xdb, 0xe4, 0x2e, 0xba, 0x06, 0x97, 0x87, 0xe3, 0x8a, 0xc4, 0xe7, 0x1d, + 0x74, 0x13, 0x5e, 0x1e, 0x8e, 0x9a, 0xae, 0x4d, 0x93, 0x2d, 0xb4, 0x04, 0x8b, 0xc3, 0x29, 0x06, + 0x8b, 0xc8, 0xe4, 0x2f, 0xa2, 0x45, 0xb8, 0x3e, 0x1e, 0xcd, 0x26, 0x76, 0x42, 0x79, 0x77, 0xb4, + 0x8c, 0xc1, 0x4a, 0x2a, 0xd9, 0x46, 0xaf, 0xc1, 0x8d, 0xf1, 0x68, 0xa2, 0xba, 0x24, 0xb9, 0x37, + 0xbe, 0x20, 0x51, 0x48, 0x24, 0x3b, 0x48, 0x81, 0x0b, 0x39, 0x34, 0xbc, 0xa4, 0x47, 0x76, 0xd1, + 0x0b, 0x70, 0x31, 0x07, 0x27, 0x2a, 0xc2, 0x91, 0x3d, 0xa4, 0xc0, 0xf9, 0x08, 0x2b, 0xab, 0x62, + 0x5b, 0xfe, 0xa9, 0x84, 0x6e, 0xc2, 0x4b, 0x11, 0xce, 0xe8, 0xb2, 0x5f, 0xf9, 0x47, 0x25, 0xf4, + 0x7a, 0xc2, 0x10, 0xe3, 0x95, 0xbf, 0xca, 0x7f, 0x5c, 0x42, 0x8b, 0x70, 0x2d, 0x5f, 0xce, 0x40, + 0x11, 0xaf, 0xfc, 0x27, 0x25, 0x74, 0x25, 0x31, 0xed, 0xf3, 0x2a, 0x7e, 0xe4, 0xdf, 0x2e, 0xa3, + 0xab, 0x70, 0x69, 0x18, 0x1e, 0x2f, 0xc5, 0x91, 0xbf, 0x5f, 0x46, 0x17, 0x12, 0x0b, 0x60, 0xb0, + 0x84, 0x46, 0xfe, 0x41, 0x19, 0xbd, 0x7a, 0x7c, 0xaa, 0x0e, 0x3b, 0x94, 0xe5, 0x5f, 0x96, 0x53, + 0x4a, 0xe6, 0xd5, 0xdc, 0xcb, 0xff, 0x5c, 0xb9, 0xfe, 0x81, 0x78, 0x0a, 0xcc, 0x78, 0xc1, 0x26, + 0x0b, 0x3c, 0xef, 0xdb, 0xc0, 0x66, 0x91, 0x87, 0xc6, 0x4f, 0x2b, 0x59, 0x22, 0xf3, 0x22, 0x1f, + 0x89, 0xa9, 0x26, 0x97, 0xae, 0xff, 0x85, 0x14, 0xa5, 0x35, 0xb3, 0xc2, 0x85, 0x67, 0xa3, 0xf4, + 0x70, 0xda, 0x4e, 0x8a, 0x1d, 0xf8, 0xf4, 0xc8, 0xe5, 0x13, 0x57, 0x96, 0xc8, 0xf6, 0x97, 0xfc, + 0x14, 0xad, 0x95, 0x12, 0x3a, 0x0d, 0x73, 0xc9, 0x2f, 0x6c, 0xb0, 0xca, 0xe8, 0x6c, 0x94, 0xa7, + 0xcc, 0x09, 0xd8, 0xd8, 0x4c, 0x0c, 0x0a, 0x89, 0x57, 0xd0, 0xe4, 0x20, 0x8d, 0x58, 0x02, 0x53, + 0xd7, 0xef, 0x42, 0x2d, 0xba, 0xb4, 0x91, 0xbb, 0x0d, 0xbf, 0x22, 0xad, 0x5a, 0xbe, 0xfc, 0x0c, + 0x69, 0xaf, 0x3b, 0xdb, 0x64, 0xd7, 0x27, 0x6d, 0x89, 0xdc, 0x75, 0x1e, 0xf6, 0xc3, 0x08, 0x50, + 0x42, 0x35, 0x98, 0xbc, 0x6d, 0x91, 0x9f, 0xe5, 0xa5, 0xbf, 0xbf, 0x0e, 0xb3, 0xe2, 0xbf, 0x49, + 0x88, 0x47, 0xc6, 0x20, 0xa3, 0x62, 0x09, 0x2d, 0x0e, 0x8b, 0x86, 0xc7, 0x78, 0x8b, 0x51, 0x59, + 0xd3, 0xd8, 0xf8, 0x9e, 0x7d, 0x70, 0x53, 0x42, 0x5f, 0x97, 0x72, 0x0b, 0x9b, 0xd0, 0xeb, 0x85, + 0x6a, 0x56, 0x84, 0x06, 0x4b, 0x05, 0xa9, 0xc8, 0xb9, 0x4b, 0xb4, 0xc8, 0xd9, 0xa2, 0x73, 0xb4, + 0xc8, 0xc1, 0x1e, 0xa1, 0x45, 0x3e, 0x15, 0xd1, 0xe2, 0x2b, 0x39, 0x25, 0x29, 0x68, 0x1c, 0x66, + 0x1c, 0x37, 0x52, 0xe0, 0x66, 0x21, 0x1a, 0x22, 0xfe, 0x4b, 0xd9, 0x45, 0x2e, 0xe8, 0xd5, 0x31, + 0x38, 0x31, 0xd4, 0x48, 0xf8, 0x8d, 0x22, 0x24, 0x44, 0xf6, 0xf7, 0xa5, 0xe1, 0xf5, 0x2f, 0xe8, + 0xcd, 0xb1, 0xec, 0x99, 0x24, 0x89, 0x94, 0x79, 0xe3, 0x49, 0x48, 0x89, 0x52, 0x61, 0x56, 0xa1, + 0x0c, 0x1a, 0xa7, 0x6f, 0x04, 0x31, 0x92, 0xff, 0xca, 0xf8, 0x04, 0x99, 0xc3, 0xc0, 0x8e, 0xc9, + 0xb1, 0x86, 0x81, 0xa1, 0x16, 0x1a, 0x86, 0x88, 0x24, 0x6f, 0x06, 0x92, 0x5d, 0x69, 0xdc, 0x19, + 0x48, 0x70, 0x8b, 0xce, 0x40, 0x4e, 0x43, 0xc4, 0x6f, 0xa7, 0xcb, 0x6a, 0xd0, 0xb5, 0xfc, 0xca, + 0x15, 0x8e, 0x12, 0x09, 0x7b, 0x71, 0x1c, 0x54, 0x22, 0x03, 0x0f, 0x14, 0xdb, 0xa0, 0xeb, 0x39, + 0xb9, 0x57, 0x09, 0x9c, 0x48, 0xca, 0xd5, 0xb1, 0x70, 0x79, 0x57, 0x92, 0x0e, 0x4c, 0x4e, 0x57, + 0x92, 0x28, 0x23, 0xba, 0x32, 0x80, 0x4a, 0x64, 0xec, 0x0c, 0x96, 0xd5, 0xa0, 0x97, 0x86, 0x91, + 0x72, 0xa4, 0x48, 0xce, 0xb5, 0xf1, 0x90, 0x89, 0xa4, 0xfd, 0xcc, 0x62, 0x1b, 0x34, 0x74, 0x84, + 0x93, 0x98, 0x91, 0xcc, 0xc5, 0x02, 0x14, 0x44, 0xf0, 0x57, 0xa5, 0xbc, 0x9a, 0x1c, 0xf4, 0x5a, + 0x76, 0xa6, 0x7b, 0x26, 0x72, 0x24, 0xff, 0xd5, 0x62, 0x44, 0x7c, 0x3d, 0x66, 0xd5, 0xef, 0xa0, + 0xf1, 0x58, 0x11, 0xd4, 0x11, 0xeb, 0x31, 0x87, 0x84, 0xaf, 0xc7, 0xcc, 0xea, 0x9e, 0x9c, 0xf5, + 0x98, 0x89, 0x3b, 0x62, 0x3d, 0xe6, 0xd1, 0x10, 0xf1, 0x3f, 0x92, 0xc6, 0x2c, 0x04, 0x42, 0xb7, + 0xc7, 0xe2, 0x9d, 0x49, 0x1b, 0xe9, 0xf7, 0xa9, 0x13, 0xf1, 0x20, 0xfa, 0xfe, 0xee, 0xc8, 0x92, + 0x22, 0x74, 0x6b, 0x3c, 0x21, 0x29, 0xa2, 0x48, 0xc3, 0x37, 0x9f, 0x8c, 0x98, 0xa8, 0xf6, 0xfb, + 0x63, 0xd4, 0x18, 0xa1, 0xb7, 0xc6, 0xe2, 0x3f, 0x48, 0x16, 0xa9, 0x77, 0xeb, 0x49, 0xc9, 0x89, + 0x82, 0xbb, 0xc7, 0x0a, 0x8e, 0x50, 0xb6, 0x2f, 0x37, 0x80, 0x15, 0x49, 0xbf, 0x3e, 0x26, 0x36, + 0xdf, 0xb9, 0xd2, 0x25, 0x45, 0x39, 0x3b, 0x57, 0x1a, 0x69, 0xc4, 0xce, 0x75, 0x0c, 0x99, 0x48, + 0x72, 0x32, 0xca, 0x58, 0x72, 0x9c, 0xda, 0x63, 0x78, 0x23, 0x76, 0xe4, 0xe3, 0xa5, 0x48, 0x37, + 0x25, 0xb4, 0x7b, 0xbc, 0x7a, 0x04, 0xbd, 0x32, 0x8c, 0x3c, 0x42, 0x8b, 0xa4, 0x5d, 0x19, 0x89, + 0x2e, 0x84, 0xbd, 0x9b, 0x28, 0xd9, 0x40, 0x43, 0xc8, 0xe8, 0x63, 0xbe, 0x60, 0xff, 0xc2, 0x48, + 0x3c, 0x7e, 0x4c, 0xa6, 0xaa, 0x21, 0x72, 0x8e, 0xc9, 0x14, 0xce, 0x88, 0x63, 0x72, 0x10, 0x97, + 0xcf, 0xba, 0x81, 0x42, 0x88, 0x9c, 0x59, 0x37, 0x80, 0x35, 0x62, 0xd6, 0x1d, 0xc7, 0x26, 0xc2, + 0x82, 0x8c, 0x2a, 0x89, 0x61, 0x73, 0x21, 0x55, 0x1b, 0x30, 0xfc, 0x82, 0x93, 0x85, 0xcf, 0x2e, + 0x38, 0xbd, 0x63, 0x79, 0xf0, 0xb9, 0x3d, 0x4c, 0x61, 0x8d, 0xec, 0xe1, 0x20, 0x36, 0x13, 0xf7, + 0x35, 0x29, 0x2f, 0x55, 0x3d, 0xe7, 0xc0, 0xcc, 0x46, 0x1e, 0x71, 0x60, 0xe6, 0x12, 0x31, 0x25, + 0xde, 0x4b, 0xa6, 0x67, 0xa3, 0x17, 0xf3, 0x59, 0xa4, 0xc7, 0xf2, 0xf2, 0x68, 0x44, 0x32, 0x8c, + 0xdf, 0x1a, 0x92, 0x63, 0x8c, 0xfe, 0x5f, 0x3e, 0x8f, 0x0c, 0xf4, 0x48, 0xf4, 0x6b, 0x45, 0xc9, + 0x88, 0x22, 0xef, 0x25, 0x33, 0x8e, 0xd0, 0xc8, 0x44, 0x9e, 0xe1, 0xdd, 0x4c, 0x21, 0x72, 0x9f, + 0x2b, 0x23, 0x53, 0x34, 0xc7, 0xe7, 0xca, 0xc0, 0x1c, 0xe1, 0x73, 0x65, 0x53, 0x88, 0xcb, 0x70, + 0x4e, 0xbe, 0x6c, 0xce, 0x65, 0x38, 0x07, 0x7b, 0xc4, 0x65, 0x38, 0x9f, 0x4a, 0xf8, 0x1e, 0x63, + 0x25, 0x9c, 0xe6, 0xf8, 0x1e, 0x63, 0xd1, 0x8e, 0xf0, 0x3d, 0xc6, 0xe5, 0x41, 0xf4, 0xfd, 0xb3, + 0x22, 0x59, 0xa3, 0xe8, 0x4e, 0x71, 0x79, 0x99, 0x96, 0x5d, 0x3d, 0x31, 0x1f, 0xa2, 0xfb, 0x37, + 0xa5, 0xdc, 0xdc, 0xd2, 0x9c, 0x11, 0xcf, 0xc1, 0x1e, 0x31, 0xe2, 0xf9, 0x54, 0x6c, 0xdf, 0x08, + 0x32, 0x92, 0x3b, 0x87, 0x47, 0xa0, 0x62, 0xbc, 0xf1, 0x22, 0x50, 0x29, 0x7c, 0x26, 0xf4, 0xf7, + 0x46, 0xe7, 0x50, 0xa2, 0x8f, 0xe7, 0x3c, 0xc1, 0x0c, 0xa5, 0x8a, 0x34, 0xfa, 0xd8, 0x13, 0x52, + 0x93, 0xa1, 0xf9, 0x4c, 0x9c, 0x9c, 0x83, 0x46, 0xa4, 0xb1, 0x08, 0x71, 0xa3, 0x92, 0x68, 0x28, + 0xdf, 0xf7, 0x33, 0x1e, 0xc2, 0x73, 0x4c, 0x7d, 0x0c, 0x6f, 0x84, 0xa9, 0xb3, 0xf0, 0xb9, 0xd3, + 0x97, 0x7e, 0x81, 0xce, 0x71, 0xfa, 0xd2, 0x48, 0x23, 0x9c, 0xbe, 0x63, 0xc8, 0xfc, 0xda, 0x94, + 0xf9, 0x3c, 0x96, 0x73, 0x6d, 0xca, 0x7e, 0x4a, 0x1b, 0x7e, 0x6d, 0xca, 0xa3, 0xf1, 0xec, 0x83, + 0xdb, 0x1f, 0xf9, 0xd9, 0x3f, 0x5e, 0x78, 0xe6, 0x2f, 0x8f, 0x2e, 0x48, 0x3f, 0x3b, 0xba, 0x20, + 0xfd, 0xfc, 0xe8, 0x82, 0xf4, 0xf9, 0x17, 0xb6, 0xb1, 0x1f, 0x1e, 0x2c, 0x86, 0xd8, 0xd8, 0xb9, + 0xc1, 0xb9, 0xdd, 0xf0, 0x76, 0xbb, 0x37, 0x52, 0xff, 0x56, 0x7d, 0x7b, 0x8a, 0x36, 0x5f, 0xfb, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x27, 0xb2, 0x61, 0x6e, 0x5d, 0x00, 0x00, } func (m *Account) Marshal() (dAtA []byte, err error) { @@ -13398,30 +13047,6 @@ func (m *ServiceGetConfiguration_Reply) MarshalToSizedBuffer(dAtA []byte) (int, i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.DevicePushServer != nil { - { - size, err := m.DevicePushServer.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x5a - } - if m.DevicePushToken != nil { - { - size, err := m.DevicePushToken.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x52 - } if m.RelayEnabled != 0 { i = encodeVarintProtocoltypes(dAtA, i, uint64(m.RelayEnabled)) i-- @@ -16088,20 +15713,20 @@ func (m *GroupDeviceStatus_Reply_PeerConnected) MarshalToSizedBuffer(dAtA []byte } } if len(m.Transports) > 0 { - dAtA19 := make([]byte, len(m.Transports)*10) - var j18 int + dAtA17 := make([]byte, len(m.Transports)*10) + var j16 int for _, num := range m.Transports { for num >= 1<<7 { - dAtA19[j18] = uint8(uint64(num)&0x7f | 0x80) + dAtA17[j16] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j18++ + j16++ } - dAtA19[j18] = uint8(num) - j18++ + dAtA17[j16] = uint8(num) + j16++ } - i -= j18 - copy(dAtA[i:], dAtA19[:j18]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(j18)) + i -= j16 + copy(dAtA[i:], dAtA17[:j16]) + i = encodeVarintProtocoltypes(dAtA, i, uint64(j16)) i-- dAtA[i] = 0x1a } @@ -18294,20 +17919,20 @@ func (m *PeerList_Peer) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x28 } if len(m.Features) > 0 { - dAtA29 := make([]byte, len(m.Features)*10) - var j28 int + dAtA27 := make([]byte, len(m.Features)*10) + var j26 int for _, num := range m.Features { for num >= 1<<7 { - dAtA29[j28] = uint8(uint64(num)&0x7f | 0x80) + dAtA27[j26] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j28++ + j26++ } - dAtA29[j28] = uint8(num) - j28++ + dAtA27[j26] = uint8(num) + j26++ } - i -= j28 - copy(dAtA[i:], dAtA29[:j28]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(j28)) + i -= j26 + copy(dAtA[i:], dAtA27[:j26]) + i = encodeVarintProtocoltypes(dAtA, i, uint64(j26)) i-- dAtA[i] = 0x22 } @@ -18508,49 +18133,6 @@ func (m *Progress) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MemberWithDevices) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MemberWithDevices) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MemberWithDevices) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.DevicePKs) > 0 { - for iNdEx := len(m.DevicePKs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.DevicePKs[iNdEx]) - copy(dAtA[i:], m.DevicePKs[iNdEx]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePKs[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.MemberPK) > 0 { - i -= len(m.MemberPK) - copy(dAtA[i:], m.MemberPK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.MemberPK))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *OutOfStoreMessage) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -18625,147 +18207,7 @@ func (m *OutOfStoreMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *PushServiceReceiver) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceReceiver) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceReceiver) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.RecipientPublicKey) > 0 { - i -= len(m.RecipientPublicKey) - copy(dAtA[i:], m.RecipientPublicKey) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.RecipientPublicKey))) - i-- - dAtA[i] = 0x22 - } - if len(m.Token) > 0 { - i -= len(m.Token) - copy(dAtA[i:], m.Token) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Token))) - i-- - dAtA[i] = 0x1a - } - if len(m.BundleID) > 0 { - i -= len(m.BundleID) - copy(dAtA[i:], m.BundleID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.BundleID))) - i-- - dAtA[i] = 0x12 - } - if m.TokenType != 0 { - i = encodeVarintProtocoltypes(dAtA, i, uint64(m.TokenType)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *PushServer) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServer) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServer) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.ServiceAddr) > 0 { - i -= len(m.ServiceAddr) - copy(dAtA[i:], m.ServiceAddr) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.ServiceAddr))) - i-- - dAtA[i] = 0x12 - } - if len(m.ServerKey) > 0 { - i -= len(m.ServerKey) - copy(dAtA[i:], m.ServerKey) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.ServerKey))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushDeviceTokenRegistered) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushDeviceTokenRegistered) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushDeviceTokenRegistered) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) - i-- - dAtA[i] = 0x12 - } - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushDeviceServerRegistered) Marshal() (dAtA []byte, err error) { +func (m *OutOfStoreMessageEnvelope) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -18775,12 +18217,12 @@ func (m *PushDeviceServerRegistered) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *PushDeviceServerRegistered) MarshalTo(dAtA []byte) (int, error) { +func (m *OutOfStoreMessageEnvelope) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *PushDeviceServerRegistered) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *OutOfStoreMessageEnvelope) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -18789,147 +18231,24 @@ func (m *PushDeviceServerRegistered) MarshalToSizedBuffer(dAtA []byte) (int, err i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) - i-- - dAtA[i] = 0x12 - } - if m.Server != nil { - { - size, err := m.Server.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *AccountVerifiedCredentialRegistered) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AccountVerifiedCredentialRegistered) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AccountVerifiedCredentialRegistered) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Issuer) > 0 { - i -= len(m.Issuer) - copy(dAtA[i:], m.Issuer) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Issuer))) - i-- - dAtA[i] = 0x3a - } - if len(m.Identifier) > 0 { - i -= len(m.Identifier) - copy(dAtA[i:], m.Identifier) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Identifier))) - i-- - dAtA[i] = 0x32 - } - if m.ExpirationDate != 0 { - i = encodeVarintProtocoltypes(dAtA, i, uint64(m.ExpirationDate)) - i-- - dAtA[i] = 0x28 - } - if m.RegistrationDate != 0 { - i = encodeVarintProtocoltypes(dAtA, i, uint64(m.RegistrationDate)) - i-- - dAtA[i] = 0x20 - } - if len(m.VerifiedCredential) > 0 { - i -= len(m.VerifiedCredential) - copy(dAtA[i:], m.VerifiedCredential) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.VerifiedCredential))) - i-- - dAtA[i] = 0x1a - } - if len(m.SignedIdentityPublicKey) > 0 { - i -= len(m.SignedIdentityPublicKey) - copy(dAtA[i:], m.SignedIdentityPublicKey) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.SignedIdentityPublicKey))) - i-- - dAtA[i] = 0x12 - } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushMemberTokenUpdate) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushMemberTokenUpdate) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushMemberTokenUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) + if len(m.GroupReference) > 0 { + i -= len(m.GroupReference) + copy(dAtA[i:], m.GroupReference) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.GroupReference))) i-- dAtA[i] = 0x1a } - if len(m.Token) > 0 { - i -= len(m.Token) - copy(dAtA[i:], m.Token) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Token))) + if len(m.Box) > 0 { + i -= len(m.Box) + copy(dAtA[i:], m.Box) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Box))) i-- dAtA[i] = 0x12 } - if m.Server != nil { - { - size, err := m.Server.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } + if len(m.Nonce) > 0 { + i -= len(m.Nonce) + copy(dAtA[i:], m.Nonce) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Nonce))) i-- dAtA[i] = 0xa } @@ -19162,6 +18481,78 @@ func (m *OutOfStoreSeal_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *AccountVerifiedCredentialRegistered) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AccountVerifiedCredentialRegistered) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AccountVerifiedCredentialRegistered) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Issuer) > 0 { + i -= len(m.Issuer) + copy(dAtA[i:], m.Issuer) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Issuer))) + i-- + dAtA[i] = 0x3a + } + if len(m.Identifier) > 0 { + i -= len(m.Identifier) + copy(dAtA[i:], m.Identifier) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Identifier))) + i-- + dAtA[i] = 0x32 + } + if m.ExpirationDate != 0 { + i = encodeVarintProtocoltypes(dAtA, i, uint64(m.ExpirationDate)) + i-- + dAtA[i] = 0x28 + } + if m.RegistrationDate != 0 { + i = encodeVarintProtocoltypes(dAtA, i, uint64(m.RegistrationDate)) + i-- + dAtA[i] = 0x20 + } + if len(m.VerifiedCredential) > 0 { + i -= len(m.VerifiedCredential) + copy(dAtA[i:], m.VerifiedCredential) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.VerifiedCredential))) + i-- + dAtA[i] = 0x1a + } + if len(m.SignedIdentityPublicKey) > 0 { + i -= len(m.SignedIdentityPublicKey) + copy(dAtA[i:], m.SignedIdentityPublicKey) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.SignedIdentityPublicKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.DevicePK) > 0 { + i -= len(m.DevicePK) + copy(dAtA[i:], m.DevicePK) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *FirstLastCounters) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -20346,14 +19737,6 @@ func (m *ServiceGetConfiguration_Reply) Size() (n int) { if m.RelayEnabled != 0 { n += 1 + sovProtocoltypes(uint64(m.RelayEnabled)) } - if m.DevicePushToken != nil { - l = m.DevicePushToken.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.DevicePushServer != nil { - l = m.DevicePushServer.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -22654,28 +22037,6 @@ func (m *Progress) Size() (n int) { return n } -func (m *MemberWithDevices) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.MemberPK) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if len(m.DevicePKs) > 0 { - for _, b := range m.DevicePKs { - l = len(b) - n += 1 + l + sovProtocoltypes(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - func (m *OutOfStoreMessage) Size() (n int) { if m == nil { return 0 @@ -22714,24 +22075,21 @@ func (m *OutOfStoreMessage) Size() (n int) { return n } -func (m *PushServiceReceiver) Size() (n int) { +func (m *OutOfStoreMessageEnvelope) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.TokenType != 0 { - n += 1 + sovProtocoltypes(uint64(m.TokenType)) - } - l = len(m.BundleID) + l = len(m.Nonce) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.Token) + l = len(m.Box) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.RecipientPublicKey) + l = len(m.GroupReference) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -22741,37 +22099,25 @@ func (m *PushServiceReceiver) Size() (n int) { return n } -func (m *PushServer) Size() (n int) { +func (m *OutOfStoreReceive) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.ServerKey) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.ServiceAddr) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *PushDeviceTokenRegistered) Size() (n int) { +func (m *OutOfStoreReceive_Request) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.DevicePK) + l = len(m.Payload) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -22781,79 +22127,56 @@ func (m *PushDeviceTokenRegistered) Size() (n int) { return n } -func (m *PushDeviceServerRegistered) Size() (n int) { +func (m *OutOfStoreReceive_Reply) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Server != nil { - l = m.Server.Size() + if m.Message != nil { + l = m.Message.Size() n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.DevicePK) + l = len(m.Cleartext) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } + l = len(m.GroupPublicKey) + if l > 0 { + n += 1 + l + sovProtocoltypes(uint64(l)) + } + if m.AlreadyReceived { + n += 2 + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *AccountVerifiedCredentialRegistered) Size() (n int) { +func (m *OutOfStoreSeal) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.DevicePK) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.SignedIdentityPublicKey) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.VerifiedCredential) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.RegistrationDate != 0 { - n += 1 + sovProtocoltypes(uint64(m.RegistrationDate)) - } - if m.ExpirationDate != 0 { - n += 1 + sovProtocoltypes(uint64(m.ExpirationDate)) - } - l = len(m.Identifier) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.Issuer) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *PushMemberTokenUpdate) Size() (n int) { +func (m *OutOfStoreSeal_Request) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Server != nil { - l = m.Server.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.Token) + l = len(m.CID) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.DevicePK) + l = len(m.GroupPublicKey) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -22863,25 +22186,13 @@ func (m *PushMemberTokenUpdate) Size() (n int) { return n } -func (m *OutOfStoreReceive) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreReceive_Request) Size() (n int) { +func (m *OutOfStoreSeal_Reply) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Payload) + l = len(m.Encrypted) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -22891,72 +22202,35 @@ func (m *OutOfStoreReceive_Request) Size() (n int) { return n } -func (m *OutOfStoreReceive_Reply) Size() (n int) { +func (m *AccountVerifiedCredentialRegistered) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Message != nil { - l = m.Message.Size() + l = len(m.DevicePK) + if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.Cleartext) + l = len(m.SignedIdentityPublicKey) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.GroupPublicKey) + l = len(m.VerifiedCredential) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - if m.AlreadyReceived { - n += 2 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreSeal) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreSeal_Request) Size() (n int) { - if m == nil { - return 0 + if m.RegistrationDate != 0 { + n += 1 + sovProtocoltypes(uint64(m.RegistrationDate)) } - var l int - _ = l - l = len(m.CID) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) + if m.ExpirationDate != 0 { + n += 1 + sovProtocoltypes(uint64(m.ExpirationDate)) } - l = len(m.GroupPublicKey) + l = len(m.Identifier) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreSeal_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Encrypted) + l = len(m.Issuer) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -28547,78 +27821,6 @@ func (m *ServiceGetConfiguration_Reply) Unmarshal(dAtA []byte) error { break } } - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePushToken", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DevicePushToken == nil { - m.DevicePushToken = &PushServiceReceiver{} - } - if err := m.DevicePushToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePushServer", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DevicePushServer == nil { - m.DevicePushServer = &PushServer{} - } - if err := m.DevicePushServer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -40743,123 +39945,6 @@ func (m *Progress) Unmarshal(dAtA []byte) error { } return nil } -func (m *MemberWithDevices) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MemberWithDevices: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MemberWithDevices: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MemberPK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MemberPK = append(m.MemberPK[:0], dAtA[iNdEx:postIndex]...) - if m.MemberPK == nil { - m.MemberPK = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePKs", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePKs = append(m.DevicePKs, make([]byte, postIndex-iNdEx)) - copy(m.DevicePKs[len(m.DevicePKs)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *OutOfStoreMessage) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -41101,415 +40186,7 @@ func (m *OutOfStoreMessage) Unmarshal(dAtA []byte) error { } return nil } -func (m *PushServiceReceiver) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServiceReceiver: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServiceReceiver: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenType", wireType) - } - m.TokenType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TokenType |= pushtypes.PushServiceTokenType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BundleID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BundleID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Token = append(m.Token[:0], dAtA[iNdEx:postIndex]...) - if m.Token == nil { - m.Token = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RecipientPublicKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RecipientPublicKey = append(m.RecipientPublicKey[:0], dAtA[iNdEx:postIndex]...) - if m.RecipientPublicKey == nil { - m.RecipientPublicKey = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServer) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServerKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServerKey = append(m.ServerKey[:0], dAtA[iNdEx:postIndex]...) - if m.ServerKey == nil { - m.ServerKey = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAddr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceAddr = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushDeviceTokenRegistered) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushDeviceTokenRegistered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushDeviceTokenRegistered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Token == nil { - m.Token = &PushServiceReceiver{} - } - if err := m.Token.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushDeviceServerRegistered) Unmarshal(dAtA []byte) error { +func (m *OutOfStoreMessageEnvelope) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -41532,170 +40209,15 @@ func (m *PushDeviceServerRegistered) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PushDeviceServerRegistered: wiretype end group for non-group") + return fmt.Errorf("proto: OutOfStoreMessageEnvelope: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PushDeviceServerRegistered: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OutOfStoreMessageEnvelope: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Server", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Server == nil { - m.Server = &PushServer{} - } - if err := m.Server.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AccountVerifiedCredentialRegistered) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AccountVerifiedCredentialRegistered: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AccountVerifiedCredentialRegistered: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SignedIdentityPublicKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -41722,235 +40244,14 @@ func (m *AccountVerifiedCredentialRegistered) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SignedIdentityPublicKey = append(m.SignedIdentityPublicKey[:0], dAtA[iNdEx:postIndex]...) - if m.SignedIdentityPublicKey == nil { - m.SignedIdentityPublicKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VerifiedCredential", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.VerifiedCredential = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RegistrationDate", wireType) - } - m.RegistrationDate = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RegistrationDate |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpirationDate", wireType) - } - m.ExpirationDate = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpirationDate |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Identifier", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Identifier = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Issuer", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Issuer = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushMemberTokenUpdate) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushMemberTokenUpdate: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushMemberTokenUpdate: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Server", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Server == nil { - m.Server = &PushServer{} - } - if err := m.Server.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Nonce = append(m.Nonce[:0], dAtA[iNdEx:postIndex]...) + if m.Nonce == nil { + m.Nonce = []byte{} } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Box", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -41977,14 +40278,14 @@ func (m *PushMemberTokenUpdate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Token = append(m.Token[:0], dAtA[iNdEx:postIndex]...) - if m.Token == nil { - m.Token = []byte{} + m.Box = append(m.Box[:0], dAtA[iNdEx:postIndex]...) + if m.Box == nil { + m.Box = []byte{} } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field GroupReference", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -42011,9 +40312,9 @@ func (m *PushMemberTokenUpdate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} + m.GroupReference = append(m.GroupReference[:0], dAtA[iNdEx:postIndex]...) + if m.GroupReference == nil { + m.GroupReference = []byte{} } iNdEx = postIndex default: @@ -42604,6 +40905,259 @@ func (m *OutOfStoreSeal_Reply) Unmarshal(dAtA []byte) error { } return nil } +func (m *AccountVerifiedCredentialRegistered) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AccountVerifiedCredentialRegistered: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AccountVerifiedCredentialRegistered: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) + if m.DevicePK == nil { + m.DevicePK = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignedIdentityPublicKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SignedIdentityPublicKey = append(m.SignedIdentityPublicKey[:0], dAtA[iNdEx:postIndex]...) + if m.SignedIdentityPublicKey == nil { + m.SignedIdentityPublicKey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VerifiedCredential", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VerifiedCredential = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RegistrationDate", wireType) + } + m.RegistrationDate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RegistrationDate |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationDate", wireType) + } + m.ExpirationDate = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpirationDate |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Identifier", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Identifier = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Issuer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Issuer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProtocoltypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProtocoltypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *FirstLastCounters) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/pushtypes/consts.go b/pkg/pushtypes/consts.go deleted file mode 100644 index 015a611b..00000000 --- a/pkg/pushtypes/consts.go +++ /dev/null @@ -1,3 +0,0 @@ -package pushtypes - -const ServicePushPayloadKey = "p" diff --git a/pkg/pushtypes/pushtypes.pb.go b/pkg/pushtypes/pushtypes.pb.go deleted file mode 100644 index d096d977..00000000 --- a/pkg/pushtypes/pushtypes.pb.go +++ /dev/null @@ -1,3594 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: pushtypes/pushtypes.proto - -package pushtypes - -import ( - fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type PushServiceTokenType int32 - -const ( - PushServiceTokenType_PushTokenUndefined PushServiceTokenType = 0 - // PushTokenMQTT: Platform independent - PushServiceTokenType_PushTokenMQTT PushServiceTokenType = 1 - // PushTokenApplePushNotificationService: iOS, iPadOS, tvOS, macOS - PushServiceTokenType_PushTokenApplePushNotificationService PushServiceTokenType = 2 - // PushTokenFirebaseCloudMessaging: Android with GMS, Chrome OS - PushServiceTokenType_PushTokenFirebaseCloudMessaging PushServiceTokenType = 3 - // PushTokenWindowsPushNotificationService: Windows, XBox - PushServiceTokenType_PushTokenWindowsPushNotificationService PushServiceTokenType = 4 - // PushTokenHuaweiPushKit: Huawei Android devices with AppGallery - PushServiceTokenType_PushTokenHuaweiPushKit PushServiceTokenType = 5 - // PushTokenAmazonDeviceMessaging: Fire OS devices - PushServiceTokenType_PushTokenAmazonDeviceMessaging PushServiceTokenType = 6 -) - -var PushServiceTokenType_name = map[int32]string{ - 0: "PushTokenUndefined", - 1: "PushTokenMQTT", - 2: "PushTokenApplePushNotificationService", - 3: "PushTokenFirebaseCloudMessaging", - 4: "PushTokenWindowsPushNotificationService", - 5: "PushTokenHuaweiPushKit", - 6: "PushTokenAmazonDeviceMessaging", -} - -var PushServiceTokenType_value = map[string]int32{ - "PushTokenUndefined": 0, - "PushTokenMQTT": 1, - "PushTokenApplePushNotificationService": 2, - "PushTokenFirebaseCloudMessaging": 3, - "PushTokenWindowsPushNotificationService": 4, - "PushTokenHuaweiPushKit": 5, - "PushTokenAmazonDeviceMessaging": 6, -} - -func (x PushServiceTokenType) String() string { - return proto.EnumName(PushServiceTokenType_name, int32(x)) -} - -func (PushServiceTokenType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{0} -} - -type PushServicePriority int32 - -const ( - PushServicePriority_PushPriorityUndefined PushServicePriority = 0 - PushServicePriority_PushPriorityLow PushServicePriority = 1 - PushServicePriority_PushPriorityNormal PushServicePriority = 2 -) - -var PushServicePriority_name = map[int32]string{ - 0: "PushPriorityUndefined", - 1: "PushPriorityLow", - 2: "PushPriorityNormal", -} - -var PushServicePriority_value = map[string]int32{ - "PushPriorityUndefined": 0, - "PushPriorityLow": 1, - "PushPriorityNormal": 2, -} - -func (x PushServicePriority) String() string { - return proto.EnumName(PushServicePriority_name, int32(x)) -} - -func (PushServicePriority) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{1} -} - -type DecryptedPush_PushType int32 - -const ( - DecryptedPush_Unknown DecryptedPush_PushType = 0 - DecryptedPush_Message DecryptedPush_PushType = 1 - DecryptedPush_GroupInvitation DecryptedPush_PushType = 7 - DecryptedPush_ConversationNameChanged DecryptedPush_PushType = 8 - DecryptedPush_MemberNameChanged DecryptedPush_PushType = 9 - DecryptedPush_MemberDetailsChanged DecryptedPush_PushType = 11 -) - -var DecryptedPush_PushType_name = map[int32]string{ - 0: "Unknown", - 1: "Message", - 7: "GroupInvitation", - 8: "ConversationNameChanged", - 9: "MemberNameChanged", - 11: "MemberDetailsChanged", -} - -var DecryptedPush_PushType_value = map[string]int32{ - "Unknown": 0, - "Message": 1, - "GroupInvitation": 7, - "ConversationNameChanged": 8, - "MemberNameChanged": 9, - "MemberDetailsChanged": 11, -} - -func (x DecryptedPush_PushType) String() string { - return proto.EnumName(DecryptedPush_PushType_name, int32(x)) -} - -func (DecryptedPush_PushType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{6, 0} -} - -type PushServiceServerInfo struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceServerInfo) Reset() { *m = PushServiceServerInfo{} } -func (m *PushServiceServerInfo) String() string { return proto.CompactTextString(m) } -func (*PushServiceServerInfo) ProtoMessage() {} -func (*PushServiceServerInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{0} -} -func (m *PushServiceServerInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceServerInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceServerInfo.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceServerInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceServerInfo.Merge(m, src) -} -func (m *PushServiceServerInfo) XXX_Size() int { - return m.Size() -} -func (m *PushServiceServerInfo) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceServerInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceServerInfo proto.InternalMessageInfo - -type PushServiceServerInfo_Request struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceServerInfo_Request) Reset() { *m = PushServiceServerInfo_Request{} } -func (m *PushServiceServerInfo_Request) String() string { return proto.CompactTextString(m) } -func (*PushServiceServerInfo_Request) ProtoMessage() {} -func (*PushServiceServerInfo_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{0, 0} -} -func (m *PushServiceServerInfo_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceServerInfo_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceServerInfo_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceServerInfo_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceServerInfo_Request.Merge(m, src) -} -func (m *PushServiceServerInfo_Request) XXX_Size() int { - return m.Size() -} -func (m *PushServiceServerInfo_Request) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceServerInfo_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceServerInfo_Request proto.InternalMessageInfo - -type PushServiceServerInfo_Reply struct { - // public_key the public key used to encrypt data to the server (ie. a PushServiceReceiver), - // to be used with NaCl's Seal and Open - PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - // supported_token_types list of token types supported by the server - SupportedTokenTypes []*PushServiceSupportedTokenType `protobuf:"bytes,2,rep,name=supported_token_types,json=supportedTokenTypes,proto3" json:"supported_token_types,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceServerInfo_Reply) Reset() { *m = PushServiceServerInfo_Reply{} } -func (m *PushServiceServerInfo_Reply) String() string { return proto.CompactTextString(m) } -func (*PushServiceServerInfo_Reply) ProtoMessage() {} -func (*PushServiceServerInfo_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{0, 1} -} -func (m *PushServiceServerInfo_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceServerInfo_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceServerInfo_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceServerInfo_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceServerInfo_Reply.Merge(m, src) -} -func (m *PushServiceServerInfo_Reply) XXX_Size() int { - return m.Size() -} -func (m *PushServiceServerInfo_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceServerInfo_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceServerInfo_Reply proto.InternalMessageInfo - -func (m *PushServiceServerInfo_Reply) GetPublicKey() []byte { - if m != nil { - return m.PublicKey - } - return nil -} - -func (m *PushServiceServerInfo_Reply) GetSupportedTokenTypes() []*PushServiceSupportedTokenType { - if m != nil { - return m.SupportedTokenTypes - } - return nil -} - -type PushServiceSupportedTokenType struct { - AppBundleID string `protobuf:"bytes,1,opt,name=app_bundle_id,json=appBundleId,proto3" json:"app_bundle_id,omitempty"` - TokenType PushServiceTokenType `protobuf:"varint,2,opt,name=token_type,json=tokenType,proto3,enum=weshnet.push.v1.PushServiceTokenType" json:"token_type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceSupportedTokenType) Reset() { *m = PushServiceSupportedTokenType{} } -func (m *PushServiceSupportedTokenType) String() string { return proto.CompactTextString(m) } -func (*PushServiceSupportedTokenType) ProtoMessage() {} -func (*PushServiceSupportedTokenType) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{1} -} -func (m *PushServiceSupportedTokenType) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceSupportedTokenType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceSupportedTokenType.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceSupportedTokenType) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceSupportedTokenType.Merge(m, src) -} -func (m *PushServiceSupportedTokenType) XXX_Size() int { - return m.Size() -} -func (m *PushServiceSupportedTokenType) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceSupportedTokenType.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceSupportedTokenType proto.InternalMessageInfo - -func (m *PushServiceSupportedTokenType) GetAppBundleID() string { - if m != nil { - return m.AppBundleID - } - return "" -} - -func (m *PushServiceSupportedTokenType) GetTokenType() PushServiceTokenType { - if m != nil { - return m.TokenType - } - return PushServiceTokenType_PushTokenUndefined -} - -type PushServiceSend struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceSend) Reset() { *m = PushServiceSend{} } -func (m *PushServiceSend) String() string { return proto.CompactTextString(m) } -func (*PushServiceSend) ProtoMessage() {} -func (*PushServiceSend) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{2} -} -func (m *PushServiceSend) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceSend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceSend.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceSend) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceSend.Merge(m, src) -} -func (m *PushServiceSend) XXX_Size() int { - return m.Size() -} -func (m *PushServiceSend) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceSend.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceSend proto.InternalMessageInfo - -type PushServiceSend_Request struct { - Envelope *OutOfStoreMessageEnvelope `protobuf:"bytes,1,opt,name=envelope,proto3" json:"envelope,omitempty"` - Priority PushServicePriority `protobuf:"varint,2,opt,name=priority,proto3,enum=weshnet.push.v1.PushServicePriority" json:"priority,omitempty"` - Receivers []*PushServiceOpaqueReceiver `protobuf:"bytes,3,rep,name=receivers,proto3" json:"receivers,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceSend_Request) Reset() { *m = PushServiceSend_Request{} } -func (m *PushServiceSend_Request) String() string { return proto.CompactTextString(m) } -func (*PushServiceSend_Request) ProtoMessage() {} -func (*PushServiceSend_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{2, 0} -} -func (m *PushServiceSend_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceSend_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceSend_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceSend_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceSend_Request.Merge(m, src) -} -func (m *PushServiceSend_Request) XXX_Size() int { - return m.Size() -} -func (m *PushServiceSend_Request) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceSend_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceSend_Request proto.InternalMessageInfo - -func (m *PushServiceSend_Request) GetEnvelope() *OutOfStoreMessageEnvelope { - if m != nil { - return m.Envelope - } - return nil -} - -func (m *PushServiceSend_Request) GetPriority() PushServicePriority { - if m != nil { - return m.Priority - } - return PushServicePriority_PushPriorityUndefined -} - -func (m *PushServiceSend_Request) GetReceivers() []*PushServiceOpaqueReceiver { - if m != nil { - return m.Receivers - } - return nil -} - -type PushServiceSend_Reply struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceSend_Reply) Reset() { *m = PushServiceSend_Reply{} } -func (m *PushServiceSend_Reply) String() string { return proto.CompactTextString(m) } -func (*PushServiceSend_Reply) ProtoMessage() {} -func (*PushServiceSend_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{2, 1} -} -func (m *PushServiceSend_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceSend_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceSend_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceSend_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceSend_Reply.Merge(m, src) -} -func (m *PushServiceSend_Reply) XXX_Size() int { - return m.Size() -} -func (m *PushServiceSend_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceSend_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceSend_Reply proto.InternalMessageInfo - -type OutOfStoreMessageEnvelope struct { - Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` - Box []byte `protobuf:"bytes,2,opt,name=box,proto3" json:"box,omitempty"` - GroupReference []byte `protobuf:"bytes,4,opt,name=group_reference,json=groupReference,proto3" json:"group_reference,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreMessageEnvelope) Reset() { *m = OutOfStoreMessageEnvelope{} } -func (m *OutOfStoreMessageEnvelope) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreMessageEnvelope) ProtoMessage() {} -func (*OutOfStoreMessageEnvelope) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{3} -} -func (m *OutOfStoreMessageEnvelope) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreMessageEnvelope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreMessageEnvelope.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreMessageEnvelope) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreMessageEnvelope.Merge(m, src) -} -func (m *OutOfStoreMessageEnvelope) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreMessageEnvelope) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreMessageEnvelope.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreMessageEnvelope proto.InternalMessageInfo - -func (m *OutOfStoreMessageEnvelope) GetNonce() []byte { - if m != nil { - return m.Nonce - } - return nil -} - -func (m *OutOfStoreMessageEnvelope) GetBox() []byte { - if m != nil { - return m.Box - } - return nil -} - -func (m *OutOfStoreMessageEnvelope) GetGroupReference() []byte { - if m != nil { - return m.GroupReference - } - return nil -} - -type OutOfStoreExposedData struct { - Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` - Box []byte `protobuf:"bytes,2,opt,name=box,proto3" json:"box,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OutOfStoreExposedData) Reset() { *m = OutOfStoreExposedData{} } -func (m *OutOfStoreExposedData) String() string { return proto.CompactTextString(m) } -func (*OutOfStoreExposedData) ProtoMessage() {} -func (*OutOfStoreExposedData) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{4} -} -func (m *OutOfStoreExposedData) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OutOfStoreExposedData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_OutOfStoreExposedData.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *OutOfStoreExposedData) XXX_Merge(src proto.Message) { - xxx_messageInfo_OutOfStoreExposedData.Merge(m, src) -} -func (m *OutOfStoreExposedData) XXX_Size() int { - return m.Size() -} -func (m *OutOfStoreExposedData) XXX_DiscardUnknown() { - xxx_messageInfo_OutOfStoreExposedData.DiscardUnknown(m) -} - -var xxx_messageInfo_OutOfStoreExposedData proto.InternalMessageInfo - -func (m *OutOfStoreExposedData) GetNonce() []byte { - if m != nil { - return m.Nonce - } - return nil -} - -func (m *OutOfStoreExposedData) GetBox() []byte { - if m != nil { - return m.Box - } - return nil -} - -type PushServiceOpaqueReceiver struct { - OpaqueToken []byte `protobuf:"bytes,1,opt,name=opaque_token,json=opaqueToken,proto3" json:"opaque_token,omitempty"` - ServiceAddr string `protobuf:"bytes,2,opt,name=service_addr,json=serviceAddr,proto3" json:"service_addr,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushServiceOpaqueReceiver) Reset() { *m = PushServiceOpaqueReceiver{} } -func (m *PushServiceOpaqueReceiver) String() string { return proto.CompactTextString(m) } -func (*PushServiceOpaqueReceiver) ProtoMessage() {} -func (*PushServiceOpaqueReceiver) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{5} -} -func (m *PushServiceOpaqueReceiver) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PushServiceOpaqueReceiver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_PushServiceOpaqueReceiver.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *PushServiceOpaqueReceiver) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushServiceOpaqueReceiver.Merge(m, src) -} -func (m *PushServiceOpaqueReceiver) XXX_Size() int { - return m.Size() -} -func (m *PushServiceOpaqueReceiver) XXX_DiscardUnknown() { - xxx_messageInfo_PushServiceOpaqueReceiver.DiscardUnknown(m) -} - -var xxx_messageInfo_PushServiceOpaqueReceiver proto.InternalMessageInfo - -func (m *PushServiceOpaqueReceiver) GetOpaqueToken() []byte { - if m != nil { - return m.OpaqueToken - } - return nil -} - -func (m *PushServiceOpaqueReceiver) GetServiceAddr() string { - if m != nil { - return m.ServiceAddr - } - return "" -} - -type DecryptedPush struct { - AccountID string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` - AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` - ConversationPublicKey string `protobuf:"bytes,3,opt,name=conversation_public_key,json=conversationPublicKey,proto3" json:"conversation_public_key,omitempty"` - ConversationDisplayName string `protobuf:"bytes,4,opt,name=conversation_display_name,json=conversationDisplayName,proto3" json:"conversation_display_name,omitempty"` - MemberPublicKey string `protobuf:"bytes,5,opt,name=member_public_key,json=memberPublicKey,proto3" json:"member_public_key,omitempty"` - MemberDisplayName string `protobuf:"bytes,6,opt,name=member_display_name,json=memberDisplayName,proto3" json:"member_display_name,omitempty"` - PushType DecryptedPush_PushType `protobuf:"varint,7,opt,name=push_type,json=pushType,proto3,enum=weshnet.push.v1.DecryptedPush_PushType" json:"push_type,omitempty"` - PayloadAttrsJSON string `protobuf:"bytes,8,opt,name=payload_attrs_json,json=payloadAttrsJson,proto3" json:"payload_attrs_json,omitempty"` - DeepLink string `protobuf:"bytes,9,opt,name=deep_link,json=deepLink,proto3" json:"deep_link,omitempty"` - AlreadyReceived bool `protobuf:"varint,10,opt,name=already_received,json=alreadyReceived,proto3" json:"already_received,omitempty"` - AccountMuted bool `protobuf:"varint,11,opt,name=account_muted,json=accountMuted,proto3" json:"account_muted,omitempty"` - ConversationMuted bool `protobuf:"varint,12,opt,name=conversation_muted,json=conversationMuted,proto3" json:"conversation_muted,omitempty"` - HidePreview bool `protobuf:"varint,13,opt,name=hide_preview,json=hidePreview,proto3" json:"hide_preview,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DecryptedPush) Reset() { *m = DecryptedPush{} } -func (m *DecryptedPush) String() string { return proto.CompactTextString(m) } -func (*DecryptedPush) ProtoMessage() {} -func (*DecryptedPush) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{6} -} -func (m *DecryptedPush) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DecryptedPush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_DecryptedPush.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *DecryptedPush) XXX_Merge(src proto.Message) { - xxx_messageInfo_DecryptedPush.Merge(m, src) -} -func (m *DecryptedPush) XXX_Size() int { - return m.Size() -} -func (m *DecryptedPush) XXX_DiscardUnknown() { - xxx_messageInfo_DecryptedPush.DiscardUnknown(m) -} - -var xxx_messageInfo_DecryptedPush proto.InternalMessageInfo - -func (m *DecryptedPush) GetAccountID() string { - if m != nil { - return m.AccountID - } - return "" -} - -func (m *DecryptedPush) GetAccountName() string { - if m != nil { - return m.AccountName - } - return "" -} - -func (m *DecryptedPush) GetConversationPublicKey() string { - if m != nil { - return m.ConversationPublicKey - } - return "" -} - -func (m *DecryptedPush) GetConversationDisplayName() string { - if m != nil { - return m.ConversationDisplayName - } - return "" -} - -func (m *DecryptedPush) GetMemberPublicKey() string { - if m != nil { - return m.MemberPublicKey - } - return "" -} - -func (m *DecryptedPush) GetMemberDisplayName() string { - if m != nil { - return m.MemberDisplayName - } - return "" -} - -func (m *DecryptedPush) GetPushType() DecryptedPush_PushType { - if m != nil { - return m.PushType - } - return DecryptedPush_Unknown -} - -func (m *DecryptedPush) GetPayloadAttrsJSON() string { - if m != nil { - return m.PayloadAttrsJSON - } - return "" -} - -func (m *DecryptedPush) GetDeepLink() string { - if m != nil { - return m.DeepLink - } - return "" -} - -func (m *DecryptedPush) GetAlreadyReceived() bool { - if m != nil { - return m.AlreadyReceived - } - return false -} - -func (m *DecryptedPush) GetAccountMuted() bool { - if m != nil { - return m.AccountMuted - } - return false -} - -func (m *DecryptedPush) GetConversationMuted() bool { - if m != nil { - return m.ConversationMuted - } - return false -} - -func (m *DecryptedPush) GetHidePreview() bool { - if m != nil { - return m.HidePreview - } - return false -} - -type FormatedPush struct { - PushType DecryptedPush_PushType `protobuf:"varint,1,opt,name=push_type,json=pushType,proto3,enum=weshnet.push.v1.DecryptedPush_PushType" json:"push_type,omitempty"` - Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` - Subtitle string `protobuf:"bytes,3,opt,name=subtitle,proto3" json:"subtitle,omitempty"` - Body string `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` - DeepLink string `protobuf:"bytes,5,opt,name=deep_link,json=deepLink,proto3" json:"deep_link,omitempty"` - Muted bool `protobuf:"varint,6,opt,name=muted,proto3" json:"muted,omitempty"` - HidePreview bool `protobuf:"varint,7,opt,name=hide_preview,json=hidePreview,proto3" json:"hide_preview,omitempty"` - ConversationIdentifier string `protobuf:"bytes,8,opt,name=conversation_identifier,json=conversationIdentifier,proto3" json:"conversation_identifier,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FormatedPush) Reset() { *m = FormatedPush{} } -func (m *FormatedPush) String() string { return proto.CompactTextString(m) } -func (*FormatedPush) ProtoMessage() {} -func (*FormatedPush) Descriptor() ([]byte, []int) { - return fileDescriptor_6b0fb36a3e3f285e, []int{7} -} -func (m *FormatedPush) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *FormatedPush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_FormatedPush.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *FormatedPush) XXX_Merge(src proto.Message) { - xxx_messageInfo_FormatedPush.Merge(m, src) -} -func (m *FormatedPush) XXX_Size() int { - return m.Size() -} -func (m *FormatedPush) XXX_DiscardUnknown() { - xxx_messageInfo_FormatedPush.DiscardUnknown(m) -} - -var xxx_messageInfo_FormatedPush proto.InternalMessageInfo - -func (m *FormatedPush) GetPushType() DecryptedPush_PushType { - if m != nil { - return m.PushType - } - return DecryptedPush_Unknown -} - -func (m *FormatedPush) GetTitle() string { - if m != nil { - return m.Title - } - return "" -} - -func (m *FormatedPush) GetSubtitle() string { - if m != nil { - return m.Subtitle - } - return "" -} - -func (m *FormatedPush) GetBody() string { - if m != nil { - return m.Body - } - return "" -} - -func (m *FormatedPush) GetDeepLink() string { - if m != nil { - return m.DeepLink - } - return "" -} - -func (m *FormatedPush) GetMuted() bool { - if m != nil { - return m.Muted - } - return false -} - -func (m *FormatedPush) GetHidePreview() bool { - if m != nil { - return m.HidePreview - } - return false -} - -func (m *FormatedPush) GetConversationIdentifier() string { - if m != nil { - return m.ConversationIdentifier - } - return "" -} - -func init() { - proto.RegisterEnum("weshnet.push.v1.PushServiceTokenType", PushServiceTokenType_name, PushServiceTokenType_value) - proto.RegisterEnum("weshnet.push.v1.PushServicePriority", PushServicePriority_name, PushServicePriority_value) - proto.RegisterEnum("weshnet.push.v1.DecryptedPush_PushType", DecryptedPush_PushType_name, DecryptedPush_PushType_value) - proto.RegisterType((*PushServiceServerInfo)(nil), "weshnet.push.v1.PushServiceServerInfo") - proto.RegisterType((*PushServiceServerInfo_Request)(nil), "weshnet.push.v1.PushServiceServerInfo.Request") - proto.RegisterType((*PushServiceServerInfo_Reply)(nil), "weshnet.push.v1.PushServiceServerInfo.Reply") - proto.RegisterType((*PushServiceSupportedTokenType)(nil), "weshnet.push.v1.PushServiceSupportedTokenType") - proto.RegisterType((*PushServiceSend)(nil), "weshnet.push.v1.PushServiceSend") - proto.RegisterType((*PushServiceSend_Request)(nil), "weshnet.push.v1.PushServiceSend.Request") - proto.RegisterType((*PushServiceSend_Reply)(nil), "weshnet.push.v1.PushServiceSend.Reply") - proto.RegisterType((*OutOfStoreMessageEnvelope)(nil), "weshnet.push.v1.OutOfStoreMessageEnvelope") - proto.RegisterType((*OutOfStoreExposedData)(nil), "weshnet.push.v1.OutOfStoreExposedData") - proto.RegisterType((*PushServiceOpaqueReceiver)(nil), "weshnet.push.v1.PushServiceOpaqueReceiver") - proto.RegisterType((*DecryptedPush)(nil), "weshnet.push.v1.DecryptedPush") - proto.RegisterType((*FormatedPush)(nil), "weshnet.push.v1.FormatedPush") -} - -func init() { proto.RegisterFile("pushtypes/pushtypes.proto", fileDescriptor_6b0fb36a3e3f285e) } - -var fileDescriptor_6b0fb36a3e3f285e = []byte{ - // 1213 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x6e, 0xdb, 0xc6, - 0x16, 0x0e, 0x25, 0x4a, 0xa6, 0x8e, 0xec, 0x88, 0x1e, 0xcb, 0x89, 0xac, 0x20, 0xb6, 0xc3, 0xdc, - 0xdc, 0x38, 0xbe, 0xb9, 0x32, 0xae, 0x03, 0xdc, 0x02, 0xed, 0xa2, 0xb5, 0xa3, 0xa4, 0x71, 0x13, - 0xff, 0x94, 0x71, 0xd0, 0xa2, 0x40, 0x41, 0x50, 0x9a, 0x63, 0x99, 0x31, 0x35, 0x33, 0xe1, 0x8f, - 0x1d, 0x76, 0xd5, 0x75, 0x1f, 0xa1, 0x2f, 0x50, 0x14, 0x5d, 0xf4, 0x35, 0xba, 0x2c, 0xd0, 0x75, - 0x8d, 0x42, 0x8f, 0xd1, 0x45, 0x51, 0xcc, 0xf0, 0x47, 0x52, 0x9c, 0x18, 0x41, 0x57, 0x9a, 0xf3, - 0x9d, 0xef, 0xfc, 0x68, 0xce, 0x77, 0xc0, 0x81, 0x25, 0x11, 0x87, 0xc7, 0x51, 0x22, 0x30, 0xdc, - 0x28, 0x4e, 0x1d, 0x11, 0xf0, 0x88, 0x93, 0xc6, 0x19, 0x86, 0xc7, 0x0c, 0xa3, 0x8e, 0x74, 0x74, - 0x4e, 0xff, 0xd7, 0x6e, 0x0e, 0xf8, 0x80, 0x2b, 0xdf, 0x86, 0x3c, 0xa5, 0x34, 0xeb, 0x67, 0x0d, - 0x16, 0x0f, 0xe2, 0xf0, 0xf8, 0x39, 0x06, 0xa7, 0x5e, 0x1f, 0xe5, 0x0f, 0x06, 0x3b, 0xec, 0x88, - 0xb7, 0x6b, 0x30, 0x63, 0xe3, 0xab, 0x18, 0xc3, 0xa8, 0xfd, 0x9d, 0x06, 0x15, 0x1b, 0x85, 0x9f, - 0x90, 0x9b, 0x00, 0x22, 0xee, 0xf9, 0x5e, 0xdf, 0x39, 0xc1, 0xa4, 0xa5, 0xad, 0x6a, 0x6b, 0xb3, - 0x76, 0x2d, 0x45, 0x9e, 0x62, 0x42, 0x7a, 0xb0, 0x18, 0xc6, 0x42, 0xf0, 0x20, 0x42, 0xea, 0x44, - 0xfc, 0x04, 0x99, 0xa3, 0x7a, 0x6a, 0x95, 0x56, 0xcb, 0x6b, 0xf5, 0xcd, 0x4e, 0xe7, 0x8d, 0xa6, - 0x3a, 0x93, 0xa5, 0xf3, 0xc0, 0x43, 0x19, 0x77, 0x98, 0x08, 0xb4, 0x17, 0xc2, 0x0b, 0x58, 0x68, - 0x7d, 0xaf, 0xc1, 0xcd, 0x4b, 0xc3, 0xc8, 0x03, 0x98, 0x73, 0x85, 0x70, 0x7a, 0x31, 0xa3, 0x3e, - 0x3a, 0x1e, 0x55, 0x7d, 0xd6, 0xb6, 0x1b, 0xa3, 0xf3, 0x95, 0xfa, 0x96, 0x10, 0xdb, 0x0a, 0xdf, - 0xe9, 0xda, 0x75, 0xb7, 0x30, 0x28, 0xe9, 0x02, 0x8c, 0x1b, 0x6e, 0x95, 0x56, 0xb5, 0xb5, 0xab, - 0x9b, 0x77, 0x2e, 0xeb, 0x77, 0xdc, 0x66, 0x2d, 0xca, 0x8f, 0xd6, 0x9f, 0x1a, 0x34, 0xa6, 0xae, - 0x93, 0xd1, 0xf6, 0xef, 0x5a, 0x71, 0x93, 0xe4, 0x31, 0x18, 0xc8, 0x4e, 0xd1, 0xe7, 0x02, 0x55, - 0x57, 0xf5, 0xcd, 0xf5, 0x0b, 0x35, 0xf6, 0xe3, 0x68, 0xff, 0xe8, 0x79, 0xc4, 0x03, 0xdc, 0xc5, - 0x30, 0x74, 0x07, 0xf8, 0x28, 0x8b, 0xb0, 0x8b, 0x58, 0xf2, 0x09, 0x18, 0x22, 0xf0, 0x78, 0xe0, - 0x45, 0x49, 0xd6, 0xeb, 0xbf, 0x2e, 0xeb, 0xf5, 0x20, 0xe3, 0xda, 0x45, 0x14, 0x79, 0x02, 0xb5, - 0x00, 0xfb, 0xe8, 0x9d, 0x62, 0x10, 0xb6, 0xca, 0x6a, 0x3c, 0xeb, 0x97, 0xa5, 0xd8, 0x17, 0xee, - 0xab, 0x18, 0xed, 0x2c, 0xc4, 0x1e, 0x07, 0xb7, 0x67, 0x32, 0x71, 0x58, 0xdf, 0x6a, 0xb0, 0xf4, - 0xce, 0xe6, 0x49, 0x13, 0x2a, 0x8c, 0xb3, 0x3e, 0x66, 0xaa, 0x49, 0x0d, 0x62, 0x42, 0xb9, 0xc7, - 0x5f, 0xab, 0xff, 0x30, 0x6b, 0xcb, 0x23, 0xf9, 0x08, 0x1a, 0x83, 0x80, 0xc7, 0xc2, 0x09, 0xf0, - 0x08, 0x03, 0x94, 0x11, 0xba, 0xf4, 0x6e, 0x93, 0xd1, 0xf9, 0xca, 0xd5, 0x4f, 0xa5, 0xcb, 0xce, - 0x3d, 0xf6, 0xd5, 0xc1, 0x94, 0x6d, 0x7d, 0x0c, 0x8b, 0xe3, 0x0e, 0x1e, 0xbd, 0x16, 0x3c, 0x44, - 0xda, 0x75, 0x23, 0xf7, 0x7d, 0xab, 0x5b, 0x2e, 0x2c, 0xbd, 0xf3, 0x4f, 0x93, 0x5b, 0x30, 0xcb, - 0x15, 0x92, 0x6a, 0x3b, 0xcb, 0x55, 0x4f, 0x31, 0xa5, 0x07, 0x49, 0x09, 0xd3, 0x58, 0xc7, 0xa5, - 0x34, 0x50, 0xa9, 0x6b, 0x76, 0x3d, 0xc3, 0xb6, 0x28, 0x0d, 0xac, 0x1f, 0xaa, 0x30, 0xd7, 0xc5, - 0x7e, 0x90, 0x88, 0x08, 0xa9, 0x2c, 0x46, 0xee, 0x03, 0xb8, 0xfd, 0x3e, 0x8f, 0x59, 0x34, 0x56, - 0xeb, 0xdc, 0xe8, 0x7c, 0xa5, 0xb6, 0x95, 0xa2, 0x3b, 0x5d, 0xbb, 0x96, 0x11, 0x76, 0xa8, 0x2c, - 0x91, 0xb3, 0x99, 0x3b, 0xc4, 0xbc, 0x44, 0x86, 0xed, 0xb9, 0x43, 0x24, 0xff, 0x87, 0xeb, 0x7d, - 0xce, 0xe4, 0x74, 0xdc, 0xc8, 0xe3, 0xcc, 0x99, 0xd8, 0xd9, 0xb2, 0x62, 0x2f, 0x4e, 0xba, 0x0f, - 0x8a, 0xfd, 0xfd, 0x10, 0x96, 0xa6, 0xe2, 0xa8, 0x17, 0x0a, 0xdf, 0x4d, 0xd2, 0x3a, 0xba, 0x8a, - 0x9c, 0x4a, 0xdc, 0x4d, 0xfd, 0xaa, 0xe6, 0x3a, 0xcc, 0x0f, 0x71, 0xd8, 0xc3, 0x60, 0xb2, 0x5a, - 0x45, 0xc5, 0x34, 0x52, 0xc7, 0xb8, 0x4e, 0x07, 0x16, 0x32, 0xee, 0x54, 0x85, 0xaa, 0x62, 0x67, - 0x69, 0x26, 0x73, 0x77, 0xa1, 0x26, 0x25, 0x99, 0xee, 0xe6, 0x8c, 0xd2, 0xfb, 0xdd, 0x0b, 0x62, - 0x9d, 0xba, 0x53, 0x25, 0x5d, 0xb5, 0x9d, 0x86, 0xc8, 0x4e, 0x64, 0x1b, 0x88, 0x70, 0x13, 0x9f, - 0xbb, 0xd4, 0x71, 0xa3, 0x28, 0x08, 0x9d, 0x97, 0x21, 0x67, 0x2d, 0x43, 0x5d, 0x77, 0x73, 0x74, - 0xbe, 0x62, 0x1e, 0xa4, 0xde, 0x2d, 0xe9, 0xfc, 0xec, 0xf9, 0xfe, 0x9e, 0x6d, 0x8a, 0x49, 0x24, - 0xe4, 0x8c, 0xdc, 0x80, 0x1a, 0x45, 0x14, 0x8e, 0xef, 0xb1, 0x93, 0x56, 0x4d, 0xf5, 0x6b, 0x48, - 0xe0, 0x99, 0xc7, 0x4e, 0xc8, 0x3d, 0x30, 0x5d, 0x3f, 0x40, 0x97, 0x26, 0x4e, 0xb6, 0x1e, 0xb4, - 0x05, 0xab, 0xda, 0x9a, 0x61, 0x37, 0x32, 0x3c, 0x93, 0x12, 0x25, 0xb7, 0x61, 0x2e, 0x1f, 0xe2, - 0x30, 0x8e, 0x90, 0xb6, 0xea, 0x8a, 0x97, 0x4f, 0x76, 0x57, 0x62, 0xe4, 0xbf, 0x40, 0xa6, 0xc6, - 0x91, 0x32, 0x67, 0x15, 0x73, 0x7e, 0xd2, 0x93, 0xd2, 0x6f, 0xc1, 0xec, 0xb1, 0x47, 0xd1, 0x11, - 0x01, 0x9e, 0x7a, 0x78, 0xd6, 0x9a, 0x53, 0xc4, 0xba, 0xc4, 0x0e, 0x52, 0xc8, 0xfa, 0x49, 0x03, - 0x23, 0xbf, 0x19, 0x52, 0x87, 0x99, 0x17, 0xec, 0x84, 0xf1, 0x33, 0x66, 0x5e, 0x91, 0x46, 0xb6, - 0xb1, 0xa6, 0x46, 0x16, 0xa0, 0xa1, 0x16, 0x6d, 0x87, 0x9d, 0x7a, 0x91, 0xaa, 0x60, 0xce, 0x90, - 0x1b, 0x70, 0xfd, 0xe1, 0x44, 0x4d, 0x39, 0x98, 0x87, 0xc7, 0x2e, 0x1b, 0x20, 0x35, 0x0d, 0xb2, - 0x08, 0xf3, 0xbb, 0x6a, 0x6c, 0x93, 0x70, 0x8d, 0xb4, 0xa0, 0x99, 0xc2, 0x5d, 0x8c, 0x5c, 0xcf, - 0x0f, 0x73, 0x4f, 0xdd, 0xd2, 0x8d, 0x92, 0x59, 0xb2, 0x74, 0xa3, 0x6c, 0x96, 0x2d, 0xdd, 0xd0, - 0x4d, 0xdd, 0xd2, 0x8d, 0x8a, 0x59, 0xb1, 0x74, 0xa3, 0x6a, 0x56, 0x2d, 0xdd, 0x00, 0x13, 0xac, - 0x1f, 0x4b, 0x30, 0xfb, 0x98, 0x07, 0x43, 0x37, 0x5f, 0x94, 0x29, 0x1d, 0x68, 0xff, 0x54, 0x07, - 0x4d, 0xa8, 0x44, 0x5e, 0xe4, 0xe7, 0x9b, 0x93, 0x1a, 0xa4, 0x0d, 0x46, 0x18, 0xf7, 0x52, 0x47, - 0xba, 0x24, 0x85, 0x4d, 0x08, 0xe8, 0x3d, 0x4e, 0x93, 0x6c, 0x05, 0xd4, 0x79, 0x5a, 0x09, 0x95, - 0x37, 0x94, 0xd0, 0x84, 0x4a, 0x3a, 0xac, 0xaa, 0x9a, 0x41, 0x6a, 0x5c, 0x18, 0xd0, 0xcc, 0x85, - 0x01, 0x91, 0x0f, 0xde, 0xd8, 0x5c, 0x8f, 0x22, 0x8b, 0xbc, 0x23, 0x0f, 0x83, 0x54, 0xa8, 0xf6, - 0xb5, 0x49, 0xf7, 0x4e, 0xe1, 0x5d, 0xff, 0x4b, 0x83, 0xe6, 0xdb, 0xbe, 0x4e, 0xe4, 0x1a, 0x10, - 0x75, 0x07, 0x12, 0x78, 0xc1, 0x28, 0x1e, 0x79, 0x0c, 0xa9, 0x79, 0x85, 0xcc, 0xc3, 0x5c, 0x81, - 0xef, 0x7e, 0x7e, 0x78, 0x68, 0x6a, 0xe4, 0x1e, 0xdc, 0x29, 0xa0, 0x2d, 0x21, 0x7c, 0x94, 0xd6, - 0x1e, 0x97, 0x15, 0xfa, 0xaa, 0x5e, 0x96, 0xdc, 0x2c, 0x91, 0xdb, 0xb0, 0x52, 0x50, 0x1f, 0x7b, - 0x01, 0xf6, 0xdc, 0x10, 0x1f, 0xfa, 0x3c, 0xa6, 0xa9, 0x88, 0x3c, 0x36, 0x30, 0xcb, 0xe4, 0x3f, - 0x70, 0xb7, 0x20, 0x7d, 0xe1, 0x31, 0xca, 0xcf, 0xc2, 0x77, 0x65, 0xd4, 0x49, 0x1b, 0xae, 0x15, - 0xe4, 0x27, 0xb1, 0x7b, 0x86, 0x9e, 0x34, 0x9f, 0x7a, 0x91, 0x59, 0x21, 0x16, 0x2c, 0x8f, 0x1b, - 0x1b, 0xba, 0xdf, 0x70, 0xd6, 0x45, 0x19, 0x36, 0x2e, 0x56, 0x5d, 0xff, 0x1a, 0x16, 0xde, 0xf2, - 0xc5, 0x23, 0x4b, 0xe9, 0xfb, 0x26, 0xb7, 0x27, 0x6f, 0x60, 0x21, 0xfd, 0x56, 0xe7, 0xae, 0x67, - 0xfc, 0xcc, 0xd4, 0xf2, 0xeb, 0xca, 0xc1, 0x3d, 0x29, 0x3f, 0xdf, 0x2c, 0x6d, 0xfe, 0xa6, 0x41, - 0x7d, 0x22, 0x3f, 0x79, 0x09, 0x30, 0x7e, 0x2c, 0x91, 0xcb, 0x5f, 0x36, 0x05, 0xaf, 0x93, 0xbf, - 0xa8, 0xee, 0xbf, 0x37, 0x5f, 0xbe, 0xba, 0xbe, 0x04, 0x5d, 0xbe, 0x24, 0xc8, 0xda, 0xe5, 0x51, - 0x8c, 0x16, 0xf9, 0xff, 0xfd, 0x1e, 0x4c, 0xe1, 0x27, 0xdb, 0x9d, 0x5f, 0x46, 0xcb, 0xda, 0xaf, - 0xa3, 0x65, 0xed, 0x8f, 0xd1, 0xb2, 0xf6, 0xd5, 0x6a, 0x0f, 0x83, 0x28, 0xe9, 0x44, 0xd8, 0x3f, - 0xde, 0xc8, 0xe2, 0x37, 0xc4, 0xc9, 0x60, 0xfc, 0xb6, 0xec, 0x55, 0xd5, 0xab, 0xf1, 0xc1, 0xdf, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x23, 0xe0, 0x7f, 0x2c, 0x79, 0x0a, 0x00, 0x00, -} - -func (m *PushServiceServerInfo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceServerInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceServerInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *PushServiceServerInfo_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceServerInfo_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceServerInfo_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *PushServiceServerInfo_Reply) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceServerInfo_Reply) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceServerInfo_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.SupportedTokenTypes) > 0 { - for iNdEx := len(m.SupportedTokenTypes) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.SupportedTokenTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPushtypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - if len(m.PublicKey) > 0 { - i -= len(m.PublicKey) - copy(dAtA[i:], m.PublicKey) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.PublicKey))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushServiceSupportedTokenType) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceSupportedTokenType) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceSupportedTokenType) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.TokenType != 0 { - i = encodeVarintPushtypes(dAtA, i, uint64(m.TokenType)) - i-- - dAtA[i] = 0x10 - } - if len(m.AppBundleID) > 0 { - i -= len(m.AppBundleID) - copy(dAtA[i:], m.AppBundleID) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.AppBundleID))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushServiceSend) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceSend) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceSend) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *PushServiceSend_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceSend_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceSend_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Receivers) > 0 { - for iNdEx := len(m.Receivers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Receivers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPushtypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.Priority != 0 { - i = encodeVarintPushtypes(dAtA, i, uint64(m.Priority)) - i-- - dAtA[i] = 0x10 - } - if m.Envelope != nil { - { - size, err := m.Envelope.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPushtypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushServiceSend_Reply) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceSend_Reply) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceSend_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *OutOfStoreMessageEnvelope) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OutOfStoreMessageEnvelope) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OutOfStoreMessageEnvelope) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.GroupReference) > 0 { - i -= len(m.GroupReference) - copy(dAtA[i:], m.GroupReference) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.GroupReference))) - i-- - dAtA[i] = 0x22 - } - if len(m.Box) > 0 { - i -= len(m.Box) - copy(dAtA[i:], m.Box) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Box))) - i-- - dAtA[i] = 0x12 - } - if len(m.Nonce) > 0 { - i -= len(m.Nonce) - copy(dAtA[i:], m.Nonce) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Nonce))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *OutOfStoreExposedData) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OutOfStoreExposedData) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OutOfStoreExposedData) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Box) > 0 { - i -= len(m.Box) - copy(dAtA[i:], m.Box) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Box))) - i-- - dAtA[i] = 0x12 - } - if len(m.Nonce) > 0 { - i -= len(m.Nonce) - copy(dAtA[i:], m.Nonce) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Nonce))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *PushServiceOpaqueReceiver) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PushServiceOpaqueReceiver) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PushServiceOpaqueReceiver) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.ServiceAddr) > 0 { - i -= len(m.ServiceAddr) - copy(dAtA[i:], m.ServiceAddr) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.ServiceAddr))) - i-- - dAtA[i] = 0x12 - } - if len(m.OpaqueToken) > 0 { - i -= len(m.OpaqueToken) - copy(dAtA[i:], m.OpaqueToken) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.OpaqueToken))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *DecryptedPush) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DecryptedPush) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DecryptedPush) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.HidePreview { - i-- - if m.HidePreview { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x68 - } - if m.ConversationMuted { - i-- - if m.ConversationMuted { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x60 - } - if m.AccountMuted { - i-- - if m.AccountMuted { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x58 - } - if m.AlreadyReceived { - i-- - if m.AlreadyReceived { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x50 - } - if len(m.DeepLink) > 0 { - i -= len(m.DeepLink) - copy(dAtA[i:], m.DeepLink) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.DeepLink))) - i-- - dAtA[i] = 0x4a - } - if len(m.PayloadAttrsJSON) > 0 { - i -= len(m.PayloadAttrsJSON) - copy(dAtA[i:], m.PayloadAttrsJSON) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.PayloadAttrsJSON))) - i-- - dAtA[i] = 0x42 - } - if m.PushType != 0 { - i = encodeVarintPushtypes(dAtA, i, uint64(m.PushType)) - i-- - dAtA[i] = 0x38 - } - if len(m.MemberDisplayName) > 0 { - i -= len(m.MemberDisplayName) - copy(dAtA[i:], m.MemberDisplayName) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.MemberDisplayName))) - i-- - dAtA[i] = 0x32 - } - if len(m.MemberPublicKey) > 0 { - i -= len(m.MemberPublicKey) - copy(dAtA[i:], m.MemberPublicKey) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.MemberPublicKey))) - i-- - dAtA[i] = 0x2a - } - if len(m.ConversationDisplayName) > 0 { - i -= len(m.ConversationDisplayName) - copy(dAtA[i:], m.ConversationDisplayName) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.ConversationDisplayName))) - i-- - dAtA[i] = 0x22 - } - if len(m.ConversationPublicKey) > 0 { - i -= len(m.ConversationPublicKey) - copy(dAtA[i:], m.ConversationPublicKey) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.ConversationPublicKey))) - i-- - dAtA[i] = 0x1a - } - if len(m.AccountName) > 0 { - i -= len(m.AccountName) - copy(dAtA[i:], m.AccountName) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.AccountName))) - i-- - dAtA[i] = 0x12 - } - if len(m.AccountID) > 0 { - i -= len(m.AccountID) - copy(dAtA[i:], m.AccountID) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.AccountID))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *FormatedPush) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *FormatedPush) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *FormatedPush) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.ConversationIdentifier) > 0 { - i -= len(m.ConversationIdentifier) - copy(dAtA[i:], m.ConversationIdentifier) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.ConversationIdentifier))) - i-- - dAtA[i] = 0x42 - } - if m.HidePreview { - i-- - if m.HidePreview { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x38 - } - if m.Muted { - i-- - if m.Muted { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - } - if len(m.DeepLink) > 0 { - i -= len(m.DeepLink) - copy(dAtA[i:], m.DeepLink) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.DeepLink))) - i-- - dAtA[i] = 0x2a - } - if len(m.Body) > 0 { - i -= len(m.Body) - copy(dAtA[i:], m.Body) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Body))) - i-- - dAtA[i] = 0x22 - } - if len(m.Subtitle) > 0 { - i -= len(m.Subtitle) - copy(dAtA[i:], m.Subtitle) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Subtitle))) - i-- - dAtA[i] = 0x1a - } - if len(m.Title) > 0 { - i -= len(m.Title) - copy(dAtA[i:], m.Title) - i = encodeVarintPushtypes(dAtA, i, uint64(len(m.Title))) - i-- - dAtA[i] = 0x12 - } - if m.PushType != 0 { - i = encodeVarintPushtypes(dAtA, i, uint64(m.PushType)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func encodeVarintPushtypes(dAtA []byte, offset int, v uint64) int { - offset -= sovPushtypes(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *PushServiceServerInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceServerInfo_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceServerInfo_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.PublicKey) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if len(m.SupportedTokenTypes) > 0 { - for _, e := range m.SupportedTokenTypes { - l = e.Size() - n += 1 + l + sovPushtypes(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceSupportedTokenType) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AppBundleID) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.TokenType != 0 { - n += 1 + sovPushtypes(uint64(m.TokenType)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceSend) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceSend_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Envelope != nil { - l = m.Envelope.Size() - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.Priority != 0 { - n += 1 + sovPushtypes(uint64(m.Priority)) - } - if len(m.Receivers) > 0 { - for _, e := range m.Receivers { - l = e.Size() - n += 1 + l + sovPushtypes(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceSend_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreMessageEnvelope) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Nonce) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.Box) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.GroupReference) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *OutOfStoreExposedData) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Nonce) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.Box) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *PushServiceOpaqueReceiver) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.OpaqueToken) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.ServiceAddr) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DecryptedPush) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AccountID) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.AccountName) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.ConversationPublicKey) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.ConversationDisplayName) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.MemberPublicKey) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.MemberDisplayName) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.PushType != 0 { - n += 1 + sovPushtypes(uint64(m.PushType)) - } - l = len(m.PayloadAttrsJSON) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.DeepLink) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.AlreadyReceived { - n += 2 - } - if m.AccountMuted { - n += 2 - } - if m.ConversationMuted { - n += 2 - } - if m.HidePreview { - n += 2 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *FormatedPush) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.PushType != 0 { - n += 1 + sovPushtypes(uint64(m.PushType)) - } - l = len(m.Title) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.Subtitle) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.Body) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - l = len(m.DeepLink) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.Muted { - n += 2 - } - if m.HidePreview { - n += 2 - } - l = len(m.ConversationIdentifier) - if l > 0 { - n += 1 + l + sovPushtypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func sovPushtypes(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozPushtypes(x uint64) (n int) { - return sovPushtypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *PushServiceServerInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServiceServerInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServiceServerInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceServerInfo_Request) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceServerInfo_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PublicKey = append(m.PublicKey[:0], dAtA[iNdEx:postIndex]...) - if m.PublicKey == nil { - m.PublicKey = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SupportedTokenTypes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SupportedTokenTypes = append(m.SupportedTokenTypes, &PushServiceSupportedTokenType{}) - if err := m.SupportedTokenTypes[len(m.SupportedTokenTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceSupportedTokenType) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServiceSupportedTokenType: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServiceSupportedTokenType: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AppBundleID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AppBundleID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenType", wireType) - } - m.TokenType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TokenType |= PushServiceTokenType(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceSend) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServiceSend: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServiceSend: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceSend_Request) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Envelope", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Envelope == nil { - m.Envelope = &OutOfStoreMessageEnvelope{} - } - if err := m.Envelope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) - } - m.Priority = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Priority |= PushServicePriority(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Receivers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Receivers = append(m.Receivers, &PushServiceOpaqueReceiver{}) - if err := m.Receivers[len(m.Receivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceSend_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OutOfStoreMessageEnvelope) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OutOfStoreMessageEnvelope: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OutOfStoreMessageEnvelope: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Nonce = append(m.Nonce[:0], dAtA[iNdEx:postIndex]...) - if m.Nonce == nil { - m.Nonce = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Box", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Box = append(m.Box[:0], dAtA[iNdEx:postIndex]...) - if m.Box == nil { - m.Box = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupReference", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GroupReference = append(m.GroupReference[:0], dAtA[iNdEx:postIndex]...) - if m.GroupReference == nil { - m.GroupReference = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OutOfStoreExposedData) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OutOfStoreExposedData: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OutOfStoreExposedData: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Nonce = append(m.Nonce[:0], dAtA[iNdEx:postIndex]...) - if m.Nonce == nil { - m.Nonce = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Box", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Box = append(m.Box[:0], dAtA[iNdEx:postIndex]...) - if m.Box == nil { - m.Box = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PushServiceOpaqueReceiver) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PushServiceOpaqueReceiver: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PushServiceOpaqueReceiver: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OpaqueToken", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OpaqueToken = append(m.OpaqueToken[:0], dAtA[iNdEx:postIndex]...) - if m.OpaqueToken == nil { - m.OpaqueToken = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAddr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceAddr = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DecryptedPush) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DecryptedPush: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DecryptedPush: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AccountID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AccountName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConversationPublicKey", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConversationPublicKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConversationDisplayName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConversationDisplayName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MemberPublicKey", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MemberPublicKey = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MemberDisplayName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MemberDisplayName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PushType", wireType) - } - m.PushType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PushType |= DecryptedPush_PushType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PayloadAttrsJSON", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PayloadAttrsJSON = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeepLink", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DeepLink = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AlreadyReceived", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AlreadyReceived = bool(v != 0) - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AccountMuted", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AccountMuted = bool(v != 0) - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ConversationMuted", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ConversationMuted = bool(v != 0) - case 13: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HidePreview", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.HidePreview = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FormatedPush) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: FormatedPush: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FormatedPush: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PushType", wireType) - } - m.PushType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.PushType |= DecryptedPush_PushType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Title = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subtitle", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Subtitle = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Body", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Body = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeepLink", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DeepLink = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Muted", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Muted = bool(v != 0) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HidePreview", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.HidePreview = bool(v != 0) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConversationIdentifier", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPushtypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthPushtypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPushtypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConversationIdentifier = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPushtypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPushtypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipPushtypes(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPushtypes - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPushtypes - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowPushtypes - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthPushtypes - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupPushtypes - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthPushtypes - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthPushtypes = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowPushtypes = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupPushtypes = fmt.Errorf("proto: unexpected end of group") -) diff --git a/pkg/pushtypes/pushtypes.pb.gw.go b/pkg/pushtypes/pushtypes.pb.gw.go deleted file mode 100644 index 5ace938d..00000000 --- a/pkg/pushtypes/pushtypes.pb.gw.go +++ /dev/null @@ -1,250 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: pushtypes/pushtypes.proto - -/* -Package pushtypes is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package pushtypes - -import ( - "context" - "io" - "net/http" - - "github.com/golang/protobuf/descriptor" - "github.com/golang/protobuf/proto" - "github.com/grpc-ecosystem/grpc-gateway/runtime" - "github.com/grpc-ecosystem/grpc-gateway/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = descriptor.ForMessage -var _ = metadata.Join - -func request_PushService_ServerInfo_0(ctx context.Context, marshaler runtime.Marshaler, client PushServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PushServiceServerInfo_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.ServerInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_PushService_ServerInfo_0(ctx context.Context, marshaler runtime.Marshaler, server PushServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PushServiceServerInfo_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.ServerInfo(ctx, &protoReq) - return msg, metadata, err - -} - -func request_PushService_Send_0(ctx context.Context, marshaler runtime.Marshaler, client PushServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PushServiceSend_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.Send(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_PushService_Send_0(ctx context.Context, marshaler runtime.Marshaler, server PushServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PushServiceSend_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.Send(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterPushServiceHandlerServer registers the http handlers for service PushService to "mux". -// UnaryRPC :call PushServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPushServiceHandlerFromEndpoint instead. -func RegisterPushServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PushServiceServer) error { - - mux.Handle("POST", pattern_PushService_ServerInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_PushService_ServerInfo_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_PushService_ServerInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_PushService_Send_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_PushService_Send_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_PushService_Send_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterPushServiceHandlerFromEndpoint is same as RegisterPushServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterPushServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterPushServiceHandler(ctx, mux, conn) -} - -// RegisterPushServiceHandler registers the http handlers for service PushService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterPushServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterPushServiceHandlerClient(ctx, mux, NewPushServiceClient(conn)) -} - -// RegisterPushServiceHandlerClient registers the http handlers for service PushService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PushServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PushServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "PushServiceClient" to call the correct interceptors. -func RegisterPushServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PushServiceClient) error { - - mux.Handle("POST", pattern_PushService_ServerInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_PushService_ServerInfo_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_PushService_ServerInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_PushService_Send_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_PushService_Send_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_PushService_Send_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_PushService_ServerInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.push.v1.PushService", "ServerInfo"}, "", runtime.AssumeColonVerbOpt(true))) - - pattern_PushService_Send_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.push.v1.PushService", "Send"}, "", runtime.AssumeColonVerbOpt(true))) -) - -var ( - forward_PushService_ServerInfo_0 = runtime.ForwardResponseMessage - - forward_PushService_Send_0 = runtime.ForwardResponseMessage -) diff --git a/pkg/pushtypes/pushtypes_grpc.pb.go b/pkg/pushtypes/pushtypes_grpc.pb.go deleted file mode 100644 index 274fadb8..00000000 --- a/pkg/pushtypes/pushtypes_grpc.pb.go +++ /dev/null @@ -1,150 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc (unknown) -// source: pushtypes/pushtypes.proto - -package pushtypes - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -const ( - PushService_ServerInfo_FullMethodName = "/weshnet.push.v1.PushService/ServerInfo" - PushService_Send_FullMethodName = "/weshnet.push.v1.PushService/Send" -) - -// PushServiceClient is the client API for PushService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type PushServiceClient interface { - // ServerInfo retrieves metadata about the current push service - ServerInfo(ctx context.Context, in *PushServiceServerInfo_Request, opts ...grpc.CallOption) (*PushServiceServerInfo_Reply, error) - // Send dispatch a push payload to one or multiple recipients - Send(ctx context.Context, in *PushServiceSend_Request, opts ...grpc.CallOption) (*PushServiceSend_Reply, error) -} - -type pushServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewPushServiceClient(cc grpc.ClientConnInterface) PushServiceClient { - return &pushServiceClient{cc} -} - -func (c *pushServiceClient) ServerInfo(ctx context.Context, in *PushServiceServerInfo_Request, opts ...grpc.CallOption) (*PushServiceServerInfo_Reply, error) { - out := new(PushServiceServerInfo_Reply) - err := c.cc.Invoke(ctx, PushService_ServerInfo_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *pushServiceClient) Send(ctx context.Context, in *PushServiceSend_Request, opts ...grpc.CallOption) (*PushServiceSend_Reply, error) { - out := new(PushServiceSend_Reply) - err := c.cc.Invoke(ctx, PushService_Send_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// PushServiceServer is the server API for PushService service. -// All implementations must embed UnimplementedPushServiceServer -// for forward compatibility -type PushServiceServer interface { - // ServerInfo retrieves metadata about the current push service - ServerInfo(context.Context, *PushServiceServerInfo_Request) (*PushServiceServerInfo_Reply, error) - // Send dispatch a push payload to one or multiple recipients - Send(context.Context, *PushServiceSend_Request) (*PushServiceSend_Reply, error) - mustEmbedUnimplementedPushServiceServer() -} - -// UnimplementedPushServiceServer must be embedded to have forward compatible implementations. -type UnimplementedPushServiceServer struct { -} - -func (UnimplementedPushServiceServer) ServerInfo(context.Context, *PushServiceServerInfo_Request) (*PushServiceServerInfo_Reply, error) { - return nil, status.Errorf(codes.Unimplemented, "method ServerInfo not implemented") -} -func (UnimplementedPushServiceServer) Send(context.Context, *PushServiceSend_Request) (*PushServiceSend_Reply, error) { - return nil, status.Errorf(codes.Unimplemented, "method Send not implemented") -} -func (UnimplementedPushServiceServer) mustEmbedUnimplementedPushServiceServer() {} - -// UnsafePushServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to PushServiceServer will -// result in compilation errors. -type UnsafePushServiceServer interface { - mustEmbedUnimplementedPushServiceServer() -} - -func RegisterPushServiceServer(s grpc.ServiceRegistrar, srv PushServiceServer) { - s.RegisterService(&PushService_ServiceDesc, srv) -} - -func _PushService_ServerInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PushServiceServerInfo_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PushServiceServer).ServerInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PushService_ServerInfo_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PushServiceServer).ServerInfo(ctx, req.(*PushServiceServerInfo_Request)) - } - return interceptor(ctx, in, info, handler) -} - -func _PushService_Send_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PushServiceSend_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PushServiceServer).Send(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PushService_Send_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PushServiceServer).Send(ctx, req.(*PushServiceSend_Request)) - } - return interceptor(ctx, in, info, handler) -} - -// PushService_ServiceDesc is the grpc.ServiceDesc for PushService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var PushService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "weshnet.push.v1.PushService", - HandlerType: (*PushServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ServerInfo", - Handler: _PushService_ServerInfo_Handler, - }, - { - MethodName: "Send", - Handler: _PushService_Send_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "pushtypes/pushtypes.proto", -} diff --git a/pkg/secretstore/secret_store.go b/pkg/secretstore/secret_store.go index 3ae12961..777d9572 100644 --- a/pkg/secretstore/secret_store.go +++ b/pkg/secretstore/secret_store.go @@ -17,7 +17,6 @@ import ( "berty.tech/weshnet/pkg/errcode" "berty.tech/weshnet/pkg/ipfsutil" "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" ) const ( @@ -140,7 +139,7 @@ func (s *secretStore) GetOwnMemberDeviceForGroup(g *protocoltypes.Group) (OwnMem } func (s *secretStore) OpenOutOfStoreMessage(ctx context.Context, payload []byte) (*protocoltypes.OutOfStoreMessage, *protocoltypes.Group, []byte, bool, error) { - oosMessageEnv := &pushtypes.OutOfStoreMessageEnvelope{} + oosMessageEnv := &protocoltypes.OutOfStoreMessageEnvelope{} if err := oosMessageEnv.Unmarshal(payload); err != nil { return nil, nil, nil, false, errcode.ErrDeserialization.Wrap(err) } @@ -170,7 +169,7 @@ func (s *secretStore) OpenOutOfStoreMessage(ctx context.Context, payload []byte) return oosMessage, group, clear, !newlyDecrypted, nil } -func (s *secretStore) decryptOutOfStoreMessageEnv(ctx context.Context, env *pushtypes.OutOfStoreMessageEnvelope, groupPK crypto.PubKey) (*protocoltypes.OutOfStoreMessage, error) { +func (s *secretStore) decryptOutOfStoreMessageEnv(ctx context.Context, env *protocoltypes.OutOfStoreMessageEnvelope, groupPK crypto.PubKey) (*protocoltypes.OutOfStoreMessage, error) { nonce, err := cryptoutil.NonceSliceToArray(env.Nonce) if err != nil { return nil, errcode.ErrInvalidInput.Wrap(err) @@ -329,7 +328,7 @@ func (s *secretStore) OpenEnvelopeHeaders(data []byte, g *protocoltypes.Group) ( return env, headers, nil } -func (s *secretStore) SealOutOfStoreMessageEnvelope(id cid.Cid, env *protocoltypes.MessageEnvelope, headers *protocoltypes.MessageHeaders, g *protocoltypes.Group) (*pushtypes.OutOfStoreMessageEnvelope, error) { +func (s *secretStore) SealOutOfStoreMessageEnvelope(id cid.Cid, env *protocoltypes.MessageEnvelope, headers *protocoltypes.MessageHeaders, group *protocoltypes.Group) (*protocoltypes.OutOfStoreMessageEnvelope, error) { oosMessage := &protocoltypes.OutOfStoreMessage{ CID: id.Bytes(), DevicePK: headers.DevicePK, @@ -349,19 +348,19 @@ func (s *secretStore) SealOutOfStoreMessageEnvelope(id cid.Cid, env *protocoltyp return nil, errcode.ErrCryptoNonceGeneration.Wrap(err) } - secret, err := cryptoutil.KeySliceToArray(g.Secret) + secret, err := cryptoutil.KeySliceToArray(group.Secret) if err != nil { return nil, errcode.ErrCryptoKeyConversion.Wrap(fmt.Errorf("unable to convert slice to array: %w", err)) } encryptedData := secretbox.Seal(nil, data, nonce, secret) - pushGroupRef, err := createOutOfStoreGroupReference(g, headers.DevicePK, headers.Counter) + pushGroupRef, err := createOutOfStoreGroupReference(group, headers.DevicePK, headers.Counter) if err != nil { return nil, errcode.ErrCryptoKeyGeneration.Wrap(err) } - return &pushtypes.OutOfStoreMessageEnvelope{ + return &protocoltypes.OutOfStoreMessageEnvelope{ Nonce: nonce[:], Box: encryptedData, GroupReference: pushGroupRef, diff --git a/pkg/secretstore/secret_store_interfaces.go b/pkg/secretstore/secret_store_interfaces.go index 5291db7f..9840187d 100644 --- a/pkg/secretstore/secret_store_interfaces.go +++ b/pkg/secretstore/secret_store_interfaces.go @@ -8,9 +8,7 @@ import ( "github.com/libp2p/go-libp2p/core/crypto" "go.uber.org/zap" - "berty.tech/weshnet/pkg/cryptoutil" "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" ) const ( @@ -91,7 +89,7 @@ type SecretStore interface { // // SealOutOfStoreMessageEnvelope encrypts a message to be sent outside a synchronized store - SealOutOfStoreMessageEnvelope(id cid.Cid, env *protocoltypes.MessageEnvelope, headers *protocoltypes.MessageHeaders, group *protocoltypes.Group) (*pushtypes.OutOfStoreMessageEnvelope, error) + SealOutOfStoreMessageEnvelope(id cid.Cid, env *protocoltypes.MessageEnvelope, headers *protocoltypes.MessageHeaders, group *protocoltypes.Group) (*protocoltypes.OutOfStoreMessageEnvelope, error) // OpenOutOfStoreMessage opens a message received outside a synchronized store OpenOutOfStoreMessage(ctx context.Context, payload []byte) (outOfStoreMessage *protocoltypes.OutOfStoreMessage, group *protocoltypes.Group, clearPayload []byte, alreadyDecrypted bool, err error) @@ -124,11 +122,6 @@ type NewSecretStoreOptions struct { // DisableOutOfStoreSupport explicitly disables support of out-of-store // payloads DisableOutOfStoreSupport bool - - // OutOfStorePrivateKey sets the out-of-store key to decrypt payloads - // received via a server, alternatively you can use - // SecretStore.SetOutOfStoreDevicePrivateKey to set it - OutOfStorePrivateKey *[cryptoutil.KeySize]byte } // MemberDevice is the public keys of a device and its member diff --git a/pkg/testutil/push.go b/pkg/testutil/push.go deleted file mode 100644 index 314f2825..00000000 --- a/pkg/testutil/push.go +++ /dev/null @@ -1,78 +0,0 @@ -package testutil - -import ( - "fmt" - "sync" - - "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" -) - -const ( - DummyPushServerAddr = "server.test" - PushMockBundleID = "tech.berty.mock" -) - -type PushMockedDispatcher struct { - mu sync.RWMutex - bundleID string - queue map[string][][]byte -} - -func (d *PushMockedDispatcher) TokenType() pushtypes.PushServiceTokenType { - return pushtypes.PushServiceTokenType_PushTokenMQTT -} - -func (d *PushMockedDispatcher) Dispatch(data []byte, receiver *protocoltypes.PushServiceReceiver) error { - d.mu.Lock() - defer d.mu.Unlock() - - d.queue[string(receiver.Token)] = append(d.queue[string(receiver.Token)], data) - - return nil -} - -func (d *PushMockedDispatcher) BundleID() string { - return d.bundleID -} - -func (d *PushMockedDispatcher) Shift(token []byte) []byte { - d.mu.Lock() - defer d.mu.Unlock() - - if len(d.queue[string(token)]) == 0 { - return nil - } - - var payload []byte - payload, d.queue[string(token)] = d.queue[string(token)][0], d.queue[string(token)][1:] - - return payload -} - -func (d *PushMockedDispatcher) Len(token []byte) int { - d.mu.RLock() - defer d.mu.RUnlock() - - return len(d.queue[string(token)]) -} - -func (d *PushMockedDispatcher) Debug() string { - d.mu.RLock() - defer d.mu.RUnlock() - - out := "Showing contents of the push dispatcher:\n\n" - - for k, v := range d.queue { - out = fmt.Sprintf("%s%s: %d entrie(s)\n", out, k, len(v)) - } - - return out -} - -func NewPushMockedDispatcher(bundleID string) *PushMockedDispatcher { - return &PushMockedDispatcher{ - bundleID: bundleID, - queue: map[string][][]byte{}, - } -} diff --git a/service.go b/service.go index c7169f6e..0307b563 100644 --- a/service.go +++ b/service.go @@ -26,7 +26,6 @@ import ( "github.com/prometheus/client_golang/prometheus" "go.uber.org/multierr" "go.uber.org/zap" - "google.golang.org/grpc" "moul.io/srand" "berty.tech/go-orbit-db/baseorbitdb" @@ -36,7 +35,6 @@ import ( "berty.tech/weshnet/internal/bertyversion" "berty.tech/weshnet/internal/datastoreutil" "berty.tech/weshnet/pkg/bertyvcissuer" - "berty.tech/weshnet/pkg/cryptoutil" "berty.tech/weshnet/pkg/errcode" "berty.tech/weshnet/pkg/ipfsutil" ipfs_mobile "berty.tech/weshnet/pkg/ipfsutil/mobile" @@ -71,8 +69,6 @@ type service struct { close func() error startedAt time.Time host host.Host - pushClients map[string]*grpc.ClientConn - muPushClients sync.RWMutex grpcInsecure bool refreshprocess map[string]context.CancelFunc muRefreshprocess sync.RWMutex @@ -88,22 +84,19 @@ type service struct { // Opts contains optional configuration flags for building a new Client type Opts struct { - Logger *zap.Logger - IpfsCoreAPI ipfsutil.ExtendedCoreAPI - DatastoreDir string - RootDatastore ds.Batching - AccountCache ds.Batching - OrbitDB *WeshOrbitDB - TinderService *tinder.Service - Host host.Host - PubSub *pubsub.PubSub - GRPCInsecureMode bool - LocalOnly bool - close func() error - PushKey *[cryptoutil.KeySize]byte - SecretStore secretstore.SecretStore - OutOfStorePrivateKey *[cryptoutil.KeySize]byte - PrometheusRegister prometheus.Registerer + Logger *zap.Logger + IpfsCoreAPI ipfsutil.ExtendedCoreAPI + DatastoreDir string + RootDatastore ds.Batching + OrbitDB *WeshOrbitDB + TinderService *tinder.Service + Host host.Host + PubSub *pubsub.PubSub + GRPCInsecureMode bool + LocalOnly bool + close func() error + SecretStore secretstore.SecretStore + PrometheusRegister prometheus.Registerer // These are used if OrbitDB is nil. GroupMetadataStoreType string @@ -149,8 +142,7 @@ func (opts *Opts) applyDefaults(ctx context.Context) error { if opts.SecretStore == nil { secretStore, err := secretstore.NewSecretStore(opts.RootDatastore, &secretstore.NewSecretStoreOptions{ - Logger: opts.Logger, - OutOfStorePrivateKey: opts.OutOfStorePrivateKey, + Logger: opts.Logger, }) if err != nil { return errcode.ErrInternal.Wrap(err) @@ -361,7 +353,6 @@ func NewService(opts Opts) (_ Service, err error) { string(accountGroupCtx.Group().PublicKey): accountGroupCtx, }, secretStore: opts.SecretStore, - pushClients: make(map[string]*grpc.ClientConn), grpcInsecure: opts.GRPCInsecureMode, refreshprocess: make(map[string]context.CancelFunc), peerStatusManager: NewConnectednessManager(), diff --git a/store_message.go b/store_message.go index 01f53302..a60baa85 100644 --- a/store_message.go +++ b/store_message.go @@ -25,7 +25,6 @@ import ( "berty.tech/weshnet/pkg/errcode" "berty.tech/weshnet/pkg/logutil" "berty.tech/weshnet/pkg/protocoltypes" - "berty.tech/weshnet/pkg/pushtypes" "berty.tech/weshnet/pkg/secretstore" "berty.tech/weshnet/pkg/tyber" ) @@ -497,7 +496,7 @@ func (m *MessageStore) GetMessageByCID(c cid.Cid) (operation.Operation, error) { return op, nil } -func (m *MessageStore) GetOutOfStoreMessageEnvelope(ctx context.Context, c cid.Cid) (*pushtypes.OutOfStoreMessageEnvelope, error) { +func (m *MessageStore) GetOutOfStoreMessageEnvelope(ctx context.Context, c cid.Cid) (*protocoltypes.OutOfStoreMessageEnvelope, error) { op, err := m.GetMessageByCID(c) if err != nil { return nil, errcode.ErrInvalidInput.Wrap(err) diff --git a/store_metadata.go b/store_metadata.go index bf0d4bf2..172d998b 100644 --- a/store_metadata.go +++ b/store_metadata.go @@ -24,7 +24,6 @@ import ( "berty.tech/go-orbit-db/stores/basestore" "berty.tech/go-orbit-db/stores/operation" "berty.tech/weshnet/pkg/errcode" - "berty.tech/weshnet/pkg/logutil" "berty.tech/weshnet/pkg/protocoltypes" "berty.tech/weshnet/pkg/secretstore" "berty.tech/weshnet/pkg/tyber" @@ -1081,62 +1080,6 @@ func constructorFactoryGroupMetadata(s *WeshOrbitDB, logger *zap.Logger) iface.S } } -func (m *MetadataStore) SendPushToken(ctx context.Context, t *protocoltypes.PushMemberTokenUpdate) (operation.Operation, error) { - m.logger.Debug("sending push token to device", logutil.PrivateString("server", t.Server.ServiceAddr)) - return m.attributeSignAndAddEvent(ctx, &protocoltypes.PushMemberTokenUpdate{ - Server: t.Server, - Token: t.Token, - }, protocoltypes.EventTypePushMemberTokenUpdate) -} - -func (m *MetadataStore) RegisterDevicePushToken(ctx context.Context, token *protocoltypes.PushServiceReceiver) (operation.Operation, error) { - m.logger.Debug("register push token") - return m.attributeSignAndAddEvent(ctx, &protocoltypes.PushDeviceTokenRegistered{ - Token: token, - }, protocoltypes.EventTypePushDeviceTokenRegistered) -} - -func (m *MetadataStore) RegisterDevicePushServer(ctx context.Context, server *protocoltypes.PushServer) (operation.Operation, error) { - return m.attributeSignAndAddEvent(ctx, &protocoltypes.PushDeviceServerRegistered{ - Server: server, - }, protocoltypes.EventTypePushDeviceServerRegistered) -} - -func (m *MetadataStore) getCurrentDevicePushToken() *protocoltypes.PushServiceReceiver { - receiver := m.Index().(*metadataStoreIndex).getCurrentDevicePushToken() - if receiver == nil { - return nil - } - - return receiver.Token -} - -func (m *MetadataStore) getCurrentDevicePushServer() *protocoltypes.PushServer { - registration := m.Index().(*metadataStoreIndex).getCurrentDevicePushServer() - if registration == nil { - return nil - } - - return registration.Server -} - -func (m *MetadataStore) GetPushTokenForDevice(d crypto.PubKey) (*protocoltypes.PushMemberTokenUpdate, error) { - m.Index().(*metadataStoreIndex).lock.RLock() - defer m.Index().(*metadataStoreIndex).lock.RUnlock() - - pk, err := d.Raw() - if err != nil { - return nil, errcode.ErrSerialization.Wrap(err) - } - - token, ok := m.Index().(*metadataStoreIndex).membersPushTokens[string(pk)] - if !ok { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("token not found")) - } - - return token, nil -} - func (m *MetadataStore) initEmitter() (err error) { if m.emitters.metadataReceived, err = m.eventBus.Emitter(new(EventMetadataReceived)); err != nil { return diff --git a/store_metadata_index.go b/store_metadata_index.go index 8e869892..51f74e4d 100644 --- a/store_metadata_index.go +++ b/store_metadata_index.go @@ -1,7 +1,6 @@ package weshnet import ( - "bytes" "context" "fmt" "sync" @@ -29,9 +28,6 @@ type metadataStoreIndex struct { contactsFromGroupPK map[string]*AccountContact groups map[string]*accountGroup serviceTokens map[string]*protocoltypes.ServiceToken - devicePushToken *protocoltypes.PushDeviceTokenRegistered - devicePushServer *protocoltypes.PushDeviceServerRegistered - membersPushTokens map[string]*protocoltypes.PushMemberTokenUpdate contactRequestMetadata map[string][]byte verifiedCredentials []*protocoltypes.AccountVerifiedCredentialRegistered contactRequestSeed []byte @@ -75,10 +71,7 @@ func (m *metadataStoreIndex) UpdateIndex(log ipfslog.Log, _ []ipfslog.Entry) err m.contactRequestMetadata = map[string][]byte{} m.contactRequestEnabled = nil m.contactRequestSeed = []byte(nil) - m.devicePushToken = nil - m.devicePushServer = nil m.verifiedCredentials = nil - m.membersPushTokens = map[string]*protocoltypes.PushMemberTokenUpdate{} m.handledEvents = map[string]struct{}{} for i := len(entries) - 1; i >= 0; i-- { @@ -699,73 +692,10 @@ func (m *metadataStoreIndex) handleMultiMemberGrantAdminRole(event proto.Message return nil } -func (m *metadataStoreIndex) handlePushMemberTokenUpdate(event proto.Message) error { - e, ok := event.(*protocoltypes.PushMemberTokenUpdate) - if !ok { - return errcode.ErrInvalidInput - } - - if _, ok := m.membersPushTokens[string(e.DevicePK)]; ok { - return nil - } - - m.membersPushTokens[string(e.DevicePK)] = e - - return nil -} - -func (m *metadataStoreIndex) handlePushDeviceTokenRegistered(event proto.Message) error { - e, ok := event.(*protocoltypes.PushDeviceTokenRegistered) - if !ok { - return errcode.ErrInvalidInput - } - - devicePK, err := m.ownMemberDevice.Device().Raw() - if err != nil { - return errcode.ErrSerialization.Wrap(err) - } - - if !bytes.Equal(devicePK, e.DevicePK) { - return nil - } - - if m.devicePushToken != nil { - return nil - } - - m.devicePushToken = e - - return nil -} - func (m *metadataStoreIndex) handleGroupMetadataPayloadSent(_ proto.Message) error { return nil } -func (m *metadataStoreIndex) handlePushServerTokenRegistered(event proto.Message) error { - e, ok := event.(*protocoltypes.PushDeviceServerRegistered) - if !ok { - return errcode.ErrInvalidInput - } - - devicePK, err := m.ownMemberDevice.Device().Raw() - if err != nil { - return errcode.ErrSerialization.Wrap(err) - } - - if !bytes.Equal(devicePK, e.DevicePK) { - return nil - } - - if m.devicePushServer != nil { - return nil - } - - m.devicePushServer = e - - return nil -} - func (m *metadataStoreIndex) handleAccountVerifiedCredentialRegistered(event proto.Message) error { e, ok := event.(*protocoltypes.AccountVerifiedCredentialRegistered) if !ok { @@ -851,20 +781,6 @@ func (m *metadataStoreIndex) getContact(pk crypto.PubKey) (*AccountContact, erro return contact, nil } -func (m *metadataStoreIndex) getCurrentDevicePushToken() *protocoltypes.PushDeviceTokenRegistered { - m.lock.RLock() - defer m.lock.RUnlock() - - return m.devicePushToken -} - -func (m *metadataStoreIndex) getCurrentDevicePushServer() *protocoltypes.PushDeviceServerRegistered { - m.lock.RLock() - defer m.lock.RUnlock() - - return m.devicePushServer -} - func (m *metadataStoreIndex) postHandlerSentAliases() error { for _, evt := range m.eventsContactAddAliasKey { memberPublicKey, err := m.unsafeGetMemberByDevice(evt.DevicePK) @@ -904,7 +820,6 @@ func newMetadataIndex(ctx context.Context, g *protocoltypes.Group, md secretstor groups: map[string]*accountGroup{}, serviceTokens: map[string]*protocoltypes.ServiceToken{}, contactRequestMetadata: map[string][]byte{}, - membersPushTokens: map[string]*protocoltypes.PushMemberTokenUpdate{}, group: g, ownMemberDevice: md, secretStore: secretStore, @@ -932,9 +847,6 @@ func newMetadataIndex(ctx context.Context, g *protocoltypes.Group, md secretstor protocoltypes.EventTypeMultiMemberGroupInitialMemberAnnounced: {m.handleMultiMemberInitialMember}, protocoltypes.EventTypeAccountServiceTokenAdded: {m.handleAccountServiceTokenAdded}, protocoltypes.EventTypeAccountServiceTokenRemoved: {m.handleAccountServiceTokenRemoved}, - protocoltypes.EventTypePushMemberTokenUpdate: {m.handlePushMemberTokenUpdate}, - protocoltypes.EventTypePushDeviceTokenRegistered: {m.handlePushDeviceTokenRegistered}, - protocoltypes.EventTypePushDeviceServerRegistered: {m.handlePushServerTokenRegistered}, protocoltypes.EventTypeGroupMetadataPayloadSent: {m.handleGroupMetadataPayloadSent}, protocoltypes.EventTypeAccountVerifiedCredentialRegistered: {m.handleAccountVerifiedCredentialRegistered}, } diff --git a/testing.go b/testing.go index 27e6c97a..5e2d8e1d 100644 --- a/testing.go +++ b/testing.go @@ -102,7 +102,6 @@ type TestingOpts struct { CoreAPIMock ipfsutil.CoreAPIMock OrbitDB *WeshOrbitDB ConnectFunc ConnectTestingProtocolFunc - PushSK *[32]byte } func NewTestingProtocol(ctx context.Context, t testing.TB, opts *TestingOpts, ds datastore.Batching) (*TestingProtocol, func()) { @@ -130,9 +129,7 @@ func NewTestingProtocol(ctx context.Context, t testing.TB, opts *TestingOpts, ds secretStore := opts.SecretStore if secretStore == nil { var err error - secretStore, err = secretstore.NewInMemSecretStore(&secretstore.NewSecretStoreOptions{ - OutOfStorePrivateKey: opts.PushSK, - }) + secretStore, err = secretstore.NewInMemSecretStore(&secretstore.NewSecretStoreOptions{}) require.NoError(t, err) } @@ -154,15 +151,14 @@ func NewTestingProtocol(ctx context.Context, t testing.TB, opts *TestingOpts, ds } serviceOpts := Opts{ - Host: node.MockNode().PeerHost, - PubSub: node.PubSub(), - Logger: opts.Logger, - RootDatastore: ds, - IpfsCoreAPI: node.API(), - OrbitDB: odb, - TinderService: node.Tinder(), - OutOfStorePrivateKey: opts.PushSK, - SecretStore: secretStore, + Host: node.MockNode().PeerHost, + PubSub: node.PubSub(), + Logger: opts.Logger, + RootDatastore: ds, + IpfsCoreAPI: node.API(), + OrbitDB: odb, + TinderService: node.Tinder(), + SecretStore: secretStore, } service, cleanupService := TestingService(ctx, t, serviceOpts) @@ -481,7 +477,6 @@ func dropPeers(t *testing.T, mockedPeers []*mockedPeer) { type ServiceMethods interface { GetContextGroupForID(id []byte) (*GroupContext, error) - GetCurrentDevicePushConfig() (*protocoltypes.PushServiceReceiver, *protocoltypes.PushServer) } func GetRootDatastoreForPath(dir string, key []byte, salt []byte, logger *zap.Logger) (datastore.Batching, error) { From c5876b6aea935536b8fb3f278a2652addf4d941e Mon Sep 17 00:00:00 2001 From: D4ryl00 Date: Mon, 19 Jun 2023 16:35:28 +0200 Subject: [PATCH 2/4] feat: add a new OutOfStoreMessage service Signed-off-by: D4ryl00 --- .../outofstoremessage.proto | 20 ++ outofstoremessage_test.go | 154 ++++++++++ .../outofstoremessage.pb.go | 44 +++ .../outofstoremessage.pb.gw.go | 170 +++++++++++ .../outofstoremessage_grpc.pb.go | 105 +++++++ service_outofstoremessage.go | 271 ++++++++++++++++++ 6 files changed, 764 insertions(+) create mode 100644 api/protocol/outofstoremessagetypes/outofstoremessage.proto create mode 100644 outofstoremessage_test.go create mode 100644 pkg/outofstoremessagetypes/outofstoremessage.pb.go create mode 100644 pkg/outofstoremessagetypes/outofstoremessage.pb.gw.go create mode 100644 pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go create mode 100644 service_outofstoremessage.go diff --git a/api/protocol/outofstoremessagetypes/outofstoremessage.proto b/api/protocol/outofstoremessagetypes/outofstoremessage.proto new file mode 100644 index 00000000..643d40d8 --- /dev/null +++ b/api/protocol/outofstoremessagetypes/outofstoremessage.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package weshnet.outofstoremessage.v1; + +import "gogoproto/gogo.proto"; +import "protocoltypes.proto"; + +option go_package = "berty.tech/weshnet/pkg/outofstoremessagetypes"; + +option (gogoproto.goproto_enum_prefix_all) = false; +option (gogoproto.marshaler_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.sizer_all) = true; + +// OutOfStoreMessageService is the service used to open out-of-store messages (e.g. push notifications) +// It is used to open messages with a lightweight protocol service for mobile backgroup processes. +service OutOfStoreMessageService { + // OutOfStoreReceive parses a payload received outside a synchronized store + rpc OutOfStoreReceive(weshnet.protocol.v1.OutOfStoreReceive.Request) returns (weshnet.protocol.v1.OutOfStoreReceive.Reply); +} diff --git a/outofstoremessage_test.go b/outofstoremessage_test.go new file mode 100644 index 00000000..bd6f458d --- /dev/null +++ b/outofstoremessage_test.go @@ -0,0 +1,154 @@ +package weshnet + +import ( + "context" + "testing" + "time" + + "github.com/ipfs/go-cid" + "github.com/stretchr/testify/require" + + "berty.tech/weshnet/pkg/protocoltypes" + "berty.tech/weshnet/pkg/secretstore" + "berty.tech/weshnet/pkg/testutil" +) + +func Test_sealPushMessage_OutOfStoreReceive(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + tp, cancel := NewTestingProtocol(ctx, t, &TestingOpts{}, nil) + defer cancel() + + g, _, err := NewGroupMultiMember() + require.NoError(t, err) + + s := tp.Service + + gPK, err := g.GetPubKey() + require.NoError(t, err) + + _, err = s.MultiMemberGroupJoin(ctx, &protocoltypes.MultiMemberGroupJoin_Request{Group: g}) + require.NoError(t, err) + + gPKRaw, err := gPK.Raw() + require.NoError(t, err) + + _, err = s.ActivateGroup(ctx, &protocoltypes.ActivateGroup_Request{GroupPK: gPKRaw}) + require.NoError(t, err) + + gc, err := s.(ServiceMethods).GetContextGroupForID(g.PublicKey) + require.NoError(t, err) + + otherSecretStore, cancel := createVirtualOtherPeerSecrets(t, ctx, gc) + defer cancel() + + testPayload := []byte("test payload") + + envBytes, err := otherSecretStore.SealEnvelope(ctx, g, testPayload) + require.NoError(t, err) + + env, headers, err := otherSecretStore.OpenEnvelopeHeaders(envBytes, g) + require.NoError(t, err) + + oosMsgEnv, err := otherSecretStore.SealOutOfStoreMessageEnvelope(cid.Undef, env, headers, g) + require.NoError(t, err) + oosMsgEnvBytes, err := oosMsgEnv.Marshal() + require.NoError(t, err) + + outOfStoreMessage, group, clearPayload, alreadyDecrypted, err := gc.SecretStore().OpenOutOfStoreMessage(ctx, oosMsgEnvBytes) + require.NoError(t, err) + + require.Equal(t, g, group) + require.Equal(t, []byte("test payload"), clearPayload) + require.False(t, alreadyDecrypted) + + require.Equal(t, headers.Counter, outOfStoreMessage.Counter) + require.Equal(t, headers.DevicePK, outOfStoreMessage.DevicePK) + require.Equal(t, headers.Sig, outOfStoreMessage.Sig) + require.Equal(t, env.Message, outOfStoreMessage.EncryptedPayload) +} + +func Test_OutOfStoreMessageFlow(t *testing.T) { + message := []byte("test message") + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + logger, cleanup := testutil.Logger(t) + defer cleanup() + + tp, cancel := NewTestingProtocol(ctx, t, &TestingOpts{Logger: logger}, nil) + defer cancel() + + g, _, err := NewGroupMultiMember() + require.NoError(t, err) + + s := tp.Service + + gPK, err := g.GetPubKey() + require.NoError(t, err) + + _, err = s.MultiMemberGroupJoin(ctx, &protocoltypes.MultiMemberGroupJoin_Request{Group: g}) + require.NoError(t, err) + + gPKRaw, err := gPK.Raw() + require.NoError(t, err) + + _, err = s.ActivateGroup(ctx, &protocoltypes.ActivateGroup_Request{GroupPK: gPKRaw}) + require.NoError(t, err) + + // send a message + sendReply, err := s.AppMessageSend(ctx, &protocoltypes.AppMessageSend_Request{ + GroupPK: gPKRaw, + Payload: message, + }) + require.NoError(t, err) + + time.Sleep(100 * time.Millisecond) + + // craft an out of store message + craftReply, err := s.OutOfStoreSeal(ctx, &protocoltypes.OutOfStoreSeal_Request{ + CID: sendReply.CID, + GroupPublicKey: gPKRaw, + }) + require.NoError(t, err) + + // verify the out of store message + openReply, err := s.OutOfStoreReceive(ctx, &protocoltypes.OutOfStoreReceive_Request{ + Payload: craftReply.Encrypted, + }) + require.NoError(t, err) + + encryptedMessage := protocoltypes.EncryptedMessage{} + err = encryptedMessage.Unmarshal(openReply.Cleartext) + require.NoError(t, err) + + require.Equal(t, message, encryptedMessage.Plaintext) +} + +func createVirtualOtherPeerSecrets(t testing.TB, ctx context.Context, gc *GroupContext) (secretstore.SecretStore, func()) { + secretStore, err := secretstore.NewInMemSecretStore(nil) + require.NoError(t, err) + + cleanup := func() { + _ = secretStore.Close() + } + + // Manually adding another member to the group + otherMD, err := secretStore.GetOwnMemberDeviceForGroup(gc.Group()) + _, err = MetadataStoreAddDeviceToGroup(ctx, gc.MetadataStore(), gc.Group(), otherMD) + require.NoError(t, err) + + memberDevice, err := gc.SecretStore().GetOwnMemberDeviceForGroup(gc.Group()) + require.NoError(t, err) + + ds, err := secretStore.GetShareableChainKey(ctx, gc.Group(), memberDevice.Member()) + + _, err = MetadataStoreSendSecret(ctx, gc.MetadataStore(), gc.Group(), otherMD, memberDevice.Member(), ds) + require.NoError(t, err) + + time.Sleep(time.Millisecond * 200) + + return secretStore, cleanup +} diff --git a/pkg/outofstoremessagetypes/outofstoremessage.pb.go b/pkg/outofstoremessagetypes/outofstoremessage.pb.go new file mode 100644 index 00000000..6ba8ad38 --- /dev/null +++ b/pkg/outofstoremessagetypes/outofstoremessage.pb.go @@ -0,0 +1,44 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: outofstoremessagetypes/outofstoremessage.proto + +package outofstoremessagetypes + +import ( + _ "berty.tech/weshnet/pkg/protocoltypes" + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func init() { + proto.RegisterFile("outofstoremessagetypes/outofstoremessage.proto", fileDescriptor_14aba72a66934192) +} + +var fileDescriptor_14aba72a66934192 = []byte{ + // 206 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xcb, 0x2f, 0x2d, 0xc9, + 0x4f, 0x2b, 0x2e, 0xc9, 0x2f, 0x4a, 0xcd, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x2d, 0xa9, 0x2c, + 0x48, 0x2d, 0xd6, 0xc7, 0x10, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x29, 0x4f, 0x2d, + 0xce, 0xc8, 0x4b, 0x2d, 0xc1, 0xd4, 0xa7, 0x57, 0x66, 0x28, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, + 0x56, 0xa8, 0x0f, 0x62, 0x41, 0xf4, 0x48, 0x09, 0x83, 0xa9, 0xe4, 0xfc, 0x1c, 0xb0, 0xd1, 0x10, + 0x41, 0xa3, 0x5e, 0x46, 0x2e, 0x09, 0xff, 0xd2, 0x12, 0xff, 0xb4, 0x60, 0x90, 0x19, 0xbe, 0x10, + 0x33, 0x82, 0x53, 0x8b, 0xca, 0x32, 0x93, 0x53, 0x85, 0x0a, 0xb9, 0x04, 0x11, 0x72, 0x41, 0xa9, + 0xc9, 0xa9, 0x99, 0x65, 0xa9, 0x42, 0x7a, 0x7a, 0x30, 0xbb, 0x61, 0xe6, 0xe9, 0x95, 0x19, 0xea, + 0x61, 0xa8, 0xd3, 0x0b, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x91, 0xd2, 0x21, 0x5a, 0x7d, 0x41, + 0x4e, 0xa5, 0x93, 0xfd, 0x85, 0x87, 0x72, 0x0c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, + 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x6e, 0x52, 0x6a, 0x51, 0x49, 0xa5, 0x5e, 0x49, 0x6a, 0x72, + 0x86, 0x3e, 0xd4, 0x24, 0xfd, 0x82, 0xec, 0x74, 0x7d, 0xec, 0x21, 0x96, 0xc4, 0x06, 0xb6, 0xc5, + 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xea, 0xbf, 0x6c, 0x90, 0x52, 0x01, 0x00, 0x00, +} diff --git a/pkg/outofstoremessagetypes/outofstoremessage.pb.gw.go b/pkg/outofstoremessagetypes/outofstoremessage.pb.gw.go new file mode 100644 index 00000000..40f480d0 --- /dev/null +++ b/pkg/outofstoremessagetypes/outofstoremessage.pb.gw.go @@ -0,0 +1,170 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: outofstoremessagetypes/outofstoremessage.proto + +/* +Package outofstoremessagetypes is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package outofstoremessagetypes + +import ( + "context" + "io" + "net/http" + + "berty.tech/weshnet/pkg/protocoltypes" + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +func request_OutOfStoreMessageService_OutOfStoreReceive_0(ctx context.Context, marshaler runtime.Marshaler, client OutOfStoreMessageServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq protocoltypes.OutOfStoreReceive_Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.OutOfStoreReceive(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_OutOfStoreMessageService_OutOfStoreReceive_0(ctx context.Context, marshaler runtime.Marshaler, server OutOfStoreMessageServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq protocoltypes.OutOfStoreReceive_Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.OutOfStoreReceive(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterOutOfStoreMessageServiceHandlerServer registers the http handlers for service OutOfStoreMessageService to "mux". +// UnaryRPC :call OutOfStoreMessageServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterOutOfStoreMessageServiceHandlerFromEndpoint instead. +func RegisterOutOfStoreMessageServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server OutOfStoreMessageServiceServer) error { + + mux.Handle("POST", pattern_OutOfStoreMessageService_OutOfStoreReceive_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_OutOfStoreMessageService_OutOfStoreReceive_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OutOfStoreMessageService_OutOfStoreReceive_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterOutOfStoreMessageServiceHandlerFromEndpoint is same as RegisterOutOfStoreMessageServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterOutOfStoreMessageServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterOutOfStoreMessageServiceHandler(ctx, mux, conn) +} + +// RegisterOutOfStoreMessageServiceHandler registers the http handlers for service OutOfStoreMessageService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterOutOfStoreMessageServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterOutOfStoreMessageServiceHandlerClient(ctx, mux, NewOutOfStoreMessageServiceClient(conn)) +} + +// RegisterOutOfStoreMessageServiceHandlerClient registers the http handlers for service OutOfStoreMessageService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "OutOfStoreMessageServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "OutOfStoreMessageServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "OutOfStoreMessageServiceClient" to call the correct interceptors. +func RegisterOutOfStoreMessageServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client OutOfStoreMessageServiceClient) error { + + mux.Handle("POST", pattern_OutOfStoreMessageService_OutOfStoreReceive_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_OutOfStoreMessageService_OutOfStoreReceive_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_OutOfStoreMessageService_OutOfStoreReceive_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_OutOfStoreMessageService_OutOfStoreReceive_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.outofstoremessage.v1.OutOfStoreMessageService", "OutOfStoreReceive"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_OutOfStoreMessageService_OutOfStoreReceive_0 = runtime.ForwardResponseMessage +) diff --git a/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go b/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go new file mode 100644 index 00000000..7ec721da --- /dev/null +++ b/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go @@ -0,0 +1,105 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package outofstoremessagetypes + +import ( + protocoltypes "berty.tech/weshnet/pkg/protocoltypes" + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// OutOfStoreMessageServiceClient is the client API for OutOfStoreMessageService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type OutOfStoreMessageServiceClient interface { + // OutOfStoreReceive parses a payload received outside a synchronized store + OutOfStoreReceive(ctx context.Context, in *protocoltypes.OutOfStoreReceive_Request, opts ...grpc.CallOption) (*protocoltypes.OutOfStoreReceive_Reply, error) +} + +type outOfStoreMessageServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewOutOfStoreMessageServiceClient(cc grpc.ClientConnInterface) OutOfStoreMessageServiceClient { + return &outOfStoreMessageServiceClient{cc} +} + +func (c *outOfStoreMessageServiceClient) OutOfStoreReceive(ctx context.Context, in *protocoltypes.OutOfStoreReceive_Request, opts ...grpc.CallOption) (*protocoltypes.OutOfStoreReceive_Reply, error) { + out := new(protocoltypes.OutOfStoreReceive_Reply) + err := c.cc.Invoke(ctx, "/weshnet.outofstoremessage.v1.OutOfStoreMessageService/OutOfStoreReceive", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// OutOfStoreMessageServiceServer is the server API for OutOfStoreMessageService service. +// All implementations must embed UnimplementedOutOfStoreMessageServiceServer +// for forward compatibility +type OutOfStoreMessageServiceServer interface { + // OutOfStoreReceive parses a payload received outside a synchronized store + OutOfStoreReceive(context.Context, *protocoltypes.OutOfStoreReceive_Request) (*protocoltypes.OutOfStoreReceive_Reply, error) + mustEmbedUnimplementedOutOfStoreMessageServiceServer() +} + +// UnimplementedOutOfStoreMessageServiceServer must be embedded to have forward compatible implementations. +type UnimplementedOutOfStoreMessageServiceServer struct { +} + +func (UnimplementedOutOfStoreMessageServiceServer) OutOfStoreReceive(context.Context, *protocoltypes.OutOfStoreReceive_Request) (*protocoltypes.OutOfStoreReceive_Reply, error) { + return nil, status.Errorf(codes.Unimplemented, "method OutOfStoreReceive not implemented") +} +func (UnimplementedOutOfStoreMessageServiceServer) mustEmbedUnimplementedOutOfStoreMessageServiceServer() { +} + +// UnsafeOutOfStoreMessageServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to OutOfStoreMessageServiceServer will +// result in compilation errors. +type UnsafeOutOfStoreMessageServiceServer interface { + mustEmbedUnimplementedOutOfStoreMessageServiceServer() +} + +func RegisterOutOfStoreMessageServiceServer(s grpc.ServiceRegistrar, srv OutOfStoreMessageServiceServer) { + s.RegisterService(&OutOfStoreMessageService_ServiceDesc, srv) +} + +func _OutOfStoreMessageService_OutOfStoreReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(protocoltypes.OutOfStoreReceive_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OutOfStoreMessageServiceServer).OutOfStoreReceive(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/weshnet.outofstoremessage.v1.OutOfStoreMessageService/OutOfStoreReceive", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OutOfStoreMessageServiceServer).OutOfStoreReceive(ctx, req.(*protocoltypes.OutOfStoreReceive_Request)) + } + return interceptor(ctx, in, info, handler) +} + +// OutOfStoreMessageService_ServiceDesc is the grpc.ServiceDesc for OutOfStoreMessageService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var OutOfStoreMessageService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "weshnet.outofstoremessage.v1.OutOfStoreMessageService", + HandlerType: (*OutOfStoreMessageServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "OutOfStoreReceive", + Handler: _OutOfStoreMessageService_OutOfStoreReceive_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "outofstoremessagetypes/outofstoremessage.proto", +} diff --git a/service_outofstoremessage.go b/service_outofstoremessage.go new file mode 100644 index 00000000..7a12809b --- /dev/null +++ b/service_outofstoremessage.go @@ -0,0 +1,271 @@ +package weshnet + +import ( + "context" + "fmt" + "io" + "time" + + ds "github.com/ipfs/go-datastore" + ds_sync "github.com/ipfs/go-datastore/sync" + ipfs_interface "github.com/ipfs/interface-go-ipfs-core" + "go.uber.org/zap" + "google.golang.org/grpc" + + "berty.tech/weshnet/pkg/errcode" + "berty.tech/weshnet/pkg/grpcutil" + "berty.tech/weshnet/pkg/outofstoremessagetypes" + "berty.tech/weshnet/pkg/protocoltypes" + "berty.tech/weshnet/pkg/secretstore" +) + +type OOSMService interface { + outofstoremessagetypes.OutOfStoreMessageServiceServer +} + +var _ OOSMService = (*oosmService)(nil) + +type oosmService struct { + logger *zap.Logger + rootDatastore ds.Datastore + secretStore secretstore.SecretStore + + outofstoremessagetypes.UnimplementedOutOfStoreMessageServiceServer +} + +type OOSMServiceClient interface { + outofstoremessagetypes.OutOfStoreMessageServiceClient + + io.Closer +} + +type oosmServiceClient struct { + OOSMServiceClient + + service OOSMService + server *grpc.Server +} + +type OOSMOption func(*oosmService) error + +// NewOutOfStoreMessageServiceClient creates a new Wesh protocol service and returns a gRPC +// ServiceClient which uses a direct in-memory connection. When finished, you must call Close(). +// This opens or creates a Wesh account where the datastore location is specified by the path argument. +// The service will not start any network stuff, it will only use the filesystem to store or get data. +func NewOutOfStoreMessageServiceClient(opts ...OOSMOption) (OOSMServiceClient, error) { + svc, err := NewOutOfStoreMessageService(opts...) + if err != nil { + return nil, err + } + + s := grpc.NewServer() + + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() + + c, err := newClientFromService(ctx, s, svc) + if err != nil { + return nil, fmt.Errorf("uanble to create client from server: %w", err) + } + + return &oosmServiceClient{ + OOSMServiceClient: c, + server: s, + service: svc, + }, nil +} + +type oosmClient struct { + outofstoremessagetypes.OutOfStoreMessageServiceClient + + l *grpcutil.BufListener + cc *grpc.ClientConn +} + +func (c *oosmClient) Close() error { + err := c.cc.Close() + _ = c.l.Close() + return err +} + +func newClientFromService(ctx context.Context, s *grpc.Server, svc OOSMService, opts ...grpc.DialOption) (OOSMServiceClient, error) { + bl := grpcutil.NewBufListener(ClientBufferSize) + cc, err := bl.NewClientConn(ctx, opts...) + if err != nil { + return nil, err + } + + outofstoremessagetypes.RegisterOutOfStoreMessageServiceServer(s, svc) + go func() { + // we dont need to log the error + _ = s.Serve(bl) + }() + + return &oosmClient{ + OutOfStoreMessageServiceClient: outofstoremessagetypes.NewOutOfStoreMessageServiceClient(cc), + cc: cc, + l: bl, + }, nil +} + +func NewOutOfStoreMessageService(opts ...OOSMOption) (OOSMService, error) { + svc := &oosmService{} + + withDefaultOpts := make([]OOSMOption, len(opts)) + copy(withDefaultOpts, opts) + withDefaultOpts = append(withDefaultOpts, WithFallbackDefaults) + for _, opt := range withDefaultOpts { + if err := opt(svc); err != nil { + return nil, err + } + } + + return svc, nil +} + +func (s *oosmService) Close() error { + return nil +} + +func (s *oosmService) Status() (Status, error) { + return Status{}, nil +} + +func (s *oosmService) IpfsCoreAPI() ipfs_interface.CoreAPI { + return nil +} + +func (s *oosmService) OutOfStoreReceive(ctx context.Context, request *protocoltypes.OutOfStoreReceive_Request) (*protocoltypes.OutOfStoreReceive_Reply, error) { + outOfStoreMessage, group, clearPayload, alreadyDecrypted, err := s.secretStore.OpenOutOfStoreMessage(ctx, request.Payload) + if err != nil { + return nil, errcode.ErrCryptoDecrypt.Wrap(err) + } + + return &protocoltypes.OutOfStoreReceive_Reply{ + Message: outOfStoreMessage, + Cleartext: clearPayload, + GroupPublicKey: group.PublicKey, + AlreadyReceived: alreadyDecrypted, + }, nil +} + +// FallBackOption is a structure that permit to fallback to a default option if the option is not set. +type FallBackOption struct { + fallback func(s *oosmService) bool + opt OOSMOption +} + +// WithLogger set the given logger. +var WithLogger = func(l *zap.Logger) OOSMOption { + return func(s *oosmService) error { + s.logger = l + return nil + } +} + +// WithDefaultLogger init a noop logger. +var WithDefaultLogger OOSMOption = func(s *oosmService) error { + s.logger = zap.NewNop() + return nil +} + +var fallbackLogger = FallBackOption{ + fallback: func(s *oosmService) bool { return s.logger == nil }, + opt: WithDefaultLogger, +} + +// WithFallbackLogger set the logger if no logger is set. +var WithFallbackLogger OOSMOption = func(s *oosmService) error { + if fallbackLogger.fallback(s) { + return fallbackLogger.opt(s) + } + return nil +} + +// WithRootDatastore set the root datastore. +var WithRootDatastore = func(ds ds.Datastore) OOSMOption { + return func(s *oosmService) error { + s.rootDatastore = ds + return nil + } +} + +// WithDefaultRootDatastore init a in-memory datastore. +var WithDefaultRootDatastore OOSMOption = func(s *oosmService) error { + s.rootDatastore = ds_sync.MutexWrap(ds.NewMapDatastore()) + return nil +} + +var fallbackRootDatastore = FallBackOption{ + fallback: func(s *oosmService) bool { return s.rootDatastore == nil }, + opt: WithDefaultRootDatastore, +} + +// WithFallbackRootDatastore set the root datastore if no root datastore is set. +var WithFallbackRootDatastore OOSMOption = func(s *oosmService) error { + if fallbackRootDatastore.fallback(s) { + return fallbackRootDatastore.opt(s) + } + return nil +} + +// WithSecretStore set the secret store. +var WithSecretStore = func(ss secretstore.SecretStore) OOSMOption { + return func(s *oosmService) error { + s.secretStore = ss + return nil + } +} + +// WithDefaultSecretStore init a new secret store. +// Call WithRootDatastore before this option if you want to use your datastore. +// Call WithLogger before this option if you want to use your logger. +var WithDefaultSecretStore OOSMOption = func(s *oosmService) error { + // dependency + if err := WithFallbackRootDatastore(s); err != nil { + return err + } + if err := WithFallbackLogger(s); err != nil { + return err + } + + var err error + s.secretStore, err = secretstore.NewSecretStore(s.rootDatastore, &secretstore.NewSecretStoreOptions{ + Logger: s.logger, + }) + return err +} + +var fallbackSecretStore = FallBackOption{ + fallback: func(s *oosmService) bool { return s.secretStore == nil }, + opt: WithDefaultSecretStore, +} + +// WithFallbackSecretStore set the secret store if no secret store is set. +// Call WithRootDatastore before this option if you want to use your datastore if a new secret store is created. +// Call WithLogger before this option if you want to use your logger if a new secret store is created. +var WithFallbackSecretStore OOSMOption = func(s *oosmService) error { + if fallbackSecretStore.fallback(s) { + return fallbackSecretStore.opt(s) + } + return nil +} + +var defaults = []FallBackOption{ + fallbackLogger, + fallbackRootDatastore, + fallbackSecretStore, +} + +// WithFallbackDefaults set the default options if no option is set. +var WithFallbackDefaults OOSMOption = func(s *oosmService) error { + for _, def := range defaults { + if !def.fallback(s) { + continue + } + if err := def.opt(s); err != nil { + return err + } + } + return nil +} From 039f8e7e9fd84f7421d5be3723860673596e82e9 Mon Sep 17 00:00:00 2001 From: D4ryl00 Date: Mon, 19 Jun 2023 16:38:14 +0200 Subject: [PATCH 3/4] chore: move auth service Signed-off-by: D4ryl00 --- api/protocol/errcode/errcode.proto | 13 - api/protocol/protocoltypes.proto | 90 +- api_replication.go | 42 +- api_services_auth.go | 274 - docs/apis/protocoltypes.md | 154 +- docs/apis/protocoltypes.swagger.json | 92 +- events.go | 2 - go.mod | 6 +- internal/i18n/catalog.go | 70 - internal/i18n/catalog_test.go | 73 - internal/i18n/filter.go | 46 - .../i18n/locales_test/en-US/localization.json | 11 - .../i18n/locales_test/fr-FR/localization.json | 11 - internal/i18n/translations_i18next.go | 141 - localization/locales/af-ZA/localization.json | 68 - localization/locales/ar-SA/localization.json | 68 - localization/locales/bg-BG/localization.json | 68 - localization/locales/ca-ES/localization.json | 68 - localization/locales/cs-CZ/localization.json | 68 - localization/locales/da-DK/localization.json | 68 - localization/locales/de-DE/localization.json | 68 - localization/locales/el-GR/localization.json | 68 - localization/locales/en-US/localization.json | 65 - localization/locales/es-ES/localization.json | 68 - localization/locales/et-EE/localization.json | 68 - localization/locales/fa-IR/localization.json | 68 - localization/locales/fi-FI/localization.json | 68 - localization/locales/fr-FR/localization.json | 68 - localization/locales/he-IL/localization.json | 68 - localization/locales/hi-IN/localization.json | 68 - localization/locales/hu-HU/localization.json | 68 - localization/locales/id-ID/localization.json | 68 - localization/locales/it-IT/localization.json | 68 - localization/locales/ja-JP/localization.json | 68 - localization/locales/ka-GE/localization.json | 68 - localization/locales/ko-KR/localization.json | 68 - localization/locales/my-MM/localization.json | 68 - localization/locales/nl-NL/localization.json | 68 - localization/locales/no-NO/localization.json | 68 - localization/locales/pl-PL/localization.json | 68 - localization/locales/pt-BR/localization.json | 68 - localization/locales/pt-PT/localization.json | 68 - localization/locales/ro-RO/localization.json | 68 - localization/locales/ru-RU/localization.json | 68 - localization/locales/sl-SI/localization.json | 68 - .../locales/sr-Cyrl/localization.json | 68 - localization/locales/sv-SE/localization.json | 68 - localization/locales/te-IN/localization.json | 68 - localization/locales/tr-TR/localization.json | 68 - localization/locales/uk-UA/localization.json | 68 - localization/locales/vi-VN/localization.json | 68 - localization/locales/zh-CN/localization.json | 68 - localization/locales/zh-TW/localization.json | 68 - localization/localization.go | 50 - localization/localization_test.go | 12 - pkg/authtypes/consts.go | 20 - pkg/bertyauth/auth_session.go | 51 - pkg/bertyauth/services_auth.go | 246 - pkg/bertyauth/services_auth_server.go | 342 -- pkg/bertyauth/services_auth_server_test.go | 209 - pkg/bertyauth/services_auth_templates.go | 14 - pkg/bertyauth/services_auth_test.go | 190 - pkg/bertyauth/templates/authorize.html.tmpl | 118 - pkg/bertyauth/templates/redirect.html.tmpl | 17 - pkg/bertyauth/testing.go | 24 - pkg/errcode/errcode.pb.go | 202 +- .../outofstoremessage_grpc.pb.go | 12 +- pkg/protocoltypes/auth.go | 11 - pkg/protocoltypes/events_account.go | 8 - pkg/protocoltypes/protocoltypes.pb.go | 5208 +++-------------- pkg/protocoltypes/protocoltypes.pb.gw.go | 299 - pkg/protocoltypes/protocoltypes_grpc.pb.go | 181 - service.go | 2 - services_auth_test.go | 61 - store_metadata.go | 60 +- store_metadata_index.go | 48 - 76 files changed, 1086 insertions(+), 9973 deletions(-) delete mode 100644 api_services_auth.go delete mode 100644 internal/i18n/catalog.go delete mode 100644 internal/i18n/catalog_test.go delete mode 100644 internal/i18n/filter.go delete mode 100644 internal/i18n/locales_test/en-US/localization.json delete mode 100644 internal/i18n/locales_test/fr-FR/localization.json delete mode 100644 internal/i18n/translations_i18next.go delete mode 100644 localization/locales/af-ZA/localization.json delete mode 100644 localization/locales/ar-SA/localization.json delete mode 100644 localization/locales/bg-BG/localization.json delete mode 100644 localization/locales/ca-ES/localization.json delete mode 100644 localization/locales/cs-CZ/localization.json delete mode 100644 localization/locales/da-DK/localization.json delete mode 100644 localization/locales/de-DE/localization.json delete mode 100644 localization/locales/el-GR/localization.json delete mode 100644 localization/locales/en-US/localization.json delete mode 100644 localization/locales/es-ES/localization.json delete mode 100644 localization/locales/et-EE/localization.json delete mode 100644 localization/locales/fa-IR/localization.json delete mode 100644 localization/locales/fi-FI/localization.json delete mode 100644 localization/locales/fr-FR/localization.json delete mode 100644 localization/locales/he-IL/localization.json delete mode 100644 localization/locales/hi-IN/localization.json delete mode 100644 localization/locales/hu-HU/localization.json delete mode 100644 localization/locales/id-ID/localization.json delete mode 100644 localization/locales/it-IT/localization.json delete mode 100644 localization/locales/ja-JP/localization.json delete mode 100644 localization/locales/ka-GE/localization.json delete mode 100644 localization/locales/ko-KR/localization.json delete mode 100644 localization/locales/my-MM/localization.json delete mode 100644 localization/locales/nl-NL/localization.json delete mode 100644 localization/locales/no-NO/localization.json delete mode 100644 localization/locales/pl-PL/localization.json delete mode 100644 localization/locales/pt-BR/localization.json delete mode 100644 localization/locales/pt-PT/localization.json delete mode 100644 localization/locales/ro-RO/localization.json delete mode 100644 localization/locales/ru-RU/localization.json delete mode 100644 localization/locales/sl-SI/localization.json delete mode 100644 localization/locales/sr-Cyrl/localization.json delete mode 100644 localization/locales/sv-SE/localization.json delete mode 100644 localization/locales/te-IN/localization.json delete mode 100644 localization/locales/tr-TR/localization.json delete mode 100644 localization/locales/uk-UA/localization.json delete mode 100644 localization/locales/vi-VN/localization.json delete mode 100644 localization/locales/zh-CN/localization.json delete mode 100644 localization/locales/zh-TW/localization.json delete mode 100644 localization/localization.go delete mode 100644 localization/localization_test.go delete mode 100644 pkg/authtypes/consts.go delete mode 100644 pkg/bertyauth/auth_session.go delete mode 100644 pkg/bertyauth/services_auth.go delete mode 100644 pkg/bertyauth/services_auth_server.go delete mode 100644 pkg/bertyauth/services_auth_server_test.go delete mode 100644 pkg/bertyauth/services_auth_templates.go delete mode 100644 pkg/bertyauth/services_auth_test.go delete mode 100644 pkg/bertyauth/templates/authorize.html.tmpl delete mode 100644 pkg/bertyauth/templates/redirect.html.tmpl delete mode 100644 pkg/bertyauth/testing.go delete mode 100644 pkg/protocoltypes/auth.go delete mode 100644 services_auth_test.go diff --git a/api/protocol/errcode/errcode.proto b/api/protocol/errcode/errcode.proto index 4d6b6254..67759a87 100644 --- a/api/protocol/errcode/errcode.proto +++ b/api/protocol/errcode/errcode.proto @@ -128,19 +128,6 @@ enum ErrCode { ErrMessageKeyPersistencePut = 1500; ErrMessageKeyPersistenceGet = 1501; - // Services Auth - - ErrServicesAuth = 4000; - ErrServicesAuthNotInitialized = 4001; - ErrServicesAuthWrongState = 4002; - ErrServicesAuthInvalidResponse = 4003; - ErrServicesAuthServer = 4004; - ErrServicesAuthCodeChallenge = 4005; - ErrServicesAuthServiceInvalidToken = 4006; - ErrServicesAuthServiceNotSupported = 4007; - ErrServicesAuthUnknownToken = 4008; - ErrServicesAuthInvalidURL = 4009; - // Services Replication ErrServiceReplication = 4100; diff --git a/api/protocol/protocoltypes.proto b/api/protocol/protocoltypes.proto index 21f88dc4..5321ff1e 100644 --- a/api/protocol/protocoltypes.proto +++ b/api/protocol/protocoltypes.proto @@ -106,16 +106,8 @@ service ProtocolService { rpc DebugGroup (DebugGroup.Request) returns (DebugGroup.Reply); - rpc DebugAuthServiceSetToken(DebugAuthServiceSetToken.Request) returns (DebugAuthServiceSetToken.Reply); - rpc SystemInfo (SystemInfo.Request) returns (SystemInfo.Reply); - // AuthServiceInitFlow Initialize an authentication flow - rpc AuthServiceInitFlow (AuthServiceInitFlow.Request) returns (AuthServiceInitFlow.Reply); - - // AuthServiceCompleteFlow Completes an authentication flow - rpc AuthServiceCompleteFlow (AuthServiceCompleteFlow.Request) returns (AuthServiceCompleteFlow.Reply); - // CredentialVerificationServiceInitFlow Initialize a credential verification flow rpc CredentialVerificationServiceInitFlow (CredentialVerificationServiceInitFlow.Request) returns (CredentialVerificationServiceInitFlow.Reply); @@ -125,9 +117,6 @@ service ProtocolService { // VerifiedCredentialsList Retrieves the list of verified credentials rpc VerifiedCredentialsList (VerifiedCredentialsList.Request) returns (stream VerifiedCredentialsList.Reply); - // ServicesTokenList Retrieves the list of services tokens - rpc ServicesTokenList (ServicesTokenList.Request) returns (stream ServicesTokenList.Reply); - // ReplicationServiceRegisterGroup Asks a replication service to distribute a group contents rpc ReplicationServiceRegisterGroup (ReplicationServiceRegisterGroup.Request) returns (ReplicationServiceRegisterGroup.Reply); @@ -232,12 +221,6 @@ enum EventType { // EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin EventTypeMultiMemberGroupAdminRoleGranted = 303; - // EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account - EventTypeAccountServiceTokenAdded = 401; - - // EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore - EventTypeAccountServiceTokenRemoved = 402; - // EventTypeGroupReplicating indicates that the group has been registered for replication on a server EventTypeGroupReplicating = 403; @@ -616,22 +599,6 @@ message AccountContactUnblocked { bytes contact_pk = 2 [(gogoproto.customname) = "ContactPK"]; } -// AccountServiceTokenAdded indicates a token has been added to the account -message AccountServiceTokenAdded { - // device_pk is the device sending the event, signs the message - bytes device_pk = 1 [(gogoproto.customname) = "DevicePK"]; - - ServiceToken service_token = 2; -} - -// AccountServiceTokenRemoved indicates a token has removed -message AccountServiceTokenRemoved { - // device_pk is the device sending the event, signs the message - bytes device_pk = 1 [(gogoproto.customname) = "DevicePK"]; - - string token_id = 2 [(gogoproto.customname) = "TokenID"]; -} - message GroupReplicating { // device_pk is the device sending the event, signs the message bytes device_pk = 1 [(gogoproto.customname) = "DevicePK"]; @@ -1100,22 +1067,6 @@ message DebugGroup { } } -message AuthExchangeResponse { - string access_token = 1; - string scope = 2; - string error = 3; - string error_description = 4; - map services = 5; -} - -message DebugAuthServiceSetToken { - message Request { - AuthExchangeResponse token = 1; - string authentication_url = 2 [(gogoproto.customname) = "AuthenticationURL"]; - } - message Reply {} -} - enum DebugInspectGroupLogType { DebugInspectGroupLogTypeUndefined = 0; DebugInspectGroupLogTypeMessage = 1; @@ -1156,26 +1107,6 @@ message ServiceToken { int64 expiration = 4; } -message AuthServiceCompleteFlow { - message Request{ - string callback_url = 1 [(gogoproto.customname) = "CallbackURL"]; - } - message Reply{ - string token_id = 1 [(gogoproto.customname) = "TokenID"]; - } -} - -message AuthServiceInitFlow { - message Request { - string auth_url = 1 [(gogoproto.customname) = "AuthURL"]; - repeated string services = 3; - } - message Reply { - string url = 1 [(gogoproto.customname) = "URL"]; - bool secure_url = 2 [(gogoproto.customname) = "SecureURL"]; - } -} - message CredentialVerificationServiceInitFlow { message Request { string service_url = 1 [(gogoproto.customname) = "ServiceURL"]; @@ -1208,25 +1139,12 @@ message VerifiedCredentialsList { } } -message ServicesTokenList { - message Request{} - message Reply{ - string token_id = 1 [(gogoproto.customname) = "TokenID"]; - ServiceToken service = 2; - } -} - -message ServicesTokenCode { - repeated string services = 1; - string code_challenge = 2; - string token_id = 3 [(gogoproto.customname) = "TokenID"]; -} - - message ReplicationServiceRegisterGroup { message Request{ - string token_id = 1 [(gogoproto.customname) = "TokenID"]; - bytes group_pk = 2 [(gogoproto.customname) = "GroupPK"]; + bytes group_pk = 1 [(gogoproto.customname) = "GroupPK"]; + string token = 2; + string authentication_url = 3 [(gogoproto.customname) = "AuthenticationURL"]; + string replication_server = 4; } message Reply{} } diff --git a/api_replication.go b/api_replication.go index b2cf0741..7074db5a 100644 --- a/api_replication.go +++ b/api_replication.go @@ -11,7 +11,6 @@ import ( "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" - "berty.tech/weshnet/pkg/authtypes" "berty.tech/weshnet/pkg/errcode" "berty.tech/weshnet/pkg/grpcutil" "berty.tech/weshnet/pkg/logutil" @@ -48,6 +47,18 @@ func (s *service) ReplicationServiceRegisterGroup(ctx context.Context, request * ctx, _, endSection := tyber.Section(ctx, s.logger, "Registering replication service for group") defer func() { endSection(err, "") }() + if request.GroupPK == nil { + return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("invalid GroupPK")) + } + + if request.Token == "" { + return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("invalid token")) + } + + if request.ReplicationServer == "" { + return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("invalid replication server")) + } + gc, err := s.GetContextGroupForID(request.GroupPK) if err != nil { return nil, errcode.ErrInvalidInput.Wrap(err) @@ -63,31 +74,8 @@ func (s *service) ReplicationServiceRegisterGroup(ctx context.Context, request * return nil, errcode.ErrGroupMissing } - token, err := accountGroup.metadataStore.getServiceToken(request.TokenID) - if err != nil { - return nil, errcode.ErrInvalidInput.Wrap(err) - } - - if token == nil { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("invalid token")) - } - - endpoint := "" - for _, t := range token.SupportedServices { - if t.ServiceType != authtypes.ServiceReplicationID { - continue - } - - endpoint = t.ServiceEndpoint - break - } - - if endpoint == "" { - return nil, errcode.ErrServiceReplicationMissingEndpoint - } - gopts := []grpc.DialOption{ - grpc.WithPerRPCCredentials(grpcutil.NewUnsecureSimpleAuthAccess("bearer", token.Token)), + grpc.WithPerRPCCredentials(grpcutil.NewUnsecureSimpleAuthAccess("bearer", request.Token)), } if s.grpcInsecure { @@ -99,7 +87,7 @@ func (s *service) ReplicationServiceRegisterGroup(ctx context.Context, request * gopts = append(gopts, grpc.WithTransportCredentials(tlsconfig)) } - cc, err := grpc.DialContext(context.Background(), endpoint, gopts...) + cc, err := grpc.DialContext(context.Background(), request.ReplicationServer, gopts...) if err != nil { return nil, errcode.ErrStreamWrite.Wrap(err) } @@ -114,7 +102,7 @@ func (s *service) ReplicationServiceRegisterGroup(ctx context.Context, request * s.logger.Info("group will be replicated", logutil.PrivateString("public-key", base64.RawURLEncoding.EncodeToString(request.GroupPK))) - if _, err := gc.metadataStore.SendGroupReplicating(ctx, token, endpoint); err != nil { + if _, err := gc.metadataStore.SendGroupReplicating(ctx, request.AuthenticationURL, request.ReplicationServer); err != nil { s.logger.Error("error while notifying group about replication", zap.Error(err)) } diff --git a/api_services_auth.go b/api_services_auth.go deleted file mode 100644 index 630748c7..00000000 --- a/api_services_auth.go +++ /dev/null @@ -1,274 +0,0 @@ -package weshnet - -import ( - "context" - "encoding/json" - "fmt" - "io" - "net/http" - "net/url" - "strings" - - "go.uber.org/zap" - "golang.org/x/net/context/ctxhttp" - - "berty.tech/weshnet/pkg/authtypes" - "berty.tech/weshnet/pkg/bertyauth" - "berty.tech/weshnet/pkg/errcode" - "berty.tech/weshnet/pkg/logutil" - "berty.tech/weshnet/pkg/protocoltypes" -) - -func (s *service) authInitURL(baseURL string, services ...string) (string, error) { - parsedAuthURL, err := url.Parse(baseURL) - if err != nil { - return "", errcode.ErrServicesAuthInvalidURL - } - - switch parsedAuthURL.Scheme { - case "http", "https": - default: - return "", errcode.ErrServicesAuthInvalidURL - } - - if parsedAuthURL.Host == "" { - return "", errcode.ErrServicesAuthInvalidURL - } - - baseURL = strings.TrimSuffix(baseURL, "/") - - auth, codeChallenge, err := bertyauth.NewAuthSession(baseURL) - if err != nil { - return "", err - } - - s.authSession.Store(auth) - - outURL := fmt.Sprintf("%s%s?response_type=%s&client_id=%s&redirect_uri=%s&state=%s&code_challenge=%s&code_challenge_method=%s", - baseURL, - authtypes.AuthHTTPPathAuthorize, - authtypes.AuthResponseType, - authtypes.AuthClientID, - url.QueryEscape(authtypes.AuthRedirect), - auth.State, - codeChallenge, - authtypes.AuthCodeChallengeMethod, - ) - - _ = services - - // if len(services) > 0 { - // outURL = fmt.Sprintf("%s&scope=%s", - // outURL, - // strings.Join(services, ","), - // ) - // } - - return outURL, nil -} - -func (s *service) AuthServiceCompleteFlow(ctx context.Context, request *protocoltypes.AuthServiceCompleteFlow_Request) (*protocoltypes.AuthServiceCompleteFlow_Reply, error) { - u, err := url.Parse(request.CallbackURL) - if err != nil { - return nil, err - } - - if e := u.Query().Get("error"); e != "" { - return nil, errcode.ErrServicesAuthServer.Wrap(fmt.Errorf("got error: %s (%s)", e, u.Query().Get("error_description"))) - } - - code, state := u.Query().Get("code"), u.Query().Get("state") - - authUntyped := s.authSession.Load() - if authUntyped == nil { - return nil, errcode.ErrServicesAuthNotInitialized - } - - auth, ok := authUntyped.(*bertyauth.AuthSession) - if !ok { - return nil, errcode.ErrServicesAuthNotInitialized - } - - if auth.State != state { - return nil, errcode.ErrServicesAuthWrongState - } - - endpoint := fmt.Sprintf("%s%s", auth.BaseURL, authtypes.AuthHTTPPathTokenExchange) - s.logger.Debug("auth service start", logutil.PrivateString("endpoint", endpoint)) - res, err := ctxhttp.PostForm(ctx, http.DefaultClient, endpoint, url.Values{ - "grant_type": {authtypes.AuthGrantType}, - "code": {code}, - "client_id": {authtypes.AuthClientID}, - "code_verifier": {auth.CodeVerifier}, - }) - if err != nil { - return nil, errcode.ErrStreamWrite.Wrap(err) - } - - defer res.Body.Close() - - if res.StatusCode >= 300 { - return nil, errcode.ErrServicesAuthInvalidResponse.Wrap(fmt.Errorf("invalid status code %d", res.StatusCode)) - } - - body, err := io.ReadAll(res.Body) - if err != nil { - return nil, errcode.ErrStreamRead.Wrap(err) - } - - resMsg := &protocoltypes.AuthExchangeResponse{} - if err := json.Unmarshal(body, &resMsg); err != nil { - return nil, errcode.ErrDeserialization.Wrap(err) - } - - if resMsg.Error != "" { - return nil, errcode.ErrServicesAuthServer.Wrap(err) - } - - if resMsg.AccessToken == "" { - return nil, errcode.ErrServicesAuthInvalidResponse.Wrap(fmt.Errorf("missing access token in response")) - } - - if len(resMsg.Services) == 0 { - return nil, errcode.ErrServicesAuthInvalidResponse.Wrap(fmt.Errorf("no services returned along token")) - } - - services := make([]*protocoltypes.ServiceTokenSupportedService, len(resMsg.Services)) - i := 0 - for k, v := range resMsg.Services { - services[i] = &protocoltypes.ServiceTokenSupportedService{ - ServiceType: k, - ServiceEndpoint: v, - } - i++ - } - - s.logger.Debug("auth flow services", zap.Any("services", services)) - - svcToken := &protocoltypes.ServiceToken{ - Token: resMsg.AccessToken, - AuthenticationURL: auth.BaseURL, - SupportedServices: services, - Expiration: -1, - } - - accountGroup := s.getAccountGroup() - if accountGroup == nil { - return nil, errcode.ErrGroupMissing - } - - if _, err := accountGroup.metadataStore.SendAccountServiceTokenAdded(ctx, svcToken); err != nil { - return nil, err - } - - // @FIXME(gfanton): should be handle on the client (js) side - // registeredPushServer := 0 - for _, service := range services { - if service.ServiceType != authtypes.ServicePushID { - continue - } - - // s.logger.Debug("registering push server", logutil.PrivateString("endpoint", service.GetServiceEndpoint())) - // client, err := s.getPushClient(service.ServiceEndpoint) - // if err != nil { - // s.logger.Warn("unable to connect to push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) - // continue - // } - - // repl, err := client.ServerInfo(ctx, &pushtypes.PushServiceServerInfo_Request{}) - - // s.logger.Debug("server info", zap.Int("supported push services ", len(repl.GetSupportedTokenTypes()))) - - // if err != nil { - // s.logger.Warn("unable to get server info from push server", logutil.PrivateString("endpoint", service.ServiceEndpoint), zap.Error(err)) - // continue - // } - - // _, err = s.PushSetServer(ctx, &protocoltypes.PushSetServer_Request{ - // Server: &protocoltypes.PushServer{ - // ServerKey: repl.PublicKey, - // ServiceAddr: service.ServiceEndpoint, - // }, - // }) - - // if err != nil { - // s.logger.Warn("unable to set push server", zap.Error(err)) - // continue - // } - // - // registeredPushServer++ - // s.logger.Debug("push server registered", logutil.PrivateString("endpoint", service.GetServiceEndpoint())) - } - - // if registeredPushServer == 0 { - // s.logger.Warn("no push server found/registered") - // } - - return &protocoltypes.AuthServiceCompleteFlow_Reply{ - TokenID: svcToken.TokenID(), - }, nil -} - -func (s *service) AuthServiceInitFlow(ctx context.Context, request *protocoltypes.AuthServiceInitFlow_Request) (*protocoltypes.AuthServiceInitFlow_Reply, error) { - u, err := s.authInitURL(request.AuthURL, request.Services...) - if err != nil { - return nil, err - } - - return &protocoltypes.AuthServiceInitFlow_Reply{ - URL: u, - SecureURL: strings.HasPrefix(u, "https://"), - }, nil -} - -func (s *service) ServicesTokenList(request *protocoltypes.ServicesTokenList_Request, server protocoltypes.ProtocolService_ServicesTokenListServer) error { - accountGroup := s.getAccountGroup() - if accountGroup == nil { - return errcode.ErrGroupMissing - } - - for _, t := range accountGroup.metadataStore.listServiceTokens() { - if server.Context().Err() != nil { - break - } - - if err := server.Send(&protocoltypes.ServicesTokenList_Reply{ - TokenID: t.TokenID(), - Service: t, - }); err != nil { - return err - } - } - - return nil -} - -func (s *service) DebugAuthServiceSetToken(ctx context.Context, request *protocoltypes.DebugAuthServiceSetToken_Request) (*protocoltypes.DebugAuthServiceSetToken_Reply, error) { - services := make([]*protocoltypes.ServiceTokenSupportedService, len(request.Token.Services)) - i := 0 - for k, v := range request.Token.Services { - services[i] = &protocoltypes.ServiceTokenSupportedService{ - ServiceType: k, - ServiceEndpoint: v, - } - i++ - } - - svcToken := &protocoltypes.ServiceToken{ - Token: request.Token.AccessToken, - AuthenticationURL: request.AuthenticationURL, - SupportedServices: services, - Expiration: -1, - } - - accountGroup := s.getAccountGroup() - if accountGroup == nil { - return nil, errcode.ErrGroupMissing - } - - if _, err := accountGroup.metadataStore.SendAccountServiceTokenAdded(ctx, svcToken); err != nil { - return nil, err - } - - return &protocoltypes.DebugAuthServiceSetToken_Reply{}, nil -} diff --git a/docs/apis/protocoltypes.md b/docs/apis/protocoltypes.md index 47c92556..72e6f871 100644 --- a/docs/apis/protocoltypes.md +++ b/docs/apis/protocoltypes.md @@ -17,8 +17,6 @@ - [AccountContactUnblocked](#weshnet-protocol-v1-AccountContactUnblocked) - [AccountGroupJoined](#weshnet-protocol-v1-AccountGroupJoined) - [AccountGroupLeft](#weshnet-protocol-v1-AccountGroupLeft) - - [AccountServiceTokenAdded](#weshnet-protocol-v1-AccountServiceTokenAdded) - - [AccountServiceTokenRemoved](#weshnet-protocol-v1-AccountServiceTokenRemoved) - [AccountVerifiedCredentialRegistered](#weshnet-protocol-v1-AccountVerifiedCredentialRegistered) - [ActivateGroup](#weshnet-protocol-v1-ActivateGroup) - [ActivateGroup.Reply](#weshnet-protocol-v1-ActivateGroup-Reply) @@ -29,14 +27,6 @@ - [AppMetadataSend](#weshnet-protocol-v1-AppMetadataSend) - [AppMetadataSend.Reply](#weshnet-protocol-v1-AppMetadataSend-Reply) - [AppMetadataSend.Request](#weshnet-protocol-v1-AppMetadataSend-Request) - - [AuthExchangeResponse](#weshnet-protocol-v1-AuthExchangeResponse) - - [AuthExchangeResponse.ServicesEntry](#weshnet-protocol-v1-AuthExchangeResponse-ServicesEntry) - - [AuthServiceCompleteFlow](#weshnet-protocol-v1-AuthServiceCompleteFlow) - - [AuthServiceCompleteFlow.Reply](#weshnet-protocol-v1-AuthServiceCompleteFlow-Reply) - - [AuthServiceCompleteFlow.Request](#weshnet-protocol-v1-AuthServiceCompleteFlow-Request) - - [AuthServiceInitFlow](#weshnet-protocol-v1-AuthServiceInitFlow) - - [AuthServiceInitFlow.Reply](#weshnet-protocol-v1-AuthServiceInitFlow-Reply) - - [AuthServiceInitFlow.Request](#weshnet-protocol-v1-AuthServiceInitFlow-Request) - [ContactAliasKeyAdded](#weshnet-protocol-v1-ContactAliasKeyAdded) - [ContactAliasKeySend](#weshnet-protocol-v1-ContactAliasKeySend) - [ContactAliasKeySend.Reply](#weshnet-protocol-v1-ContactAliasKeySend-Reply) @@ -77,9 +67,6 @@ - [DeactivateGroup](#weshnet-protocol-v1-DeactivateGroup) - [DeactivateGroup.Reply](#weshnet-protocol-v1-DeactivateGroup-Reply) - [DeactivateGroup.Request](#weshnet-protocol-v1-DeactivateGroup-Request) - - [DebugAuthServiceSetToken](#weshnet-protocol-v1-DebugAuthServiceSetToken) - - [DebugAuthServiceSetToken.Reply](#weshnet-protocol-v1-DebugAuthServiceSetToken-Reply) - - [DebugAuthServiceSetToken.Request](#weshnet-protocol-v1-DebugAuthServiceSetToken-Request) - [DebugGroup](#weshnet-protocol-v1-DebugGroup) - [DebugGroup.Reply](#weshnet-protocol-v1-DebugGroup-Reply) - [DebugGroup.Request](#weshnet-protocol-v1-DebugGroup-Request) @@ -181,10 +168,6 @@ - [ServiceGetConfiguration.Request](#weshnet-protocol-v1-ServiceGetConfiguration-Request) - [ServiceToken](#weshnet-protocol-v1-ServiceToken) - [ServiceTokenSupportedService](#weshnet-protocol-v1-ServiceTokenSupportedService) - - [ServicesTokenCode](#weshnet-protocol-v1-ServicesTokenCode) - - [ServicesTokenList](#weshnet-protocol-v1-ServicesTokenList) - - [ServicesTokenList.Reply](#weshnet-protocol-v1-ServicesTokenList-Reply) - - [ServicesTokenList.Request](#weshnet-protocol-v1-ServicesTokenList-Request) - [ShareContact](#weshnet-protocol-v1-ShareContact) - [ShareContact.Reply](#weshnet-protocol-v1-ShareContact-Reply) - [ShareContact.Request](#weshnet-protocol-v1-ShareContact-Request) @@ -359,26 +342,6 @@ AccountGroupLeft indicates that the account has left a group | device_pk | [bytes](#bytes) | | device_pk is the device sending the event, signs the message | | group_pk | [bytes](#bytes) | | group_pk references the group left | - - -### AccountServiceTokenAdded -AccountServiceTokenAdded indicates a token has been added to the account - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| device_pk | [bytes](#bytes) | | device_pk is the device sending the event, signs the message | -| service_token | [ServiceToken](#weshnet-protocol-v1-ServiceToken) | | | - - - -### AccountServiceTokenRemoved -AccountServiceTokenRemoved indicates a token has removed - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| device_pk | [bytes](#bytes) | | device_pk is the device sending the event, signs the message | -| token_id | [string](#string) | | | - ### AccountVerifiedCredentialRegistered @@ -452,69 +415,6 @@ AccountServiceTokenRemoved indicates a token has removed | group_pk | [bytes](#bytes) | | group_pk is the identifier of the group | | payload | [bytes](#bytes) | | payload is the payload to send | - - -### AuthExchangeResponse - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| access_token | [string](#string) | | | -| scope | [string](#string) | | | -| error | [string](#string) | | | -| error_description | [string](#string) | | | -| services | [AuthExchangeResponse.ServicesEntry](#weshnet-protocol-v1-AuthExchangeResponse-ServicesEntry) | repeated | | - - - -### AuthExchangeResponse.ServicesEntry - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| key | [string](#string) | | | -| value | [string](#string) | | | - - - -### AuthServiceCompleteFlow - - - -### AuthServiceCompleteFlow.Reply - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| token_id | [string](#string) | | | - - - -### AuthServiceCompleteFlow.Request - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| callback_url | [string](#string) | | | - - - -### AuthServiceInitFlow - - - -### AuthServiceInitFlow.Reply - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| url | [string](#string) | | | -| secure_url | [bool](#bool) | | | - - - -### AuthServiceInitFlow.Request - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| auth_url | [string](#string) | | | -| services | [string](#string) | repeated | | - ### ContactAliasKeyAdded @@ -742,23 +642,6 @@ ContactAliasKeyAdded is an event type where ones shares their alias public key | ----- | ---- | ----- | ----------- | | group_pk | [bytes](#bytes) | | group_pk is the identifier of the group | - - -### DebugAuthServiceSetToken - - - -### DebugAuthServiceSetToken.Reply - - - -### DebugAuthServiceSetToken.Request - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| token | [AuthExchangeResponse](#weshnet-protocol-v1-AuthExchangeResponse) | | | -| authentication_url | [string](#string) | | | - ### DebugGroup @@ -1485,8 +1368,10 @@ Progress define a generic object that can be used to display a progress bar for | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| token_id | [string](#string) | | | | group_pk | [bytes](#bytes) | | | +| token | [string](#string) | | | +| authentication_url | [string](#string) | | | +| replication_server | [string](#string) | | | @@ -1568,33 +1453,6 @@ Progress define a generic object that can be used to display a progress bar for | service_type | [string](#string) | | | | service_endpoint | [string](#string) | | | - - -### ServicesTokenCode - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| services | [string](#string) | repeated | | -| code_challenge | [string](#string) | | | -| token_id | [string](#string) | | | - - - -### ServicesTokenList - - - -### ServicesTokenList.Reply - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| token_id | [string](#string) | | | -| service | [ServiceToken](#weshnet-protocol-v1-ServiceToken) | | | - - - -### ServicesTokenList.Request - ### ShareContact @@ -1780,8 +1638,6 @@ Progress define a generic object that can be used to display a progress bar for | EventTypeMultiMemberGroupAliasResolverAdded | 301 | EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof | | EventTypeMultiMemberGroupInitialMemberAnnounced | 302 | EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner | | EventTypeMultiMemberGroupAdminRoleGranted | 303 | EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin | -| EventTypeAccountServiceTokenAdded | 401 | EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account | -| EventTypeAccountServiceTokenRemoved | 402 | EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore | | EventTypeGroupReplicating | 403 | EventTypeGroupReplicating indicates that the group has been registered for replication on a server | | EventTypeAccountVerifiedCredentialRegistered | 500 | EventTypeAccountVerifiedCredentialRegistered | | EventTypeGroupMetadataPayloadSent | 1001 | EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key | @@ -1886,14 +1742,10 @@ Each active Wesh protocol service is considered as a Wesh device and is associat | DebugListGroups | [DebugListGroups.Request](#weshnet-protocol-v1-DebugListGroups-Request) | [DebugListGroups.Reply](#weshnet-protocol-v1-DebugListGroups-Reply) stream | | | DebugInspectGroupStore | [DebugInspectGroupStore.Request](#weshnet-protocol-v1-DebugInspectGroupStore-Request) | [DebugInspectGroupStore.Reply](#weshnet-protocol-v1-DebugInspectGroupStore-Reply) stream | | | DebugGroup | [DebugGroup.Request](#weshnet-protocol-v1-DebugGroup-Request) | [DebugGroup.Reply](#weshnet-protocol-v1-DebugGroup-Reply) | | -| DebugAuthServiceSetToken | [DebugAuthServiceSetToken.Request](#weshnet-protocol-v1-DebugAuthServiceSetToken-Request) | [DebugAuthServiceSetToken.Reply](#weshnet-protocol-v1-DebugAuthServiceSetToken-Reply) | | | SystemInfo | [SystemInfo.Request](#weshnet-protocol-v1-SystemInfo-Request) | [SystemInfo.Reply](#weshnet-protocol-v1-SystemInfo-Reply) | | -| AuthServiceInitFlow | [AuthServiceInitFlow.Request](#weshnet-protocol-v1-AuthServiceInitFlow-Request) | [AuthServiceInitFlow.Reply](#weshnet-protocol-v1-AuthServiceInitFlow-Reply) | AuthServiceInitFlow Initialize an authentication flow | -| AuthServiceCompleteFlow | [AuthServiceCompleteFlow.Request](#weshnet-protocol-v1-AuthServiceCompleteFlow-Request) | [AuthServiceCompleteFlow.Reply](#weshnet-protocol-v1-AuthServiceCompleteFlow-Reply) | AuthServiceCompleteFlow Completes an authentication flow | | CredentialVerificationServiceInitFlow | [CredentialVerificationServiceInitFlow.Request](#weshnet-protocol-v1-CredentialVerificationServiceInitFlow-Request) | [CredentialVerificationServiceInitFlow.Reply](#weshnet-protocol-v1-CredentialVerificationServiceInitFlow-Reply) | CredentialVerificationServiceInitFlow Initialize a credential verification flow | | CredentialVerificationServiceCompleteFlow | [CredentialVerificationServiceCompleteFlow.Request](#weshnet-protocol-v1-CredentialVerificationServiceCompleteFlow-Request) | [CredentialVerificationServiceCompleteFlow.Reply](#weshnet-protocol-v1-CredentialVerificationServiceCompleteFlow-Reply) | CredentialVerificationServiceCompleteFlow Completes a credential verification flow | | VerifiedCredentialsList | [VerifiedCredentialsList.Request](#weshnet-protocol-v1-VerifiedCredentialsList-Request) | [VerifiedCredentialsList.Reply](#weshnet-protocol-v1-VerifiedCredentialsList-Reply) stream | VerifiedCredentialsList Retrieves the list of verified credentials | -| ServicesTokenList | [ServicesTokenList.Request](#weshnet-protocol-v1-ServicesTokenList-Request) | [ServicesTokenList.Reply](#weshnet-protocol-v1-ServicesTokenList-Reply) stream | ServicesTokenList Retrieves the list of services tokens | | ReplicationServiceRegisterGroup | [ReplicationServiceRegisterGroup.Request](#weshnet-protocol-v1-ReplicationServiceRegisterGroup-Request) | [ReplicationServiceRegisterGroup.Reply](#weshnet-protocol-v1-ReplicationServiceRegisterGroup-Reply) | ReplicationServiceRegisterGroup Asks a replication service to distribute a group contents | | PeerList | [PeerList.Request](#weshnet-protocol-v1-PeerList-Request) | [PeerList.Reply](#weshnet-protocol-v1-PeerList-Reply) | PeerList returns a list of P2P peers | | OutOfStoreReceive | [OutOfStoreReceive.Request](#weshnet-protocol-v1-OutOfStoreReceive-Request) | [OutOfStoreReceive.Reply](#weshnet-protocol-v1-OutOfStoreReceive-Reply) | OutOfStoreReceive parses a payload received outside a synchronized store | diff --git a/docs/apis/protocoltypes.swagger.json b/docs/apis/protocoltypes.swagger.json index 7a4b365e..f1f5a586 100644 --- a/docs/apis/protocoltypes.swagger.json +++ b/docs/apis/protocoltypes.swagger.json @@ -304,48 +304,6 @@ } } }, - "v1AuthExchangeResponse": { - "type": "object", - "properties": { - "access_token": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "error": { - "type": "string" - }, - "error_description": { - "type": "string" - }, - "services": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "v1AuthServiceCompleteFlowReply": { - "type": "object", - "properties": { - "token_id": { - "type": "string" - } - } - }, - "v1AuthServiceInitFlowReply": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "secure_url": { - "type": "boolean" - } - } - }, "v1ContactAliasKeySendReply": { "type": "object" }, @@ -423,9 +381,6 @@ "v1DeactivateGroupReply": { "type": "object" }, - "v1DebugAuthServiceSetTokenReply": { - "type": "object" - }, "v1DebugGroupReply": { "type": "object", "properties": { @@ -563,14 +518,12 @@ "EventTypeMultiMemberGroupAliasResolverAdded", "EventTypeMultiMemberGroupInitialMemberAnnounced", "EventTypeMultiMemberGroupAdminRoleGranted", - "EventTypeAccountServiceTokenAdded", - "EventTypeAccountServiceTokenRemoved", "EventTypeGroupReplicating", "EventTypeAccountVerifiedCredentialRegistered", "EventTypeGroupMetadataPayloadSent" ], "default": "EventTypeUndefined", - "title": "- EventTypeUndefined: EventTypeUndefined indicates that the value has not been set. Should not happen.\n - EventTypeGroupMemberDeviceAdded: EventTypeGroupMemberDeviceAdded indicates the payload includes that a member has added their device to the group\n - EventTypeGroupDeviceChainKeyAdded: EventTypeGroupDeviceChainKeyAdded indicates the payload includes that a member has sent their device chain key to another member\n - EventTypeAccountGroupJoined: EventTypeAccountGroupJoined indicates the payload includes that the account has joined a group\n - EventTypeAccountGroupLeft: EventTypeAccountGroupLeft indicates the payload includes that the account has left a group\n - EventTypeAccountContactRequestDisabled: EventTypeAccountContactRequestDisabled indicates the payload includes that the account has disabled incoming contact requests\n - EventTypeAccountContactRequestEnabled: EventTypeAccountContactRequestEnabled indicates the payload includes that the account has enabled incoming contact requests\n - EventTypeAccountContactRequestReferenceReset: EventTypeAccountContactRequestReferenceReset indicates the payload includes that the account has a new contact request rendezvous seed\n - EventTypeAccountContactRequestOutgoingEnqueued: EventTypeAccountContactRequestOutgoingEnqueued indicates the payload includes that the account will attempt to send a new contact request\n - EventTypeAccountContactRequestOutgoingSent: EventTypeAccountContactRequestOutgoingSent indicates the payload includes that the account has sent a contact request\n - EventTypeAccountContactRequestIncomingReceived: EventTypeAccountContactRequestIncomingReceived indicates the payload includes that the account has received a contact request\n - EventTypeAccountContactRequestIncomingDiscarded: EventTypeAccountContactRequestIncomingDiscarded indicates the payload includes that the account has ignored a contact request\n - EventTypeAccountContactRequestIncomingAccepted: EventTypeAccountContactRequestIncomingAccepted indicates the payload includes that the account has accepted a contact request\n - EventTypeAccountContactBlocked: EventTypeAccountContactBlocked indicates the payload includes that the account has blocked a contact\n - EventTypeAccountContactUnblocked: EventTypeAccountContactUnblocked indicates the payload includes that the account has unblocked a contact\n - EventTypeContactAliasKeyAdded: EventTypeContactAliasKeyAdded indicates the payload includes that the contact group has received an alias key\n - EventTypeMultiMemberGroupAliasResolverAdded: EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof\n - EventTypeMultiMemberGroupInitialMemberAnnounced: EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner\n - EventTypeMultiMemberGroupAdminRoleGranted: EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin\n - EventTypeAccountServiceTokenAdded: EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account\n - EventTypeAccountServiceTokenRemoved: EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore\n - EventTypeGroupReplicating: EventTypeGroupReplicating indicates that the group has been registered for replication on a server\n - EventTypeAccountVerifiedCredentialRegistered: EventTypeAccountVerifiedCredentialRegistered\n - EventTypeGroupMetadataPayloadSent: EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key" + "title": "- EventTypeUndefined: EventTypeUndefined indicates that the value has not been set. Should not happen.\n - EventTypeGroupMemberDeviceAdded: EventTypeGroupMemberDeviceAdded indicates the payload includes that a member has added their device to the group\n - EventTypeGroupDeviceChainKeyAdded: EventTypeGroupDeviceChainKeyAdded indicates the payload includes that a member has sent their device chain key to another member\n - EventTypeAccountGroupJoined: EventTypeAccountGroupJoined indicates the payload includes that the account has joined a group\n - EventTypeAccountGroupLeft: EventTypeAccountGroupLeft indicates the payload includes that the account has left a group\n - EventTypeAccountContactRequestDisabled: EventTypeAccountContactRequestDisabled indicates the payload includes that the account has disabled incoming contact requests\n - EventTypeAccountContactRequestEnabled: EventTypeAccountContactRequestEnabled indicates the payload includes that the account has enabled incoming contact requests\n - EventTypeAccountContactRequestReferenceReset: EventTypeAccountContactRequestReferenceReset indicates the payload includes that the account has a new contact request rendezvous seed\n - EventTypeAccountContactRequestOutgoingEnqueued: EventTypeAccountContactRequestOutgoingEnqueued indicates the payload includes that the account will attempt to send a new contact request\n - EventTypeAccountContactRequestOutgoingSent: EventTypeAccountContactRequestOutgoingSent indicates the payload includes that the account has sent a contact request\n - EventTypeAccountContactRequestIncomingReceived: EventTypeAccountContactRequestIncomingReceived indicates the payload includes that the account has received a contact request\n - EventTypeAccountContactRequestIncomingDiscarded: EventTypeAccountContactRequestIncomingDiscarded indicates the payload includes that the account has ignored a contact request\n - EventTypeAccountContactRequestIncomingAccepted: EventTypeAccountContactRequestIncomingAccepted indicates the payload includes that the account has accepted a contact request\n - EventTypeAccountContactBlocked: EventTypeAccountContactBlocked indicates the payload includes that the account has blocked a contact\n - EventTypeAccountContactUnblocked: EventTypeAccountContactUnblocked indicates the payload includes that the account has unblocked a contact\n - EventTypeContactAliasKeyAdded: EventTypeContactAliasKeyAdded indicates the payload includes that the contact group has received an alias key\n - EventTypeMultiMemberGroupAliasResolverAdded: EventTypeMultiMemberGroupAliasResolverAdded indicates the payload includes that a member of the group sent their alias proof\n - EventTypeMultiMemberGroupInitialMemberAnnounced: EventTypeMultiMemberGroupInitialMemberAnnounced indicates the payload includes that a member has authenticated themselves as the group owner\n - EventTypeMultiMemberGroupAdminRoleGranted: EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin\n - EventTypeGroupReplicating: EventTypeGroupReplicating indicates that the group has been registered for replication on a server\n - EventTypeAccountVerifiedCredentialRegistered: EventTypeAccountVerifiedCredentialRegistered\n - EventTypeGroupMetadataPayloadSent: EventTypeGroupMetadataPayloadSent indicates the payload includes an app specific event, unlike messages stored on the message store it is encrypted using a static key" }, "v1Group": { "type": "object", @@ -984,49 +937,6 @@ } } }, - "v1ServiceToken": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "authentication_url": { - "type": "string" - }, - "supported_services": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ServiceTokenSupportedService" - } - }, - "expiration": { - "type": "string", - "format": "int64" - } - } - }, - "v1ServiceTokenSupportedService": { - "type": "object", - "properties": { - "service_type": { - "type": "string" - }, - "service_endpoint": { - "type": "string" - } - } - }, - "v1ServicesTokenListReply": { - "type": "object", - "properties": { - "token_id": { - "type": "string" - }, - "service": { - "$ref": "#/definitions/v1ServiceToken" - } - } - }, "v1ShareContactReply": { "type": "object", "properties": { diff --git a/events.go b/events.go index f9332ad1..4f740da2 100644 --- a/events.go +++ b/events.go @@ -36,8 +36,6 @@ var eventTypesMapper = map[protocoltypes.EventType]struct { protocoltypes.EventTypeMultiMemberGroupInitialMemberAnnounced: {Message: &protocoltypes.MultiMemberGroupInitialMemberAnnounced{}, SigChecker: sigCheckerGroupSigned}, protocoltypes.EventTypeMultiMemberGroupAdminRoleGranted: {Message: &protocoltypes.MultiMemberGroupAdminRoleGranted{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeGroupMetadataPayloadSent: {Message: &protocoltypes.GroupMetadataPayloadSent{}, SigChecker: sigCheckerDeviceSigned}, - protocoltypes.EventTypeAccountServiceTokenAdded: {Message: &protocoltypes.AccountServiceTokenAdded{}, SigChecker: sigCheckerDeviceSigned}, - protocoltypes.EventTypeAccountServiceTokenRemoved: {Message: &protocoltypes.AccountServiceTokenRemoved{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeGroupReplicating: {Message: &protocoltypes.GroupReplicating{}, SigChecker: sigCheckerDeviceSigned}, protocoltypes.EventTypeAccountVerifiedCredentialRegistered: {Message: &protocoltypes.AccountVerifiedCredentialRegistered{}, SigChecker: sigCheckerDeviceSigned}, } diff --git a/go.mod b/go.mod index 9a030624..81fdf1d0 100644 --- a/go.mod +++ b/go.mod @@ -50,15 +50,12 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.7.0 - golang.org/x/net v0.8.0 - golang.org/x/text v0.8.0 golang.org/x/tools v0.7.0 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 google.golang.org/grpc v1.50.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/grpc/examples v0.0.0-20200922230038-4e932bbcb079 google.golang.org/protobuf v1.30.0 - gopkg.in/square/go-jose.v2 v2.6.0 moul.io/openfiles v1.2.0 moul.io/srand v1.6.1 moul.io/testman v1.5.0 @@ -301,11 +298,14 @@ require ( go4.org v0.0.0-20200411211856-f5505b9728dd // indirect golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.10.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.7.0 // indirect + golang.org/x/text v0.8.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd // indirect + gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect lukechampine.com/blake3 v1.1.7 // indirect diff --git a/internal/i18n/catalog.go b/internal/i18n/catalog.go deleted file mode 100644 index 1a6b19f2..00000000 --- a/internal/i18n/catalog.go +++ /dev/null @@ -1,70 +0,0 @@ -package i18n - -import ( - "encoding/json" - "io/fs" - "path/filepath" - "strings" - - "golang.org/x/text/language" - "golang.org/x/text/message" - "golang.org/x/text/message/catalog" -) - -type Catalog struct { - fallback language.Tag - Builder *catalog.Builder -} - -func NewCatalog(defaultlang language.Tag) *Catalog { - builder := catalog.NewBuilder(catalog.Fallback(defaultlang)) - return &Catalog{ - Builder: builder, - fallback: defaultlang, - } -} - -func (c *Catalog) NewPrinter(preferedlang ...language.Tag) *message.Printer { - var cat catalog.Catalog = c.Builder - preferedlang = append(preferedlang, c.fallback) - tag, _, _ := cat.Matcher().Match(preferedlang...) - return message.NewPrinter(tag, message.Catalog(cat)) -} - -func (c *Catalog) Populate(f fs.FS) error { - const targetfile = "localization.json" // @TODO(gfanton): make this more customizable - err := fs.WalkDir(f, ".", func(path string, entry fs.DirEntry, err error) error { - if err != nil { - return err - } - - if entry.IsDir() { - return nil - } - - if filename := filepath.Base(path); strings.Compare(filename, targetfile) != 0 { - // @NOTE(gfanton): skip invalid file or return an error ? - return nil - } - - lang := filepath.Base(filepath.Dir(path)) - content, err := fs.ReadFile(f, path) - if err != nil { - return err - } - - tag := language.MustParse(lang) - local := &localizationsJSON{ - Lang: tag, - Builder: c.Builder, - } - - if err = json.Unmarshal(content, &local); err != nil { - return err - } - - return nil - }) - - return err -} diff --git a/internal/i18n/catalog_test.go b/internal/i18n/catalog_test.go deleted file mode 100644 index cf5b0394..00000000 --- a/internal/i18n/catalog_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package i18n - -import ( - "embed" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "golang.org/x/text/language" - "golang.org/x/text/message" - "golang.org/x/text/message/catalog" -) - -//go:embed locales_test -var locales_test embed.FS - -func TestBasic(t *testing.T) { - defaultLang := language.MustParse("en-US") - const testKey = "testkey1" - const testMessage = "testmessage1" - - builder := catalog.NewBuilder(catalog.Fallback(defaultLang)) - builder.SetString(defaultLang, testKey, testMessage) - - var c catalog.Catalog = builder - p := message.NewPrinter(defaultLang, message.Catalog(c)) - - msg := p.Sprintf(testKey) - require.Equal(t, testMessage, msg) -} - -func args(a ...interface{}) []interface{} { return a } - -func TestLocalizationFiles(t *testing.T) { - enUS := language.MustParse("en-US") - frFR := language.MustParse("fr-FR") - frCA := language.MustParse("fr-CA") - esES := language.MustParse("es-ES") - - cases := []struct { - lang language.Tag - key string - args []interface{} - result string - equality assert.ComparisonAssertionFunc - }{ - {enUS, "key1", nil, "message1", assert.Equal}, - {enUS, "key2", nil, "message2", assert.Equal}, - {enUS, "nested.key1", nil, "nested_message_1", assert.Equal}, - {enUS, "keyWithValue", args("bart"), "bart just connected", assert.Equal}, - {enUS, "keyWithMultipleValue", args("bart", "lisa"), "bart and lisa just connected", assert.Equal}, - {frFR, "nested.key1", nil, "nested_message_1-fr", assert.Equal}, - {frCA, "nested.key1", nil, "nested_message_1-fr", assert.Equal}, - {esES, "nested.key1", nil, "nested_message_1", assert.Equal}, - {enUS, "keyWithPluralCount", []interface{}{1}, "there is 1 star in the sky", assert.Equal}, - {enUS, "keyWithPluralCount", []interface{}{10}, "there are 10 stars in the sky", assert.Equal}, - {frFR, "keyWithPluralCount", []interface{}{11}, "il y'a 11 etoiles dans le ciel", assert.Equal}, - {frCA, "keyWithPluralCount", []interface{}{1}, "il y'a 1 etoile dans le ciel", assert.Equal}, - } - - cat := NewCatalog(enUS) - cat.Populate(locales_test) - for _, tc := range cases { - p := cat.NewPrinter(tc.lang) - args := tc.args - if args == nil { - args = []interface{}{} - } - - msg := p.Sprintf(tc.key, args...) - tc.equality(t, tc.result, msg, "wrong translation for [%s] `%s`", tc.lang.String(), tc.key) // success - } -} diff --git a/internal/i18n/filter.go b/internal/i18n/filter.go deleted file mode 100644 index c6c50564..00000000 --- a/internal/i18n/filter.go +++ /dev/null @@ -1,46 +0,0 @@ -package i18n - -import ( - "strings" - - "golang.org/x/text/language" -) - -type notSupported struct { - lang language.Tag - forms []string -} - -// since `validForm` method is not exposed by plural package, we need to do this -// manually -var NotSupportedForm = []notSupported{ - { - lang: language.Japanese, - forms: []string{"one"}, - }, - { - lang: language.Chinese, - forms: []string{"one"}, - }, -} - -func supported(form string, lang language.Tag) bool { - blang, conf := lang.Base() - if conf == language.No { - return false - } - - form = strings.ToLower(form) - for _, s := range NotSupportedForm { - nlang, _ := s.lang.Base() - if nlang.String() == blang.String() { - for _, f := range s.forms { - if f == form { - return false - } - } - } - } - - return true -} diff --git a/internal/i18n/locales_test/en-US/localization.json b/internal/i18n/locales_test/en-US/localization.json deleted file mode 100644 index 869e9ef0..00000000 --- a/internal/i18n/locales_test/en-US/localization.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "key1": "message1", - "key2": "message2", - "nested": { - "key1" : "nested_message_1" - }, - "keyWithValue": "%[1]v just connected", - "keyWithMultipleValue": "%[1]v and %[2]v just connected", - "keyWithPluralCount_one": "there is %[1]v star in the sky", - "keyWithPluralCount_other": "there are %[1]v stars in the sky" -} diff --git a/internal/i18n/locales_test/fr-FR/localization.json b/internal/i18n/locales_test/fr-FR/localization.json deleted file mode 100644 index 51f1f434..00000000 --- a/internal/i18n/locales_test/fr-FR/localization.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "key1": "message1-fr", - "key2": "message2-fr", - "nested": { - "key1": "nested_message_1-fr" - }, - "keyWithValue": "%[1]v est connecte", - "keyWithMultipleValue": "%[1]v et %[2]v sont connectes", - "keyWithPluralCount_one": "il y'a %[1]v etoile dans le ciel", - "keyWithPluralCount_other": "il y'a %[1]v etoiles dans le ciel" -} diff --git a/internal/i18n/translations_i18next.go b/internal/i18n/translations_i18next.go deleted file mode 100644 index 1b58704a..00000000 --- a/internal/i18n/translations_i18next.go +++ /dev/null @@ -1,141 +0,0 @@ -package i18n - -import ( - "encoding/json" - "fmt" - "strings" - - "golang.org/x/text/feature/plural" - "golang.org/x/text/language" - "golang.org/x/text/message/catalog" -) - -type ContentKind int - -const ( - ContentKindMessage ContentKind = iota - ContentKindNested -) - -type ContentNode struct { - Kind ContentKind - - Message string - Nested map[string]*ContentNode -} - -func (n *ContentNode) UnmarshalJSON(b []byte) error { - var value string - if err := json.Unmarshal(b, &value); err == nil { - n.Kind = ContentKindMessage - n.Message = value - return nil - } - - node := make(map[string]*ContentNode) - if err := json.Unmarshal(b, &node); err == nil { - n.Kind = ContentKindNested - n.Nested = node - return nil - } - - return fmt.Errorf("unable to parse content node") -} - -type localizationsJSON struct { - Builder *catalog.Builder - Lang language.Tag -} - -func (l *localizationsJSON) UnmarshalJSON(b []byte) error { - tree := make(map[string]*ContentNode) - if err := json.Unmarshal(b, &tree); err != nil { - return fmt.Errorf("unable to parse tree: %w", err) - } - - if err := l.generateCatalog("", tree); err != nil { - return fmt.Errorf("unable to populate catalog: %w", err) - } - - return nil -} - -type pcases struct { - // Specific include Form such as `Zero` `One` `Two` `Few` `Many`, ``x=`, `x<` - specific []interface{} - // other is the last fallback - other []interface{} -} - -// other should always be set as last item -func (p *pcases) getSelectCases() []interface{} { return append(p.specific, p.other...) } - -func (l *localizationsJSON) generateCatalog(root string, tree map[string]*ContentNode) error { - selector := make(map[string]*pcases) - for k, value := range tree { - keys := strings.Split(k, "_") - if len(keys) == 0 { - return fmt.Errorf("cannot use empty key") - } - - // format key - var key string - if root != "" { - key = fmt.Sprintf("%s.%s", root, keys[0]) - } else { - key = keys[0] - } - - // is it nested ? - if value.Kind == ContentKindNested { - if err := l.generateCatalog(key, value.Nested); err != nil { - return err - } - - continue - } - - if value.Message == "" { - continue // skip empty value - } - - // is it regular message ? - if len(keys) == 1 { - if err := l.Builder.SetString(l.Lang, key, value.Message); err != nil { - return fmt.Errorf("unable to set string key `%s`: %w", key, err) - } - continue - } - - form := keys[1] - if !supported(form, l.Lang) { - continue - } - - // add it has plurals - cases, ok := selector[key] - if !ok { - cases = &pcases{ - specific: []interface{}{}, - other: []interface{}{}, - } - } - - if strings.ToLower(form) == "other" { - cases.other = []interface{}{form, value.Message} - } else { - cases.specific = []interface{}{form, value.Message} - } - - selector[key] = cases - } - - for key, cases := range selector { - list := cases.getSelectCases() - if err := l.Builder.Set(l.Lang, key, plural.Selectf(1, "", list...)); err != nil { - return fmt.Errorf("unable to set plural key `%s`: %w", key, err) - } - } - - return nil -} diff --git a/localization/locales/af-ZA/localization.json b/localization/locales/af-ZA/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/af-ZA/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ar-SA/localization.json b/localization/locales/ar-SA/localization.json deleted file mode 100644 index 1aa08204..00000000 --- a/localization/locales/ar-SA/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "الأداء" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "الأداء" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/bg-BG/localization.json b/localization/locales/bg-BG/localization.json deleted file mode 100644 index 1ba7c43d..00000000 --- a/localization/locales/bg-BG/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Производителност" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Производителност" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Политика за поверителонст" - }, - "push": { - "message": { - "title": "Ново съобщение" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ca-ES/localization.json b/localization/locales/ca-ES/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/ca-ES/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/cs-CZ/localization.json b/localization/locales/cs-CZ/localization.json deleted file mode 100644 index b809ee1b..00000000 --- a/localization/locales/cs-CZ/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Výkon" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Výkon" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Zásady ochrany soukromí" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/da-DK/localization.json b/localization/locales/da-DK/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/da-DK/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/de-DE/localization.json b/localization/locales/de-DE/localization.json deleted file mode 100644 index 650d311e..00000000 --- a/localization/locales/de-DE/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "Replikation", - "description": "Dieser Dienst wird Ihre Unterhaltungen automatisch replizieren, um Ihrem Gerät die effizienteste Netzwerkleistung zu bieten.", - "benefitBadge": "Leistung" - }, - "psh": { - "name": "Push-Benachrichtigungen", - "description": "Dieser Dienst ermöglicht es Ihrem Gerät Push-Benachrichtigungen für eingehende Nachrichten zu erhalten.", - "benefitBadge": "Leistung" - } - }, - "pageTitle": "", - "connectButton_one": "Dienst verwenden", - "connectButton_other": "Ausgewählte Dienste verwenden", - "privacyPolicyLabel": "Datenschutzerklärung" - }, - "push": { - "message": { - "title": "Neue Nachricht" - }, - "error": { - "title": "Push-Entschlüsselung fehlgeschlagen" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Eine Sprachnachricht gesendet", - "bodyWithNumberOfMedia_other": "%[1]v Sprachnachrichten gesendet" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Ein gif gesendet", - "bodyWithNumberOfMedia_other": "%[1]v GIFs gesendet" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Foto gesendet", - "bodyWithNumberOfMedia_other": "%[1]v Fotos gesendet" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reagierte mit %[2]v auf deine Nachricht" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "Etwas Neues wurde empfangen" - }, - "conversationNameChanged": { - "body": "Name der Unterhaltung wurde aktualisiert" - }, - "memberNameChanged": { - "body": "Anzeigename aktualisiert" - }, - "memberPictureChanged": { - "body": "Profilbild aktualisiert" - }, - "memberDetailsChanged": { - "body": "Mitgliederdetail aktualisiert" - }, - "replyOptionsOffered": { - "body": "Antwort-Optionen angeboten" - } - } -} diff --git a/localization/locales/el-GR/localization.json b/localization/locales/el-GR/localization.json deleted file mode 100644 index 08d1a3fe..00000000 --- a/localization/locales/el-GR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Απόδοση" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Απόδοση" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/en-US/localization.json b/localization/locales/en-US/localization.json deleted file mode 100644 index 782ed5f9..00000000 --- a/localization/locales/en-US/localization.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "Replication", - "description": "This service will automatically replicate your conversations to provide your device with the most efficient network performance.", - "benefitBadge": "Performance" - }, - "psh": { - "name": "Push notifications", - "description": "This service allows your device to receive push notifications for incoming messages.", - "benefitBadge": "Performance" - } - }, - "pageTitle": "Berty Services", - "connectButton_one": "Use service", - "connectButton_other": "Use selected services", - "privacyPolicyLabel": "Privacy policy" - }, - "push": { - "message": { - "title": "New message" - }, - "error": { - "title": "Push decryption failed" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Sent a voice message", - "bodyWithNumberOfMedia_other": "Sent %[1]v voice messages" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Sent a gif", - "bodyWithNumberOfMedia_other": "Sent %[1]v gifs" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Sent a photo", - "bodyWithNumberOfMedia_other": "Sent %[1]v photos" - }, - "media": { - "bodyWithNumberOfMedia_one": "Sent media", - "bodyWithNumberOfMedia_other": "Sent %[1]v media items" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reacted with %[2]v to your message" - }, - "groupInvitation": { - "bodyWithGroupName": "Invited you to %[1]v" - }, - "unknown": { - "body": "Something new has been received" - }, - "conversationNameChanged": { - "body": "Conversation name has been updated" - }, - "memberNameChanged": { - "body": "Display name updated" - }, - "memberPictureChanged": { - "body": "Profile picture updated" - }, - "memberDetailsChanged": { - "body": "Member detail updated" - } - } -} diff --git a/localization/locales/es-ES/localization.json b/localization/locales/es-ES/localization.json deleted file mode 100644 index 12be541f..00000000 --- a/localization/locales/es-ES/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Rendimiento" - }, - "psh": { - "name": "Notificaciones Push", - "description": "", - "benefitBadge": "Rendimiento" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Política de privacidad" - }, - "push": { - "message": { - "title": "Nuevo mensaje" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Un mensaje de voz enviado", - "bodyWithNumberOfMedia_other": "%[1]v mensajes de voz enviados" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Un imágen de gif enviado", - "bodyWithNumberOfMedia_other": "%[1]v imágenes de gif enviados" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Enviada una foto", - "bodyWithNumberOfMedia_other": "%[1]v fotos enviadas" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reaccionó con %[2]v a su mensaje" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "Se ha recibido algo nuevo" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "Foto de perfil actualizada" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/et-EE/localization.json b/localization/locales/et-EE/localization.json deleted file mode 100644 index d5444c53..00000000 --- a/localization/locales/et-EE/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Jõudlus" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Jõudlus" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/fa-IR/localization.json b/localization/locales/fa-IR/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/fa-IR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/fi-FI/localization.json b/localization/locales/fi-FI/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/fi-FI/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/fr-FR/localization.json b/localization/locales/fr-FR/localization.json deleted file mode 100644 index 331786a2..00000000 --- a/localization/locales/fr-FR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "Réplication", - "description": "Ce service répliquera automatiquement vos conversations pour fournir à votre appareil les performances réseau les plus efficaces.", - "benefitBadge": "Performance" - }, - "psh": { - "name": "Notifications push", - "description": "Ce service permet à votre appareil de recevoir des notifications push pour les messages entrants.", - "benefitBadge": "Performance" - } - }, - "pageTitle": "Services Berty", - "connectButton_one": "Utiliser le service", - "connectButton_other": "Utiliser les services sélectionnés", - "privacyPolicyLabel": "Politique de confidentialité" - }, - "push": { - "message": { - "title": "Nouveau message" - }, - "error": { - "title": "Échec du déchiffrement des messages push" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Envoyé un message vocal", - "bodyWithNumberOfMedia_other": "A envoyé %[1]v messages vocaux" - }, - "gif": { - "bodyWithNumberOfMedia_one": "A envoyé un gif", - "bodyWithNumberOfMedia_other": "A envoyé '%[1]v' gifs" - }, - "photo": { - "bodyWithNumberOfMedia_one": "A envoyé une photo", - "bodyWithNumberOfMedia_other": "A envoyé '%[1]v' photos" - }, - "media": { - "bodyWithNumberOfMedia_one": "Média envoyé", - "bodyWithNumberOfMedia_other": "A envoyé '%[1]v' médias" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v a réagi avec %[2]v à votre message" - }, - "groupInvitation": { - "bodyWithGroupName": "Invitation au groupe '%[1]v'" - }, - "unknown": { - "body": "Quelque chose de nouveau vient d'être reçu" - }, - "conversationNameChanged": { - "body": "Le nom de la conversation a été mis à jour" - }, - "memberNameChanged": { - "body": "Nom d'affichage mis à jour" - }, - "memberPictureChanged": { - "body": "Photo de profil mise à jour" - }, - "memberDetailsChanged": { - "body": "Détails du membre mis à jour" - }, - "replyOptionsOffered": { - "body": "Options de réponse proposées" - } - } -} diff --git a/localization/locales/he-IL/localization.json b/localization/locales/he-IL/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/he-IL/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/hi-IN/localization.json b/localization/locales/hi-IN/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/hi-IN/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/hu-HU/localization.json b/localization/locales/hu-HU/localization.json deleted file mode 100644 index d4b3baad..00000000 --- a/localization/locales/hu-HU/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "P2P replikáció", - "description": "Ez a szolgáltatás automatikusan újraállítja a beszélgetéseket, hogy eszköze a leghatékonyabb hálózati teljesítményt nyújtsa.", - "benefitBadge": "Teljesítmény" - }, - "psh": { - "name": "Push értesítések", - "description": "Ez a szolgáltatás lehetővé teszi, hogy készüléke push értesítéseket kapjon a bejövő üzenetekről.", - "benefitBadge": "Teljesítmény" - } - }, - "pageTitle": "Berty szolgáltatások", - "connectButton_one": "Szolgáltatás használata", - "connectButton_other": "Kiválasztott szolgáltatások használata", - "privacyPolicyLabel": "Adatvédelmi irányelvek" - }, - "push": { - "message": { - "title": "Új üzenet" - }, - "error": { - "title": "A push visszafejtés nem sikerült" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Hangüzenetet küldött", - "bodyWithNumberOfMedia_other": "Elküldött hangüzenetek" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Küldött egy gifet", - "bodyWithNumberOfMedia_other": "Elküldött gifek" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Küldött egy fotót", - "bodyWithNumberOfMedia_other": "Elküldött fotók" - }, - "media": { - "bodyWithNumberOfMedia_one": "Elküldött média", - "bodyWithNumberOfMedia_other": "Elküldött média anyagok" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "Reagált az üzenetre" - }, - "groupInvitation": { - "bodyWithGroupName": "Meghívott a csoportba" - }, - "unknown": { - "body": "Valami új érkezett" - }, - "conversationNameChanged": { - "body": "A beszélgetés neve frissítve" - }, - "memberNameChanged": { - "body": "A megjelenített név frissítve" - }, - "memberPictureChanged": { - "body": "Profilkép frissítve" - }, - "memberDetailsChanged": { - "body": "A résztvevő adatai frissítve" - }, - "replyOptionsOffered": { - "body": "Felkínált válaszlehetőségek" - } - } -} diff --git a/localization/locales/id-ID/localization.json b/localization/locales/id-ID/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/id-ID/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/it-IT/localization.json b/localization/locales/it-IT/localization.json deleted file mode 100644 index e9e055b7..00000000 --- a/localization/locales/it-IT/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Prestazioni" - }, - "psh": { - "name": "Notifiche gruppi", - "description": "", - "benefitBadge": "Prestazioni" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Informativa sulla privacy" - }, - "push": { - "message": { - "title": "Nuovo messaggio" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ja-JP/localization.json b/localization/locales/ja-JP/localization.json deleted file mode 100644 index 3ce9566d..00000000 --- a/localization/locales/ja-JP/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "複製", - "description": "このサービスは自動的に会話を複製し、デバイスに最も効率的なネットワークパフォーマンスを提供します。", - "benefitBadge": "パフォーマンス" - }, - "psh": { - "name": "プッシュ通知", - "description": "このサービスでは、メッセージのプッシュ通知をデバイスが受け取ることができます。", - "benefitBadge": "パフォーマンス" - } - }, - "pageTitle": "Berty サービス", - "connectButton_one": "サービスを使用", - "connectButton_other": "選択したサービスを使用", - "privacyPolicyLabel": "プライバシーポリシー" - }, - "push": { - "message": { - "title": "新しいメッセージ" - }, - "error": { - "title": "プッシュの復号に失敗しました" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "音声メッセージを送信しました", - "bodyWithNumberOfMedia_other": "%[1] 件の音声メッセージを送信しました" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Gif 画像を送信しました", - "bodyWithNumberOfMedia_other": "%[1] 件の gif 画像を送信しました" - }, - "photo": { - "bodyWithNumberOfMedia_one": "写真を送信しました", - "bodyWithNumberOfMedia_other": "%[1] 件の写真を送信しました" - }, - "media": { - "bodyWithNumberOfMedia_one": "メディアを送信しました", - "bodyWithNumberOfMedia_other": "%[1] 件のメディアを送信しました" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v が %[2]v でメッセージに反応しました" - }, - "groupInvitation": { - "bodyWithGroupName": "%[1]v に招待されました" - }, - "unknown": { - "body": "新しいものを受信しました" - }, - "conversationNameChanged": { - "body": "会話名が更新されました。" - }, - "memberNameChanged": { - "body": "表示する名前を更新しました" - }, - "memberPictureChanged": { - "body": "プロフィール画像を更新しました" - }, - "memberDetailsChanged": { - "body": "メンバーの詳細が更新されました" - }, - "replyOptionsOffered": { - "body": "オファーされた返信オプション" - } - } -} diff --git a/localization/locales/ka-GE/localization.json b/localization/locales/ka-GE/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/ka-GE/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ko-KR/localization.json b/localization/locales/ko-KR/localization.json deleted file mode 100644 index 3858e026..00000000 --- a/localization/locales/ko-KR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "성능" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "성능" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "개인정보보호정책" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/my-MM/localization.json b/localization/locales/my-MM/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/my-MM/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/nl-NL/localization.json b/localization/locales/nl-NL/localization.json deleted file mode 100644 index ab8459d4..00000000 --- a/localization/locales/nl-NL/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Prestaties" - }, - "psh": { - "name": "Pushmeldingen", - "description": "", - "benefitBadge": "Prestaties" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Privacy Beleid" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Stuurd een spraakbericht", - "bodyWithNumberOfMedia_other": "Verzonden %[1]v spraak berichten" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Stuur een gif", - "bodyWithNumberOfMedia_other": "Verstuur %[1]v gifs" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Stuur een foto", - "bodyWithNumberOfMedia_other": "Verstuur %[1]v foto's" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reageerde met %[2]v op uw bericht" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/no-NO/localization.json b/localization/locales/no-NO/localization.json deleted file mode 100644 index a0f59fda..00000000 --- a/localization/locales/no-NO/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Ytelse" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Ytelse" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Retningslinjer for personvern" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/pl-PL/localization.json b/localization/locales/pl-PL/localization.json deleted file mode 100644 index 6ee26e0b..00000000 --- a/localization/locales/pl-PL/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Wydajność" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Wydajność" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Polityka prywatności" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/pt-BR/localization.json b/localization/locales/pt-BR/localization.json deleted file mode 100644 index 550dac2b..00000000 --- a/localization/locales/pt-BR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "Replicação", - "description": "Este serviço replicará suas mensagens automaticamente para fornecer melhor desempenho de rede ao seu dispositivo.", - "benefitBadge": "Desempenho" - }, - "psh": { - "name": "Notificações Push", - "description": "Este serviço permite que seu dispositivo receba notificações push para receber mensagens.", - "benefitBadge": "Desempenho" - } - }, - "pageTitle": "Serviços Berty", - "connectButton_one": "Usar serviço", - "connectButton_other": "Utilizar serviços selecionados", - "privacyPolicyLabel": "Política de privacidade" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "Falha na descriptografia do push" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Mensagem de voz enviada", - "bodyWithNumberOfMedia_other": "Enviou %[1]mensagens de voz v" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Enviou um gif", - "bodyWithNumberOfMedia_other": "Enviou %[1]v gifs" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Foto enviada", - "bodyWithNumberOfMedia_other": "Enviou %[1]fotos de v" - }, - "media": { - "bodyWithNumberOfMedia_one": "Mídia enviada", - "bodyWithNumberOfMedia_other": "Enviou %[1] itens de mídia" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reagiu com %[2]v à sua mensagem" - }, - "groupInvitation": { - "bodyWithGroupName": "Convidou você para %[1]v" - }, - "unknown": { - "body": "Algo novo foi recebido" - }, - "conversationNameChanged": { - "body": "O nome da conversa foi atualizado" - }, - "memberNameChanged": { - "body": "Nome de exibição atualizado" - }, - "memberPictureChanged": { - "body": "Foto de perfil atualizada" - }, - "memberDetailsChanged": { - "body": "Detalhe do membro atualizado" - }, - "replyOptionsOffered": { - "body": "Opções de resposta oferecidas" - } - } -} diff --git a/localization/locales/pt-PT/localization.json b/localization/locales/pt-PT/localization.json deleted file mode 100644 index aacf4131..00000000 --- a/localization/locales/pt-PT/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Desempenho" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Desempenho" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Mensagem de voz enviada", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ro-RO/localization.json b/localization/locales/ro-RO/localization.json deleted file mode 100644 index f71cc96a..00000000 --- a/localization/locales/ro-RO/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Performanță" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Performanță" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "Politica de confidenţialitate" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/ru-RU/localization.json b/localization/locales/ru-RU/localization.json deleted file mode 100644 index 416bc7ca..00000000 --- a/localization/locales/ru-RU/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "Копирование", - "description": "Данная служба автоматически скопирует твои беседы, чтобы обеспечить наиболее эффективную работу устройства.", - "benefitBadge": "Скорость" - }, - "psh": { - "name": "Push-уведомления", - "description": "Эта служба позволяет твоему устройству получать push-уведомления о новых сообщениях.", - "benefitBadge": "Скорость" - } - }, - "pageTitle": "Сервисы Berty", - "connectButton_one": "Использовать сервис", - "connectButton_other": "Использовать выбранные сервисы", - "privacyPolicyLabel": "Политика конфиденциальности" - }, - "push": { - "message": { - "title": "Новое сообщение" - }, - "error": { - "title": "Ошибка Push-расшифровки" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Голосовое сообщение отправлено", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Gif отправлено", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Фото отправлено", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "Медиа отправлено", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "Что-то новое было получено" - }, - "conversationNameChanged": { - "body": "Название чата было обновлено" - }, - "memberNameChanged": { - "body": "Отображаемое имя обновлено" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/sl-SI/localization.json b/localization/locales/sl-SI/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/sl-SI/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/sr-Cyrl/localization.json b/localization/locales/sr-Cyrl/localization.json deleted file mode 100644 index e1096da9..00000000 --- a/localization/locales/sr-Cyrl/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Перформансе" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Перформансе" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/sv-SE/localization.json b/localization/locales/sv-SE/localization.json deleted file mode 100644 index 1012d98b..00000000 --- a/localization/locales/sv-SE/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "P2P replikering", - "description": "Tjänsten replikerar automatiskt dina konversationer för att ge din enhet den mest effektiva nätverksprestandan.", - "benefitBadge": "Prestanda" - }, - "psh": { - "name": "Push-aviseringar", - "description": "Denna tjänst gör att enheten kan ta emot push-meddelanden för inkommande meddelanden.", - "benefitBadge": "Prestanda" - } - }, - "pageTitle": "Berty-tjänster", - "connectButton_one": "Använd tjänst", - "connectButton_other": "Använd valda tjänster", - "privacyPolicyLabel": "Integritetspolicy" - }, - "push": { - "message": { - "title": "Nytt meddelande" - }, - "error": { - "title": "Push-dekryptering misslyckades" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Skickade ett röstmeddelande", - "bodyWithNumberOfMedia_other": "Skickade %[1]v röstmeddelanden" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Skickade en gif", - "bodyWithNumberOfMedia_other": "Skickade %[1]v gifs" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Skickade ett foto", - "bodyWithNumberOfMedia_other": "Skickade %[1]v st foton" - }, - "media": { - "bodyWithNumberOfMedia_one": "Skickade media", - "bodyWithNumberOfMedia_other": "Skickade %[1]v media objekt" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v reagerade med %[2]v till ditt meddelande" - }, - "groupInvitation": { - "bodyWithGroupName": "Bjöd in dig till %[1]v" - }, - "unknown": { - "body": "Något nytt har mottagits" - }, - "conversationNameChanged": { - "body": "Konversationens namn har uppdaterats" - }, - "memberNameChanged": { - "body": "Visningsnamn uppdaterat" - }, - "memberPictureChanged": { - "body": "Profilbild uppdaterad" - }, - "memberDetailsChanged": { - "body": "Medlemsdetaljer uppdaterade" - }, - "replyOptionsOffered": { - "body": "Svarsalternativ erbjuds" - } - } -} diff --git a/localization/locales/te-IN/localization.json b/localization/locales/te-IN/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/te-IN/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/tr-TR/localization.json b/localization/locales/tr-TR/localization.json deleted file mode 100644 index bcd12e3b..00000000 --- a/localization/locales/tr-TR/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "Performans" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "Performans" - } - }, - "pageTitle": "Berty Servisleri", - "connectButton_one": "Servisi kullan", - "connectButton_other": "Seçili servisleri kullan", - "privacyPolicyLabel": "Gizlilik politikası" - }, - "push": { - "message": { - "title": "Yeni mesaj" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "Bir sesli mesaj gönderildi", - "bodyWithNumberOfMedia_other": "%[1]v adet sesli mesaj gönderildi" - }, - "gif": { - "bodyWithNumberOfMedia_one": "Bir gif gönderildi", - "bodyWithNumberOfMedia_other": "%[1]v adet gif gönderildi" - }, - "photo": { - "bodyWithNumberOfMedia_one": "Bir fotoğraf gönderildi", - "bodyWithNumberOfMedia_other": "%[1]v tane fotoğraf gönderildi" - }, - "media": { - "bodyWithNumberOfMedia_one": "Medya gönderildi", - "bodyWithNumberOfMedia_other": "%[1]v adet medya gönderildi" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v mesajına %[2]v ile tepki verdi" - }, - "groupInvitation": { - "bodyWithGroupName": "Seni %[1]v grubuna davet etti" - }, - "unknown": { - "body": "Yeni bir şeyler geldi" - }, - "conversationNameChanged": { - "body": "Sohbet ismi güncellendi" - }, - "memberNameChanged": { - "body": "Görüntülenen isim güncellendi" - }, - "memberPictureChanged": { - "body": "Profil fotoğrafı güncellendi" - }, - "memberDetailsChanged": { - "body": "Üye detayı güncellendi" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/uk-UA/localization.json b/localization/locales/uk-UA/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/uk-UA/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/vi-VN/localization.json b/localization/locales/vi-VN/localization.json deleted file mode 100644 index a402fee2..00000000 --- a/localization/locales/vi-VN/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "" - }, - "psh": { - "name": "", - "description": "", - "benefitBadge": "" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/locales/zh-CN/localization.json b/localization/locales/zh-CN/localization.json deleted file mode 100644 index 007e91f4..00000000 --- a/localization/locales/zh-CN/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "P2P 复制", - "description": "此服务将自动复制您的对话,为您的设备提供最高效的网络性能。", - "benefitBadge": "性能" - }, - "psh": { - "name": "推送通知", - "description": "此服务允许您的设备接收传入消息的推送通知。", - "benefitBadge": "性能" - } - }, - "pageTitle": "Berty 服务", - "connectButton_one": "使用服务", - "connectButton_other": "使用选定的服务", - "privacyPolicyLabel": "隐私策略" - }, - "push": { - "message": { - "title": "新消息" - }, - "error": { - "title": "推送解密失败" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "发送了语音消息", - "bodyWithNumberOfMedia_other": "已发送 %[1]v 语音消息" - }, - "gif": { - "bodyWithNumberOfMedia_one": "发送了 gif", - "bodyWithNumberOfMedia_other": "已发送 %[1]v gif" - }, - "photo": { - "bodyWithNumberOfMedia_one": "发送了照片", - "bodyWithNumberOfMedia_other": "已发送 %[1]v 照片" - }, - "media": { - "bodyWithNumberOfMedia_one": "发送媒体", - "bodyWithNumberOfMedia_other": "已发送 %[1]v 个媒体" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "%[1]v 与 %[2]v 回应您的消息" - }, - "groupInvitation": { - "bodyWithGroupName": "邀请您加入 '%[1]v' 群组" - }, - "unknown": { - "body": "收到了一些新消息" - }, - "conversationNameChanged": { - "body": "会话名称已更新" - }, - "memberNameChanged": { - "body": "昵称已更新" - }, - "memberPictureChanged": { - "body": "个人资料图片已更新" - }, - "memberDetailsChanged": { - "body": "会员详情已更新" - }, - "replyOptionsOffered": { - "body": "提供的回复选项" - } - } -} diff --git a/localization/locales/zh-TW/localization.json b/localization/locales/zh-TW/localization.json deleted file mode 100644 index ca5690f8..00000000 --- a/localization/locales/zh-TW/localization.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "auth": { - "services": { - "rpl": { - "name": "", - "description": "", - "benefitBadge": "性能" - }, - "psh": { - "name": "推送通知", - "description": "", - "benefitBadge": "性能" - } - }, - "pageTitle": "", - "connectButton_one": "", - "connectButton_other": "", - "privacyPolicyLabel": "隱私策略" - }, - "push": { - "message": { - "title": "" - }, - "error": { - "title": "" - }, - "voiceMessage": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "gif": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "photo": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "media": { - "bodyWithNumberOfMedia_one": "", - "bodyWithNumberOfMedia_other": "" - }, - "reaction": { - "bodyWithDisplayNameAndEmoji": "" - }, - "groupInvitation": { - "bodyWithGroupName": "" - }, - "unknown": { - "body": "" - }, - "conversationNameChanged": { - "body": "" - }, - "memberNameChanged": { - "body": "" - }, - "memberPictureChanged": { - "body": "" - }, - "memberDetailsChanged": { - "body": "" - }, - "replyOptionsOffered": { - "body": "" - } - } -} diff --git a/localization/localization.go b/localization/localization.go deleted file mode 100644 index 37e6dc7b..00000000 --- a/localization/localization.go +++ /dev/null @@ -1,50 +0,0 @@ -package localization - -import ( - "embed" - "fmt" - "sync" - - "golang.org/x/text/language" - - "berty.tech/weshnet/internal/i18n" -) - -//go:embed locales -var locales embed.FS - -var defaultlang = language.MustParse("en-US") - -var ( - muCatalog sync.Mutex - catalog *i18n.Catalog -) - -func loadCatalog() (*i18n.Catalog, error) { - if catalog != nil { - return catalog, nil - } - - cat := i18n.NewCatalog(defaultlang) - if err := cat.Populate(locales); err != nil { - return nil, fmt.Errorf("unable to populate catalog: %w", err) - } - - return cat, nil -} - -func Catalog() *i18n.Catalog { - muCatalog.Lock() - defer muCatalog.Unlock() - - if catalog != nil { - return catalog - } - - cat, err := loadCatalog() - if err != nil { - panic(err) - } - - return cat -} diff --git a/localization/localization_test.go b/localization/localization_test.go deleted file mode 100644 index e2ddd0fe..00000000 --- a/localization/localization_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package localization - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestLoadCatalog(t *testing.T) { - _, err := loadCatalog() - require.NoError(t, err) -} diff --git a/pkg/authtypes/consts.go b/pkg/authtypes/consts.go deleted file mode 100644 index a398b661..00000000 --- a/pkg/authtypes/consts.go +++ /dev/null @@ -1,20 +0,0 @@ -package authtypes - -type ContextAuthValue uint32 - -const ( - AuthResponseType = "code" - AuthGrantType = "authorization_code" - AuthRedirect = "berty://services-auth/" - AuthClientID = "berty" - AuthCodeChallengeMethod = "S256" - - ServiceReplicationID = "rpl" - ServicePushID = "psh" - - ContextTokenHashField ContextAuthValue = iota - ContextTokenIssuerField - - AuthHTTPPathTokenExchange = "/oauth/token" // nolint:gosec - AuthHTTPPathAuthorize = "/authorize" -) diff --git a/pkg/bertyauth/auth_session.go b/pkg/bertyauth/auth_session.go deleted file mode 100644 index 119ec63e..00000000 --- a/pkg/bertyauth/auth_session.go +++ /dev/null @@ -1,51 +0,0 @@ -package bertyauth - -import ( - "crypto/sha256" - "encoding/base64" - - "berty.tech/weshnet/pkg/cryptoutil" -) - -type AuthSession struct { - State string - CodeVerifier string // CodeVerifier base64 encoded random value - BaseURL string -} - -func AuthSessionCodeChallenge(codeVerifier string) string { - codeChallenge := sha256.Sum256([]byte(codeVerifier)) - - return base64.RawURLEncoding.EncodeToString(codeChallenge[:]) -} - -func AuthSessionCodeVerifierAndChallenge() (string, string, error) { - verifierArr, err := cryptoutil.GenerateNonce() - if err != nil { - return "", "", err - } - - verifier := base64.RawURLEncoding.EncodeToString(verifierArr[:]) - - return verifier, AuthSessionCodeChallenge(verifier), nil -} - -func NewAuthSession(baseURL string) (*AuthSession, string, error) { - state, err := cryptoutil.GenerateNonce() - if err != nil { - return nil, "", err - } - - verifier, challenge, err := AuthSessionCodeVerifierAndChallenge() - if err != nil { - return nil, "", err - } - - auth := &AuthSession{ - BaseURL: baseURL, - State: base64.RawURLEncoding.EncodeToString(state[:]), - CodeVerifier: verifier, - } - - return auth, challenge, nil -} diff --git a/pkg/bertyauth/services_auth.go b/pkg/bertyauth/services_auth.go deleted file mode 100644 index 8f0f92f4..00000000 --- a/pkg/bertyauth/services_auth.go +++ /dev/null @@ -1,246 +0,0 @@ -package bertyauth - -import ( - "context" - stdcrypto "crypto" - "crypto/ed25519" - "encoding/base64" - "fmt" - - "github.com/gofrs/uuid" - grpc_auth "github.com/grpc-ecosystem/go-grpc-middleware/auth" - "golang.org/x/crypto/nacl/secretbox" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "gopkg.in/square/go-jose.v2" - - "berty.tech/weshnet/pkg/authtypes" - "berty.tech/weshnet/pkg/cryptoutil" - "berty.tech/weshnet/pkg/errcode" - "berty.tech/weshnet/pkg/protocoltypes" -) - -type AuthTokenVerifier struct { - secret *[32]byte - pk stdcrypto.PublicKey - issuerID string -} - -type AuthTokenIssuer struct { - *AuthTokenVerifier - signer jose.Signer -} - -func NewAuthTokenVerifier(secret []byte, pk ed25519.PublicKey) (*AuthTokenVerifier, error) { - if pk == nil { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("pk is nil")) - } - - secretArr, err := cryptoutil.KeySliceToArray(secret) - if err != nil { - return nil, errcode.ErrInvalidInput.Wrap(err) - } - - return &AuthTokenVerifier{ - secret: secretArr, - pk: pk, - issuerID: base64.StdEncoding.EncodeToString(pk), - }, nil -} - -func NewAuthTokenIssuer(secret []byte, sk ed25519.PrivateKey) (*AuthTokenIssuer, error) { - if sk == nil { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("sk is nil")) - } - - tokVerifier, err := NewAuthTokenVerifier(secret, sk.Public().(ed25519.PublicKey)) - if err != nil { - return nil, err - } - - signer, err := jose.NewSigner(jose.SigningKey{ - Algorithm: jose.EdDSA, - Key: sk, - }, &jose.SignerOptions{}) - if err != nil { - return nil, err - } - - return &AuthTokenIssuer{ - AuthTokenVerifier: tokVerifier, - signer: signer, - }, nil -} - -func (r *AuthTokenIssuer) encryptSign(payload []byte) (string, error) { - nonce, err := cryptoutil.GenerateNonce() - if err != nil { - return "", err - } - - encrypted := secretbox.Seal(nil, payload, nonce, r.secret) - - jws, err := r.signer.Sign(append(nonce[:], encrypted...)) - if err != nil { - return "", err - } - - tok, err := jws.CompactSerialize() - if err != nil { - return "", err - } - - return tok, nil -} - -func (r *AuthTokenIssuer) IssueCode(codeChallenge string, services []string) (string, error) { - if len(services) == 0 { - return "", errcode.ErrInvalidInput.Wrap(fmt.Errorf("no services specified")) - } - - if len(codeChallenge) == 0 { - return "", errcode.ErrInvalidInput.Wrap(fmt.Errorf("no codeChallenge specified")) - } - - codePayload := &protocoltypes.ServicesTokenCode{ - Services: services, - CodeChallenge: codeChallenge, - } - - payload, err := codePayload.Marshal() - if err != nil { - return "", err - } - - return r.encryptSign(payload) -} - -func (r *AuthTokenVerifier) decryptVerify(token string) ([]byte, error) { - parsed, err := jose.ParseSigned(token) - if err != nil { - return nil, err - } - - data, err := parsed.Verify(r.pk) - if err != nil { - return nil, err - } - - if len(data) < secretbox.Overhead+cryptoutil.NonceSize { - return nil, errcode.ErrCryptoDecrypt - } - - nonce := [cryptoutil.NonceSize]byte{} - for i := 0; i < cryptoutil.NonceSize; i++ { - nonce[i] = data[i] - } - - decrypted, ok := secretbox.Open(nil, data[cryptoutil.NonceSize:], &nonce, r.secret) - if !ok { - return nil, errcode.ErrCryptoDecrypt - } - - return decrypted, nil -} - -func (r *AuthTokenVerifier) VerifyCode(code, codeVerifier string) (*protocoltypes.ServicesTokenCode, error) { - decrypted, err := r.decryptVerify(code) - if err != nil { - return nil, err - } - - codeObj := &protocoltypes.ServicesTokenCode{} - if err := codeObj.Unmarshal(decrypted); err != nil { - return nil, err - } - - if AuthSessionCodeChallenge(codeVerifier) != codeObj.CodeChallenge { - return nil, errcode.ErrServicesAuthCodeChallenge - } - - return codeObj, nil -} - -func (r *AuthTokenIssuer) IssueToken(services []string) (string, error) { - tokenID, err := uuid.NewV4() - if err != nil { - return "", errcode.ErrInternal.Wrap(err) - } - - if len(services) == 0 { - return "", errcode.ErrInvalidInput.Wrap(fmt.Errorf("no services specified")) - } - - tokenPayload := &protocoltypes.ServicesTokenCode{ - Services: services, - TokenID: tokenID.String(), - } - - payload, err := tokenPayload.Marshal() - if err != nil { - return "", err - } - - return r.encryptSign(payload) -} - -func (r *AuthTokenVerifier) VerifyToken(token, serviceID string) (*protocoltypes.ServicesTokenCode, error) { - decrypted, err := r.decryptVerify(token) - if err != nil { - return nil, err - } - - tokenObj := &protocoltypes.ServicesTokenCode{} - if err := tokenObj.Unmarshal(decrypted); err != nil { - return nil, err - } - - if tokenObj.TokenID == "" || tokenObj.CodeChallenge != "" { - return nil, errcode.ErrServicesAuthServiceInvalidToken - } - - for _, s := range tokenObj.Services { - if s == serviceID { - return tokenObj, nil - } - } - - return nil, errcode.ErrServicesAuthServiceNotSupported -} - -func (r *AuthTokenVerifier) GRPCAuthInterceptor(serviceID string) func(ctx context.Context) (context.Context, error) { - return func(ctx context.Context) (context.Context, error) { - token, err := grpc_auth.AuthFromMD(ctx, "bearer") - if err != nil { - return nil, err - } - - tokenData, err := r.VerifyToken(token, serviceID) - if err != nil { - return nil, status.Errorf(codes.PermissionDenied, err.Error()) - } - - ctx = context.WithValue(ctx, authtypes.ContextTokenHashField, tokenData.TokenID) - ctx = context.WithValue(ctx, authtypes.ContextTokenIssuerField, r.issuerID) - - return ctx, nil - } -} - -func GetAuthTokenVerifier(secret, pk string) (*AuthTokenVerifier, error) { - rawSecret, err := base64.RawStdEncoding.DecodeString(secret) - if err != nil { - return nil, err - } - - rawPK, err := base64.RawStdEncoding.DecodeString(pk) - if err != nil { - return nil, err - } - - if len(rawPK) != ed25519.PublicKeySize { - return nil, fmt.Errorf("empty or invalid pk size") - } - - return NewAuthTokenVerifier(rawSecret, rawPK) -} diff --git a/pkg/bertyauth/services_auth_server.go b/pkg/bertyauth/services_auth_server.go deleted file mode 100644 index 3fbf9b4f..00000000 --- a/pkg/bertyauth/services_auth_server.go +++ /dev/null @@ -1,342 +0,0 @@ -package bertyauth - -import ( - "crypto/ed25519" - "encoding/json" - "fmt" - "html/template" - "net/http" - "net/url" - "strings" - - "go.uber.org/zap" - "golang.org/x/text/language" - "golang.org/x/text/message" - - "berty.tech/weshnet/internal/i18n" - "berty.tech/weshnet/localization" - "berty.tech/weshnet/pkg/authtypes" - "berty.tech/weshnet/pkg/errcode" -) - -type AuthTokenServer struct { - issuer *AuthTokenIssuer - services map[string]string - logger *zap.Logger - noClick bool - defaultScope []string - knownServices map[string]struct{} - authPageTemplate *template.Template - i18n *i18n.Catalog - privacyPolicyURL string -} - -type AuthTokenOptions struct { - NoClick bool - Logger *zap.Logger - PrivacyPolicyURL string -} - -func NewAuthTokenServer(secret []byte, sk ed25519.PrivateKey, services map[string]string, opts *AuthTokenOptions) (*AuthTokenServer, error) { - if opts == nil { - opts = &AuthTokenOptions{} - } - - if opts.Logger == nil { - opts.Logger = zap.NewNop() - } - - if len(services) == 0 { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("missing services list")) - } - - issuer, err := NewAuthTokenIssuer(secret, sk) - if err != nil { - return nil, err - } - - var defaultScope []string - knownServices := map[string]struct{}{} - for service := range services { - defaultScope = append(defaultScope, service) - knownServices[service] = struct{}{} - } - - authPageTemplate, err := template.New("authPageTemplate").Parse(templateAuthTokenServerAuthorizeButton) - if err != nil { - return nil, err - } - - return &AuthTokenServer{ - issuer: issuer, - services: services, - logger: opts.Logger, - noClick: opts.NoClick, - defaultScope: defaultScope, - knownServices: knownServices, - authPageTemplate: authPageTemplate, - i18n: localization.Catalog(), - privacyPolicyURL: opts.PrivacyPolicyURL, - }, nil -} - -func (a *AuthTokenServer) serveMux() *http.ServeMux { - mux := http.NewServeMux() - mux.HandleFunc(authtypes.AuthHTTPPathTokenExchange, a.authTokenServerHTTPOAuthToken) - mux.HandleFunc(authtypes.AuthHTTPPathAuthorize, a.authTokenServerHTTPAuthorize) - - return mux -} - -func (a *AuthTokenServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { - a.serveMux().ServeHTTP(w, r) -} - -func (a *AuthTokenServer) authTokenServerRedirectError(w http.ResponseWriter, redirectURI, errorDescription string, logger *zap.Logger) { - u := fmt.Sprintf("%s?error=invalid_request&error_description=%s", redirectURI, url.QueryEscape(errorDescription)) - a.authTokenServerRedirect(w, u, logger) -} - -func (a *AuthTokenServer) authTokenServerJSONError(w http.ResponseWriter, errorCode, errorDescription string, logger *zap.Logger) { - a.authTokenServerJSONResponse(w, map[string]string{ - "error": errorCode, - "error_description": errorDescription, - }, 400, logger) -} - -func (a *AuthTokenServer) authTokenServerJSONResponse(w http.ResponseWriter, jsonData interface{}, httpCode int, logger *zap.Logger) { - data, err := json.Marshal(jsonData) - if err != nil { - logger.Error("unable to marshal JSON response", zap.Error(err)) - w.WriteHeader(500) - return - } - - w.Header().Add("content-type", "application/json") - w.WriteHeader(httpCode) - - if _, err := fmt.Fprint(w, string(data)); err != nil { - logger.Error("unable to write response", zap.Error(err)) - } -} - -func (a *AuthTokenServer) authTokenServerRedirect(w http.ResponseWriter, url string, logger *zap.Logger) { - w.Header().Add("x-auth-redirect", url) - w.WriteHeader(200) - - if err := templateAuthTokenServerRedirect.Execute(w, struct { - URL template.URL - }{ - URL: template.URL(url), // nolint:gosec - }); err != nil { - logger.Error("unable to write redirect response", zap.Error(err)) - w.WriteHeader(500) - } -} - -func (a *AuthTokenServer) filterKnownServices(userServices []string) []string { - outServices := []string(nil) - - for _, service := range userServices { - if _, ok := a.knownServices[service]; ok { - outServices = append(outServices, service) - } - } - return outServices -} - -func (a *AuthTokenServer) authTokenServerHTTPAuthorize(w http.ResponseWriter, r *http.Request) { - redirectURI := r.URL.Query().Get("redirect_uri") - state := r.URL.Query().Get("state") - codeChallenge := r.URL.Query().Get("code_challenge") - scopeStr := r.URL.Query().Get("scope") - var scope []string - - if r.URL.Query().Get("redirect_uri") != authtypes.AuthRedirect { - w.WriteHeader(400) - reply, err := json.Marshal(map[string]interface{}{ - "error": "unexpected value for redirect_uri", - }) - - if err == nil { - _, err = w.Write(reply) - if err != nil { - a.logger.Error("unable to write on stream", zap.Error(err)) - } - return - } - - return - } - - for _, vs := range [][2]string{ - {"response_type", authtypes.AuthResponseType}, - {"client_id", authtypes.AuthClientID}, - {"code_challenge_method", authtypes.AuthCodeChallengeMethod}, - } { - if got := r.URL.Query().Get(vs[0]); got != vs[1] { - a.authTokenServerRedirectError(w, redirectURI, fmt.Sprintf("unexpected value for %s", vs[0]), a.logger) - return - } - } - - if state == "" { - a.authTokenServerRedirectError(w, redirectURI, "unexpected value for state", a.logger) - return - } - - if codeChallenge == "" { - a.authTokenServerRedirectError(w, redirectURI, "unexpected value for code_challenge", a.logger) - return - } - - if scopeStr == "" { - scope = a.defaultScope - } else { - scope = a.filterKnownServices(strings.Split(scopeStr, ",")) - } - - if len(scope) == 0 { - a.authTokenServerRedirectError(w, redirectURI, "no services matching requested scope", a.logger) - return - } - - if r.Method == "POST" || a.noClick { - selectedScope := []string(nil) - if a.noClick { - selectedScope = scope - } else { - for _, key := range scope { - if r.PostFormValue(fmt.Sprintf("%s_selected", key)) == "1" { - selectedScope = append(selectedScope, key) - } - } - } - - if len(selectedScope) == 0 { - a.authTokenServerRedirectError(w, redirectURI, "no services matching selected scope", a.logger) - return - } - - // TODO: csrf - code, err := a.issuer.IssueCode(codeChallenge, selectedScope) - if err != nil { - a.logger.Error("unable to generate token", zap.Error(err)) - w.WriteHeader(500) - return - } - - u := fmt.Sprintf("%s?code=%s&state=%s", redirectURI, code, state) - a.authTokenServerRedirect(w, u, a.logger) - return - } - - var ( - i18nPrinter *message.Printer - htmlLang = "en-US" - ) - - tags, _, err := language.ParseAcceptLanguage(r.Header.Get("Accept-Language")) - if err != nil || len(tags) == 0 { - a.logger.Info("unable to parse language", zap.Error(err)) - i18nPrinter = a.i18n.NewPrinter() - } else { - i18nPrinter = a.i18n.NewPrinter(tags...) - - preferred, _, _ := a.i18n.Builder.Matcher().Match(tags...) - htmlLang = preferred.String() - } - - err = a.authPageTemplate.Execute(w, &map[string]interface{}{ - "HTMLLang": htmlLang, - "PageTitle": i18nPrinter.Sprintf("auth.pageTitle"), - "Services": formatServiceDescription(scope, i18nPrinter), - "ConnectButton": i18nPrinter.Sprintf("auth.connectButton", len(scope)), - "PrivacyPolicyURL": a.privacyPolicyURL, - "PrivacyPolicyURLLabel": i18nPrinter.Sprintf("auth.privacyPolicyLabel"), - }) - - if err != nil { - a.logger.Error("unable to execute template", zap.Error(err)) - } -} - -func formatServiceDescription(services []string, i18nPrinter *message.Printer) map[string]map[string]string { - ret := map[string]map[string]string{} - - for _, service := range services { - ret[service] = map[string]string{ - "name": i18nPrinter.Sprintf(fmt.Sprintf("auth.services.%s.name", service)), - "benefitBadge": i18nPrinter.Sprintf(fmt.Sprintf("auth.services.%s.benefitBadge", service)), - "description": i18nPrinter.Sprintf(fmt.Sprintf("auth.services.%s.description", service)), - } - } - - return ret -} - -func (a *AuthTokenServer) authTokenServerHTTPOAuthToken(w http.ResponseWriter, r *http.Request) { - if err := r.ParseForm(); err != nil { - w.WriteHeader(400) - return - } - - if got := r.Form.Get("grant_type"); authtypes.AuthGrantType != got { - a.authTokenServerJSONError(w, "invalid_request", fmt.Sprintf("expected %s, got %s for %s", authtypes.AuthGrantType, got, "grant_type"), a.logger) - return - } - - codeData, err := a.issuer.VerifyCode(r.Form.Get("code"), r.Form.Get("code_verifier")) - if err != nil { - a.authTokenServerJSONError(w, "invalid_request", "invalid value for code", a.logger) - return - } - - token, err := a.issuer.IssueToken(codeData.Services) - if err != nil { - a.authTokenServerJSONError(w, "server_error", "unable to issue token", a.logger) - return - } - - allowedServices := map[string]string{} - for _, svc := range codeData.Services { - allowedServices[svc] = a.services[svc] - } - - a.authTokenServerJSONResponse(w, map[string]interface{}{ - "access_token": token, - "token_type": "bearer", - "scope": strings.Join(codeData.Services, ","), - "services": allowedServices, - }, 200, a.logger) -} - -func (a *AuthTokenServer) IssueRandomTokenForServices() (string, error) { - return IssueRandomToken(a.issuer, a.services) -} - -func IssueRandomToken(issuer *AuthTokenIssuer, services map[string]string) (string, error) { - servicesKeys := []string(nil) - for key := range services { - servicesKeys = append(servicesKeys, key) - } - - token, err := issuer.IssueToken(servicesKeys) - if err != nil { - return "", err - } - - data := map[string]interface{}{ - "access_token": token, - "token_type": "bearer", - "scope": strings.Join(servicesKeys, ","), - "services": services, - } - - jsoned, err := json.Marshal(data) - if err != nil { - return "", err - } - - return string(jsoned), nil -} diff --git a/pkg/bertyauth/services_auth_server_test.go b/pkg/bertyauth/services_auth_server_test.go deleted file mode 100644 index 8a14c48c..00000000 --- a/pkg/bertyauth/services_auth_server_test.go +++ /dev/null @@ -1,209 +0,0 @@ -package bertyauth - -import ( - "bytes" - "html/template" - "io" - "net/http" - "net/http/httptest" - "net/url" - "testing" - - "github.com/stretchr/testify/require" - - "berty.tech/weshnet/pkg/authtypes" -) - -func mustReadAllBytes(t *testing.T, reader io.ReadCloser) []byte { - data, err := io.ReadAll(reader) - _ = reader.Close() - require.NoError(t, err) - - return data -} - -func patchClient(client *http.Client) *http.Client { - client.CheckRedirect = func(req *http.Request, via []*http.Request) error { - return http.ErrUseLastResponse - } - - return client -} - -func TestNewAuthTokenServer(t *testing.T) { - services := map[string]string{ - "rpl": "servicehost:1234", - "psh": "servicehost:1234", - } - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - - ats, err := NewAuthTokenServer(secret, nil, services, nil) - require.Error(t, err) - require.Nil(t, ats) - - ats, err = NewAuthTokenServer(secret, sk, nil, nil) - require.Error(t, err) - require.Nil(t, ats) - - ats, err = NewAuthTokenServer(secret, sk, map[string]string{}, nil) - require.Error(t, err) - require.Nil(t, ats) - - ats, err = NewAuthTokenServer(nil, sk, services, nil) - require.Error(t, err) - require.Nil(t, ats) - - ats, err = NewAuthTokenServer(secret, sk, services, nil) - require.NoError(t, err) - require.NotNil(t, ats) - - ats, err = NewAuthTokenServer(secret, sk, services, nil) - require.NoError(t, err) - require.NotNil(t, ats) - - mux := ats.serveMux() - server := httptest.NewServer(mux) - - patchClient(server.Client()) - - defer server.Close() - - res, err := patchClient(server.Client()).Get(server.URL) - require.NoError(t, err) - require.Equal(t, 404, res.StatusCode) - - authorizeURL, err := url.Parse(server.URL) - require.NoError(t, err) - - authorizeURL.Path = authtypes.AuthHTTPPathAuthorize - - res, err = server.Client().Get(authorizeURL.String()) - require.NoError(t, err) - require.Equal(t, 400, res.StatusCode) - require.Equal(t, `{"error":"unexpected value for redirect_uri"}`, string(mustReadAllBytes(t, res.Body))) - - responseRedirectURI, err := url.Parse(authtypes.AuthRedirect) - require.NoError(t, err) - setURLParam(responseRedirectURI, "error", "invalid_request") - setURLParam(responseRedirectURI, "error_description", "unexpected value for response_type") - - setURLParam(authorizeURL, "redirect_uri", authtypes.AuthRedirect) - - testAuthorizeQueryURLAndCompareResponse(t, server, authorizeURL, responseRedirectURI) - - setURLParam(authorizeURL, "response_type", authtypes.AuthResponseType) - setURLParam(responseRedirectURI, "error_description", "unexpected value for client_id") - - testAuthorizeQueryURLAndCompareResponse(t, server, authorizeURL, responseRedirectURI) - - setURLParam(authorizeURL, "client_id", authtypes.AuthClientID) - setURLParam(responseRedirectURI, "error_description", "unexpected value for code_challenge_method") - - testAuthorizeQueryURLAndCompareResponse(t, server, authorizeURL, responseRedirectURI) - - setURLParam(authorizeURL, "code_challenge_method", authtypes.AuthCodeChallengeMethod) - setURLParam(responseRedirectURI, "error_description", "unexpected value for state") - - testAuthorizeQueryURLAndCompareResponse(t, server, authorizeURL, responseRedirectURI) - - setURLParam(authorizeURL, "state", "some_state") - setURLParam(responseRedirectURI, "error_description", "unexpected value for code_challenge") - - testAuthorizeQueryURLAndCompareResponse(t, server, authorizeURL, responseRedirectURI) - - setURLParam(authorizeURL, "code_challenge", "some_code_challenge") - setURLParam(responseRedirectURI, "error_description", "unexpected value for code_challenge") - - res, err = server.Client().Get(authorizeURL.String()) - require.NoError(t, err) - require.Equal(t, 200, res.StatusCode) - body := string(mustReadAllBytes(t, res.Body)) - require.Contains(t, body, "psh_selected") - require.Contains(t, body, "rpl_selected") - - res, err = server.Client().PostForm(authorizeURL.String(), url.Values{ - "psh_selected": {"1"}, - "rpl_selected": {"1"}, - }) - require.NoError(t, err) - require.Equal(t, 200, res.StatusCode) - require.Contains(t, string(mustReadAllBytes(t, res.Body)), "?code=eyJ") -} - -func TestNewAuthTokenServerNoClick(t *testing.T) { - services := map[string]string{ - "rpl": "servicehost:1234", - "psh": "servicehost:1234", - } - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - - ats, err := NewAuthTokenServer(secret, sk, services, &AuthTokenOptions{ - NoClick: true, - }) - require.NoError(t, err) - require.NotNil(t, ats) - - mux := ats.serveMux() - server := httptest.NewServer(mux) - - patchClient(server.Client()) - - defer server.Close() - - authorizeURL, err := url.Parse(server.URL) - require.NoError(t, err) - - authorizeURL.Path = authtypes.AuthHTTPPathAuthorize - - setURLParam(authorizeURL, "redirect_uri", authtypes.AuthRedirect) - setURLParam(authorizeURL, "response_type", authtypes.AuthResponseType) - setURLParam(authorizeURL, "client_id", authtypes.AuthClientID) - setURLParam(authorizeURL, "code_challenge_method", authtypes.AuthCodeChallengeMethod) - setURLParam(authorizeURL, "state", "some_state") - setURLParam(authorizeURL, "code_challenge", "some_code_challenge") - - res, err := server.Client().Get(authorizeURL.String()) - require.NoError(t, err) - require.Equal(t, 200, res.StatusCode) - require.Contains(t, string(mustReadAllBytes(t, res.Body)), "?code=eyJ") - require.Contains(t, res.Header.Get("x-auth-redirect"), "?code=eyJ") -} - -func testAuthorizeQueryURLAndCompareResponse(t *testing.T, server *httptest.Server, queryURL *url.URL, redirectURL *url.URL) { - testAuthorizeGetQueryURLAndCompareResponse(t, server, queryURL, redirectURL) - testAuthorizePostQueryURLAndCompareResponse(t, server, queryURL, redirectURL) -} - -func testAuthorizeGetQueryURLAndCompareResponse(t *testing.T, server *httptest.Server, queryURL *url.URL, redirectURL *url.URL) { - res, err := server.Client().Get(queryURL.String()) - require.NoError(t, err) - require.Equal(t, 200, res.StatusCode) - require.Equal(t, string(templateMustExec(t, templateAuthTokenServerRedirect, map[string]template.URL{ - "URL": template.URL(redirectURL.String()), - })), string(mustReadAllBytes(t, res.Body))) - require.Equal(t, redirectURL.String(), res.Header.Get("x-auth-redirect")) -} - -func testAuthorizePostQueryURLAndCompareResponse(t *testing.T, server *httptest.Server, queryURL *url.URL, redirectURL *url.URL) { - res, err := server.Client().Post(queryURL.String(), "multipart/form-data", bytes.NewBuffer([]byte(""))) - require.NoError(t, err) - require.Equal(t, 200, res.StatusCode) - require.Equal(t, string(templateMustExec(t, templateAuthTokenServerRedirect, map[string]template.URL{ - "URL": template.URL(redirectURL.String()), - })), string(mustReadAllBytes(t, res.Body))) - require.Equal(t, redirectURL.String(), res.Header.Get("x-auth-redirect")) -} - -func templateMustExec(t *testing.T, tpl *template.Template, args interface{}) []byte { - b := bytes.NewBuffer(nil) - err := tpl.Execute(b, args) - require.NoError(t, err) - - return b.Bytes() -} - -func setURLParam(u *url.URL, k, v string) { - q := u.Query() - q.Set(k, v) - u.RawQuery = q.Encode() -} diff --git a/pkg/bertyauth/services_auth_templates.go b/pkg/bertyauth/services_auth_templates.go deleted file mode 100644 index c8cc56c8..00000000 --- a/pkg/bertyauth/services_auth_templates.go +++ /dev/null @@ -1,14 +0,0 @@ -package bertyauth - -import ( - _ "embed" - "html/template" -) - -//go:embed templates/redirect.html.tmpl -var templateAuthTokenServerRedirectStr string - -//go:embed templates/authorize.html.tmpl -var templateAuthTokenServerAuthorizeButton string - -var templateAuthTokenServerRedirect = template.Must(template.New("redirect").Parse(templateAuthTokenServerRedirectStr)) diff --git a/pkg/bertyauth/services_auth_test.go b/pkg/bertyauth/services_auth_test.go deleted file mode 100644 index 78ceabab..00000000 --- a/pkg/bertyauth/services_auth_test.go +++ /dev/null @@ -1,190 +0,0 @@ -package bertyauth - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestNewAuthTokenVerifier(t *testing.T) { - secret, pk, _ := HelperGenerateTokenIssuerSecrets(t) - verifier, err := NewAuthTokenVerifier(secret, pk) - - require.NoError(t, err) - require.NotNil(t, verifier) - - verifier, err = NewAuthTokenVerifier(secret, nil) - - require.Error(t, err) - require.Nil(t, verifier) - - secret = []byte{1, 2, 3} - verifier, err = NewAuthTokenVerifier(secret, pk) - - require.Error(t, err) - require.Nil(t, verifier) -} - -func TestNewAuthTokenIssuer(t *testing.T) { - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - issuer, err := NewAuthTokenIssuer(secret, sk) - - require.NoError(t, err) - require.NotNil(t, issuer) - - issuer, err = NewAuthTokenIssuer(secret, nil) - require.Error(t, err) - require.Nil(t, issuer) - - issuer, err = NewAuthTokenIssuer(nil, sk) - require.Error(t, err) - require.Nil(t, issuer) - - secret = []byte{1, 2, 3} - issuer, err = NewAuthTokenIssuer(secret, sk) - require.Error(t, err) - require.Nil(t, issuer) -} - -func TestIssueCode(t *testing.T) { - _, challenge, err := AuthSessionCodeVerifierAndChallenge() - require.NoError(t, err) - - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - issuer, err := NewAuthTokenIssuer(secret, sk) - - require.NoError(t, err) - require.NotNil(t, issuer) - - code, err := issuer.IssueCode(challenge, []string{}) - require.Error(t, err) - require.Empty(t, code) - - code, err = issuer.IssueCode(challenge, nil) - require.Error(t, err) - require.Empty(t, code) - - code, err = issuer.IssueCode("", []string{"service"}) - require.Error(t, err) - require.Empty(t, code) - - code, err = issuer.IssueCode(challenge, []string{"service"}) - require.NoError(t, err) - require.NotEmpty(t, code) - - code2, err := issuer.IssueCode(challenge, []string{"service"}) - require.NoError(t, err) - require.NotEmpty(t, code) - - require.NotEqual(t, code, code2) -} - -func TestAuthSessionCodeChallenge(t *testing.T) { - require.Equal(t, AuthSessionCodeChallenge("verifier"), "iMnq5o6zALKXGivsnlom_0F5_WYda32GHkxlV7mq7hQ") -} - -func TestVerifyCode(t *testing.T) { - services := []string{"service"} - - verifier, challenge, err := AuthSessionCodeVerifierAndChallenge() - require.NoError(t, err) - - _, otherChallenge, err := AuthSessionCodeVerifierAndChallenge() - require.NoError(t, err) - - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - issuer, err := NewAuthTokenIssuer(secret, sk) - - require.NoError(t, err) - require.NotNil(t, issuer) - - code, err := issuer.IssueCode(challenge, services) - require.NoError(t, err) - require.NotEmpty(t, code) - - otherCode, err := issuer.IssueCode(otherChallenge, services) - require.NoError(t, err) - require.NotEmpty(t, code) - - tokenCode, err := issuer.VerifyCode(code, verifier) - require.NoError(t, err) - require.NotEmpty(t, tokenCode) - require.Equal(t, services, tokenCode.Services) - require.Equal(t, challenge, tokenCode.CodeChallenge) - - tokenCode, err = issuer.VerifyCode(code, "rubbish") - require.Error(t, err) - require.Empty(t, tokenCode) - - tokenCode, err = issuer.VerifyCode("rubbish", verifier) - require.Error(t, err) - require.Empty(t, tokenCode) - - tokenCode, err = issuer.VerifyCode(otherCode, verifier) - require.Error(t, err) - require.Empty(t, tokenCode) -} - -func TestIssueToken(t *testing.T) { - services := []string{"service"} - - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - issuer, err := NewAuthTokenIssuer(secret, sk) - require.NoError(t, err) - require.NotNil(t, issuer) - - token, err := issuer.IssueToken(services) - require.NoError(t, err) - require.NotEmpty(t, token) - - token2, err := issuer.IssueToken(services) - require.NoError(t, err) - require.NotEmpty(t, token) - require.NotEqual(t, token, token2) - - token, err = issuer.IssueToken(nil) - require.Error(t, err) - require.Empty(t, token) - - token, err = issuer.IssueToken([]string{}) - require.Error(t, err) - require.Empty(t, token) -} - -func TestVerifyToken(t *testing.T) { - services := []string{"service"} - - secret, _, sk := HelperGenerateTokenIssuerSecrets(t) - issuer, err := NewAuthTokenIssuer(secret, sk) - require.NoError(t, err) - require.NotNil(t, issuer) - - secret2, _, sk2 := HelperGenerateTokenIssuerSecrets(t) - issuer2, err := NewAuthTokenIssuer(secret2, sk2) - require.NoError(t, err) - require.NotNil(t, issuer2) - - token, err := issuer.IssueToken(services) - require.NoError(t, err) - require.NotEmpty(t, token) - - tokenCode, err := issuer.VerifyToken(token, "service") - require.NoError(t, err) - require.NotEmpty(t, tokenCode) - - tokenCode, err = issuer.VerifyToken(token, "service2") - require.Error(t, err) - require.Empty(t, tokenCode) - - tokenCode, err = issuer2.VerifyToken(token, "service") - require.Error(t, err) - require.Empty(t, tokenCode) - - tokenCode, err = issuer.VerifyToken(token, "") - require.Error(t, err) - require.Empty(t, tokenCode) - - tokenCode, err = issuer.VerifyToken("", "service") - require.Error(t, err) - require.Empty(t, tokenCode) -} diff --git a/pkg/bertyauth/templates/authorize.html.tmpl b/pkg/bertyauth/templates/authorize.html.tmpl deleted file mode 100644 index 961903d2..00000000 --- a/pkg/bertyauth/templates/authorize.html.tmpl +++ /dev/null @@ -1,118 +0,0 @@ - - - - - {{.PageTitle}} - - - -
-
-
-

{{ .PageTitle }}

- {{ $singleService := len .Services }} - {{ range $key, $service := .Services }} - -

- {{ .description }} -

- {{end}} - -
- {{ if .PrivacyPolicyURL }} - {{ .PrivacyPolicyURLLabel }} - {{ end }} -
-
- - diff --git a/pkg/bertyauth/templates/redirect.html.tmpl b/pkg/bertyauth/templates/redirect.html.tmpl deleted file mode 100644 index 5bd411ac..00000000 --- a/pkg/bertyauth/templates/redirect.html.tmpl +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Redirect - - -
- -
- - - diff --git a/pkg/bertyauth/testing.go b/pkg/bertyauth/testing.go deleted file mode 100644 index 22061522..00000000 --- a/pkg/bertyauth/testing.go +++ /dev/null @@ -1,24 +0,0 @@ -package bertyauth - -import ( - "crypto/ed25519" - crand "crypto/rand" - "testing" - - "github.com/stretchr/testify/require" - - "berty.tech/weshnet/pkg/cryptoutil" -) - -func HelperGenerateTokenIssuerSecrets(t *testing.T) ([]byte, ed25519.PublicKey, ed25519.PrivateKey) { - t.Helper() - - pk, sk, err := ed25519.GenerateKey(crand.Reader) - require.NoError(t, err) - - secret := make([]byte, cryptoutil.KeySize) - _, err = crand.Read(secret) - require.NoError(t, err) - - return secret, pk, sk -} diff --git a/pkg/errcode/errcode.pb.go b/pkg/errcode/errcode.pb.go index f96368f3..120dda85 100644 --- a/pkg/errcode/errcode.pb.go +++ b/pkg/errcode/errcode.pb.go @@ -101,16 +101,6 @@ const ( ErrGroupOpen ErrCode = 1311 ErrMessageKeyPersistencePut ErrCode = 1500 ErrMessageKeyPersistenceGet ErrCode = 1501 - ErrServicesAuth ErrCode = 4000 - ErrServicesAuthNotInitialized ErrCode = 4001 - ErrServicesAuthWrongState ErrCode = 4002 - ErrServicesAuthInvalidResponse ErrCode = 4003 - ErrServicesAuthServer ErrCode = 4004 - ErrServicesAuthCodeChallenge ErrCode = 4005 - ErrServicesAuthServiceInvalidToken ErrCode = 4006 - ErrServicesAuthServiceNotSupported ErrCode = 4007 - ErrServicesAuthUnknownToken ErrCode = 4008 - ErrServicesAuthInvalidURL ErrCode = 4009 ErrServiceReplication ErrCode = 4100 ErrServiceReplicationServer ErrCode = 4101 ErrServiceReplicationMissingEndpoint ErrCode = 4102 @@ -200,16 +190,6 @@ var ErrCode_name = map[int32]string{ 1311: "ErrGroupOpen", 1500: "ErrMessageKeyPersistencePut", 1501: "ErrMessageKeyPersistenceGet", - 4000: "ErrServicesAuth", - 4001: "ErrServicesAuthNotInitialized", - 4002: "ErrServicesAuthWrongState", - 4003: "ErrServicesAuthInvalidResponse", - 4004: "ErrServicesAuthServer", - 4005: "ErrServicesAuthCodeChallenge", - 4006: "ErrServicesAuthServiceInvalidToken", - 4007: "ErrServicesAuthServiceNotSupported", - 4008: "ErrServicesAuthUnknownToken", - 4009: "ErrServicesAuthInvalidURL", 4100: "ErrServiceReplication", 4101: "ErrServiceReplicationServer", 4102: "ErrServiceReplicationMissingEndpoint", @@ -299,16 +279,6 @@ var ErrCode_value = map[string]int32{ "ErrGroupOpen": 1311, "ErrMessageKeyPersistencePut": 1500, "ErrMessageKeyPersistenceGet": 1501, - "ErrServicesAuth": 4000, - "ErrServicesAuthNotInitialized": 4001, - "ErrServicesAuthWrongState": 4002, - "ErrServicesAuthInvalidResponse": 4003, - "ErrServicesAuthServer": 4004, - "ErrServicesAuthCodeChallenge": 4005, - "ErrServicesAuthServiceInvalidToken": 4006, - "ErrServicesAuthServiceNotSupported": 4007, - "ErrServicesAuthUnknownToken": 4008, - "ErrServicesAuthInvalidURL": 4009, "ErrServiceReplication": 4100, "ErrServiceReplicationServer": 4101, "ErrServiceReplicationMissingEndpoint": 4102, @@ -385,96 +355,88 @@ func init() { func init() { proto.RegisterFile("errcode/errcode.proto", fileDescriptor_fb5abb189af31c1a) } var fileDescriptor_fb5abb189af31c1a = []byte{ - // 1413 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xc9, 0x6f, 0x54, 0x47, - 0x1a, 0xa7, 0x61, 0xf0, 0x52, 0x1e, 0xf0, 0x47, 0x61, 0x8c, 0xd9, 0xdc, 0x0d, 0xc3, 0xcc, 0x30, - 0x48, 0xd8, 0x33, 0x0c, 0x1a, 0x69, 0xa4, 0x5c, 0xda, 0xee, 0x06, 0x2c, 0xe3, 0x45, 0xdd, 0x26, - 0x48, 0xb9, 0x95, 0x5f, 0x7d, 0x7e, 0x5d, 0xf8, 0x75, 0xd5, 0xa3, 0x5e, 0xb5, 0x71, 0x93, 0xe4, - 0x96, 0x44, 0xca, 0x2d, 0x91, 0xc8, 0x46, 0xf6, 0x3d, 0x91, 0x82, 0x94, 0xed, 0x8f, 0x20, 0x09, - 0x8b, 0x21, 0x39, 0x26, 0x52, 0xc2, 0x89, 0x2d, 0xc9, 0x35, 0xc7, 0xa8, 0xea, 0x95, 0xdb, 0xdd, - 0x76, 0x9b, 0x28, 0xa7, 0xee, 0xf7, 0xfb, 0x7e, 0xdf, 0x5e, 0xf5, 0x7d, 0x45, 0x76, 0xa0, 0xd6, - 0x81, 0xe2, 0x38, 0xec, 0x7f, 0x87, 0x62, 0xad, 0x8c, 0xa2, 0xbd, 0xe7, 0x31, 0xa9, 0x48, 0x34, - 0x43, 0x1e, 0xde, 0xdd, 0x17, 0xaa, 0x50, 0x39, 0xd9, 0xb0, 0xfd, 0x97, 0xd2, 0x0e, 0x3c, 0x42, - 0x48, 0x51, 0xeb, 0x02, 0x1a, 0x26, 0xa2, 0x84, 0x0e, 0x91, 0xcd, 0x96, 0x9b, 0x0c, 0x64, 0x72, - 0x9b, 0x0e, 0x6d, 0x3d, 0x3a, 0x30, 0xb4, 0xca, 0xc8, 0x50, 0x51, 0xeb, 0x51, 0xc5, 0xb1, 0x94, - 0xd2, 0x0e, 0x5f, 0xee, 0x27, 0x9d, 0x1e, 0xa2, 0x5b, 0x48, 0xf7, 0x69, 0xc9, 0x71, 0x4e, 0x48, - 0xe4, 0xb0, 0x81, 0x76, 0x93, 0xbf, 0xcc, 0x4c, 0x15, 0xa6, 0xe0, 0xd2, 0x66, 0xda, 0x4f, 0xb6, - 0x15, 0xb5, 0x9e, 0x54, 0x66, 0xac, 0x1a, 0x47, 0x58, 0x45, 0x69, 0x90, 0xc3, 0xb3, 0x1d, 0x14, - 0x48, 0x4f, 0x51, 0xeb, 0x31, 0x69, 0x50, 0x4b, 0x16, 0xc1, 0x6f, 0x1d, 0x74, 0x3b, 0xe9, 0x75, - 0xc8, 0x02, 0x8b, 0x04, 0x1f, 0x93, 0x71, 0xcd, 0x00, 0x6f, 0x05, 0x4b, 0x4c, 0x86, 0x08, 0xe8, - 0xc1, 0x09, 0x91, 0x24, 0x42, 0x86, 0x29, 0x73, 0x8e, 0xf6, 0x11, 0x28, 0x6a, 0x5d, 0x46, 0x2d, - 0x58, 0x24, 0x2e, 0x30, 0x23, 0x94, 0x84, 0x90, 0xf6, 0x13, 0xea, 0x52, 0x4c, 0x5a, 0xf0, 0x0a, - 0xdd, 0x46, 0xb6, 0x58, 0xb6, 0xd1, 0xc8, 0xaa, 0x25, 0x64, 0x1c, 0x04, 0xa5, 0x64, 0x6b, 0x03, - 0x3a, 0xa3, 0x85, 0x41, 0x38, 0xeb, 0xd5, 0x53, 0x6c, 0x46, 0x33, 0x99, 0xcc, 0x29, 0x5d, 0x05, - 0x49, 0x77, 0x91, 0x1d, 0x0d, 0xbc, 0x8c, 0x92, 0xe7, 0x25, 0x1f, 0x8d, 0x54, 0x82, 0xa0, 0xe8, - 0x00, 0xe9, 0x6b, 0x88, 0x4e, 0x22, 0xe3, 0xa8, 0x53, 0x63, 0x31, 0xdd, 0x49, 0xb6, 0xaf, 0x92, - 0x38, 0xcf, 0x49, 0x4b, 0x30, 0x65, 0x21, 0xe7, 0xe1, 0x5c, 0x8b, 0x03, 0x67, 0x39, 0x2f, 0x79, - 0x09, 0x83, 0x05, 0xd0, 0x3e, 0x51, 0x9f, 0xfd, 0x04, 0x8b, 0xc7, 0xb1, 0x0e, 0xf3, 0x74, 0x6b, - 0xda, 0xcb, 0x91, 0xd4, 0x59, 0x64, 0x3b, 0xe2, 0xbe, 0x9d, 0x8b, 0x2a, 0x05, 0xf2, 0x57, 0xf7, - 0x59, 0xc0, 0xc4, 0x68, 0x55, 0x87, 0xc5, 0x06, 0x32, 0x21, 0x42, 0xcd, 0x0c, 0x42, 0x9d, 0xf6, - 0xba, 0x96, 0x58, 0x95, 0x38, 0x62, 0x75, 0xb8, 0xd0, 0xa0, 0x94, 0x30, 0x31, 0x4a, 0x23, 0x3c, - 0xde, 0xb0, 0x3a, 0x15, 0xa3, 0x84, 0x27, 0x1a, 0x4e, 0xd3, 0xdc, 0x9f, 0xa4, 0x83, 0x64, 0x97, - 0x3d, 0x11, 0xba, 0x1e, 0x1b, 0x55, 0x62, 0x92, 0xab, 0xea, 0x09, 0x94, 0xa8, 0xd3, 0xa2, 0x5f, - 0xc9, 0xd0, 0x3d, 0xa4, 0xbf, 0x21, 0x1f, 0xc7, 0x7a, 0x93, 0xf0, 0xab, 0x0c, 0xdd, 0x47, 0x06, - 0x1a, 0xc2, 0x49, 0x25, 0x03, 0x6c, 0x12, 0x7f, 0x9d, 0xa1, 0x3b, 0x5d, 0x2b, 0x52, 0x71, 0x59, - 0x84, 0x92, 0x99, 0x9a, 0x46, 0xf8, 0x26, 0x43, 0xff, 0x46, 0x06, 0xd7, 0x0a, 0x1e, 0x45, 0x2d, - 0xe6, 0x44, 0x90, 0x6a, 0x5f, 0xcd, 0xd0, 0x1d, 0xae, 0x68, 0x29, 0xa9, 0x80, 0x81, 0xfd, 0x85, - 0x6b, 0x19, 0xba, 0x97, 0xec, 0x5c, 0x0d, 0x4f, 0xb3, 0x7a, 0xa4, 0x18, 0x87, 0xeb, 0xad, 0x4a, - 0x45, 0x99, 0x2a, 0xdd, 0x58, 0x93, 0xc5, 0xa8, 0x92, 0x0b, 0xa8, 0x13, 0xeb, 0x68, 0x29, 0x43, - 0x07, 0x5c, 0x93, 0x53, 0xe1, 0xa8, 0x88, 0x2b, 0xa8, 0xc7, 0xa4, 0x30, 0x70, 0x73, 0x8d, 0x5a, - 0x01, 0xb5, 0x58, 0x48, 0xe3, 0xbb, 0x95, 0xa1, 0x3d, 0xa4, 0xc3, 0x36, 0x95, 0xc5, 0xf0, 0xc9, - 0x46, 0xda, 0xeb, 0xca, 0x7a, 0x5c, 0xe9, 0x22, 0x0b, 0x2a, 0x70, 0x79, 0x23, 0xdd, 0xee, 0x8e, - 0xe6, 0x38, 0xd6, 0x5d, 0x1f, 0x4e, 0xa0, 0x81, 0xe7, 0x36, 0xad, 0x02, 0xa7, 0x6b, 0x06, 0x9e, - 0xdf, 0xe4, 0xaf, 0xd5, 0xa4, 0x32, 0xc7, 0x55, 0x4d, 0x72, 0xb8, 0xb8, 0x4c, 0x9b, 0xd2, 0xb3, - 0xc2, 0x14, 0x46, 0x5c, 0x2c, 0x77, 0x3a, 0x5b, 0x41, 0xd7, 0xcc, 0xbb, 0x9d, 0x3e, 0x5d, 0x0f, - 0xe6, 0xe3, 0x18, 0x25, 0x87, 0x7b, 0x9d, 0xbe, 0xa9, 0x1e, 0x5e, 0x7d, 0x93, 0xee, 0x77, 0xfa, - 0x8c, 0xbd, 0xbc, 0x6c, 0x63, 0x19, 0x65, 0x89, 0x81, 0x07, 0x9d, 0xf4, 0x9f, 0xe4, 0x40, 0x51, - 0xeb, 0x93, 0x4c, 0xf2, 0xa4, 0xc2, 0xe6, 0x71, 0xea, 0xbc, 0x2c, 0xc6, 0x15, 0xac, 0xa2, 0x66, - 0x51, 0xda, 0x7d, 0x7b, 0x75, 0xe0, 0x6a, 0x17, 0xfd, 0x3b, 0xc9, 0x35, 0x13, 0xa7, 0x11, 0x75, - 0x33, 0xd3, 0x1d, 0xfc, 0x6b, 0x5d, 0x74, 0x98, 0x1c, 0x6e, 0xa6, 0x95, 0xf0, 0x5c, 0x0d, 0x13, - 0x83, 0x3a, 0x5f, 0x33, 0x15, 0x94, 0xc6, 0xb6, 0x1b, 0x47, 0xd4, 0x62, 0x6a, 0x1b, 0xae, 0x77, - 0xd1, 0x7f, 0x91, 0x83, 0xad, 0x0a, 0x49, 0xac, 0x24, 0x47, 0x9d, 0x0f, 0x02, 0x8c, 0xcd, 0x0a, - 0xf5, 0x46, 0x17, 0xcd, 0x92, 0xdd, 0x6d, 0x6d, 0x9f, 0xc4, 0x28, 0x52, 0xb0, 0xd4, 0x86, 0xe0, - 0x6d, 0xa5, 0x84, 0x9b, 0x5d, 0xf4, 0x1f, 0x64, 0xff, 0x1f, 0x46, 0x07, 0xb7, 0xba, 0x68, 0x8e, - 0xec, 0x79, 0x48, 0x50, 0xf0, 0xed, 0x9a, 0x72, 0xac, 0x58, 0x0a, 0xe6, 0xa5, 0x3a, 0x1f, 0x21, - 0x0f, 0x11, 0xbe, 0xeb, 0xa2, 0xfb, 0xc9, 0x5e, 0x37, 0x7f, 0xa5, 0x61, 0x81, 0xf1, 0xa4, 0x32, - 0xab, 0x62, 0x3e, 0x08, 0x54, 0x4d, 0x1a, 0xf8, 0xb4, 0xdb, 0x17, 0xa0, 0x95, 0xe2, 0xbf, 0xf2, - 0x91, 0x46, 0xc6, 0xeb, 0x79, 0xce, 0x91, 0xc3, 0x67, 0xdd, 0xf4, 0x20, 0xc9, 0xae, 0x47, 0x1d, - 0x89, 0x54, 0x30, 0x8f, 0x1c, 0x3e, 0xef, 0xf6, 0x49, 0xb6, 0x65, 0xad, 0x2c, 0x80, 0x2f, 0xba, - 0xe9, 0x11, 0x72, 0x68, 0x0d, 0x6f, 0x4c, 0x06, 0xaa, 0x2a, 0x64, 0xe8, 0x3d, 0x97, 0x30, 0x40, - 0xb1, 0x80, 0x1c, 0xbe, 0xec, 0xf6, 0xc5, 0x3d, 0xa1, 0x55, 0x2d, 0x9e, 0xc0, 0xea, 0x2c, 0xea, - 0x53, 0x2a, 0x2c, 0x2e, 0xa0, 0x34, 0xee, 0x6c, 0x5e, 0x24, 0x3e, 0xba, 0x36, 0x84, 0x95, 0x51, - 0xf0, 0x02, 0xf1, 0x15, 0x69, 0x62, 0x9d, 0x96, 0xb6, 0x62, 0xd2, 0x21, 0x63, 0x05, 0x78, 0x91, - 0xd0, 0x03, 0x64, 0xdf, 0x32, 0xa5, 0x8c, 0x81, 0x46, 0x33, 0x65, 0x2a, 0x68, 0x17, 0x84, 0x49, - 0x35, 0xe0, 0x25, 0xe2, 0x93, 0x6c, 0xe2, 0xf8, 0x88, 0xcb, 0x28, 0xcd, 0x8c, 0xf2, 0xbc, 0x97, - 0x89, 0x3f, 0xf9, 0xa9, 0xf1, 0x74, 0x43, 0xcd, 0xd4, 0x63, 0x84, 0x57, 0x08, 0xed, 0x73, 0x1b, - 0x2a, 0x0d, 0x24, 0x1d, 0xd4, 0x70, 0x89, 0xf8, 0x0b, 0xe6, 0xd0, 0x7c, 0x60, 0xec, 0xed, 0x47, - 0x78, 0x95, 0xf8, 0xc9, 0xe6, 0xe0, 0x02, 0xb2, 0x65, 0xc1, 0x6b, 0x84, 0x6e, 0x73, 0xf3, 0xd7, - 0xdb, 0x9f, 0x53, 0xf0, 0x7a, 0x8b, 0x61, 0x9f, 0x1b, 0xbc, 0xd1, 0x42, 0x74, 0x05, 0x7b, 0x93, - 0xf8, 0x53, 0x36, 0x81, 0x49, 0xc2, 0x42, 0x1c, 0xc7, 0xfa, 0xb4, 0x1d, 0x51, 0x89, 0x41, 0x19, - 0xb8, 0x51, 0xf1, 0x7d, 0xcf, 0xc3, 0x18, 0x76, 0xc2, 0xfc, 0xd0, 0xe3, 0x9d, 0x95, 0x51, 0x2f, - 0x88, 0x00, 0x13, 0x7b, 0x8e, 0xe1, 0xad, 0xac, 0xaf, 0x60, 0x33, 0x6a, 0xb7, 0xbb, 0x14, 0xc6, - 0x8d, 0x05, 0xe4, 0xf0, 0x76, 0xd6, 0xcf, 0x8c, 0x66, 0xce, 0x19, 0xad, 0x64, 0x58, 0x36, 0x36, - 0xb3, 0x77, 0xb2, 0x7e, 0x66, 0x37, 0xcb, 0x97, 0x57, 0xbc, 0xbb, 0x0d, 0x09, 0xc2, 0xbb, 0x59, - 0xba, 0x3b, 0xdd, 0x81, 0x4d, 0x24, 0xfb, 0x1f, 0x35, 0xbc, 0x97, 0xf5, 0x9d, 0x6e, 0x96, 0xd9, - 0x77, 0xc8, 0x68, 0x85, 0x45, 0x11, 0xda, 0x47, 0xc2, 0xfb, 0x59, 0x3f, 0x7d, 0x56, 0xab, 0x8b, - 0x00, 0x97, 0x7b, 0xa5, 0xe6, 0x51, 0xc2, 0x07, 0x0f, 0x21, 0x4e, 0x2a, 0x53, 0xae, 0xc5, 0xb1, - 0xd2, 0xf6, 0xcd, 0xf2, 0x61, 0xd6, 0x57, 0xac, 0x99, 0xe8, 0x7b, 0x90, 0x9a, 0xfa, 0xa8, 0x5d, - 0xde, 0xde, 0xd9, 0xe9, 0xd2, 0x29, 0xf8, 0x78, 0x55, 0x4a, 0x76, 0xcf, 0x2e, 0xaf, 0xa8, 0xa7, - 0x72, 0xad, 0xd6, 0x9b, 0x64, 0x3e, 0xe9, 0xa7, 0x73, 0xfe, 0x36, 0xaf, 0x65, 0xf8, 0x23, 0x56, - 0x94, 0x3c, 0x56, 0x42, 0x1a, 0x78, 0x26, 0x47, 0x77, 0xa5, 0xaf, 0x10, 0x1f, 0x48, 0x41, 0x68, - 0x0c, 0x8c, 0xd2, 0x75, 0xb8, 0x93, 0xa3, 0xff, 0x27, 0xc7, 0xda, 0x89, 0x7c, 0xa0, 0xe9, 0xe2, - 0x44, 0x3e, 0xaa, 0x91, 0xdb, 0xa9, 0xc5, 0xa2, 0x72, 0x6d, 0xf6, 0x2c, 0x06, 0x06, 0xee, 0xe6, - 0xfc, 0x00, 0x5e, 0xa3, 0x5a, 0x5c, 0x14, 0x89, 0x11, 0x32, 0x2c, 0x61, 0xa0, 0x34, 0x6f, 0x2c, - 0x9f, 0x7b, 0x39, 0xfa, 0x3f, 0xf2, 0x9f, 0x76, 0x0a, 0x29, 0xf1, 0x94, 0x9b, 0x2a, 0xf6, 0xe9, - 0xc4, 0xa4, 0x19, 0x71, 0x09, 0xb1, 0x00, 0x39, 0xdc, 0xcf, 0xd1, 0x63, 0x64, 0xb8, 0xbd, 0x23, - 0x9b, 0xb3, 0x30, 0x9e, 0x7a, 0x3c, 0x62, 0xa1, 0x9d, 0x2d, 0x42, 0x23, 0x87, 0x07, 0x39, 0x7a, - 0x94, 0x1c, 0xf9, 0x53, 0x99, 0xc1, 0xcf, 0xeb, 0xea, 0x14, 0x17, 0x63, 0x6b, 0xb5, 0x8d, 0xce, - 0x2f, 0xeb, 0x46, 0xb7, 0xae, 0x9f, 0xb1, 0x02, 0xfc, 0x9a, 0x1b, 0xf9, 0xf7, 0xd2, 0x4f, 0x83, - 0x1b, 0xae, 0xdc, 0x1e, 0xcc, 0x2c, 0xdd, 0x1e, 0xcc, 0xfc, 0x78, 0x7b, 0x30, 0xf3, 0xd8, 0xe0, - 0x2c, 0x6a, 0x53, 0x1f, 0x32, 0x18, 0x54, 0x86, 0xfd, 0x63, 0x7b, 0x38, 0x9e, 0x0f, 0x97, 0x1f, - 0xf3, 0xb3, 0x1d, 0xee, 0x99, 0xfe, 0xdf, 0xdf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x5d, 0x98, - 0xbc, 0xe6, 0x0b, 0x00, 0x00, + // 1290 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x5b, 0x6f, 0x5b, 0xc5, + 0x16, 0xae, 0xdb, 0xd3, 0x5c, 0x26, 0xa7, 0xcd, 0xea, 0x24, 0x6d, 0xd3, 0x9b, 0xeb, 0xf6, 0xf4, + 0x9c, 0x53, 0x2a, 0x35, 0x81, 0x52, 0x21, 0x21, 0xf1, 0xe2, 0xc4, 0x6e, 0x6b, 0xa5, 0x69, 0x22, + 0x3b, 0x05, 0x89, 0xb7, 0xc9, 0x9e, 0x95, 0xed, 0x69, 0xb6, 0x67, 0x76, 0x67, 0x8f, 0xdd, 0xb8, + 0xc0, 0x1b, 0x20, 0xf1, 0x06, 0x52, 0xb9, 0x95, 0xdb, 0x1f, 0x00, 0x89, 0xdb, 0x8f, 0x28, 0xd0, + 0x4b, 0x5a, 0x78, 0x03, 0x24, 0xe8, 0x53, 0x6f, 0xc0, 0x2b, 0x8f, 0x68, 0xcf, 0x4c, 0x1c, 0x3b, + 0x76, 0x8a, 0x78, 0xb2, 0xf7, 0xb7, 0xbe, 0x75, 0x9f, 0x59, 0x6b, 0xc8, 0x4e, 0xd4, 0x3a, 0x50, + 0x1c, 0x27, 0xfc, 0xef, 0x78, 0xac, 0x95, 0x51, 0x74, 0xf8, 0x12, 0x26, 0x55, 0x89, 0x66, 0xdc, + 0xc3, 0x7b, 0x47, 0x43, 0x15, 0x2a, 0x2b, 0x9b, 0x48, 0xff, 0x39, 0xda, 0xe1, 0xe7, 0x08, 0x29, + 0x6a, 0x5d, 0x40, 0xc3, 0x44, 0x94, 0xd0, 0x71, 0xb2, 0x35, 0xe5, 0x26, 0x63, 0x99, 0xdc, 0x96, + 0xa3, 0xdb, 0x4f, 0x8c, 0x8d, 0xaf, 0x33, 0x32, 0x5e, 0xd4, 0x7a, 0x4a, 0x71, 0x2c, 0x3b, 0xda, + 0xb1, 0x1f, 0x47, 0x48, 0xbf, 0x87, 0xe8, 0x36, 0x32, 0x78, 0x5e, 0x72, 0x5c, 0x14, 0x12, 0x39, + 0x6c, 0xa2, 0x83, 0xe4, 0x5f, 0xf3, 0xb3, 0x85, 0x59, 0xb8, 0xba, 0x95, 0xee, 0x22, 0x3b, 0x8a, + 0x5a, 0x9f, 0x53, 0xa6, 0x54, 0x8b, 0x23, 0xac, 0xa1, 0x34, 0xc8, 0xe1, 0x8d, 0x3e, 0x0a, 0x64, + 0xa8, 0xa8, 0x75, 0x49, 0x1a, 0xd4, 0x92, 0x45, 0xf0, 0x67, 0x1f, 0x1d, 0x21, 0xc3, 0x16, 0x69, + 0xb0, 0x48, 0xf0, 0x92, 0x8c, 0xeb, 0x06, 0x78, 0x27, 0x58, 0x66, 0x32, 0x44, 0x40, 0x0f, 0xce, + 0x88, 0x24, 0x11, 0x32, 0x74, 0xcc, 0x45, 0x3a, 0x4a, 0xa0, 0xa8, 0x75, 0x05, 0xb5, 0x60, 0x91, + 0xb8, 0xcc, 0x8c, 0x50, 0x12, 0x42, 0xba, 0x8b, 0x50, 0x9b, 0x62, 0xd2, 0x81, 0x57, 0xe9, 0x0e, + 0xb2, 0x2d, 0x65, 0x1b, 0x8d, 0xac, 0x56, 0x46, 0xc6, 0x41, 0x50, 0x4a, 0xb6, 0xb7, 0xa0, 0x17, + 0xb4, 0x30, 0x08, 0x17, 0xbc, 0xba, 0xc3, 0xe6, 0x35, 0x93, 0xc9, 0xa2, 0xd2, 0x35, 0x90, 0x74, + 0x0f, 0xd9, 0xd9, 0xc2, 0x2b, 0x28, 0x79, 0x5e, 0xf2, 0xa9, 0x48, 0x25, 0x08, 0x8a, 0x8e, 0x91, + 0xd1, 0x96, 0xe8, 0x0c, 0x32, 0x8e, 0xda, 0x19, 0x8b, 0xe9, 0x6e, 0x32, 0xb2, 0x4e, 0x62, 0x3d, + 0x27, 0x1d, 0xc1, 0x54, 0x84, 0x5c, 0x82, 0x8b, 0x1d, 0x0e, 0xac, 0xe5, 0xbc, 0xe4, 0x65, 0x0c, + 0x1a, 0xa0, 0x7d, 0xa2, 0x3e, 0xfb, 0x19, 0x16, 0x4f, 0x63, 0x13, 0x96, 0xe8, 0x76, 0xd7, 0xcb, + 0x49, 0xe7, 0x2c, 0x4a, 0x3b, 0x62, 0xbf, 0xad, 0x8b, 0x1a, 0x05, 0xf2, 0x6f, 0xfb, 0x59, 0xc0, + 0xc4, 0x68, 0xd5, 0x84, 0xe5, 0x16, 0x32, 0x23, 0x42, 0xcd, 0x0c, 0x42, 0x93, 0x0e, 0xdb, 0x96, + 0xa4, 0x2a, 0x71, 0xc4, 0x9a, 0x70, 0xb9, 0x45, 0x29, 0x63, 0x62, 0x94, 0x46, 0x78, 0xa9, 0x65, + 0x75, 0x36, 0x46, 0x09, 0x2f, 0xb7, 0x9c, 0xba, 0xdc, 0x5f, 0xa1, 0x59, 0xb2, 0x27, 0x3d, 0x11, + 0xba, 0x19, 0x1b, 0x55, 0x66, 0x92, 0xab, 0xda, 0x69, 0x94, 0xa8, 0x5d, 0xd1, 0xaf, 0x65, 0xe8, + 0x3e, 0xb2, 0xab, 0x25, 0x9f, 0xc6, 0x66, 0x9b, 0xf0, 0x9b, 0x0c, 0x3d, 0x40, 0xc6, 0x5a, 0xc2, + 0x73, 0x4a, 0x06, 0xd8, 0x26, 0xfe, 0x36, 0x43, 0x77, 0xdb, 0x56, 0x38, 0x71, 0x45, 0x84, 0x92, + 0x99, 0xba, 0x46, 0xf8, 0x2e, 0x43, 0xff, 0x43, 0xb2, 0xdd, 0x82, 0xe7, 0x51, 0x8b, 0x45, 0x11, + 0x38, 0xed, 0xeb, 0x19, 0xba, 0xd3, 0x16, 0xcd, 0x91, 0x0a, 0x18, 0xa4, 0xbf, 0x70, 0x23, 0x43, + 0xf7, 0x93, 0xdd, 0xeb, 0xe1, 0x39, 0xd6, 0x8c, 0x14, 0xe3, 0x70, 0xb3, 0x53, 0xa9, 0x28, 0x9d, + 0xd2, 0xad, 0xae, 0x2c, 0xa6, 0x94, 0x6c, 0xa0, 0x4e, 0x52, 0x47, 0x2b, 0x19, 0x3a, 0x66, 0x9b, + 0xec, 0x84, 0x53, 0x22, 0xae, 0xa2, 0x2e, 0x49, 0x61, 0xe0, 0x76, 0x97, 0x5a, 0x01, 0xb5, 0x68, + 0xb8, 0xf8, 0xee, 0x64, 0xe8, 0x10, 0xe9, 0x4b, 0x9b, 0xca, 0x62, 0xf8, 0x74, 0x33, 0x1d, 0xb6, + 0x65, 0x3d, 0xa5, 0x74, 0x91, 0x05, 0x55, 0xf8, 0x6c, 0x33, 0x1d, 0xb1, 0x47, 0x73, 0x1a, 0x9b, + 0xb6, 0x0f, 0xa7, 0xd1, 0xc0, 0x9b, 0x5b, 0xd6, 0x81, 0x73, 0x75, 0x03, 0x6f, 0x6d, 0xf1, 0xd7, + 0xea, 0x9c, 0x32, 0xa7, 0x54, 0x5d, 0x72, 0xb8, 0xb2, 0x4a, 0x9b, 0xd5, 0x0b, 0xc2, 0x14, 0x26, + 0x6d, 0x2c, 0xf7, 0xfa, 0x3b, 0x41, 0xdb, 0xcc, 0xfb, 0xfd, 0x3e, 0x5d, 0x0f, 0xe6, 0xe3, 0x18, + 0x25, 0x87, 0x07, 0xfd, 0xbe, 0xa9, 0x1e, 0x5e, 0x7f, 0x93, 0x1e, 0xf6, 0xfb, 0x8c, 0xbd, 0xbc, + 0x92, 0xc6, 0x32, 0xc5, 0x12, 0x03, 0x8f, 0xfa, 0xe9, 0xff, 0xc9, 0xe1, 0xa2, 0xd6, 0x67, 0x98, + 0xe4, 0x49, 0x95, 0x2d, 0xe1, 0xec, 0x25, 0x59, 0x8c, 0xab, 0x58, 0x43, 0xcd, 0x22, 0xd7, 0xfd, + 0xf4, 0xea, 0xc0, 0xf5, 0x01, 0xfa, 0x5f, 0x92, 0x6b, 0x27, 0xce, 0x21, 0xea, 0x76, 0xa6, 0x3d, + 0xf8, 0x37, 0x06, 0xe8, 0x04, 0x39, 0xd6, 0x4e, 0x2b, 0xe3, 0xc5, 0x3a, 0x26, 0x06, 0x75, 0xbe, + 0x6e, 0xaa, 0x28, 0x4d, 0xda, 0x6e, 0x9c, 0x54, 0xcb, 0xce, 0x36, 0xdc, 0x1c, 0xa0, 0x4f, 0x90, + 0x23, 0x9d, 0x0a, 0x49, 0xac, 0x24, 0x47, 0x9d, 0x0f, 0x02, 0x8c, 0xcd, 0x1a, 0xf5, 0xd6, 0x00, + 0x3d, 0x48, 0xf6, 0xf6, 0xb4, 0x7d, 0x06, 0xa3, 0x48, 0xc1, 0x4a, 0x0f, 0x82, 0xb7, 0xe5, 0x08, + 0xb7, 0x07, 0xe8, 0xff, 0xc8, 0xa1, 0xbf, 0x8d, 0x0e, 0xee, 0x0c, 0xd0, 0x1c, 0xd9, 0xf7, 0x98, + 0xa0, 0xe0, 0xfb, 0xae, 0x72, 0xac, 0x59, 0x0a, 0x96, 0xa4, 0xba, 0x14, 0x21, 0x0f, 0x11, 0x7e, + 0x18, 0xa0, 0x87, 0xc8, 0x7e, 0x3b, 0x7f, 0xa5, 0x61, 0x81, 0xf1, 0xa4, 0x0a, 0xab, 0x61, 0x3e, + 0x08, 0x54, 0x5d, 0x1a, 0xf8, 0x7c, 0xd0, 0x17, 0xa0, 0x93, 0xe2, 0xbf, 0xf2, 0x91, 0x46, 0xc6, + 0x9b, 0x79, 0xce, 0x91, 0xc3, 0x17, 0x83, 0xf4, 0x08, 0x39, 0xb8, 0x11, 0x75, 0x32, 0x52, 0xc1, + 0x12, 0x72, 0xf8, 0x72, 0xd0, 0x27, 0xd9, 0x93, 0xb5, 0xb6, 0x00, 0xbe, 0x1a, 0xa4, 0xc7, 0xc9, + 0xd1, 0x2e, 0x5e, 0x49, 0x06, 0xaa, 0x26, 0x64, 0xe8, 0x3d, 0x97, 0x31, 0x40, 0xd1, 0x40, 0x0e, + 0x5f, 0x0f, 0xfa, 0xe2, 0x9e, 0xd6, 0xaa, 0x1e, 0xcf, 0x60, 0x6d, 0x01, 0xf5, 0x59, 0x15, 0x16, + 0x1b, 0x28, 0x8d, 0x3d, 0x9b, 0x57, 0x88, 0x8f, 0xae, 0x07, 0x61, 0x6d, 0x14, 0xbc, 0x4d, 0x7c, + 0x45, 0xda, 0x58, 0xe7, 0x65, 0x5a, 0x31, 0x69, 0x91, 0x52, 0x01, 0xde, 0x21, 0xf4, 0x30, 0x39, + 0xb0, 0x4a, 0xa9, 0x60, 0xa0, 0xd1, 0xcc, 0x9a, 0x2a, 0xa6, 0x0b, 0xc2, 0x38, 0x0d, 0x78, 0x97, + 0xf8, 0x24, 0xdb, 0x38, 0x3e, 0xe2, 0x0a, 0x4a, 0x33, 0xaf, 0x3c, 0xef, 0x3d, 0xe2, 0x4f, 0xbe, + 0x33, 0xee, 0x36, 0xd4, 0x7c, 0x33, 0x46, 0x78, 0x9f, 0xd0, 0x51, 0xbb, 0xa1, 0x5c, 0x20, 0x6e, + 0x50, 0xc3, 0x55, 0xe2, 0x2f, 0x98, 0x45, 0xf3, 0x81, 0x49, 0x6f, 0x3f, 0xc2, 0x07, 0xc4, 0x4f, + 0x36, 0x0b, 0x17, 0x90, 0xad, 0x0a, 0x3e, 0x24, 0x74, 0x87, 0x9d, 0xbf, 0xde, 0xfe, 0xa2, 0x82, + 0x8f, 0x3a, 0x0c, 0xfb, 0xdc, 0xe0, 0xe3, 0x0e, 0xa2, 0x2d, 0xd8, 0x27, 0xc4, 0x9f, 0xb2, 0x19, + 0x4c, 0x12, 0x16, 0xe2, 0x34, 0x36, 0xe7, 0xd2, 0x11, 0x95, 0x18, 0x94, 0x81, 0x1d, 0x15, 0x3f, + 0x0d, 0x3d, 0x8e, 0x91, 0x4e, 0x98, 0x9f, 0x87, 0xe8, 0x5e, 0xb7, 0x84, 0x50, 0x37, 0x44, 0x80, + 0xe9, 0x56, 0x58, 0x1d, 0xa8, 0xaf, 0xe6, 0xbc, 0x76, 0xb7, 0x2c, 0x45, 0x50, 0xc3, 0x6b, 0x39, + 0x7f, 0xf6, 0xba, 0x19, 0xbe, 0x20, 0x45, 0xc9, 0x63, 0x25, 0xa4, 0x81, 0xd7, 0x73, 0x74, 0x8f, + 0xdb, 0x99, 0x8e, 0x9a, 0x14, 0x84, 0xc6, 0xc0, 0x28, 0xdd, 0x84, 0x7b, 0x39, 0xfa, 0x2c, 0x39, + 0xd9, 0x4b, 0xe4, 0xeb, 0xed, 0xc6, 0x3c, 0xf2, 0x29, 0x8d, 0x3c, 0xbd, 0x63, 0x2c, 0xaa, 0xd4, + 0x17, 0x2e, 0x60, 0x60, 0xe0, 0x7e, 0xce, 0x8f, 0x8b, 0x2e, 0xd5, 0xe2, 0xb2, 0x48, 0x8c, 0x90, + 0x61, 0x19, 0x03, 0xa5, 0x79, 0x6b, 0x54, 0x3e, 0xc8, 0xd1, 0x67, 0xc8, 0x53, 0xbd, 0x14, 0x1c, + 0xf1, 0xac, 0xbd, 0x03, 0xe9, 0xa2, 0x67, 0xd2, 0x4c, 0xda, 0x84, 0x58, 0x80, 0x1c, 0x1e, 0xe6, + 0xe8, 0x49, 0x32, 0xd1, 0xdb, 0x51, 0x9a, 0xb3, 0x30, 0x9e, 0x7a, 0x2a, 0x62, 0x61, 0x7a, 0x13, + 0x84, 0x46, 0x0e, 0x8f, 0x72, 0xf4, 0x04, 0x39, 0xfe, 0x8f, 0x32, 0x83, 0xdf, 0x36, 0xd4, 0x29, + 0x2e, 0xc7, 0xa9, 0xd5, 0x1e, 0x3a, 0xbf, 0x6f, 0x18, 0xdd, 0x86, 0x7e, 0x4a, 0x05, 0xf8, 0x23, + 0x37, 0xf9, 0xe4, 0xca, 0xaf, 0xd9, 0x4d, 0xd7, 0xee, 0x66, 0x33, 0x2b, 0x77, 0xb3, 0x99, 0x5f, + 0xee, 0x66, 0x33, 0x2f, 0x66, 0x17, 0x50, 0x9b, 0xe6, 0xb8, 0xc1, 0xa0, 0x3a, 0xe1, 0x9f, 0x86, + 0x13, 0xf1, 0x52, 0xb8, 0xfa, 0xf4, 0x5c, 0xe8, 0xb3, 0x8f, 0xca, 0xa7, 0xff, 0x0a, 0x00, 0x00, + 0xff, 0xff, 0x89, 0xad, 0x04, 0x21, 0x94, 0x0a, 0x00, 0x00, } func (m *ErrDetails) Marshal() (dAtA []byte, err error) { diff --git a/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go b/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go index 7ec721da..8bf6f75e 100644 --- a/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go +++ b/pkg/outofstoremessagetypes/outofstoremessage_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: outofstoremessagetypes/outofstoremessage.proto package outofstoremessagetypes @@ -15,6 +19,10 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + OutOfStoreMessageService_OutOfStoreReceive_FullMethodName = "/weshnet.outofstoremessage.v1.OutOfStoreMessageService/OutOfStoreReceive" +) + // OutOfStoreMessageServiceClient is the client API for OutOfStoreMessageService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -33,7 +41,7 @@ func NewOutOfStoreMessageServiceClient(cc grpc.ClientConnInterface) OutOfStoreMe func (c *outOfStoreMessageServiceClient) OutOfStoreReceive(ctx context.Context, in *protocoltypes.OutOfStoreReceive_Request, opts ...grpc.CallOption) (*protocoltypes.OutOfStoreReceive_Reply, error) { out := new(protocoltypes.OutOfStoreReceive_Reply) - err := c.cc.Invoke(ctx, "/weshnet.outofstoremessage.v1.OutOfStoreMessageService/OutOfStoreReceive", in, out, opts...) + err := c.cc.Invoke(ctx, OutOfStoreMessageService_OutOfStoreReceive_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -80,7 +88,7 @@ func _OutOfStoreMessageService_OutOfStoreReceive_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/weshnet.outofstoremessage.v1.OutOfStoreMessageService/OutOfStoreReceive", + FullMethod: OutOfStoreMessageService_OutOfStoreReceive_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(OutOfStoreMessageServiceServer).OutOfStoreReceive(ctx, req.(*protocoltypes.OutOfStoreReceive_Request)) diff --git a/pkg/protocoltypes/auth.go b/pkg/protocoltypes/auth.go deleted file mode 100644 index fc13cf8c..00000000 --- a/pkg/protocoltypes/auth.go +++ /dev/null @@ -1,11 +0,0 @@ -package protocoltypes - -import ( - fmt "fmt" - - "github.com/gofrs/uuid" -) - -func (m *ServiceToken) TokenID() string { - return uuid.NewV5(uuid.NamespaceURL, fmt.Sprintf("%s/%s", m.AuthenticationURL, m.Token)).String() -} diff --git a/pkg/protocoltypes/events_account.go b/pkg/protocoltypes/events_account.go index 6b6e681b..41a5782c 100644 --- a/pkg/protocoltypes/events_account.go +++ b/pkg/protocoltypes/events_account.go @@ -88,14 +88,6 @@ func (m *GroupMetadataPayloadSent) SetDevicePK(pk []byte) { m.DevicePK = pk } -func (m *AccountServiceTokenAdded) SetDevicePK(pk []byte) { - m.DevicePK = pk -} - -func (m *AccountServiceTokenRemoved) SetDevicePK(pk []byte) { - m.DevicePK = pk -} - func (m *GroupReplicating) SetDevicePK(pk []byte) { m.DevicePK = pk } diff --git a/pkg/protocoltypes/protocoltypes.pb.go b/pkg/protocoltypes/protocoltypes.pb.go index 6264695f..875f998d 100644 --- a/pkg/protocoltypes/protocoltypes.pb.go +++ b/pkg/protocoltypes/protocoltypes.pb.go @@ -100,10 +100,6 @@ const ( EventTypeMultiMemberGroupInitialMemberAnnounced EventType = 302 // EventTypeMultiMemberGroupAdminRoleGranted indicates the payload includes that an admin of the group granted another member as an admin EventTypeMultiMemberGroupAdminRoleGranted EventType = 303 - // EventTypeAccountServiceTokenAdded indicates that a new service provider has been registered for this account - EventTypeAccountServiceTokenAdded EventType = 401 - // EventTypeAccountServiceTokenRemoved indicates that a service provider is not available anymore - EventTypeAccountServiceTokenRemoved EventType = 402 // EventTypeGroupReplicating indicates that the group has been registered for replication on a server EventTypeGroupReplicating EventType = 403 // EventTypeAccountVerifiedCredentialRegistered @@ -132,8 +128,6 @@ var EventType_name = map[int32]string{ 301: "EventTypeMultiMemberGroupAliasResolverAdded", 302: "EventTypeMultiMemberGroupInitialMemberAnnounced", 303: "EventTypeMultiMemberGroupAdminRoleGranted", - 401: "EventTypeAccountServiceTokenAdded", - 402: "EventTypeAccountServiceTokenRemoved", 403: "EventTypeGroupReplicating", 500: "EventTypeAccountVerifiedCredentialRegistered", 1001: "EventTypeGroupMetadataPayloadSent", @@ -159,8 +153,6 @@ var EventType_value = map[string]int32{ "EventTypeMultiMemberGroupAliasResolverAdded": 301, "EventTypeMultiMemberGroupInitialMemberAnnounced": 302, "EventTypeMultiMemberGroupAdminRoleGranted": 303, - "EventTypeAccountServiceTokenAdded": 401, - "EventTypeAccountServiceTokenRemoved": 402, "EventTypeGroupReplicating": 403, "EventTypeAccountVerifiedCredentialRegistered": 500, "EventTypeGroupMetadataPayloadSent": 1001, @@ -301,7 +293,7 @@ func (x ServiceGetConfiguration_SettingState) String() string { } func (ServiceGetConfiguration_SettingState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{36, 0} + return fileDescriptor_8aa93e54ccb19003, []int{34, 0} } type GroupDeviceStatus_Type int32 @@ -332,7 +324,7 @@ func (x GroupDeviceStatus_Type) String() string { } func (GroupDeviceStatus_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 0} + return fileDescriptor_8aa93e54ccb19003, []int{62, 0} } type GroupDeviceStatus_Transport int32 @@ -363,7 +355,7 @@ func (x GroupDeviceStatus_Transport) String() string { } func (GroupDeviceStatus_Transport) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 1} + return fileDescriptor_8aa93e54ccb19003, []int{62, 1} } type PeerList_Feature int32 @@ -400,7 +392,7 @@ func (x PeerList_Feature) String() string { } func (PeerList_Feature) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 0} + return fileDescriptor_8aa93e54ccb19003, []int{75, 0} } // Account describes all the secrets that identifies an Account @@ -2442,120 +2434,6 @@ func (m *AccountContactUnblocked) GetContactPK() []byte { return nil } -// AccountServiceTokenAdded indicates a token has been added to the account -type AccountServiceTokenAdded struct { - // device_pk is the device sending the event, signs the message - DevicePK []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` - ServiceToken *ServiceToken `protobuf:"bytes,2,opt,name=service_token,json=serviceToken,proto3" json:"service_token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AccountServiceTokenAdded) Reset() { *m = AccountServiceTokenAdded{} } -func (m *AccountServiceTokenAdded) String() string { return proto.CompactTextString(m) } -func (*AccountServiceTokenAdded) ProtoMessage() {} -func (*AccountServiceTokenAdded) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{32} -} -func (m *AccountServiceTokenAdded) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AccountServiceTokenAdded) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AccountServiceTokenAdded.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AccountServiceTokenAdded) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountServiceTokenAdded.Merge(m, src) -} -func (m *AccountServiceTokenAdded) XXX_Size() int { - return m.Size() -} -func (m *AccountServiceTokenAdded) XXX_DiscardUnknown() { - xxx_messageInfo_AccountServiceTokenAdded.DiscardUnknown(m) -} - -var xxx_messageInfo_AccountServiceTokenAdded proto.InternalMessageInfo - -func (m *AccountServiceTokenAdded) GetDevicePK() []byte { - if m != nil { - return m.DevicePK - } - return nil -} - -func (m *AccountServiceTokenAdded) GetServiceToken() *ServiceToken { - if m != nil { - return m.ServiceToken - } - return nil -} - -// AccountServiceTokenRemoved indicates a token has removed -type AccountServiceTokenRemoved struct { - // device_pk is the device sending the event, signs the message - DevicePK []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` - TokenID string `protobuf:"bytes,2,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AccountServiceTokenRemoved) Reset() { *m = AccountServiceTokenRemoved{} } -func (m *AccountServiceTokenRemoved) String() string { return proto.CompactTextString(m) } -func (*AccountServiceTokenRemoved) ProtoMessage() {} -func (*AccountServiceTokenRemoved) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{33} -} -func (m *AccountServiceTokenRemoved) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AccountServiceTokenRemoved) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AccountServiceTokenRemoved.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AccountServiceTokenRemoved) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountServiceTokenRemoved.Merge(m, src) -} -func (m *AccountServiceTokenRemoved) XXX_Size() int { - return m.Size() -} -func (m *AccountServiceTokenRemoved) XXX_DiscardUnknown() { - xxx_messageInfo_AccountServiceTokenRemoved.DiscardUnknown(m) -} - -var xxx_messageInfo_AccountServiceTokenRemoved proto.InternalMessageInfo - -func (m *AccountServiceTokenRemoved) GetDevicePK() []byte { - if m != nil { - return m.DevicePK - } - return nil -} - -func (m *AccountServiceTokenRemoved) GetTokenID() string { - if m != nil { - return m.TokenID - } - return "" -} - type GroupReplicating struct { // device_pk is the device sending the event, signs the message DevicePK []byte `protobuf:"bytes,1,opt,name=device_pk,json=devicePk,proto3" json:"device_pk,omitempty"` @@ -2572,7 +2450,7 @@ func (m *GroupReplicating) Reset() { *m = GroupReplicating{} } func (m *GroupReplicating) String() string { return proto.CompactTextString(m) } func (*GroupReplicating) ProtoMessage() {} func (*GroupReplicating) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{34} + return fileDescriptor_8aa93e54ccb19003, []int{32} } func (m *GroupReplicating) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2632,7 +2510,7 @@ func (m *ServiceExportData) Reset() { *m = ServiceExportData{} } func (m *ServiceExportData) String() string { return proto.CompactTextString(m) } func (*ServiceExportData) ProtoMessage() {} func (*ServiceExportData) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{35} + return fileDescriptor_8aa93e54ccb19003, []int{33} } func (m *ServiceExportData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2671,7 +2549,7 @@ func (m *ServiceExportData_Request) Reset() { *m = ServiceExportData_Req func (m *ServiceExportData_Request) String() string { return proto.CompactTextString(m) } func (*ServiceExportData_Request) ProtoMessage() {} func (*ServiceExportData_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{35, 0} + return fileDescriptor_8aa93e54ccb19003, []int{33, 0} } func (m *ServiceExportData_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2711,7 +2589,7 @@ func (m *ServiceExportData_Reply) Reset() { *m = ServiceExportData_Reply func (m *ServiceExportData_Reply) String() string { return proto.CompactTextString(m) } func (*ServiceExportData_Reply) ProtoMessage() {} func (*ServiceExportData_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{35, 1} + return fileDescriptor_8aa93e54ccb19003, []int{33, 1} } func (m *ServiceExportData_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2757,7 +2635,7 @@ func (m *ServiceGetConfiguration) Reset() { *m = ServiceGetConfiguration func (m *ServiceGetConfiguration) String() string { return proto.CompactTextString(m) } func (*ServiceGetConfiguration) ProtoMessage() {} func (*ServiceGetConfiguration) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{36} + return fileDescriptor_8aa93e54ccb19003, []int{34} } func (m *ServiceGetConfiguration) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2796,7 +2674,7 @@ func (m *ServiceGetConfiguration_Request) Reset() { *m = ServiceGetConfi func (m *ServiceGetConfiguration_Request) String() string { return proto.CompactTextString(m) } func (*ServiceGetConfiguration_Request) ProtoMessage() {} func (*ServiceGetConfiguration_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{36, 0} + return fileDescriptor_8aa93e54ccb19003, []int{34, 0} } func (m *ServiceGetConfiguration_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2849,7 +2727,7 @@ func (m *ServiceGetConfiguration_Reply) Reset() { *m = ServiceGetConfigu func (m *ServiceGetConfiguration_Reply) String() string { return proto.CompactTextString(m) } func (*ServiceGetConfiguration_Reply) ProtoMessage() {} func (*ServiceGetConfiguration_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{36, 1} + return fileDescriptor_8aa93e54ccb19003, []int{34, 1} } func (m *ServiceGetConfiguration_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2951,7 +2829,7 @@ func (m *ContactRequestReference) Reset() { *m = ContactRequestReference func (m *ContactRequestReference) String() string { return proto.CompactTextString(m) } func (*ContactRequestReference) ProtoMessage() {} func (*ContactRequestReference) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{37} + return fileDescriptor_8aa93e54ccb19003, []int{35} } func (m *ContactRequestReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2990,7 +2868,7 @@ func (m *ContactRequestReference_Request) Reset() { *m = ContactRequestR func (m *ContactRequestReference_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestReference_Request) ProtoMessage() {} func (*ContactRequestReference_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{37, 0} + return fileDescriptor_8aa93e54ccb19003, []int{35, 0} } func (m *ContactRequestReference_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3033,7 +2911,7 @@ func (m *ContactRequestReference_Reply) Reset() { *m = ContactRequestRef func (m *ContactRequestReference_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestReference_Reply) ProtoMessage() {} func (*ContactRequestReference_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{37, 1} + return fileDescriptor_8aa93e54ccb19003, []int{35, 1} } func (m *ContactRequestReference_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3086,7 +2964,7 @@ func (m *ContactRequestDisable) Reset() { *m = ContactRequestDisable{} } func (m *ContactRequestDisable) String() string { return proto.CompactTextString(m) } func (*ContactRequestDisable) ProtoMessage() {} func (*ContactRequestDisable) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{38} + return fileDescriptor_8aa93e54ccb19003, []int{36} } func (m *ContactRequestDisable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3125,7 +3003,7 @@ func (m *ContactRequestDisable_Request) Reset() { *m = ContactRequestDis func (m *ContactRequestDisable_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestDisable_Request) ProtoMessage() {} func (*ContactRequestDisable_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{38, 0} + return fileDescriptor_8aa93e54ccb19003, []int{36, 0} } func (m *ContactRequestDisable_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3164,7 +3042,7 @@ func (m *ContactRequestDisable_Reply) Reset() { *m = ContactRequestDisab func (m *ContactRequestDisable_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestDisable_Reply) ProtoMessage() {} func (*ContactRequestDisable_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{38, 1} + return fileDescriptor_8aa93e54ccb19003, []int{36, 1} } func (m *ContactRequestDisable_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3203,7 +3081,7 @@ func (m *ContactRequestEnable) Reset() { *m = ContactRequestEnable{} } func (m *ContactRequestEnable) String() string { return proto.CompactTextString(m) } func (*ContactRequestEnable) ProtoMessage() {} func (*ContactRequestEnable) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{39} + return fileDescriptor_8aa93e54ccb19003, []int{37} } func (m *ContactRequestEnable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3242,7 +3120,7 @@ func (m *ContactRequestEnable_Request) Reset() { *m = ContactRequestEnab func (m *ContactRequestEnable_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestEnable_Request) ProtoMessage() {} func (*ContactRequestEnable_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{39, 0} + return fileDescriptor_8aa93e54ccb19003, []int{37, 0} } func (m *ContactRequestEnable_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3283,7 +3161,7 @@ func (m *ContactRequestEnable_Reply) Reset() { *m = ContactRequestEnable func (m *ContactRequestEnable_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestEnable_Reply) ProtoMessage() {} func (*ContactRequestEnable_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{39, 1} + return fileDescriptor_8aa93e54ccb19003, []int{37, 1} } func (m *ContactRequestEnable_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3329,7 +3207,7 @@ func (m *ContactRequestResetReference) Reset() { *m = ContactRequestRese func (m *ContactRequestResetReference) String() string { return proto.CompactTextString(m) } func (*ContactRequestResetReference) ProtoMessage() {} func (*ContactRequestResetReference) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{40} + return fileDescriptor_8aa93e54ccb19003, []int{38} } func (m *ContactRequestResetReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3368,7 +3246,7 @@ func (m *ContactRequestResetReference_Request) Reset() { *m = ContactReq func (m *ContactRequestResetReference_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestResetReference_Request) ProtoMessage() {} func (*ContactRequestResetReference_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{40, 0} + return fileDescriptor_8aa93e54ccb19003, []int{38, 0} } func (m *ContactRequestResetReference_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3409,7 +3287,7 @@ func (m *ContactRequestResetReference_Reply) Reset() { *m = ContactReque func (m *ContactRequestResetReference_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestResetReference_Reply) ProtoMessage() {} func (*ContactRequestResetReference_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{40, 1} + return fileDescriptor_8aa93e54ccb19003, []int{38, 1} } func (m *ContactRequestResetReference_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3455,7 +3333,7 @@ func (m *ContactRequestSend) Reset() { *m = ContactRequestSend{} } func (m *ContactRequestSend) String() string { return proto.CompactTextString(m) } func (*ContactRequestSend) ProtoMessage() {} func (*ContactRequestSend) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{41} + return fileDescriptor_8aa93e54ccb19003, []int{39} } func (m *ContactRequestSend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3498,7 +3376,7 @@ func (m *ContactRequestSend_Request) Reset() { *m = ContactRequestSend_R func (m *ContactRequestSend_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestSend_Request) ProtoMessage() {} func (*ContactRequestSend_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{41, 0} + return fileDescriptor_8aa93e54ccb19003, []int{39, 0} } func (m *ContactRequestSend_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3551,7 +3429,7 @@ func (m *ContactRequestSend_Reply) Reset() { *m = ContactRequestSend_Rep func (m *ContactRequestSend_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestSend_Reply) ProtoMessage() {} func (*ContactRequestSend_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{41, 1} + return fileDescriptor_8aa93e54ccb19003, []int{39, 1} } func (m *ContactRequestSend_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3590,7 +3468,7 @@ func (m *ContactRequestAccept) Reset() { *m = ContactRequestAccept{} } func (m *ContactRequestAccept) String() string { return proto.CompactTextString(m) } func (*ContactRequestAccept) ProtoMessage() {} func (*ContactRequestAccept) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{42} + return fileDescriptor_8aa93e54ccb19003, []int{40} } func (m *ContactRequestAccept) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3631,7 +3509,7 @@ func (m *ContactRequestAccept_Request) Reset() { *m = ContactRequestAcce func (m *ContactRequestAccept_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestAccept_Request) ProtoMessage() {} func (*ContactRequestAccept_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{42, 0} + return fileDescriptor_8aa93e54ccb19003, []int{40, 0} } func (m *ContactRequestAccept_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3677,7 +3555,7 @@ func (m *ContactRequestAccept_Reply) Reset() { *m = ContactRequestAccept func (m *ContactRequestAccept_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestAccept_Reply) ProtoMessage() {} func (*ContactRequestAccept_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{42, 1} + return fileDescriptor_8aa93e54ccb19003, []int{40, 1} } func (m *ContactRequestAccept_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3716,7 +3594,7 @@ func (m *ContactRequestDiscard) Reset() { *m = ContactRequestDiscard{} } func (m *ContactRequestDiscard) String() string { return proto.CompactTextString(m) } func (*ContactRequestDiscard) ProtoMessage() {} func (*ContactRequestDiscard) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{43} + return fileDescriptor_8aa93e54ccb19003, []int{41} } func (m *ContactRequestDiscard) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3757,7 +3635,7 @@ func (m *ContactRequestDiscard_Request) Reset() { *m = ContactRequestDis func (m *ContactRequestDiscard_Request) String() string { return proto.CompactTextString(m) } func (*ContactRequestDiscard_Request) ProtoMessage() {} func (*ContactRequestDiscard_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{43, 0} + return fileDescriptor_8aa93e54ccb19003, []int{41, 0} } func (m *ContactRequestDiscard_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3803,7 +3681,7 @@ func (m *ContactRequestDiscard_Reply) Reset() { *m = ContactRequestDisca func (m *ContactRequestDiscard_Reply) String() string { return proto.CompactTextString(m) } func (*ContactRequestDiscard_Reply) ProtoMessage() {} func (*ContactRequestDiscard_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{43, 1} + return fileDescriptor_8aa93e54ccb19003, []int{41, 1} } func (m *ContactRequestDiscard_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3842,7 +3720,7 @@ func (m *ShareContact) Reset() { *m = ShareContact{} } func (m *ShareContact) String() string { return proto.CompactTextString(m) } func (*ShareContact) ProtoMessage() {} func (*ShareContact) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{44} + return fileDescriptor_8aa93e54ccb19003, []int{42} } func (m *ShareContact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3881,7 +3759,7 @@ func (m *ShareContact_Request) Reset() { *m = ShareContact_Request{} } func (m *ShareContact_Request) String() string { return proto.CompactTextString(m) } func (*ShareContact_Request) ProtoMessage() {} func (*ShareContact_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{44, 0} + return fileDescriptor_8aa93e54ccb19003, []int{42, 0} } func (m *ShareContact_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3922,7 +3800,7 @@ func (m *ShareContact_Reply) Reset() { *m = ShareContact_Reply{} } func (m *ShareContact_Reply) String() string { return proto.CompactTextString(m) } func (*ShareContact_Reply) ProtoMessage() {} func (*ShareContact_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{44, 1} + return fileDescriptor_8aa93e54ccb19003, []int{42, 1} } func (m *ShareContact_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3968,7 +3846,7 @@ func (m *DecodeContact) Reset() { *m = DecodeContact{} } func (m *DecodeContact) String() string { return proto.CompactTextString(m) } func (*DecodeContact) ProtoMessage() {} func (*DecodeContact) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{45} + return fileDescriptor_8aa93e54ccb19003, []int{43} } func (m *DecodeContact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4009,7 +3887,7 @@ func (m *DecodeContact_Request) Reset() { *m = DecodeContact_Request{} } func (m *DecodeContact_Request) String() string { return proto.CompactTextString(m) } func (*DecodeContact_Request) ProtoMessage() {} func (*DecodeContact_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{45, 0} + return fileDescriptor_8aa93e54ccb19003, []int{43, 0} } func (m *DecodeContact_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4057,7 +3935,7 @@ func (m *DecodeContact_Reply) Reset() { *m = DecodeContact_Reply{} } func (m *DecodeContact_Reply) String() string { return proto.CompactTextString(m) } func (*DecodeContact_Reply) ProtoMessage() {} func (*DecodeContact_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{45, 1} + return fileDescriptor_8aa93e54ccb19003, []int{43, 1} } func (m *DecodeContact_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4103,7 +3981,7 @@ func (m *ContactBlock) Reset() { *m = ContactBlock{} } func (m *ContactBlock) String() string { return proto.CompactTextString(m) } func (*ContactBlock) ProtoMessage() {} func (*ContactBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{46} + return fileDescriptor_8aa93e54ccb19003, []int{44} } func (m *ContactBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4144,7 +4022,7 @@ func (m *ContactBlock_Request) Reset() { *m = ContactBlock_Request{} } func (m *ContactBlock_Request) String() string { return proto.CompactTextString(m) } func (*ContactBlock_Request) ProtoMessage() {} func (*ContactBlock_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{46, 0} + return fileDescriptor_8aa93e54ccb19003, []int{44, 0} } func (m *ContactBlock_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4190,7 +4068,7 @@ func (m *ContactBlock_Reply) Reset() { *m = ContactBlock_Reply{} } func (m *ContactBlock_Reply) String() string { return proto.CompactTextString(m) } func (*ContactBlock_Reply) ProtoMessage() {} func (*ContactBlock_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{46, 1} + return fileDescriptor_8aa93e54ccb19003, []int{44, 1} } func (m *ContactBlock_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4229,7 +4107,7 @@ func (m *ContactUnblock) Reset() { *m = ContactUnblock{} } func (m *ContactUnblock) String() string { return proto.CompactTextString(m) } func (*ContactUnblock) ProtoMessage() {} func (*ContactUnblock) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{47} + return fileDescriptor_8aa93e54ccb19003, []int{45} } func (m *ContactUnblock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4270,7 +4148,7 @@ func (m *ContactUnblock_Request) Reset() { *m = ContactUnblock_Request{} func (m *ContactUnblock_Request) String() string { return proto.CompactTextString(m) } func (*ContactUnblock_Request) ProtoMessage() {} func (*ContactUnblock_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{47, 0} + return fileDescriptor_8aa93e54ccb19003, []int{45, 0} } func (m *ContactUnblock_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4316,7 +4194,7 @@ func (m *ContactUnblock_Reply) Reset() { *m = ContactUnblock_Reply{} } func (m *ContactUnblock_Reply) String() string { return proto.CompactTextString(m) } func (*ContactUnblock_Reply) ProtoMessage() {} func (*ContactUnblock_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{47, 1} + return fileDescriptor_8aa93e54ccb19003, []int{45, 1} } func (m *ContactUnblock_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4355,7 +4233,7 @@ func (m *ContactAliasKeySend) Reset() { *m = ContactAliasKeySend{} } func (m *ContactAliasKeySend) String() string { return proto.CompactTextString(m) } func (*ContactAliasKeySend) ProtoMessage() {} func (*ContactAliasKeySend) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{48} + return fileDescriptor_8aa93e54ccb19003, []int{46} } func (m *ContactAliasKeySend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4396,7 +4274,7 @@ func (m *ContactAliasKeySend_Request) Reset() { *m = ContactAliasKeySend func (m *ContactAliasKeySend_Request) String() string { return proto.CompactTextString(m) } func (*ContactAliasKeySend_Request) ProtoMessage() {} func (*ContactAliasKeySend_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{48, 0} + return fileDescriptor_8aa93e54ccb19003, []int{46, 0} } func (m *ContactAliasKeySend_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4442,7 +4320,7 @@ func (m *ContactAliasKeySend_Reply) Reset() { *m = ContactAliasKeySend_R func (m *ContactAliasKeySend_Reply) String() string { return proto.CompactTextString(m) } func (*ContactAliasKeySend_Reply) ProtoMessage() {} func (*ContactAliasKeySend_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{48, 1} + return fileDescriptor_8aa93e54ccb19003, []int{46, 1} } func (m *ContactAliasKeySend_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4481,7 +4359,7 @@ func (m *MultiMemberGroupCreate) Reset() { *m = MultiMemberGroupCreate{} func (m *MultiMemberGroupCreate) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupCreate) ProtoMessage() {} func (*MultiMemberGroupCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{49} + return fileDescriptor_8aa93e54ccb19003, []int{47} } func (m *MultiMemberGroupCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4520,7 +4398,7 @@ func (m *MultiMemberGroupCreate_Request) Reset() { *m = MultiMemberGroup func (m *MultiMemberGroupCreate_Request) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupCreate_Request) ProtoMessage() {} func (*MultiMemberGroupCreate_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{49, 0} + return fileDescriptor_8aa93e54ccb19003, []int{47, 0} } func (m *MultiMemberGroupCreate_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4561,7 +4439,7 @@ func (m *MultiMemberGroupCreate_Reply) Reset() { *m = MultiMemberGroupCr func (m *MultiMemberGroupCreate_Reply) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupCreate_Reply) ProtoMessage() {} func (*MultiMemberGroupCreate_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{49, 1} + return fileDescriptor_8aa93e54ccb19003, []int{47, 1} } func (m *MultiMemberGroupCreate_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4607,7 +4485,7 @@ func (m *MultiMemberGroupJoin) Reset() { *m = MultiMemberGroupJoin{} } func (m *MultiMemberGroupJoin) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupJoin) ProtoMessage() {} func (*MultiMemberGroupJoin) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{50} + return fileDescriptor_8aa93e54ccb19003, []int{48} } func (m *MultiMemberGroupJoin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4648,7 +4526,7 @@ func (m *MultiMemberGroupJoin_Request) Reset() { *m = MultiMemberGroupJo func (m *MultiMemberGroupJoin_Request) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupJoin_Request) ProtoMessage() {} func (*MultiMemberGroupJoin_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{50, 0} + return fileDescriptor_8aa93e54ccb19003, []int{48, 0} } func (m *MultiMemberGroupJoin_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4694,7 +4572,7 @@ func (m *MultiMemberGroupJoin_Reply) Reset() { *m = MultiMemberGroupJoin func (m *MultiMemberGroupJoin_Reply) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupJoin_Reply) ProtoMessage() {} func (*MultiMemberGroupJoin_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{50, 1} + return fileDescriptor_8aa93e54ccb19003, []int{48, 1} } func (m *MultiMemberGroupJoin_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4733,7 +4611,7 @@ func (m *MultiMemberGroupLeave) Reset() { *m = MultiMemberGroupLeave{} } func (m *MultiMemberGroupLeave) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupLeave) ProtoMessage() {} func (*MultiMemberGroupLeave) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{51} + return fileDescriptor_8aa93e54ccb19003, []int{49} } func (m *MultiMemberGroupLeave) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4773,7 +4651,7 @@ func (m *MultiMemberGroupLeave_Request) Reset() { *m = MultiMemberGroupL func (m *MultiMemberGroupLeave_Request) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupLeave_Request) ProtoMessage() {} func (*MultiMemberGroupLeave_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{51, 0} + return fileDescriptor_8aa93e54ccb19003, []int{49, 0} } func (m *MultiMemberGroupLeave_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4819,7 +4697,7 @@ func (m *MultiMemberGroupLeave_Reply) Reset() { *m = MultiMemberGroupLea func (m *MultiMemberGroupLeave_Reply) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupLeave_Reply) ProtoMessage() {} func (*MultiMemberGroupLeave_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{51, 1} + return fileDescriptor_8aa93e54ccb19003, []int{49, 1} } func (m *MultiMemberGroupLeave_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4858,7 +4736,7 @@ func (m *MultiMemberGroupAliasResolverDisclose) Reset() { *m = MultiMemb func (m *MultiMemberGroupAliasResolverDisclose) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupAliasResolverDisclose) ProtoMessage() {} func (*MultiMemberGroupAliasResolverDisclose) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{52} + return fileDescriptor_8aa93e54ccb19003, []int{50} } func (m *MultiMemberGroupAliasResolverDisclose) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4903,7 +4781,7 @@ func (m *MultiMemberGroupAliasResolverDisclose_Request) String() string { } func (*MultiMemberGroupAliasResolverDisclose_Request) ProtoMessage() {} func (*MultiMemberGroupAliasResolverDisclose_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{52, 0} + return fileDescriptor_8aa93e54ccb19003, []int{50, 0} } func (m *MultiMemberGroupAliasResolverDisclose_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4953,7 +4831,7 @@ func (m *MultiMemberGroupAliasResolverDisclose_Reply) String() string { } func (*MultiMemberGroupAliasResolverDisclose_Reply) ProtoMessage() {} func (*MultiMemberGroupAliasResolverDisclose_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{52, 1} + return fileDescriptor_8aa93e54ccb19003, []int{50, 1} } func (m *MultiMemberGroupAliasResolverDisclose_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4992,7 +4870,7 @@ func (m *MultiMemberGroupAdminRoleGrant) Reset() { *m = MultiMemberGroup func (m *MultiMemberGroupAdminRoleGrant) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupAdminRoleGrant) ProtoMessage() {} func (*MultiMemberGroupAdminRoleGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{53} + return fileDescriptor_8aa93e54ccb19003, []int{51} } func (m *MultiMemberGroupAdminRoleGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5037,7 +4915,7 @@ func (m *MultiMemberGroupAdminRoleGrant_Request) Reset() { func (m *MultiMemberGroupAdminRoleGrant_Request) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupAdminRoleGrant_Request) ProtoMessage() {} func (*MultiMemberGroupAdminRoleGrant_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{53, 0} + return fileDescriptor_8aa93e54ccb19003, []int{51, 0} } func (m *MultiMemberGroupAdminRoleGrant_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5090,7 +4968,7 @@ func (m *MultiMemberGroupAdminRoleGrant_Reply) Reset() { *m = MultiMembe func (m *MultiMemberGroupAdminRoleGrant_Reply) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupAdminRoleGrant_Reply) ProtoMessage() {} func (*MultiMemberGroupAdminRoleGrant_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{53, 1} + return fileDescriptor_8aa93e54ccb19003, []int{51, 1} } func (m *MultiMemberGroupAdminRoleGrant_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5129,7 +5007,7 @@ func (m *MultiMemberGroupInvitationCreate) Reset() { *m = MultiMemberGro func (m *MultiMemberGroupInvitationCreate) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupInvitationCreate) ProtoMessage() {} func (*MultiMemberGroupInvitationCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{54} + return fileDescriptor_8aa93e54ccb19003, []int{52} } func (m *MultiMemberGroupInvitationCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5172,7 +5050,7 @@ func (m *MultiMemberGroupInvitationCreate_Request) Reset() { func (m *MultiMemberGroupInvitationCreate_Request) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupInvitationCreate_Request) ProtoMessage() {} func (*MultiMemberGroupInvitationCreate_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{54, 0} + return fileDescriptor_8aa93e54ccb19003, []int{52, 0} } func (m *MultiMemberGroupInvitationCreate_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5222,7 +5100,7 @@ func (m *MultiMemberGroupInvitationCreate_Reply) Reset() { func (m *MultiMemberGroupInvitationCreate_Reply) String() string { return proto.CompactTextString(m) } func (*MultiMemberGroupInvitationCreate_Reply) ProtoMessage() {} func (*MultiMemberGroupInvitationCreate_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{54, 1} + return fileDescriptor_8aa93e54ccb19003, []int{52, 1} } func (m *MultiMemberGroupInvitationCreate_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5268,7 +5146,7 @@ func (m *AppMetadataSend) Reset() { *m = AppMetadataSend{} } func (m *AppMetadataSend) String() string { return proto.CompactTextString(m) } func (*AppMetadataSend) ProtoMessage() {} func (*AppMetadataSend) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{55} + return fileDescriptor_8aa93e54ccb19003, []int{53} } func (m *AppMetadataSend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5311,7 +5189,7 @@ func (m *AppMetadataSend_Request) Reset() { *m = AppMetadataSend_Request func (m *AppMetadataSend_Request) String() string { return proto.CompactTextString(m) } func (*AppMetadataSend_Request) ProtoMessage() {} func (*AppMetadataSend_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{55, 0} + return fileDescriptor_8aa93e54ccb19003, []int{53, 0} } func (m *AppMetadataSend_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5365,7 +5243,7 @@ func (m *AppMetadataSend_Reply) Reset() { *m = AppMetadataSend_Reply{} } func (m *AppMetadataSend_Reply) String() string { return proto.CompactTextString(m) } func (*AppMetadataSend_Reply) ProtoMessage() {} func (*AppMetadataSend_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{55, 1} + return fileDescriptor_8aa93e54ccb19003, []int{53, 1} } func (m *AppMetadataSend_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5411,7 +5289,7 @@ func (m *AppMessageSend) Reset() { *m = AppMessageSend{} } func (m *AppMessageSend) String() string { return proto.CompactTextString(m) } func (*AppMessageSend) ProtoMessage() {} func (*AppMessageSend) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{56} + return fileDescriptor_8aa93e54ccb19003, []int{54} } func (m *AppMessageSend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5454,7 +5332,7 @@ func (m *AppMessageSend_Request) Reset() { *m = AppMessageSend_Request{} func (m *AppMessageSend_Request) String() string { return proto.CompactTextString(m) } func (*AppMessageSend_Request) ProtoMessage() {} func (*AppMessageSend_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{56, 0} + return fileDescriptor_8aa93e54ccb19003, []int{54, 0} } func (m *AppMessageSend_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5508,7 +5386,7 @@ func (m *AppMessageSend_Reply) Reset() { *m = AppMessageSend_Reply{} } func (m *AppMessageSend_Reply) String() string { return proto.CompactTextString(m) } func (*AppMessageSend_Reply) ProtoMessage() {} func (*AppMessageSend_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{56, 1} + return fileDescriptor_8aa93e54ccb19003, []int{54, 1} } func (m *AppMessageSend_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5560,7 +5438,7 @@ func (m *GroupMetadataEvent) Reset() { *m = GroupMetadataEvent{} } func (m *GroupMetadataEvent) String() string { return proto.CompactTextString(m) } func (*GroupMetadataEvent) ProtoMessage() {} func (*GroupMetadataEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{57} + return fileDescriptor_8aa93e54ccb19003, []int{55} } func (m *GroupMetadataEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5626,7 +5504,7 @@ func (m *GroupMessageEvent) Reset() { *m = GroupMessageEvent{} } func (m *GroupMessageEvent) String() string { return proto.CompactTextString(m) } func (*GroupMessageEvent) ProtoMessage() {} func (*GroupMessageEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{58} + return fileDescriptor_8aa93e54ccb19003, []int{56} } func (m *GroupMessageEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5686,7 +5564,7 @@ func (m *GroupMetadataList) Reset() { *m = GroupMetadataList{} } func (m *GroupMetadataList) String() string { return proto.CompactTextString(m) } func (*GroupMetadataList) ProtoMessage() {} func (*GroupMetadataList) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{59} + return fileDescriptor_8aa93e54ccb19003, []int{57} } func (m *GroupMetadataList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5742,7 +5620,7 @@ func (m *GroupMetadataList_Request) Reset() { *m = GroupMetadataList_Req func (m *GroupMetadataList_Request) String() string { return proto.CompactTextString(m) } func (*GroupMetadataList_Request) ProtoMessage() {} func (*GroupMetadataList_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{59, 0} + return fileDescriptor_8aa93e54ccb19003, []int{57, 0} } func (m *GroupMetadataList_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5823,7 +5701,7 @@ func (m *GroupMessageList) Reset() { *m = GroupMessageList{} } func (m *GroupMessageList) String() string { return proto.CompactTextString(m) } func (*GroupMessageList) ProtoMessage() {} func (*GroupMessageList) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{60} + return fileDescriptor_8aa93e54ccb19003, []int{58} } func (m *GroupMessageList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5879,7 +5757,7 @@ func (m *GroupMessageList_Request) Reset() { *m = GroupMessageList_Reque func (m *GroupMessageList_Request) String() string { return proto.CompactTextString(m) } func (*GroupMessageList_Request) ProtoMessage() {} func (*GroupMessageList_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{60, 0} + return fileDescriptor_8aa93e54ccb19003, []int{58, 0} } func (m *GroupMessageList_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5960,7 +5838,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{61} + return fileDescriptor_8aa93e54ccb19003, []int{59} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6003,7 +5881,7 @@ func (m *GroupInfo_Request) Reset() { *m = GroupInfo_Request{} } func (m *GroupInfo_Request) String() string { return proto.CompactTextString(m) } func (*GroupInfo_Request) ProtoMessage() {} func (*GroupInfo_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{61, 0} + return fileDescriptor_8aa93e54ccb19003, []int{59, 0} } func (m *GroupInfo_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6062,7 +5940,7 @@ func (m *GroupInfo_Reply) Reset() { *m = GroupInfo_Reply{} } func (m *GroupInfo_Reply) String() string { return proto.CompactTextString(m) } func (*GroupInfo_Reply) ProtoMessage() {} func (*GroupInfo_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{61, 1} + return fileDescriptor_8aa93e54ccb19003, []int{59, 1} } func (m *GroupInfo_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6122,7 +6000,7 @@ func (m *ActivateGroup) Reset() { *m = ActivateGroup{} } func (m *ActivateGroup) String() string { return proto.CompactTextString(m) } func (*ActivateGroup) ProtoMessage() {} func (*ActivateGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{62} + return fileDescriptor_8aa93e54ccb19003, []int{60} } func (m *ActivateGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6166,7 +6044,7 @@ func (m *ActivateGroup_Request) Reset() { *m = ActivateGroup_Request{} } func (m *ActivateGroup_Request) String() string { return proto.CompactTextString(m) } func (*ActivateGroup_Request) ProtoMessage() {} func (*ActivateGroup_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{62, 0} + return fileDescriptor_8aa93e54ccb19003, []int{60, 0} } func (m *ActivateGroup_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6219,7 +6097,7 @@ func (m *ActivateGroup_Reply) Reset() { *m = ActivateGroup_Reply{} } func (m *ActivateGroup_Reply) String() string { return proto.CompactTextString(m) } func (*ActivateGroup_Reply) ProtoMessage() {} func (*ActivateGroup_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{62, 1} + return fileDescriptor_8aa93e54ccb19003, []int{60, 1} } func (m *ActivateGroup_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6258,7 +6136,7 @@ func (m *DeactivateGroup) Reset() { *m = DeactivateGroup{} } func (m *DeactivateGroup) String() string { return proto.CompactTextString(m) } func (*DeactivateGroup) ProtoMessage() {} func (*DeactivateGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{63} + return fileDescriptor_8aa93e54ccb19003, []int{61} } func (m *DeactivateGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6299,7 +6177,7 @@ func (m *DeactivateGroup_Request) Reset() { *m = DeactivateGroup_Request func (m *DeactivateGroup_Request) String() string { return proto.CompactTextString(m) } func (*DeactivateGroup_Request) ProtoMessage() {} func (*DeactivateGroup_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{63, 0} + return fileDescriptor_8aa93e54ccb19003, []int{61, 0} } func (m *DeactivateGroup_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6345,7 +6223,7 @@ func (m *DeactivateGroup_Reply) Reset() { *m = DeactivateGroup_Reply{} } func (m *DeactivateGroup_Reply) String() string { return proto.CompactTextString(m) } func (*DeactivateGroup_Reply) ProtoMessage() {} func (*DeactivateGroup_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{63, 1} + return fileDescriptor_8aa93e54ccb19003, []int{61, 1} } func (m *DeactivateGroup_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6384,7 +6262,7 @@ func (m *GroupDeviceStatus) Reset() { *m = GroupDeviceStatus{} } func (m *GroupDeviceStatus) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus) ProtoMessage() {} func (*GroupDeviceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64} + return fileDescriptor_8aa93e54ccb19003, []int{62} } func (m *GroupDeviceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6424,7 +6302,7 @@ func (m *GroupDeviceStatus_Request) Reset() { *m = GroupDeviceStatus_Req func (m *GroupDeviceStatus_Request) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus_Request) ProtoMessage() {} func (*GroupDeviceStatus_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 0} + return fileDescriptor_8aa93e54ccb19003, []int{62, 0} } func (m *GroupDeviceStatus_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6472,7 +6350,7 @@ func (m *GroupDeviceStatus_Reply) Reset() { *m = GroupDeviceStatus_Reply func (m *GroupDeviceStatus_Reply) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus_Reply) ProtoMessage() {} func (*GroupDeviceStatus_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 1} + return fileDescriptor_8aa93e54ccb19003, []int{62, 1} } func (m *GroupDeviceStatus_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6529,7 +6407,7 @@ func (m *GroupDeviceStatus_Reply_PeerConnected) Reset() { *m = GroupDevi func (m *GroupDeviceStatus_Reply_PeerConnected) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus_Reply_PeerConnected) ProtoMessage() {} func (*GroupDeviceStatus_Reply_PeerConnected) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 1, 0} + return fileDescriptor_8aa93e54ccb19003, []int{62, 1, 0} } func (m *GroupDeviceStatus_Reply_PeerConnected) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6599,7 +6477,7 @@ func (m *GroupDeviceStatus_Reply_PeerReconnecting) Reset() { func (m *GroupDeviceStatus_Reply_PeerReconnecting) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus_Reply_PeerReconnecting) ProtoMessage() {} func (*GroupDeviceStatus_Reply_PeerReconnecting) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 1, 1} + return fileDescriptor_8aa93e54ccb19003, []int{62, 1, 1} } func (m *GroupDeviceStatus_Reply_PeerReconnecting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6648,7 +6526,7 @@ func (m *GroupDeviceStatus_Reply_PeerDisconnected) Reset() { func (m *GroupDeviceStatus_Reply_PeerDisconnected) String() string { return proto.CompactTextString(m) } func (*GroupDeviceStatus_Reply_PeerDisconnected) ProtoMessage() {} func (*GroupDeviceStatus_Reply_PeerDisconnected) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{64, 1, 2} + return fileDescriptor_8aa93e54ccb19003, []int{62, 1, 2} } func (m *GroupDeviceStatus_Reply_PeerDisconnected) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6694,7 +6572,7 @@ func (m *DebugListGroups) Reset() { *m = DebugListGroups{} } func (m *DebugListGroups) String() string { return proto.CompactTextString(m) } func (*DebugListGroups) ProtoMessage() {} func (*DebugListGroups) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{65} + return fileDescriptor_8aa93e54ccb19003, []int{63} } func (m *DebugListGroups) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6733,7 +6611,7 @@ func (m *DebugListGroups_Request) Reset() { *m = DebugListGroups_Request func (m *DebugListGroups_Request) String() string { return proto.CompactTextString(m) } func (*DebugListGroups_Request) ProtoMessage() {} func (*DebugListGroups_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{65, 0} + return fileDescriptor_8aa93e54ccb19003, []int{63, 0} } func (m *DebugListGroups_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6778,7 +6656,7 @@ func (m *DebugListGroups_Reply) Reset() { *m = DebugListGroups_Reply{} } func (m *DebugListGroups_Reply) String() string { return proto.CompactTextString(m) } func (*DebugListGroups_Reply) ProtoMessage() {} func (*DebugListGroups_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{65, 1} + return fileDescriptor_8aa93e54ccb19003, []int{63, 1} } func (m *DebugListGroups_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6838,7 +6716,7 @@ func (m *DebugInspectGroupStore) Reset() { *m = DebugInspectGroupStore{} func (m *DebugInspectGroupStore) String() string { return proto.CompactTextString(m) } func (*DebugInspectGroupStore) ProtoMessage() {} func (*DebugInspectGroupStore) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{66} + return fileDescriptor_8aa93e54ccb19003, []int{64} } func (m *DebugInspectGroupStore) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6881,7 +6759,7 @@ func (m *DebugInspectGroupStore_Request) Reset() { *m = DebugInspectGrou func (m *DebugInspectGroupStore_Request) String() string { return proto.CompactTextString(m) } func (*DebugInspectGroupStore_Request) ProtoMessage() {} func (*DebugInspectGroupStore_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{66, 0} + return fileDescriptor_8aa93e54ccb19003, []int{64, 0} } func (m *DebugInspectGroupStore_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6944,7 +6822,7 @@ func (m *DebugInspectGroupStore_Reply) Reset() { *m = DebugInspectGroupS func (m *DebugInspectGroupStore_Reply) String() string { return proto.CompactTextString(m) } func (*DebugInspectGroupStore_Reply) ProtoMessage() {} func (*DebugInspectGroupStore_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{66, 1} + return fileDescriptor_8aa93e54ccb19003, []int{64, 1} } func (m *DebugInspectGroupStore_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7018,7 +6896,7 @@ func (m *DebugGroup) Reset() { *m = DebugGroup{} } func (m *DebugGroup) String() string { return proto.CompactTextString(m) } func (*DebugGroup) ProtoMessage() {} func (*DebugGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{67} + return fileDescriptor_8aa93e54ccb19003, []int{65} } func (m *DebugGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7059,7 +6937,7 @@ func (m *DebugGroup_Request) Reset() { *m = DebugGroup_Request{} } func (m *DebugGroup_Request) String() string { return proto.CompactTextString(m) } func (*DebugGroup_Request) ProtoMessage() {} func (*DebugGroup_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{67, 0} + return fileDescriptor_8aa93e54ccb19003, []int{65, 0} } func (m *DebugGroup_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7107,7 +6985,7 @@ func (m *DebugGroup_Reply) Reset() { *m = DebugGroup_Reply{} } func (m *DebugGroup_Reply) String() string { return proto.CompactTextString(m) } func (*DebugGroup_Reply) ProtoMessage() {} func (*DebugGroup_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{67, 1} + return fileDescriptor_8aa93e54ccb19003, []int{65, 1} } func (m *DebugGroup_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7143,218 +7021,6 @@ func (m *DebugGroup_Reply) GetPeerIDs() []string { return nil } -type AuthExchangeResponse struct { - AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` - Scope string `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"` - Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` - ErrorDescription string `protobuf:"bytes,4,opt,name=error_description,json=errorDescription,proto3" json:"error_description,omitempty"` - Services map[string]string `protobuf:"bytes,5,rep,name=services,proto3" json:"services,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthExchangeResponse) Reset() { *m = AuthExchangeResponse{} } -func (m *AuthExchangeResponse) String() string { return proto.CompactTextString(m) } -func (*AuthExchangeResponse) ProtoMessage() {} -func (*AuthExchangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{68} -} -func (m *AuthExchangeResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthExchangeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthExchangeResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthExchangeResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthExchangeResponse.Merge(m, src) -} -func (m *AuthExchangeResponse) XXX_Size() int { - return m.Size() -} -func (m *AuthExchangeResponse) XXX_DiscardUnknown() { - xxx_messageInfo_AuthExchangeResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthExchangeResponse proto.InternalMessageInfo - -func (m *AuthExchangeResponse) GetAccessToken() string { - if m != nil { - return m.AccessToken - } - return "" -} - -func (m *AuthExchangeResponse) GetScope() string { - if m != nil { - return m.Scope - } - return "" -} - -func (m *AuthExchangeResponse) GetError() string { - if m != nil { - return m.Error - } - return "" -} - -func (m *AuthExchangeResponse) GetErrorDescription() string { - if m != nil { - return m.ErrorDescription - } - return "" -} - -func (m *AuthExchangeResponse) GetServices() map[string]string { - if m != nil { - return m.Services - } - return nil -} - -type DebugAuthServiceSetToken struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DebugAuthServiceSetToken) Reset() { *m = DebugAuthServiceSetToken{} } -func (m *DebugAuthServiceSetToken) String() string { return proto.CompactTextString(m) } -func (*DebugAuthServiceSetToken) ProtoMessage() {} -func (*DebugAuthServiceSetToken) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{69} -} -func (m *DebugAuthServiceSetToken) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DebugAuthServiceSetToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_DebugAuthServiceSetToken.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *DebugAuthServiceSetToken) XXX_Merge(src proto.Message) { - xxx_messageInfo_DebugAuthServiceSetToken.Merge(m, src) -} -func (m *DebugAuthServiceSetToken) XXX_Size() int { - return m.Size() -} -func (m *DebugAuthServiceSetToken) XXX_DiscardUnknown() { - xxx_messageInfo_DebugAuthServiceSetToken.DiscardUnknown(m) -} - -var xxx_messageInfo_DebugAuthServiceSetToken proto.InternalMessageInfo - -type DebugAuthServiceSetToken_Request struct { - Token *AuthExchangeResponse `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - AuthenticationURL string `protobuf:"bytes,2,opt,name=authentication_url,json=authenticationUrl,proto3" json:"authentication_url,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DebugAuthServiceSetToken_Request) Reset() { *m = DebugAuthServiceSetToken_Request{} } -func (m *DebugAuthServiceSetToken_Request) String() string { return proto.CompactTextString(m) } -func (*DebugAuthServiceSetToken_Request) ProtoMessage() {} -func (*DebugAuthServiceSetToken_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{69, 0} -} -func (m *DebugAuthServiceSetToken_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DebugAuthServiceSetToken_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_DebugAuthServiceSetToken_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *DebugAuthServiceSetToken_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_DebugAuthServiceSetToken_Request.Merge(m, src) -} -func (m *DebugAuthServiceSetToken_Request) XXX_Size() int { - return m.Size() -} -func (m *DebugAuthServiceSetToken_Request) XXX_DiscardUnknown() { - xxx_messageInfo_DebugAuthServiceSetToken_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_DebugAuthServiceSetToken_Request proto.InternalMessageInfo - -func (m *DebugAuthServiceSetToken_Request) GetToken() *AuthExchangeResponse { - if m != nil { - return m.Token - } - return nil -} - -func (m *DebugAuthServiceSetToken_Request) GetAuthenticationURL() string { - if m != nil { - return m.AuthenticationURL - } - return "" -} - -type DebugAuthServiceSetToken_Reply struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DebugAuthServiceSetToken_Reply) Reset() { *m = DebugAuthServiceSetToken_Reply{} } -func (m *DebugAuthServiceSetToken_Reply) String() string { return proto.CompactTextString(m) } -func (*DebugAuthServiceSetToken_Reply) ProtoMessage() {} -func (*DebugAuthServiceSetToken_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{69, 1} -} -func (m *DebugAuthServiceSetToken_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DebugAuthServiceSetToken_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_DebugAuthServiceSetToken_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *DebugAuthServiceSetToken_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_DebugAuthServiceSetToken_Reply.Merge(m, src) -} -func (m *DebugAuthServiceSetToken_Reply) XXX_Size() int { - return m.Size() -} -func (m *DebugAuthServiceSetToken_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_DebugAuthServiceSetToken_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_DebugAuthServiceSetToken_Reply proto.InternalMessageInfo - type ShareableContact struct { // pk is the account to send a contact request to PK []byte `protobuf:"bytes,1,opt,name=pk,proto3" json:"pk,omitempty"` @@ -7371,7 +7037,7 @@ func (m *ShareableContact) Reset() { *m = ShareableContact{} } func (m *ShareableContact) String() string { return proto.CompactTextString(m) } func (*ShareableContact) ProtoMessage() {} func (*ShareableContact) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{70} + return fileDescriptor_8aa93e54ccb19003, []int{66} } func (m *ShareableContact) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7433,7 +7099,7 @@ func (m *ServiceTokenSupportedService) Reset() { *m = ServiceTokenSuppor func (m *ServiceTokenSupportedService) String() string { return proto.CompactTextString(m) } func (*ServiceTokenSupportedService) ProtoMessage() {} func (*ServiceTokenSupportedService) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{71} + return fileDescriptor_8aa93e54ccb19003, []int{67} } func (m *ServiceTokenSupportedService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7490,7 +7156,7 @@ func (m *ServiceToken) Reset() { *m = ServiceToken{} } func (m *ServiceToken) String() string { return proto.CompactTextString(m) } func (*ServiceToken) ProtoMessage() {} func (*ServiceToken) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{72} + return fileDescriptor_8aa93e54ccb19003, []int{68} } func (m *ServiceToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7547,288 +7213,6 @@ func (m *ServiceToken) GetExpiration() int64 { return 0 } -type AuthServiceCompleteFlow struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceCompleteFlow) Reset() { *m = AuthServiceCompleteFlow{} } -func (m *AuthServiceCompleteFlow) String() string { return proto.CompactTextString(m) } -func (*AuthServiceCompleteFlow) ProtoMessage() {} -func (*AuthServiceCompleteFlow) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{73} -} -func (m *AuthServiceCompleteFlow) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceCompleteFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceCompleteFlow.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceCompleteFlow) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceCompleteFlow.Merge(m, src) -} -func (m *AuthServiceCompleteFlow) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceCompleteFlow) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceCompleteFlow.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceCompleteFlow proto.InternalMessageInfo - -type AuthServiceCompleteFlow_Request struct { - CallbackURL string `protobuf:"bytes,1,opt,name=callback_url,json=callbackUrl,proto3" json:"callback_url,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceCompleteFlow_Request) Reset() { *m = AuthServiceCompleteFlow_Request{} } -func (m *AuthServiceCompleteFlow_Request) String() string { return proto.CompactTextString(m) } -func (*AuthServiceCompleteFlow_Request) ProtoMessage() {} -func (*AuthServiceCompleteFlow_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{73, 0} -} -func (m *AuthServiceCompleteFlow_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceCompleteFlow_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceCompleteFlow_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceCompleteFlow_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceCompleteFlow_Request.Merge(m, src) -} -func (m *AuthServiceCompleteFlow_Request) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceCompleteFlow_Request) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceCompleteFlow_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceCompleteFlow_Request proto.InternalMessageInfo - -func (m *AuthServiceCompleteFlow_Request) GetCallbackURL() string { - if m != nil { - return m.CallbackURL - } - return "" -} - -type AuthServiceCompleteFlow_Reply struct { - TokenID string `protobuf:"bytes,1,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceCompleteFlow_Reply) Reset() { *m = AuthServiceCompleteFlow_Reply{} } -func (m *AuthServiceCompleteFlow_Reply) String() string { return proto.CompactTextString(m) } -func (*AuthServiceCompleteFlow_Reply) ProtoMessage() {} -func (*AuthServiceCompleteFlow_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{73, 1} -} -func (m *AuthServiceCompleteFlow_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceCompleteFlow_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceCompleteFlow_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceCompleteFlow_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceCompleteFlow_Reply.Merge(m, src) -} -func (m *AuthServiceCompleteFlow_Reply) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceCompleteFlow_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceCompleteFlow_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceCompleteFlow_Reply proto.InternalMessageInfo - -func (m *AuthServiceCompleteFlow_Reply) GetTokenID() string { - if m != nil { - return m.TokenID - } - return "" -} - -type AuthServiceInitFlow struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceInitFlow) Reset() { *m = AuthServiceInitFlow{} } -func (m *AuthServiceInitFlow) String() string { return proto.CompactTextString(m) } -func (*AuthServiceInitFlow) ProtoMessage() {} -func (*AuthServiceInitFlow) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{74} -} -func (m *AuthServiceInitFlow) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceInitFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceInitFlow.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceInitFlow) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceInitFlow.Merge(m, src) -} -func (m *AuthServiceInitFlow) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceInitFlow) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceInitFlow.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceInitFlow proto.InternalMessageInfo - -type AuthServiceInitFlow_Request struct { - AuthURL string `protobuf:"bytes,1,opt,name=auth_url,json=authUrl,proto3" json:"auth_url,omitempty"` - Services []string `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceInitFlow_Request) Reset() { *m = AuthServiceInitFlow_Request{} } -func (m *AuthServiceInitFlow_Request) String() string { return proto.CompactTextString(m) } -func (*AuthServiceInitFlow_Request) ProtoMessage() {} -func (*AuthServiceInitFlow_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{74, 0} -} -func (m *AuthServiceInitFlow_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceInitFlow_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceInitFlow_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceInitFlow_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceInitFlow_Request.Merge(m, src) -} -func (m *AuthServiceInitFlow_Request) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceInitFlow_Request) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceInitFlow_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceInitFlow_Request proto.InternalMessageInfo - -func (m *AuthServiceInitFlow_Request) GetAuthURL() string { - if m != nil { - return m.AuthURL - } - return "" -} - -func (m *AuthServiceInitFlow_Request) GetServices() []string { - if m != nil { - return m.Services - } - return nil -} - -type AuthServiceInitFlow_Reply struct { - URL string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` - SecureURL bool `protobuf:"varint,2,opt,name=secure_url,json=secureUrl,proto3" json:"secure_url,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AuthServiceInitFlow_Reply) Reset() { *m = AuthServiceInitFlow_Reply{} } -func (m *AuthServiceInitFlow_Reply) String() string { return proto.CompactTextString(m) } -func (*AuthServiceInitFlow_Reply) ProtoMessage() {} -func (*AuthServiceInitFlow_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{74, 1} -} -func (m *AuthServiceInitFlow_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AuthServiceInitFlow_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AuthServiceInitFlow_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AuthServiceInitFlow_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_AuthServiceInitFlow_Reply.Merge(m, src) -} -func (m *AuthServiceInitFlow_Reply) XXX_Size() int { - return m.Size() -} -func (m *AuthServiceInitFlow_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_AuthServiceInitFlow_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_AuthServiceInitFlow_Reply proto.InternalMessageInfo - -func (m *AuthServiceInitFlow_Reply) GetURL() string { - if m != nil { - return m.URL - } - return "" -} - -func (m *AuthServiceInitFlow_Reply) GetSecureURL() bool { - if m != nil { - return m.SecureURL - } - return false -} - type CredentialVerificationServiceInitFlow struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -7839,7 +7223,7 @@ func (m *CredentialVerificationServiceInitFlow) Reset() { *m = Credentia func (m *CredentialVerificationServiceInitFlow) String() string { return proto.CompactTextString(m) } func (*CredentialVerificationServiceInitFlow) ProtoMessage() {} func (*CredentialVerificationServiceInitFlow) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{75} + return fileDescriptor_8aa93e54ccb19003, []int{69} } func (m *CredentialVerificationServiceInitFlow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7885,7 +7269,7 @@ func (m *CredentialVerificationServiceInitFlow_Request) String() string { } func (*CredentialVerificationServiceInitFlow_Request) ProtoMessage() {} func (*CredentialVerificationServiceInitFlow_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{75, 0} + return fileDescriptor_8aa93e54ccb19003, []int{69, 0} } func (m *CredentialVerificationServiceInitFlow_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7951,7 +7335,7 @@ func (m *CredentialVerificationServiceInitFlow_Reply) String() string { } func (*CredentialVerificationServiceInitFlow_Reply) ProtoMessage() {} func (*CredentialVerificationServiceInitFlow_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{75, 1} + return fileDescriptor_8aa93e54ccb19003, []int{69, 1} } func (m *CredentialVerificationServiceInitFlow_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8008,7 +7392,7 @@ func (m *CredentialVerificationServiceCompleteFlow) String() string { } func (*CredentialVerificationServiceCompleteFlow) ProtoMessage() {} func (*CredentialVerificationServiceCompleteFlow) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{76} + return fileDescriptor_8aa93e54ccb19003, []int{70} } func (m *CredentialVerificationServiceCompleteFlow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8052,7 +7436,7 @@ func (m *CredentialVerificationServiceCompleteFlow_Request) String() string { } func (*CredentialVerificationServiceCompleteFlow_Request) ProtoMessage() {} func (*CredentialVerificationServiceCompleteFlow_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{76, 0} + return fileDescriptor_8aa93e54ccb19003, []int{70, 0} } func (m *CredentialVerificationServiceCompleteFlow_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8103,7 +7487,7 @@ func (m *CredentialVerificationServiceCompleteFlow_Reply) String() string { } func (*CredentialVerificationServiceCompleteFlow_Reply) ProtoMessage() {} func (*CredentialVerificationServiceCompleteFlow_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{76, 1} + return fileDescriptor_8aa93e54ccb19003, []int{70, 1} } func (m *CredentialVerificationServiceCompleteFlow_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8149,7 +7533,7 @@ func (m *VerifiedCredentialsList) Reset() { *m = VerifiedCredentialsList func (m *VerifiedCredentialsList) String() string { return proto.CompactTextString(m) } func (*VerifiedCredentialsList) ProtoMessage() {} func (*VerifiedCredentialsList) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{77} + return fileDescriptor_8aa93e54ccb19003, []int{71} } func (m *VerifiedCredentialsList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8191,7 +7575,7 @@ func (m *VerifiedCredentialsList_Request) Reset() { *m = VerifiedCredent func (m *VerifiedCredentialsList_Request) String() string { return proto.CompactTextString(m) } func (*VerifiedCredentialsList_Request) ProtoMessage() {} func (*VerifiedCredentialsList_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{77, 0} + return fileDescriptor_8aa93e54ccb19003, []int{71, 0} } func (m *VerifiedCredentialsList_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8252,7 +7636,7 @@ func (m *VerifiedCredentialsList_Reply) Reset() { *m = VerifiedCredentia func (m *VerifiedCredentialsList_Reply) String() string { return proto.CompactTextString(m) } func (*VerifiedCredentialsList_Reply) ProtoMessage() {} func (*VerifiedCredentialsList_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{77, 1} + return fileDescriptor_8aa93e54ccb19003, []int{71, 1} } func (m *VerifiedCredentialsList_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8288,202 +7672,6 @@ func (m *VerifiedCredentialsList_Reply) GetCredential() *AccountVerifiedCredenti return nil } -type ServicesTokenList struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ServicesTokenList) Reset() { *m = ServicesTokenList{} } -func (m *ServicesTokenList) String() string { return proto.CompactTextString(m) } -func (*ServicesTokenList) ProtoMessage() {} -func (*ServicesTokenList) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{78} -} -func (m *ServicesTokenList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServicesTokenList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ServicesTokenList.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *ServicesTokenList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServicesTokenList.Merge(m, src) -} -func (m *ServicesTokenList) XXX_Size() int { - return m.Size() -} -func (m *ServicesTokenList) XXX_DiscardUnknown() { - xxx_messageInfo_ServicesTokenList.DiscardUnknown(m) -} - -var xxx_messageInfo_ServicesTokenList proto.InternalMessageInfo - -type ServicesTokenList_Request struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ServicesTokenList_Request) Reset() { *m = ServicesTokenList_Request{} } -func (m *ServicesTokenList_Request) String() string { return proto.CompactTextString(m) } -func (*ServicesTokenList_Request) ProtoMessage() {} -func (*ServicesTokenList_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{78, 0} -} -func (m *ServicesTokenList_Request) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServicesTokenList_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ServicesTokenList_Request.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *ServicesTokenList_Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServicesTokenList_Request.Merge(m, src) -} -func (m *ServicesTokenList_Request) XXX_Size() int { - return m.Size() -} -func (m *ServicesTokenList_Request) XXX_DiscardUnknown() { - xxx_messageInfo_ServicesTokenList_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_ServicesTokenList_Request proto.InternalMessageInfo - -type ServicesTokenList_Reply struct { - TokenID string `protobuf:"bytes,1,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` - Service *ServiceToken `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ServicesTokenList_Reply) Reset() { *m = ServicesTokenList_Reply{} } -func (m *ServicesTokenList_Reply) String() string { return proto.CompactTextString(m) } -func (*ServicesTokenList_Reply) ProtoMessage() {} -func (*ServicesTokenList_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{78, 1} -} -func (m *ServicesTokenList_Reply) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServicesTokenList_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ServicesTokenList_Reply.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *ServicesTokenList_Reply) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServicesTokenList_Reply.Merge(m, src) -} -func (m *ServicesTokenList_Reply) XXX_Size() int { - return m.Size() -} -func (m *ServicesTokenList_Reply) XXX_DiscardUnknown() { - xxx_messageInfo_ServicesTokenList_Reply.DiscardUnknown(m) -} - -var xxx_messageInfo_ServicesTokenList_Reply proto.InternalMessageInfo - -func (m *ServicesTokenList_Reply) GetTokenID() string { - if m != nil { - return m.TokenID - } - return "" -} - -func (m *ServicesTokenList_Reply) GetService() *ServiceToken { - if m != nil { - return m.Service - } - return nil -} - -type ServicesTokenCode struct { - Services []string `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"` - CodeChallenge string `protobuf:"bytes,2,opt,name=code_challenge,json=codeChallenge,proto3" json:"code_challenge,omitempty"` - TokenID string `protobuf:"bytes,3,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ServicesTokenCode) Reset() { *m = ServicesTokenCode{} } -func (m *ServicesTokenCode) String() string { return proto.CompactTextString(m) } -func (*ServicesTokenCode) ProtoMessage() {} -func (*ServicesTokenCode) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{79} -} -func (m *ServicesTokenCode) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServicesTokenCode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_ServicesTokenCode.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *ServicesTokenCode) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServicesTokenCode.Merge(m, src) -} -func (m *ServicesTokenCode) XXX_Size() int { - return m.Size() -} -func (m *ServicesTokenCode) XXX_DiscardUnknown() { - xxx_messageInfo_ServicesTokenCode.DiscardUnknown(m) -} - -var xxx_messageInfo_ServicesTokenCode proto.InternalMessageInfo - -func (m *ServicesTokenCode) GetServices() []string { - if m != nil { - return m.Services - } - return nil -} - -func (m *ServicesTokenCode) GetCodeChallenge() string { - if m != nil { - return m.CodeChallenge - } - return "" -} - -func (m *ServicesTokenCode) GetTokenID() string { - if m != nil { - return m.TokenID - } - return "" -} - type ReplicationServiceRegisterGroup struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -8494,7 +7682,7 @@ func (m *ReplicationServiceRegisterGroup) Reset() { *m = ReplicationServ func (m *ReplicationServiceRegisterGroup) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceRegisterGroup) ProtoMessage() {} func (*ReplicationServiceRegisterGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{80} + return fileDescriptor_8aa93e54ccb19003, []int{72} } func (m *ReplicationServiceRegisterGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8524,8 +7712,10 @@ func (m *ReplicationServiceRegisterGroup) XXX_DiscardUnknown() { var xxx_messageInfo_ReplicationServiceRegisterGroup proto.InternalMessageInfo type ReplicationServiceRegisterGroup_Request struct { - TokenID string `protobuf:"bytes,1,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"` - GroupPK []byte `protobuf:"bytes,2,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"` + GroupPK []byte `protobuf:"bytes,1,opt,name=group_pk,json=groupPk,proto3" json:"group_pk,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + AuthenticationURL string `protobuf:"bytes,3,opt,name=authentication_url,json=authenticationUrl,proto3" json:"authentication_url,omitempty"` + ReplicationServer string `protobuf:"bytes,4,opt,name=replication_server,json=replicationServer,proto3" json:"replication_server,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -8537,7 +7727,7 @@ func (m *ReplicationServiceRegisterGroup_Request) Reset() { func (m *ReplicationServiceRegisterGroup_Request) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceRegisterGroup_Request) ProtoMessage() {} func (*ReplicationServiceRegisterGroup_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{80, 0} + return fileDescriptor_8aa93e54ccb19003, []int{72, 0} } func (m *ReplicationServiceRegisterGroup_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8566,18 +7756,32 @@ func (m *ReplicationServiceRegisterGroup_Request) XXX_DiscardUnknown() { var xxx_messageInfo_ReplicationServiceRegisterGroup_Request proto.InternalMessageInfo -func (m *ReplicationServiceRegisterGroup_Request) GetTokenID() string { +func (m *ReplicationServiceRegisterGroup_Request) GetGroupPK() []byte { if m != nil { - return m.TokenID + return m.GroupPK + } + return nil +} + +func (m *ReplicationServiceRegisterGroup_Request) GetToken() string { + if m != nil { + return m.Token } return "" } -func (m *ReplicationServiceRegisterGroup_Request) GetGroupPK() []byte { +func (m *ReplicationServiceRegisterGroup_Request) GetAuthenticationURL() string { if m != nil { - return m.GroupPK + return m.AuthenticationURL } - return nil + return "" +} + +func (m *ReplicationServiceRegisterGroup_Request) GetReplicationServer() string { + if m != nil { + return m.ReplicationServer + } + return "" } type ReplicationServiceRegisterGroup_Reply struct { @@ -8590,7 +7794,7 @@ func (m *ReplicationServiceRegisterGroup_Reply) Reset() { *m = Replicati func (m *ReplicationServiceRegisterGroup_Reply) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceRegisterGroup_Reply) ProtoMessage() {} func (*ReplicationServiceRegisterGroup_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{80, 1} + return fileDescriptor_8aa93e54ccb19003, []int{72, 1} } func (m *ReplicationServiceRegisterGroup_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8629,7 +7833,7 @@ func (m *ReplicationServiceReplicateGroup) Reset() { *m = ReplicationSer func (m *ReplicationServiceReplicateGroup) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceReplicateGroup) ProtoMessage() {} func (*ReplicationServiceReplicateGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{81} + return fileDescriptor_8aa93e54ccb19003, []int{73} } func (m *ReplicationServiceReplicateGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8671,7 +7875,7 @@ func (m *ReplicationServiceReplicateGroup_Request) Reset() { func (m *ReplicationServiceReplicateGroup_Request) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceReplicateGroup_Request) ProtoMessage() {} func (*ReplicationServiceReplicateGroup_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{81, 0} + return fileDescriptor_8aa93e54ccb19003, []int{73, 0} } func (m *ReplicationServiceReplicateGroup_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8720,7 +7924,7 @@ func (m *ReplicationServiceReplicateGroup_Reply) Reset() { func (m *ReplicationServiceReplicateGroup_Reply) String() string { return proto.CompactTextString(m) } func (*ReplicationServiceReplicateGroup_Reply) ProtoMessage() {} func (*ReplicationServiceReplicateGroup_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{81, 1} + return fileDescriptor_8aa93e54ccb19003, []int{73, 1} } func (m *ReplicationServiceReplicateGroup_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8766,7 +7970,7 @@ func (m *SystemInfo) Reset() { *m = SystemInfo{} } func (m *SystemInfo) String() string { return proto.CompactTextString(m) } func (*SystemInfo) ProtoMessage() {} func (*SystemInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82} + return fileDescriptor_8aa93e54ccb19003, []int{74} } func (m *SystemInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8805,7 +8009,7 @@ func (m *SystemInfo_Request) Reset() { *m = SystemInfo_Request{} } func (m *SystemInfo_Request) String() string { return proto.CompactTextString(m) } func (*SystemInfo_Request) ProtoMessage() {} func (*SystemInfo_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 0} + return fileDescriptor_8aa93e54ccb19003, []int{74, 0} } func (m *SystemInfo_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8848,7 +8052,7 @@ func (m *SystemInfo_Reply) Reset() { *m = SystemInfo_Reply{} } func (m *SystemInfo_Reply) String() string { return proto.CompactTextString(m) } func (*SystemInfo_Reply) ProtoMessage() {} func (*SystemInfo_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 1} + return fileDescriptor_8aa93e54ccb19003, []int{74, 1} } func (m *SystemInfo_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8916,7 +8120,7 @@ func (m *SystemInfo_OrbitDB) Reset() { *m = SystemInfo_OrbitDB{} } func (m *SystemInfo_OrbitDB) String() string { return proto.CompactTextString(m) } func (*SystemInfo_OrbitDB) ProtoMessage() {} func (*SystemInfo_OrbitDB) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 2} + return fileDescriptor_8aa93e54ccb19003, []int{74, 2} } func (m *SystemInfo_OrbitDB) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8966,7 +8170,7 @@ func (m *SystemInfo_OrbitDB_ReplicationStatus) Reset() { *m = SystemInfo func (m *SystemInfo_OrbitDB_ReplicationStatus) String() string { return proto.CompactTextString(m) } func (*SystemInfo_OrbitDB_ReplicationStatus) ProtoMessage() {} func (*SystemInfo_OrbitDB_ReplicationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 2, 0} + return fileDescriptor_8aa93e54ccb19003, []int{74, 2, 0} } func (m *SystemInfo_OrbitDB_ReplicationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9034,7 +8238,7 @@ func (m *SystemInfo_P2P) Reset() { *m = SystemInfo_P2P{} } func (m *SystemInfo_P2P) String() string { return proto.CompactTextString(m) } func (*SystemInfo_P2P) ProtoMessage() {} func (*SystemInfo_P2P) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 3} + return fileDescriptor_8aa93e54ccb19003, []int{74, 3} } func (m *SystemInfo_P2P) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9102,7 +8306,7 @@ func (m *SystemInfo_Process) Reset() { *m = SystemInfo_Process{} } func (m *SystemInfo_Process) String() string { return proto.CompactTextString(m) } func (*SystemInfo_Process) ProtoMessage() {} func (*SystemInfo_Process) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{82, 4} + return fileDescriptor_8aa93e54ccb19003, []int{74, 4} } func (m *SystemInfo_Process) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9295,7 +8499,7 @@ func (m *PeerList) Reset() { *m = PeerList{} } func (m *PeerList) String() string { return proto.CompactTextString(m) } func (*PeerList) ProtoMessage() {} func (*PeerList) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83} + return fileDescriptor_8aa93e54ccb19003, []int{75} } func (m *PeerList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9334,7 +8538,7 @@ func (m *PeerList_Request) Reset() { *m = PeerList_Request{} } func (m *PeerList_Request) String() string { return proto.CompactTextString(m) } func (*PeerList_Request) ProtoMessage() {} func (*PeerList_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 0} + return fileDescriptor_8aa93e54ccb19003, []int{75, 0} } func (m *PeerList_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9374,7 +8578,7 @@ func (m *PeerList_Reply) Reset() { *m = PeerList_Reply{} } func (m *PeerList_Reply) String() string { return proto.CompactTextString(m) } func (*PeerList_Reply) ProtoMessage() {} func (*PeerList_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 1} + return fileDescriptor_8aa93e54ccb19003, []int{75, 1} } func (m *PeerList_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9434,7 +8638,7 @@ func (m *PeerList_Peer) Reset() { *m = PeerList_Peer{} } func (m *PeerList_Peer) String() string { return proto.CompactTextString(m) } func (*PeerList_Peer) ProtoMessage() {} func (*PeerList_Peer) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 2} + return fileDescriptor_8aa93e54ccb19003, []int{75, 2} } func (m *PeerList_Peer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9532,7 +8736,7 @@ func (m *PeerList_Route) Reset() { *m = PeerList_Route{} } func (m *PeerList_Route) String() string { return proto.CompactTextString(m) } func (*PeerList_Route) ProtoMessage() {} func (*PeerList_Route) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 3} + return fileDescriptor_8aa93e54ccb19003, []int{75, 3} } func (m *PeerList_Route) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9608,7 +8812,7 @@ func (m *PeerList_Stream) Reset() { *m = PeerList_Stream{} } func (m *PeerList_Stream) String() string { return proto.CompactTextString(m) } func (*PeerList_Stream) ProtoMessage() {} func (*PeerList_Stream) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{83, 4} + return fileDescriptor_8aa93e54ccb19003, []int{75, 4} } func (m *PeerList_Stream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9661,7 +8865,7 @@ func (m *Progress) Reset() { *m = Progress{} } func (m *Progress) String() string { return proto.CompactTextString(m) } func (*Progress) ProtoMessage() {} func (*Progress) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{84} + return fileDescriptor_8aa93e54ccb19003, []int{76} } func (m *Progress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9749,7 +8953,7 @@ func (m *OutOfStoreMessage) Reset() { *m = OutOfStoreMessage{} } func (m *OutOfStoreMessage) String() string { return proto.CompactTextString(m) } func (*OutOfStoreMessage) ProtoMessage() {} func (*OutOfStoreMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{85} + return fileDescriptor_8aa93e54ccb19003, []int{77} } func (m *OutOfStoreMessage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9840,7 +9044,7 @@ func (m *OutOfStoreMessageEnvelope) Reset() { *m = OutOfStoreMessageEnve func (m *OutOfStoreMessageEnvelope) String() string { return proto.CompactTextString(m) } func (*OutOfStoreMessageEnvelope) ProtoMessage() {} func (*OutOfStoreMessageEnvelope) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{86} + return fileDescriptor_8aa93e54ccb19003, []int{78} } func (m *OutOfStoreMessageEnvelope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9900,7 +9104,7 @@ func (m *OutOfStoreReceive) Reset() { *m = OutOfStoreReceive{} } func (m *OutOfStoreReceive) String() string { return proto.CompactTextString(m) } func (*OutOfStoreReceive) ProtoMessage() {} func (*OutOfStoreReceive) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{87} + return fileDescriptor_8aa93e54ccb19003, []int{79} } func (m *OutOfStoreReceive) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9940,7 +9144,7 @@ func (m *OutOfStoreReceive_Request) Reset() { *m = OutOfStoreReceive_Req func (m *OutOfStoreReceive_Request) String() string { return proto.CompactTextString(m) } func (*OutOfStoreReceive_Request) ProtoMessage() {} func (*OutOfStoreReceive_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{87, 0} + return fileDescriptor_8aa93e54ccb19003, []int{79, 0} } func (m *OutOfStoreReceive_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9990,7 +9194,7 @@ func (m *OutOfStoreReceive_Reply) Reset() { *m = OutOfStoreReceive_Reply func (m *OutOfStoreReceive_Reply) String() string { return proto.CompactTextString(m) } func (*OutOfStoreReceive_Reply) ProtoMessage() {} func (*OutOfStoreReceive_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{87, 1} + return fileDescriptor_8aa93e54ccb19003, []int{79, 1} } func (m *OutOfStoreReceive_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10057,7 +9261,7 @@ func (m *OutOfStoreSeal) Reset() { *m = OutOfStoreSeal{} } func (m *OutOfStoreSeal) String() string { return proto.CompactTextString(m) } func (*OutOfStoreSeal) ProtoMessage() {} func (*OutOfStoreSeal) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{88} + return fileDescriptor_8aa93e54ccb19003, []int{80} } func (m *OutOfStoreSeal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10098,7 +9302,7 @@ func (m *OutOfStoreSeal_Request) Reset() { *m = OutOfStoreSeal_Request{} func (m *OutOfStoreSeal_Request) String() string { return proto.CompactTextString(m) } func (*OutOfStoreSeal_Request) ProtoMessage() {} func (*OutOfStoreSeal_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{88, 0} + return fileDescriptor_8aa93e54ccb19003, []int{80, 0} } func (m *OutOfStoreSeal_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10152,7 +9356,7 @@ func (m *OutOfStoreSeal_Reply) Reset() { *m = OutOfStoreSeal_Reply{} } func (m *OutOfStoreSeal_Reply) String() string { return proto.CompactTextString(m) } func (*OutOfStoreSeal_Reply) ProtoMessage() {} func (*OutOfStoreSeal_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{88, 1} + return fileDescriptor_8aa93e54ccb19003, []int{80, 1} } func (m *OutOfStoreSeal_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10206,7 +9410,7 @@ func (m *AccountVerifiedCredentialRegistered) Reset() { *m = AccountVeri func (m *AccountVerifiedCredentialRegistered) String() string { return proto.CompactTextString(m) } func (*AccountVerifiedCredentialRegistered) ProtoMessage() {} func (*AccountVerifiedCredentialRegistered) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{89} + return fileDescriptor_8aa93e54ccb19003, []int{81} } func (m *AccountVerifiedCredentialRegistered) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10296,7 +9500,7 @@ func (m *FirstLastCounters) Reset() { *m = FirstLastCounters{} } func (m *FirstLastCounters) String() string { return proto.CompactTextString(m) } func (*FirstLastCounters) ProtoMessage() {} func (*FirstLastCounters) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{90} + return fileDescriptor_8aa93e54ccb19003, []int{82} } func (m *FirstLastCounters) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10354,7 +9558,7 @@ func (m *OrbitDBMessageHeads) Reset() { *m = OrbitDBMessageHeads{} } func (m *OrbitDBMessageHeads) String() string { return proto.CompactTextString(m) } func (*OrbitDBMessageHeads) ProtoMessage() {} func (*OrbitDBMessageHeads) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{91} + return fileDescriptor_8aa93e54ccb19003, []int{83} } func (m *OrbitDBMessageHeads) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10411,7 +9615,7 @@ func (m *OrbitDBMessageHeads_Box) Reset() { *m = OrbitDBMessageHeads_Box func (m *OrbitDBMessageHeads_Box) String() string { return proto.CompactTextString(m) } func (*OrbitDBMessageHeads_Box) ProtoMessage() {} func (*OrbitDBMessageHeads_Box) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{91, 0} + return fileDescriptor_8aa93e54ccb19003, []int{83, 0} } func (m *OrbitDBMessageHeads_Box) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10478,7 +9682,7 @@ func (m *RefreshContactRequest) Reset() { *m = RefreshContactRequest{} } func (m *RefreshContactRequest) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest) ProtoMessage() {} func (*RefreshContactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{92} + return fileDescriptor_8aa93e54ccb19003, []int{84} } func (m *RefreshContactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10521,7 +9725,7 @@ func (m *RefreshContactRequest_Peer) Reset() { *m = RefreshContactReques func (m *RefreshContactRequest_Peer) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Peer) ProtoMessage() {} func (*RefreshContactRequest_Peer) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{92, 0} + return fileDescriptor_8aa93e54ccb19003, []int{84, 0} } func (m *RefreshContactRequest_Peer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10577,7 +9781,7 @@ func (m *RefreshContactRequest_Request) Reset() { *m = RefreshContactReq func (m *RefreshContactRequest_Request) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Request) ProtoMessage() {} func (*RefreshContactRequest_Request) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{92, 1} + return fileDescriptor_8aa93e54ccb19003, []int{84, 1} } func (m *RefreshContactRequest_Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10632,7 +9836,7 @@ func (m *RefreshContactRequest_Reply) Reset() { *m = RefreshContactReque func (m *RefreshContactRequest_Reply) String() string { return proto.CompactTextString(m) } func (*RefreshContactRequest_Reply) ProtoMessage() {} func (*RefreshContactRequest_Reply) Descriptor() ([]byte, []int) { - return fileDescriptor_8aa93e54ccb19003, []int{92, 2} + return fileDescriptor_8aa93e54ccb19003, []int{84, 2} } func (m *RefreshContactRequest_Reply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10711,8 +9915,6 @@ func init() { proto.RegisterType((*AccountContactRequestIncomingAccepted)(nil), "weshnet.protocol.v1.AccountContactRequestIncomingAccepted") proto.RegisterType((*AccountContactBlocked)(nil), "weshnet.protocol.v1.AccountContactBlocked") proto.RegisterType((*AccountContactUnblocked)(nil), "weshnet.protocol.v1.AccountContactUnblocked") - proto.RegisterType((*AccountServiceTokenAdded)(nil), "weshnet.protocol.v1.AccountServiceTokenAdded") - proto.RegisterType((*AccountServiceTokenRemoved)(nil), "weshnet.protocol.v1.AccountServiceTokenRemoved") proto.RegisterType((*GroupReplicating)(nil), "weshnet.protocol.v1.GroupReplicating") proto.RegisterType((*ServiceExportData)(nil), "weshnet.protocol.v1.ServiceExportData") proto.RegisterType((*ServiceExportData_Request)(nil), "weshnet.protocol.v1.ServiceExportData.Request") @@ -10810,20 +10012,9 @@ func init() { proto.RegisterType((*DebugGroup)(nil), "weshnet.protocol.v1.DebugGroup") proto.RegisterType((*DebugGroup_Request)(nil), "weshnet.protocol.v1.DebugGroup.Request") proto.RegisterType((*DebugGroup_Reply)(nil), "weshnet.protocol.v1.DebugGroup.Reply") - proto.RegisterType((*AuthExchangeResponse)(nil), "weshnet.protocol.v1.AuthExchangeResponse") - proto.RegisterMapType((map[string]string)(nil), "weshnet.protocol.v1.AuthExchangeResponse.ServicesEntry") - proto.RegisterType((*DebugAuthServiceSetToken)(nil), "weshnet.protocol.v1.DebugAuthServiceSetToken") - proto.RegisterType((*DebugAuthServiceSetToken_Request)(nil), "weshnet.protocol.v1.DebugAuthServiceSetToken.Request") - proto.RegisterType((*DebugAuthServiceSetToken_Reply)(nil), "weshnet.protocol.v1.DebugAuthServiceSetToken.Reply") proto.RegisterType((*ShareableContact)(nil), "weshnet.protocol.v1.ShareableContact") proto.RegisterType((*ServiceTokenSupportedService)(nil), "weshnet.protocol.v1.ServiceTokenSupportedService") proto.RegisterType((*ServiceToken)(nil), "weshnet.protocol.v1.ServiceToken") - proto.RegisterType((*AuthServiceCompleteFlow)(nil), "weshnet.protocol.v1.AuthServiceCompleteFlow") - proto.RegisterType((*AuthServiceCompleteFlow_Request)(nil), "weshnet.protocol.v1.AuthServiceCompleteFlow.Request") - proto.RegisterType((*AuthServiceCompleteFlow_Reply)(nil), "weshnet.protocol.v1.AuthServiceCompleteFlow.Reply") - proto.RegisterType((*AuthServiceInitFlow)(nil), "weshnet.protocol.v1.AuthServiceInitFlow") - proto.RegisterType((*AuthServiceInitFlow_Request)(nil), "weshnet.protocol.v1.AuthServiceInitFlow.Request") - proto.RegisterType((*AuthServiceInitFlow_Reply)(nil), "weshnet.protocol.v1.AuthServiceInitFlow.Reply") proto.RegisterType((*CredentialVerificationServiceInitFlow)(nil), "weshnet.protocol.v1.CredentialVerificationServiceInitFlow") proto.RegisterType((*CredentialVerificationServiceInitFlow_Request)(nil), "weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Request") proto.RegisterType((*CredentialVerificationServiceInitFlow_Reply)(nil), "weshnet.protocol.v1.CredentialVerificationServiceInitFlow.Reply") @@ -10833,10 +10024,6 @@ func init() { proto.RegisterType((*VerifiedCredentialsList)(nil), "weshnet.protocol.v1.VerifiedCredentialsList") proto.RegisterType((*VerifiedCredentialsList_Request)(nil), "weshnet.protocol.v1.VerifiedCredentialsList.Request") proto.RegisterType((*VerifiedCredentialsList_Reply)(nil), "weshnet.protocol.v1.VerifiedCredentialsList.Reply") - proto.RegisterType((*ServicesTokenList)(nil), "weshnet.protocol.v1.ServicesTokenList") - proto.RegisterType((*ServicesTokenList_Request)(nil), "weshnet.protocol.v1.ServicesTokenList.Request") - proto.RegisterType((*ServicesTokenList_Reply)(nil), "weshnet.protocol.v1.ServicesTokenList.Reply") - proto.RegisterType((*ServicesTokenCode)(nil), "weshnet.protocol.v1.ServicesTokenCode") proto.RegisterType((*ReplicationServiceRegisterGroup)(nil), "weshnet.protocol.v1.ReplicationServiceRegisterGroup") proto.RegisterType((*ReplicationServiceRegisterGroup_Request)(nil), "weshnet.protocol.v1.ReplicationServiceRegisterGroup.Request") proto.RegisterType((*ReplicationServiceRegisterGroup_Reply)(nil), "weshnet.protocol.v1.ReplicationServiceRegisterGroup.Reply") @@ -10878,392 +10065,367 @@ func init() { func init() { proto.RegisterFile("protocoltypes.proto", fileDescriptor_8aa93e54ccb19003) } var fileDescriptor_8aa93e54ccb19003 = []byte{ - // 6158 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x5d, 0x6c, 0x1c, 0xd7, - 0x75, 0xb0, 0x67, 0x97, 0xe4, 0xee, 0x1e, 0x2e, 0x97, 0xc3, 0x2b, 0x4a, 0x5a, 0xaf, 0x25, 0x51, - 0x1e, 0x59, 0xb2, 0x24, 0xdb, 0x94, 0x4c, 0xfb, 0x8b, 0xe3, 0x28, 0x4e, 0x42, 0x91, 0x94, 0x42, - 0x8b, 0x92, 0xd6, 0x43, 0x31, 0x89, 0x03, 0xe3, 0x9b, 0x0c, 0x67, 0xee, 0x2e, 0x27, 0x9c, 0x9d, - 0x19, 0xcf, 0xcc, 0x92, 0x62, 0x90, 0x14, 0x69, 0xfe, 0x9a, 0x02, 0x4e, 0x9a, 0x26, 0x0f, 0x2d, - 0xd0, 0xa0, 0x4f, 0x7d, 0x28, 0x50, 0xa4, 0x05, 0x82, 0x22, 0x40, 0x81, 0x3e, 0xf5, 0xa9, 0x29, - 0xda, 0x22, 0x4f, 0x7d, 0xe8, 0x03, 0x9b, 0xb2, 0x2f, 0x29, 0x50, 0x14, 0x05, 0x9a, 0xb6, 0x0f, - 0x01, 0x8a, 0xe2, 0xfe, 0xcd, 0xcf, 0x72, 0x66, 0x77, 0x47, 0x94, 0xd1, 0x87, 0x3e, 0x71, 0xef, - 0x99, 0xf3, 0x77, 0xcf, 0xfd, 0x3b, 0xf7, 0xdc, 0x73, 0x08, 0xa7, 0x3c, 0xdf, 0x0d, 0x5d, 0xc3, - 0xb5, 0xc3, 0x03, 0x0f, 0x07, 0x8b, 0xb4, 0x85, 0x4e, 0xed, 0xe3, 0x60, 0xc7, 0xc1, 0xe1, 0xa2, - 0xf8, 0xb8, 0xb8, 0xf7, 0x6a, 0x6b, 0xbe, 0xeb, 0x76, 0x5d, 0x0a, 0xb8, 0x41, 0x7e, 0xb1, 0x6f, - 0xca, 0xdf, 0x48, 0x50, 0x59, 0x36, 0x0c, 0xb7, 0xef, 0x84, 0xe8, 0x26, 0x4c, 0x76, 0x7d, 0xb7, - 0xef, 0x35, 0xa5, 0x8b, 0xd2, 0xd5, 0xe9, 0xa5, 0xd6, 0x62, 0x06, 0x9b, 0xc5, 0xbb, 0x04, 0x43, - 0x65, 0x88, 0x68, 0x11, 0x4e, 0xe9, 0x8c, 0x58, 0xf3, 0x7c, 0x6b, 0x4f, 0x0f, 0xb1, 0xb6, 0x8b, - 0x0f, 0x9a, 0xa5, 0x8b, 0xd2, 0xd5, 0xba, 0x3a, 0xc7, 0x3f, 0xb5, 0xd9, 0x97, 0x7b, 0xf8, 0x00, - 0x5d, 0x87, 0x39, 0xdd, 0xb6, 0xf4, 0x20, 0x85, 0x5d, 0xa6, 0xd8, 0xb3, 0xf4, 0x43, 0x02, 0xf7, - 0x75, 0x38, 0xe3, 0xf5, 0xb7, 0x6d, 0xcb, 0xd0, 0x7c, 0xec, 0x98, 0xf8, 0x4b, 0x7b, 0x6e, 0x3f, - 0xd0, 0x02, 0x8c, 0xcd, 0xe6, 0x04, 0x25, 0x98, 0x67, 0x5f, 0xd5, 0xe8, 0xe3, 0x26, 0xc6, 0xa6, - 0xf2, 0x4b, 0x09, 0x26, 0xa9, 0x8a, 0xe8, 0x3c, 0x00, 0xa7, 0x27, 0x42, 0x24, 0x4a, 0x53, 0x63, - 0x10, 0xc2, 0xfe, 0x0c, 0x4c, 0x05, 0xd8, 0xf0, 0x71, 0xc8, 0xb5, 0xe5, 0x2d, 0x42, 0xc6, 0x7e, - 0x69, 0x81, 0xd5, 0xe5, 0xba, 0xd5, 0x18, 0x64, 0xd3, 0xea, 0xa2, 0xb7, 0x00, 0x68, 0xd7, 0x35, - 0x62, 0x6f, 0xaa, 0x49, 0x63, 0xe9, 0x42, 0xbe, 0xa1, 0x1e, 0x1d, 0x78, 0x58, 0xad, 0x75, 0xc5, - 0x4f, 0xf4, 0x2c, 0x54, 0x03, 0xab, 0xeb, 0x68, 0x5e, 0x7f, 0xbb, 0x39, 0x49, 0x79, 0x57, 0x48, - 0xbb, 0xdd, 0xdf, 0x26, 0x9f, 0x6c, 0xcb, 0xd9, 0xa5, 0xda, 0x4e, 0xb1, 0x4f, 0xa4, 0x4d, 0x74, - 0xbd, 0x08, 0x75, 0xf1, 0x89, 0x6a, 0x55, 0xa1, 0x9f, 0x81, 0x7f, 0xde, 0xb4, 0xba, 0xca, 0x7f, - 0x48, 0x20, 0x53, 0x81, 0x9f, 0xc6, 0xba, 0x19, 0xac, 0x3d, 0xf6, 0x5c, 0x3f, 0x1c, 0x65, 0x81, - 0xa4, 0x2e, 0xa5, 0xb4, 0x2e, 0x6b, 0x70, 0xaa, 0x87, 0x43, 0xdd, 0xd4, 0x43, 0x5d, 0xdb, 0x21, - 0x1c, 0x35, 0xc3, 0x32, 0x83, 0x66, 0xf9, 0x62, 0xf9, 0x6a, 0xfd, 0xf6, 0xe9, 0xa3, 0xc3, 0x85, - 0xb9, 0xfb, 0xfc, 0x33, 0x95, 0xb7, 0xb2, 0xbe, 0x1a, 0xa8, 0x73, 0xbd, 0x14, 0xc8, 0x32, 0x03, - 0xc6, 0x26, 0x08, 0xf4, 0x2e, 0x0e, 0x92, 0x6c, 0x26, 0x92, 0x6c, 0xd8, 0xe7, 0x14, 0x9b, 0x24, - 0x88, 0xb0, 0x49, 0x5a, 0x66, 0x32, 0x65, 0x19, 0xe5, 0x6f, 0x25, 0x98, 0xa1, 0xfd, 0x16, 0xfa, - 0x90, 0x01, 0xc2, 0x7b, 0xd8, 0x09, 0xd9, 0x00, 0x49, 0x43, 0x06, 0x68, 0x8d, 0xa0, 0xb1, 0x01, - 0xc2, 0xe2, 0x27, 0x6a, 0x42, 0xc5, 0xd3, 0x0f, 0x6c, 0x57, 0x37, 0x85, 0x4d, 0x78, 0x13, 0xc9, - 0x50, 0x8e, 0x67, 0x04, 0xf9, 0x89, 0x54, 0x98, 0x13, 0xfc, 0x34, 0xd1, 0x79, 0x3a, 0x25, 0xa6, - 0x97, 0x2e, 0x67, 0x4a, 0x6c, 0xf3, 0xdf, 0x42, 0x59, 0x55, 0xf6, 0x06, 0x20, 0xca, 0x32, 0xef, - 0xcf, 0x9a, 0xb3, 0x87, 0x6d, 0xd7, 0xc3, 0x68, 0x1e, 0x26, 0x1d, 0xd7, 0x31, 0x30, 0x1f, 0x3f, - 0xd6, 0x20, 0x50, 0xaa, 0x33, 0x57, 0x92, 0x35, 0xde, 0x9e, 0xa8, 0x96, 0xe5, 0x09, 0xe5, 0xdf, - 0x25, 0x68, 0x70, 0xbb, 0x12, 0x1b, 0x62, 0x3f, 0x20, 0xbd, 0xa2, 0x4b, 0x11, 0xfb, 0x94, 0xcd, - 0x84, 0x2a, 0x9a, 0xe8, 0x1a, 0xd4, 0x4c, 0xbc, 0x67, 0x19, 0x58, 0xf3, 0x76, 0x19, 0xb3, 0xdb, - 0xf5, 0xa3, 0xc3, 0x85, 0xea, 0x2a, 0x05, 0xb6, 0xef, 0xa9, 0x55, 0xf6, 0xb9, 0xbd, 0x9b, 0x61, - 0x80, 0xfb, 0x50, 0x4d, 0xf4, 0xbb, 0x7c, 0x75, 0x7a, 0xe9, 0xd5, 0xcc, 0x7e, 0xa7, 0xb5, 0x59, - 0x14, 0x9d, 0x5d, 0x73, 0x42, 0xff, 0x40, 0x8d, 0x58, 0xb4, 0x6e, 0xc1, 0x4c, 0xea, 0x13, 0x91, - 0x28, 0x66, 0x6e, 0x4d, 0x25, 0x3f, 0x49, 0xbf, 0xf7, 0x74, 0xbb, 0x8f, 0xa9, 0xaa, 0x35, 0x95, - 0x35, 0x3e, 0x56, 0xfa, 0xa8, 0xa4, 0x34, 0x41, 0x1e, 0x34, 0xef, 0xdb, 0x13, 0x55, 0x49, 0x2e, - 0x29, 0xdf, 0x90, 0x40, 0x5e, 0x73, 0x0c, 0xff, 0xc0, 0x0b, 0xb1, 0xc9, 0x55, 0x41, 0xe7, 0xa0, - 0xe6, 0xd9, 0xba, 0xe5, 0x84, 0xf8, 0x71, 0x18, 0x2d, 0x0d, 0x01, 0xc8, 0x1e, 0xd9, 0xd2, 0xc9, - 0x46, 0xd6, 0x83, 0x59, 0x2e, 0x3c, 0x1a, 0xdb, 0x17, 0x61, 0x96, 0xcf, 0x76, 0xba, 0x3c, 0xb0, - 0x1f, 0x70, 0x55, 0x1a, 0xbd, 0x63, 0xe3, 0xc7, 0x21, 0x62, 0x56, 0xf2, 0x66, 0x3c, 0x3d, 0xca, - 0x89, 0xe9, 0xf1, 0xf6, 0x44, 0x75, 0x42, 0x9e, 0x54, 0xbe, 0x26, 0x41, 0x9d, 0x4e, 0xf2, 0x15, - 0x97, 0x75, 0xeb, 0x0c, 0x94, 0x2c, 0x93, 0x89, 0xb8, 0x3d, 0x75, 0x74, 0xb8, 0x50, 0x5a, 0x5f, - 0x55, 0x4b, 0x96, 0x89, 0x5e, 0x06, 0xf0, 0x74, 0x9f, 0x2c, 0x1a, 0xb2, 0x3c, 0x4b, 0x74, 0x79, - 0xce, 0x1c, 0x1d, 0x2e, 0xd4, 0xda, 0x14, 0x4a, 0x96, 0x65, 0x8d, 0x21, 0xac, 0x9b, 0x01, 0xba, - 0x02, 0x55, 0xb6, 0x05, 0x7a, 0xbb, 0x4c, 0xea, 0xed, 0xe9, 0xa3, 0xc3, 0x85, 0x0a, 0x9d, 0xb6, - 0xed, 0x7b, 0x6a, 0x85, 0x7e, 0x6c, 0xef, 0x72, 0x25, 0x34, 0x68, 0xa6, 0x16, 0x68, 0x9b, 0x2d, - 0xa7, 0x4d, 0xec, 0x84, 0xe9, 0xc9, 0x27, 0x0d, 0x9d, 0x7c, 0xb9, 0x16, 0x50, 0x2c, 0x98, 0x27, - 0xfd, 0xd3, 0x8d, 0x70, 0x99, 0x9c, 0x20, 0xf7, 0xf0, 0xc1, 0xb2, 0x69, 0x62, 0xb3, 0x08, 0xf3, - 0x2b, 0x50, 0xe5, 0xc7, 0x92, 0x58, 0x03, 0xb4, 0x47, 0x94, 0x1f, 0xe9, 0x11, 0x3b, 0x9a, 0x76, - 0x95, 0xef, 0x48, 0x70, 0x86, 0x77, 0xa6, 0xb7, 0x8d, 0x7d, 0xc6, 0x29, 0x92, 0xd6, 0xa3, 0xc0, - 0x01, 0x69, 0x0c, 0x93, 0x48, 0x63, 0x9f, 0xdb, 0xbb, 0x45, 0x96, 0xdc, 0x79, 0x00, 0xce, 0x35, - 0x71, 0x18, 0x31, 0x08, 0xd9, 0xf5, 0xef, 0x42, 0x83, 0x11, 0xad, 0xec, 0xe8, 0x96, 0x43, 0xf6, - 0xf4, 0xe7, 0xa0, 0x66, 0x90, 0xdf, 0x89, 0x1d, 0xbf, 0x6a, 0x88, 0x8f, 0x89, 0x5d, 0xa0, 0x94, - 0xda, 0x05, 0x94, 0xdf, 0x91, 0xf8, 0x28, 0xa5, 0xd9, 0x15, 0x36, 0xe4, 0x47, 0xa0, 0x61, 0xe2, - 0x20, 0xd4, 0x62, 0x53, 0xb0, 0xfe, 0xc9, 0x47, 0x87, 0x0b, 0xf5, 0x55, 0x1c, 0x84, 0x91, 0x39, - 0xea, 0x66, 0xdc, 0xda, 0x4d, 0xee, 0xba, 0xe5, 0xd4, 0xae, 0x4b, 0x34, 0x53, 0xee, 0xf7, 0xed, - 0xd0, 0x62, 0xb8, 0x54, 0x49, 0x3a, 0x2e, 0x2a, 0x0e, 0x5c, 0x7b, 0x0f, 0xfb, 0x85, 0x75, 0xbc, - 0x0c, 0x0d, 0x36, 0xd8, 0x3e, 0xe7, 0xc0, 0x27, 0xd4, 0x8c, 0x9e, 0x64, 0x8b, 0x16, 0x60, 0x5a, - 0xb8, 0x2a, 0xae, 0xdb, 0xe1, 0x6a, 0x01, 0x77, 0x52, 0x5c, 0xb7, 0xa3, 0x7c, 0x57, 0x82, 0x8b, - 0xc7, 0x34, 0x33, 0x7b, 0x96, 0xa3, 0xba, 0x36, 0xbe, 0xeb, 0xeb, 0x4e, 0x58, 0x4c, 0xaf, 0x4f, - 0xc2, 0x5c, 0x97, 0x52, 0xe1, 0x63, 0xe6, 0x3b, 0x75, 0x74, 0xb8, 0x30, 0xcb, 0x58, 0xe2, 0xc8, - 0x82, 0xb3, 0xdd, 0x14, 0x60, 0x57, 0xd9, 0x84, 0x2b, 0x83, 0xfa, 0xac, 0x3b, 0x56, 0x68, 0xe9, - 0x36, 0x83, 0x2c, 0x3b, 0x8e, 0xdb, 0x77, 0x8c, 0x42, 0x93, 0x55, 0xd1, 0xe1, 0x22, 0xef, 0x99, - 0xb9, 0x6c, 0x9a, 0x56, 0x68, 0xb9, 0x8e, 0x6e, 0xa7, 0x7d, 0xae, 0x22, 0x9d, 0x44, 0x30, 0x41, - 0x5d, 0x38, 0x66, 0x72, 0xfa, 0x5b, 0x31, 0xe1, 0x12, 0x73, 0x2a, 0x71, 0xcf, 0xdd, 0xc3, 0x1f, - 0x96, 0x94, 0xf7, 0x01, 0x71, 0x3f, 0x97, 0x0a, 0x7b, 0xdb, 0xb5, 0x9c, 0x62, 0x4c, 0x23, 0xef, - 0xb8, 0x34, 0xa6, 0x77, 0xac, 0x60, 0x90, 0x93, 0x22, 0x37, 0x70, 0x27, 0x2c, 0xb8, 0x2b, 0x45, - 0xfb, 0x6c, 0x29, 0x7f, 0x9f, 0x55, 0xde, 0x86, 0xf3, 0x5c, 0x0c, 0xdf, 0x07, 0x55, 0xfc, 0x7e, - 0x1f, 0x07, 0xe1, 0xaa, 0x15, 0xe8, 0xdb, 0x76, 0xa1, 0x4e, 0x2a, 0xeb, 0x70, 0x2e, 0x93, 0xd7, - 0x9a, 0x53, 0x98, 0xd5, 0xb7, 0x24, 0xb8, 0x94, 0xc9, 0x4b, 0xc5, 0x1d, 0xec, 0x63, 0xc7, 0xc0, - 0x2a, 0x0e, 0x70, 0x21, 0x8b, 0xe4, 0x5f, 0x09, 0x4a, 0x43, 0xae, 0x04, 0x87, 0x12, 0x5c, 0xce, - 0x54, 0xe4, 0x61, 0x3f, 0xec, 0xba, 0x96, 0xd3, 0x5d, 0x73, 0xde, 0xef, 0xe3, 0x7e, 0xe1, 0x23, - 0x63, 0x9c, 0xc1, 0x41, 0x9f, 0x24, 0x7b, 0x2e, 0x15, 0x4a, 0xb7, 0x90, 0x3c, 0xff, 0x61, 0x73, - 0x47, 0xf7, 0x31, 0x31, 0xb1, 0xd0, 0x50, 0x50, 0xa1, 0xe7, 0xa1, 0xee, 0xee, 0x3b, 0x69, 0xff, - 0xb2, 0xae, 0x4e, 0xbb, 0xfb, 0x4e, 0xe4, 0x59, 0x7c, 0x19, 0x9e, 0x1f, 0xda, 0xbf, 0xa2, 0x67, - 0xed, 0xcb, 0x00, 0x5c, 0x7a, 0xdc, 0x3b, 0xea, 0x0e, 0x70, 0xf6, 0xed, 0x7b, 0x6a, 0x8d, 0x23, - 0xb4, 0x77, 0x95, 0x7f, 0xca, 0x33, 0xef, 0xba, 0x63, 0xb8, 0x3d, 0xcb, 0xe9, 0xaa, 0xd8, 0xc0, - 0xd6, 0x5e, 0x31, 0xf3, 0x16, 0x52, 0x01, 0x7d, 0x04, 0xce, 0x0a, 0xec, 0xc1, 0x89, 0xc1, 0xf6, - 0xed, 0xd3, 0x86, 0xd0, 0x6c, 0x60, 0x4b, 0x91, 0x05, 0xdd, 0x80, 0x7d, 0x67, 0x39, 0x3c, 0xb2, - 0xf1, 0xaf, 0x4b, 0x70, 0x65, 0x68, 0x2f, 0x57, 0xad, 0xc0, 0xd0, 0x7d, 0xf3, 0x43, 0xec, 0xa6, - 0xf2, 0x87, 0xa3, 0x2c, 0xbd, 0x6c, 0x18, 0xd8, 0x0b, 0x3f, 0x4c, 0x4b, 0x8f, 0xe9, 0xfb, 0x29, - 0x1e, 0x9c, 0x4e, 0x6b, 0x7a, 0xdb, 0x76, 0x8d, 0xdd, 0x0f, 0xd3, 0x38, 0x3e, 0x9c, 0x4d, 0x4b, - 0xdc, 0x72, 0xb6, 0x3f, 0x6c, 0x99, 0xdf, 0x91, 0xa0, 0xc9, 0x85, 0x6e, 0x62, 0x9f, 0xb0, 0x78, - 0xe4, 0xee, 0x62, 0xa7, 0xb0, 0x4b, 0x72, 0x07, 0x66, 0x02, 0x46, 0xaf, 0x85, 0x84, 0x01, 0x3f, - 0x62, 0x9e, 0xcf, 0xde, 0x2a, 0x12, 0x92, 0xd4, 0x7a, 0x90, 0x68, 0x29, 0x2e, 0xb4, 0x32, 0xd4, - 0x61, 0xe7, 0x6a, 0xd1, 0xdd, 0x8d, 0x2a, 0xa2, 0x59, 0x6c, 0x6b, 0xad, 0xb1, 0x61, 0xa6, 0xec, - 0xd6, 0x57, 0xd5, 0x0a, 0xfd, 0xb8, 0x6e, 0x2a, 0x3f, 0x16, 0x61, 0x07, 0x15, 0x7b, 0xb6, 0x65, - 0xe8, 0xa1, 0xe5, 0x74, 0x8b, 0xc8, 0x59, 0x05, 0xa4, 0xf7, 0xc3, 0x1d, 0xec, 0x84, 0x94, 0xd8, - 0x75, 0xb4, 0xbe, 0x6f, 0x73, 0x89, 0x34, 0x3e, 0xb0, 0x9c, 0xfa, 0xba, 0xa5, 0x6e, 0xa8, 0x73, - 0x69, 0x82, 0x2d, 0xdf, 0x46, 0xaf, 0x00, 0xf2, 0x85, 0x7c, 0xd7, 0xd1, 0x88, 0x49, 0xb0, 0x4f, - 0xa7, 0x67, 0x4d, 0x9d, 0x4b, 0x7c, 0xd9, 0xa4, 0x1f, 0x94, 0x0d, 0x98, 0xe3, 0xe6, 0x61, 0x71, - 0x92, 0x55, 0x72, 0xf7, 0xac, 0x41, 0x85, 0x2f, 0xa6, 0xd6, 0xcb, 0x30, 0x49, 0xba, 0x73, 0x80, - 0x2e, 0xc1, 0x0c, 0xa6, 0x18, 0xd8, 0xd4, 0xe8, 0xde, 0xc0, 0x1c, 0xea, 0xba, 0x00, 0x12, 0x42, - 0xe5, 0x67, 0x93, 0x70, 0x96, 0xb3, 0xbb, 0x8b, 0xc9, 0xdc, 0xeb, 0x58, 0xdd, 0xbe, 0x4f, 0xe5, - 0x25, 0x99, 0xfe, 0x7c, 0x42, 0x70, 0x7d, 0x19, 0x20, 0x8a, 0x99, 0x09, 0xfb, 0xd0, 0x29, 0xc6, - 0x87, 0x8e, 0x4c, 0x31, 0x11, 0x39, 0x2b, 0x74, 0x59, 0xf8, 0x38, 0xc8, 0x82, 0xf1, 0xc0, 0x1a, - 0x45, 0x47, 0x87, 0x0b, 0x8d, 0xa4, 0x2b, 0xd2, 0xbe, 0xa7, 0x36, 0xf4, 0x64, 0x7b, 0x17, 0x5d, - 0x82, 0x8a, 0x87, 0xb1, 0x4f, 0x46, 0x7c, 0x82, 0xda, 0x1f, 0x8e, 0x0e, 0x17, 0xa6, 0xda, 0x18, - 0xfb, 0xeb, 0xab, 0xea, 0x14, 0xf9, 0xb4, 0x6e, 0x92, 0x5b, 0xb3, 0x6d, 0x05, 0x21, 0x76, 0xc8, - 0x55, 0x75, 0xf2, 0x62, 0xf9, 0x6a, 0x4d, 0x8d, 0x01, 0xe8, 0xf3, 0x30, 0xbd, 0x6d, 0x63, 0x0d, - 0x33, 0x5f, 0x81, 0x06, 0xb1, 0x1a, 0x4b, 0x6f, 0x0e, 0x9b, 0xc4, 0x83, 0x16, 0x5b, 0xdc, 0xc4, - 0x21, 0x99, 0x43, 0x9b, 0xa1, 0x1e, 0x62, 0x15, 0xb6, 0x6d, 0x2c, 0x1c, 0x0f, 0x03, 0xe4, 0x7d, - 0xab, 0x63, 0x69, 0xde, 0x92, 0x17, 0x09, 0xa8, 0x9c, 0x54, 0x40, 0x83, 0xb0, 0x6c, 0x2f, 0x79, - 0x42, 0xc8, 0x7b, 0x50, 0xef, 0x99, 0x4e, 0x10, 0x09, 0xa8, 0x9e, 0x54, 0xc0, 0x34, 0x61, 0x27, - 0xb8, 0xff, 0x7f, 0x98, 0xf1, 0xb1, 0xad, 0x1f, 0x44, 0xec, 0x6b, 0x27, 0x65, 0x5f, 0xa7, 0xfc, - 0x38, 0x7f, 0xe5, 0x2e, 0xd4, 0x93, 0x5f, 0xd1, 0x34, 0x54, 0xb6, 0x9c, 0x5d, 0xc7, 0xdd, 0x77, - 0xe4, 0x67, 0x48, 0x83, 0xe3, 0xc9, 0x12, 0xaa, 0x43, 0x55, 0x38, 0x87, 0x72, 0x09, 0xcd, 0xc2, - 0xf4, 0x96, 0xa3, 0xef, 0xe9, 0x96, 0x4d, 0x20, 0x72, 0x59, 0xf9, 0x0a, 0x9c, 0xcd, 0xf1, 0xd8, - 0x92, 0x33, 0xfa, 0xb3, 0x62, 0x42, 0xe7, 0x7b, 0x65, 0x52, 0xbe, 0x57, 0x46, 0xae, 0x7c, 0xc2, - 0x0e, 0x64, 0x5a, 0x57, 0x55, 0xd1, 0x54, 0x5e, 0x82, 0xd3, 0x99, 0x8e, 0x6c, 0x52, 0x78, 0x85, - 0x0b, 0x57, 0xbe, 0x10, 0xdd, 0xfe, 0x53, 0x9e, 0x6a, 0x12, 0xf7, 0xad, 0x13, 0x29, 0xaa, 0xec, - 0xc0, 0xb9, 0x41, 0x6b, 0x04, 0x38, 0xdb, 0x24, 0x27, 0x94, 0xf4, 0x81, 0x04, 0x28, 0x2d, 0x6a, - 0x13, 0x3b, 0x66, 0xab, 0x17, 0x09, 0x48, 0x7a, 0x93, 0xd2, 0x53, 0xf1, 0x26, 0x4b, 0xc7, 0xbc, - 0xc9, 0xd8, 0xb4, 0x9f, 0x1b, 0x34, 0x2d, 0x73, 0x2f, 0x5a, 0x6f, 0xc4, 0xfa, 0xa4, 0x8f, 0x4b, - 0x69, 0xf8, 0x71, 0x19, 0x73, 0x7e, 0x37, 0x63, 0x84, 0x89, 0xf3, 0xf4, 0x14, 0x58, 0xdf, 0x83, - 0x3a, 0xed, 0x3d, 0xc7, 0x4a, 0x8e, 0xce, 0x4d, 0x31, 0x3a, 0x2f, 0xc2, 0x2c, 0x76, 0x0c, 0xd7, - 0xc4, 0xa6, 0x96, 0xb4, 0x66, 0x5d, 0x6d, 0x70, 0x30, 0x27, 0x26, 0xe7, 0xfb, 0xcc, 0x2a, 0x26, - 0x20, 0xc1, 0x6e, 0x29, 0x56, 0x70, 0x5c, 0x2e, 0xad, 0x4f, 0x0b, 0xb9, 0x27, 0x1d, 0x3d, 0xa5, - 0x0d, 0xf5, 0xa4, 0x3b, 0xf5, 0x14, 0xcc, 0xa5, 0x42, 0x23, 0xed, 0x2e, 0x3d, 0x05, 0x9e, 0xef, - 0xc0, 0xa9, 0x81, 0x80, 0x1c, 0x9d, 0xc6, 0xaf, 0xc6, 0x8c, 0x93, 0x5e, 0xa4, 0x94, 0xef, 0x45, - 0xc6, 0x2c, 0x1f, 0xc1, 0x99, 0xc1, 0xd0, 0xc6, 0x8a, 0x8f, 0xf5, 0x30, 0xb5, 0xfa, 0x6e, 0x08, - 0x3b, 0x8f, 0xc9, 0x5e, 0x79, 0x0f, 0xe6, 0x07, 0xb9, 0xbe, 0xed, 0x5a, 0x4e, 0xeb, 0x56, 0xac, - 0x69, 0xe1, 0x27, 0xb1, 0x58, 0xe7, 0x4d, 0x38, 0x3d, 0xc8, 0x7d, 0x03, 0xeb, 0x7b, 0xf8, 0x44, - 0x86, 0x30, 0xe0, 0xf2, 0xd0, 0x68, 0x18, 0x59, 0x48, 0xb6, 0x1b, 0x9c, 0x4c, 0xc8, 0x6f, 0x48, - 0x70, 0x61, 0x78, 0x64, 0xab, 0xf5, 0x5e, 0x61, 0xf6, 0xe9, 0xa0, 0x53, 0x69, 0x58, 0xd0, 0x29, - 0xd6, 0xe4, 0x7b, 0x19, 0x31, 0xb6, 0x75, 0x67, 0xcf, 0x0a, 0xe9, 0x61, 0xc8, 0xa7, 0xc0, 0x13, - 0x74, 0xf5, 0x4d, 0x31, 0x55, 0x0a, 0x8f, 0xaf, 0xf2, 0x6d, 0x09, 0x66, 0x97, 0xbd, 0x28, 0x9c, - 0x4d, 0xa7, 0xf6, 0x3b, 0xc5, 0xad, 0x91, 0xfb, 0xce, 0xc4, 0x1e, 0x71, 0x5a, 0x8a, 0xd0, 0xf0, - 0x59, 0x28, 0x1b, 0x51, 0xd0, 0xbe, 0x72, 0x74, 0xb8, 0x50, 0x5e, 0x59, 0x5f, 0x55, 0x09, 0x8c, - 0x8c, 0x53, 0x83, 0xaa, 0x42, 0x03, 0xe1, 0xff, 0x9b, 0x9a, 0xfc, 0x58, 0x02, 0x94, 0x8a, 0xf2, - 0xd3, 0x67, 0x07, 0x72, 0xaf, 0x61, 0x6f, 0x71, 0x86, 0x1b, 0x3f, 0xb4, 0xe4, 0xdd, 0x6b, 0x92, - 0x2f, 0x15, 0x6a, 0x1d, 0x27, 0xdf, 0x2d, 0x3e, 0x91, 0x78, 0x67, 0x62, 0x57, 0x23, 0x25, 0x7f, - 0xa0, 0xa2, 0x27, 0x98, 0x88, 0x26, 0x7e, 0x2d, 0x2b, 0x27, 0x5e, 0xcb, 0x94, 0x3f, 0x95, 0x60, - 0x8e, 0x53, 0xb0, 0x67, 0x99, 0xa7, 0xaa, 0xf3, 0x5b, 0x50, 0x11, 0x6f, 0x3a, 0x4c, 0xe5, 0x4b, - 0x63, 0x3c, 0x8d, 0xa9, 0x82, 0x26, 0xf9, 0xde, 0x51, 0x4e, 0xbf, 0x77, 0xfc, 0x67, 0xac, 0x36, - 0xeb, 0xde, 0x86, 0x45, 0xee, 0x17, 0x52, 0xf1, 0x91, 0xbf, 0x02, 0xd5, 0xc0, 0x72, 0x0c, 0x2c, - 0x6e, 0x79, 0x1c, 0x6f, 0x93, 0xc0, 0xc8, 0x2d, 0x8f, 0x7e, 0x5c, 0x37, 0xd1, 0x73, 0x50, 0x63, - 0x78, 0x8e, 0xbb, 0x4f, 0xb5, 0xa9, 0xaa, 0x8c, 0xf0, 0x81, 0xbb, 0x4f, 0x98, 0xf4, 0x9d, 0xd0, - 0xb2, 0xc5, 0xc5, 0x81, 0x33, 0xd9, 0x22, 0x30, 0xc2, 0x84, 0x7e, 0x64, 0x4c, 0x18, 0x1e, 0x61, - 0x32, 0xc9, 0x98, 0x50, 0x00, 0x61, 0x72, 0x89, 0xb8, 0xc6, 0x7b, 0xd8, 0x0f, 0xb0, 0xe6, 0xfa, - 0x26, 0xf6, 0xe9, 0xdd, 0xa1, 0x4a, 0xfc, 0x5b, 0x0a, 0x7c, 0x48, 0x60, 0xf1, 0x1b, 0x37, 0xb7, - 0xd9, 0xff, 0x95, 0x7e, 0xff, 0xb7, 0x04, 0x35, 0xbe, 0xf3, 0x75, 0xdc, 0x96, 0x56, 0xbc, 0xbf, - 0x85, 0x82, 0x1a, 0xad, 0xdf, 0x92, 0x9e, 0x78, 0x73, 0x2c, 0xb0, 0xc7, 0xa7, 0x2f, 0xb6, 0xe5, - 0xa1, 0x91, 0xe4, 0x2f, 0xc2, 0xcc, 0xb2, 0x11, 0xd2, 0xc4, 0x10, 0x2a, 0xad, 0xd5, 0x2e, 0x6e, - 0x83, 0xf3, 0x00, 0xb6, 0x6b, 0xe8, 0xb6, 0xe6, 0x3a, 0xf6, 0x01, 0xbf, 0x71, 0xd4, 0x28, 0xe4, - 0xa1, 0x63, 0x1f, 0xc4, 0x27, 0xce, 0x7d, 0x98, 0x5d, 0xc5, 0x7a, 0x4a, 0xda, 0x49, 0x8e, 0xd2, - 0xef, 0x4d, 0xf2, 0xc5, 0xca, 0xba, 0x45, 0x2e, 0x66, 0xfd, 0xe0, 0x49, 0x38, 0xfe, 0xb0, 0x1c, - 0x7b, 0x91, 0x13, 0x89, 0xd4, 0x86, 0x97, 0xf2, 0x07, 0x25, 0x29, 0x72, 0x91, 0xe6, 0x39, 0x50, - 0xc2, 0xec, 0xdc, 0x81, 0xd6, 0x4f, 0x25, 0x98, 0x21, 0xb7, 0xfd, 0x15, 0xd7, 0x71, 0xb0, 0x11, - 0x62, 0x33, 0x19, 0x11, 0x90, 0x72, 0x23, 0x02, 0x05, 0xe2, 0x13, 0x6d, 0x80, 0xd0, 0xd7, 0x9d, - 0xc0, 0x73, 0xfd, 0x90, 0xe5, 0x92, 0x34, 0x96, 0x6e, 0x8e, 0xab, 0xbe, 0x20, 0x54, 0x13, 0x3c, - 0xd0, 0x19, 0x98, 0xea, 0xe9, 0xa6, 0xe9, 0xb3, 0x94, 0x92, 0x9a, 0xca, 0x5b, 0xad, 0x37, 0x40, - 0x26, 0x6a, 0xaa, 0xd8, 0x60, 0x9d, 0xb1, 0x9c, 0xee, 0x58, 0xbd, 0x11, 0x84, 0xc4, 0x8b, 0x2a, - 0x64, 0x06, 0x65, 0x1b, 0x26, 0x68, 0xfa, 0xc8, 0x2c, 0x4c, 0x93, 0xbf, 0xf1, 0xbd, 0xbb, 0x09, - 0xf3, 0x04, 0x30, 0xc8, 0x55, 0x96, 0xd0, 0x69, 0x98, 0x13, 0x5f, 0x22, 0x9b, 0xcb, 0xa5, 0x24, - 0x41, 0x52, 0x7f, 0xb9, 0xac, 0xac, 0x41, 0x2d, 0x32, 0x03, 0x6a, 0x00, 0x3c, 0xf2, 0xc2, 0x58, - 0x0e, 0xc0, 0xd4, 0x23, 0x2f, 0xdc, 0x58, 0x7e, 0x20, 0x4b, 0xfc, 0xf7, 0x67, 0x97, 0x1f, 0xc8, - 0x25, 0x24, 0x43, 0xfd, 0x91, 0x17, 0xb6, 0x7d, 0xf7, 0xb1, 0xd5, 0xb3, 0xc2, 0x03, 0xb9, 0xac, - 0xfc, 0x95, 0x44, 0xa6, 0xf8, 0x76, 0xbf, 0x4b, 0xf6, 0x4f, 0x6a, 0xe9, 0x20, 0xe9, 0x45, 0xff, - 0x91, 0x54, 0xd0, 0x8d, 0x46, 0x1b, 0xa9, 0x94, 0xa8, 0xd2, 0x38, 0x29, 0x51, 0x6c, 0xfb, 0xc9, - 0xcc, 0x90, 0x4a, 0x6f, 0x56, 0xe5, 0x11, 0x11, 0xd8, 0xef, 0x96, 0xe1, 0x0c, 0xed, 0xcc, 0xba, - 0x13, 0x78, 0xd8, 0x60, 0xfd, 0xd9, 0x0c, 0x5d, 0x1f, 0xb7, 0xbe, 0xfd, 0x04, 0x27, 0xc3, 0x16, - 0x54, 0x6d, 0xb7, 0x9b, 0xec, 0xc8, 0x2b, 0x99, 0x1d, 0x39, 0x26, 0x72, 0xc3, 0xed, 0xd2, 0x7e, - 0x51, 0xb6, 0xbc, 0xa1, 0x56, 0x6c, 0xf6, 0xa3, 0xf5, 0x0b, 0x69, 0xb4, 0x0f, 0x85, 0x6e, 0xc0, - 0x34, 0x4f, 0xc2, 0x30, 0xe2, 0x2c, 0x8c, 0xc6, 0xd1, 0xe1, 0x02, 0xb0, 0x2c, 0x0c, 0x9a, 0x1d, - 0xc5, 0xf3, 0x34, 0x68, 0x5a, 0xd4, 0x83, 0x44, 0x92, 0x56, 0x22, 0xe5, 0xa9, 0x3c, 0x56, 0xca, - 0x53, 0x94, 0xad, 0x15, 0x81, 0xd2, 0x4b, 0x79, 0x62, 0x54, 0x36, 0x86, 0xf0, 0x19, 0xa7, 0xd2, - 0xef, 0xf5, 0x1e, 0x00, 0x35, 0xce, 0x13, 0x6f, 0x9d, 0xc9, 0x5b, 0x1c, 0x5f, 0x77, 0x41, 0x53, - 0x22, 0xcb, 0x9b, 0x11, 0xb0, 0x85, 0x17, 0xa8, 0x15, 0xb6, 0xf2, 0x02, 0xe5, 0x0f, 0x4a, 0x30, - 0xbf, 0xdc, 0x0f, 0x77, 0xd6, 0x1e, 0x1b, 0x3b, 0xba, 0xd3, 0xc5, 0x2a, 0x0e, 0x3c, 0xd7, 0x09, - 0x30, 0x7a, 0x1e, 0xea, 0xba, 0x61, 0xe0, 0x20, 0xe0, 0x41, 0x75, 0x96, 0x46, 0x34, 0xcd, 0x60, - 0x34, 0x94, 0x4d, 0xb6, 0xc2, 0xc0, 0x70, 0xbd, 0x28, 0x9d, 0x88, 0x36, 0xe8, 0x06, 0xe9, 0xfb, - 0xae, 0x08, 0x21, 0xb3, 0x06, 0x7a, 0x09, 0xe6, 0xe8, 0x0f, 0xcd, 0xc4, 0x81, 0xe1, 0x5b, 0x1e, - 0xb9, 0x81, 0xb0, 0x50, 0xa9, 0x2a, 0xd3, 0x0f, 0xab, 0x31, 0x1c, 0x6d, 0x42, 0x95, 0x47, 0xe6, - 0x59, 0x9c, 0x74, 0x7a, 0xe9, 0x8d, 0xcc, 0x01, 0xc9, 0x52, 0x5c, 0xc4, 0xfe, 0x02, 0x9e, 0x1f, - 0x25, 0x18, 0xb5, 0x6e, 0xc1, 0x4c, 0xea, 0x53, 0xa1, 0xfc, 0xa8, 0x9f, 0x48, 0xd0, 0xa4, 0x23, - 0x43, 0x44, 0x72, 0x36, 0x9b, 0x38, 0xa4, 0x76, 0x68, 0x7d, 0x4f, 0x4a, 0xc6, 0x98, 0x26, 0x63, - 0x7b, 0x4d, 0x2f, 0x5d, 0x1b, 0x5b, 0x6f, 0x95, 0xd1, 0x3d, 0x9d, 0xa0, 0x7e, 0x7c, 0x84, 0x7e, - 0x19, 0xe4, 0xc1, 0x88, 0x08, 0x3a, 0x03, 0xa5, 0x68, 0x1a, 0xd1, 0x44, 0xa6, 0xf6, 0x3d, 0xb5, - 0xe4, 0x3d, 0xe1, 0x03, 0x31, 0x6a, 0x25, 0xae, 0x17, 0xcc, 0xd9, 0x8e, 0xda, 0x8a, 0x0d, 0xe7, - 0x92, 0x6f, 0x29, 0x9b, 0x7d, 0x8f, 0xc5, 0xfe, 0x39, 0x90, 0x4c, 0xb2, 0xe8, 0xe9, 0x46, 0x9c, - 0xca, 0x35, 0x75, 0x5a, 0x3c, 0xcb, 0xb0, 0x75, 0x25, 0x0b, 0x14, 0xec, 0x98, 0x9e, 0x6b, 0xf1, - 0xa3, 0xb7, 0xa6, 0xce, 0x72, 0xf8, 0x1a, 0x07, 0x2b, 0xff, 0x22, 0x41, 0x3d, 0x29, 0x8e, 0x8c, - 0x67, 0x72, 0xf2, 0x3e, 0x4d, 0x0b, 0xa3, 0x2f, 0x00, 0x0a, 0x44, 0x77, 0xb4, 0x68, 0xb6, 0x96, - 0x87, 0xe4, 0xf1, 0x0d, 0xb3, 0x84, 0x3a, 0x17, 0x0c, 0x40, 0x02, 0x74, 0x01, 0x00, 0x3f, 0xf6, - 0x2c, 0x16, 0xba, 0xa6, 0x6b, 0xa5, 0xac, 0x26, 0x20, 0xca, 0x6f, 0x4a, 0x70, 0x36, 0x31, 0x1d, - 0x57, 0xdc, 0x9e, 0x67, 0xe3, 0x10, 0xdf, 0xb1, 0xdd, 0xfd, 0xd6, 0x5b, 0xf1, 0x8c, 0x5c, 0x82, - 0xba, 0xa1, 0xdb, 0xf6, 0xb6, 0x6e, 0xec, 0xd2, 0x8e, 0xb2, 0x63, 0x78, 0xf6, 0xe8, 0x70, 0x61, - 0x7a, 0x85, 0xc3, 0x49, 0x17, 0xa7, 0x05, 0x12, 0x99, 0x3e, 0xc9, 0x6d, 0x24, 0x7a, 0xca, 0x92, - 0x86, 0x3c, 0x65, 0xfd, 0x44, 0x82, 0x53, 0x09, 0x5d, 0xd6, 0x1d, 0x2b, 0xa4, 0x7a, 0xdc, 0x4f, - 0x6d, 0x61, 0xc4, 0x8a, 0x09, 0x1d, 0x58, 0x9a, 0x58, 0x3f, 0xdc, 0x21, 0xf2, 0x2b, 0xe4, 0x23, - 0x31, 0x6c, 0x2b, 0xb1, 0xf8, 0xcb, 0xd4, 0x31, 0x89, 0xd7, 0x70, 0x3b, 0x71, 0x12, 0xc4, 0x7c, - 0xe8, 0x49, 0x40, 0x78, 0x10, 0x18, 0x39, 0x02, 0x03, 0x6c, 0xf4, 0x7d, 0x1c, 0x0d, 0x6b, 0x95, - 0x1d, 0x81, 0x9b, 0x14, 0x4a, 0xf0, 0x6a, 0x0c, 0x61, 0xcb, 0xb7, 0x95, 0x5f, 0x48, 0x70, 0x79, - 0xc5, 0xc7, 0x26, 0x19, 0x5c, 0xdd, 0xfe, 0x0c, 0xf6, 0xad, 0x4e, 0xe2, 0xbd, 0x2b, 0xd9, 0x95, - 0x44, 0x20, 0xf9, 0x06, 0x88, 0x29, 0x9a, 0xe8, 0x0d, 0x3d, 0x6c, 0x38, 0x11, 0x11, 0x02, 0x1c, - 0x85, 0xf4, 0x29, 0x9d, 0x4b, 0x5c, 0x1a, 0xcc, 0x25, 0x46, 0x30, 0x61, 0x5b, 0xce, 0x2e, 0xdf, - 0x31, 0xe9, 0xef, 0x0f, 0xa1, 0xab, 0x3f, 0x90, 0xe0, 0xda, 0xd0, 0xae, 0x8e, 0x37, 0x83, 0xac, - 0xec, 0x19, 0xb4, 0x9e, 0x9c, 0x41, 0x56, 0xeb, 0x45, 0xa1, 0xfe, 0x05, 0x00, 0x8b, 0x8a, 0xec, - 0x58, 0x3c, 0x7f, 0xb6, 0xa6, 0x26, 0x20, 0xca, 0xd7, 0x4b, 0x70, 0x96, 0xe9, 0x82, 0xcd, 0x58, - 0xbb, 0x80, 0x5e, 0x4f, 0xbf, 0x91, 0xd8, 0x58, 0x5f, 0x82, 0xb9, 0x8e, 0x65, 0x87, 0xf4, 0x48, - 0x1b, 0x60, 0x27, 0xb3, 0x0f, 0xeb, 0x11, 0x9c, 0xdc, 0x0c, 0x05, 0x72, 0x10, 0xf4, 0x79, 0x92, - 0x5a, 0x4d, 0xad, 0x73, 0x44, 0x0a, 0xa3, 0x21, 0xe8, 0xc7, 0x86, 0xdd, 0x37, 0xb1, 0x46, 0x57, - 0x15, 0xcf, 0x77, 0xa8, 0xaa, 0x0d, 0x0e, 0x5e, 0x63, 0xd0, 0x96, 0x2e, 0xfa, 0xf2, 0x39, 0x00, - 0x23, 0x52, 0x91, 0xef, 0xf0, 0x1f, 0xcd, 0xde, 0xe1, 0xd9, 0xf3, 0xe0, 0xf1, 0x8e, 0xa9, 0xb8, - 0x6b, 0x05, 0x21, 0xf6, 0xb1, 0xa9, 0x26, 0x78, 0x29, 0x1f, 0x48, 0xd1, 0xb3, 0x2a, 0x3b, 0x5c, - 0x69, 0xff, 0x13, 0x8e, 0xa5, 0x5d, 0x70, 0x45, 0xa2, 0x5b, 0x50, 0xe1, 0x13, 0x70, 0xfc, 0xf7, - 0x70, 0x41, 0xa1, 0xfc, 0xda, 0x80, 0x36, 0x2b, 0xae, 0x89, 0x53, 0x0b, 0x53, 0x4a, 0x2f, 0x4c, - 0x74, 0x19, 0x1a, 0x86, 0x6b, 0x62, 0xcd, 0xd8, 0xd1, 0x6d, 0x1b, 0x3b, 0x5d, 0x71, 0x84, 0xce, - 0xd0, 0xf0, 0xbf, 0x00, 0xa6, 0x94, 0x2f, 0x0f, 0xd9, 0x4e, 0xbe, 0x29, 0xc1, 0x82, 0x9a, 0x7e, - 0x7a, 0x26, 0x9b, 0x24, 0xb7, 0x1d, 0xf3, 0x8e, 0xde, 0x4d, 0x6d, 0x2d, 0x63, 0xd9, 0x64, 0xcc, - 0xb4, 0xa3, 0xf8, 0xf4, 0xfc, 0xaa, 0x04, 0x17, 0xb3, 0xf4, 0x60, 0x10, 0x7e, 0xc3, 0x3d, 0x51, - 0xc0, 0x7b, 0x41, 0x8c, 0xeb, 0x19, 0x28, 0xb9, 0xec, 0x50, 0xae, 0xb2, 0x43, 0xf9, 0xe1, 0x3d, - 0xb5, 0xe4, 0xee, 0x2a, 0x3f, 0x01, 0x80, 0xcd, 0x83, 0x20, 0xc4, 0x3d, 0x1a, 0xc0, 0x48, 0x4c, - 0x89, 0x7f, 0x8b, 0xfc, 0xe2, 0x65, 0xa8, 0x78, 0xbe, 0x4b, 0x1c, 0x33, 0x2e, 0xf8, 0xc5, 0xec, - 0xb1, 0x8e, 0xd8, 0x2c, 0xb6, 0x19, 0xba, 0x2a, 0xe8, 0xd0, 0x27, 0xa0, 0xec, 0x2d, 0x79, 0x43, - 0x83, 0x6d, 0x49, 0xf2, 0xa5, 0x36, 0xdb, 0x8a, 0xda, 0x4b, 0x6d, 0x95, 0x10, 0xa2, 0x07, 0x50, - 0x71, 0xfd, 0x6d, 0x2b, 0x34, 0xb7, 0x79, 0xa6, 0xd6, 0x48, 0x15, 0x1e, 0x12, 0xf4, 0xd5, 0xdb, - 0x6c, 0x08, 0x78, 0x43, 0x15, 0x4c, 0xc8, 0xd1, 0xbd, 0xaf, 0xfb, 0x8e, 0xb8, 0x9b, 0xb2, 0x46, - 0xeb, 0x5f, 0x25, 0x10, 0xa8, 0xc8, 0x8c, 0x1f, 0xec, 0x23, 0xff, 0x83, 0xf5, 0xfe, 0xcd, 0x31, - 0x45, 0x2f, 0x26, 0x87, 0x96, 0xde, 0x94, 0xd5, 0x59, 0xce, 0x32, 0x7a, 0xcf, 0xfb, 0x0a, 0xcc, - 0x1d, 0xc3, 0x22, 0x2b, 0xc1, 0xf3, 0xdd, 0xae, 0x2f, 0x0c, 0x5e, 0x56, 0xa3, 0x36, 0x0d, 0x3d, - 0xea, 0x8f, 0xad, 0x5e, 0xbf, 0x47, 0x8d, 0x59, 0x56, 0x45, 0x93, 0x50, 0x6d, 0xf7, 0x3b, 0x1d, - 0x2c, 0x36, 0x9a, 0xb2, 0x1a, 0xb5, 0xc9, 0x5d, 0x9c, 0x65, 0xd1, 0xf1, 0x73, 0x9e, 0xb7, 0x5a, - 0x8b, 0x40, 0x4c, 0x4c, 0xb6, 0xaa, 0xe8, 0xf2, 0xab, 0x11, 0xd7, 0x5d, 0xc8, 0x6d, 0x44, 0x60, - 0xe2, 0xd9, 0x07, 0xad, 0x6f, 0x4f, 0x41, 0x85, 0x8f, 0x2d, 0xd1, 0x64, 0x0f, 0xfb, 0x01, 0x71, - 0x1e, 0xd8, 0x3e, 0x29, 0x9a, 0xe8, 0x2c, 0x54, 0xf6, 0x8c, 0x40, 0xf3, 0x71, 0x87, 0x2f, 0xd3, - 0xa9, 0x3d, 0x23, 0x50, 0x71, 0x87, 0x5c, 0x62, 0xfa, 0x5e, 0x68, 0xf5, 0xb0, 0xd6, 0x0b, 0x98, - 0x8e, 0xec, 0x12, 0xb3, 0x45, 0x81, 0xf7, 0x37, 0xd5, 0x2a, 0xfb, 0x7c, 0x3f, 0x40, 0x1f, 0x03, - 0xb9, 0x1f, 0x60, 0x5f, 0x33, 0xbc, 0xbe, 0x26, 0x28, 0x80, 0x52, 0xcc, 0x1d, 0x1d, 0x2e, 0xcc, - 0x6c, 0x05, 0xd8, 0x5f, 0x69, 0x6f, 0x3d, 0x62, 0x64, 0x33, 0x04, 0x75, 0xc5, 0xeb, 0x3f, 0x62, - 0xb4, 0x9f, 0x02, 0x14, 0xd0, 0xd1, 0x48, 0x51, 0x4f, 0x53, 0x6a, 0x9a, 0xad, 0xcb, 0xc6, 0x2a, - 0xa6, 0x9f, 0x65, 0xe8, 0x31, 0x87, 0xf3, 0x00, 0x41, 0xa8, 0x53, 0xdf, 0x4b, 0x0f, 0x9b, 0x75, - 0x6a, 0x8b, 0x1a, 0x87, 0x2c, 0xd3, 0xda, 0x1d, 0xdf, 0x26, 0x57, 0x76, 0xcd, 0xe8, 0xfb, 0xcd, - 0x19, 0x9a, 0xae, 0x5d, 0x63, 0x90, 0x95, 0x3e, 0x3d, 0x1e, 0x9c, 0x7e, 0x4f, 0xeb, 0xba, 0xbe, - 0xdb, 0x0f, 0x2d, 0x07, 0x37, 0x1b, 0x94, 0x41, 0xdd, 0xe9, 0xf7, 0xee, 0x0a, 0x18, 0x19, 0x12, - 0xc7, 0xed, 0x58, 0x36, 0x6e, 0xce, 0xb2, 0x21, 0x61, 0x2d, 0xf4, 0x0a, 0x9c, 0x0a, 0x5d, 0x57, - 0xeb, 0xe9, 0xce, 0x81, 0xe6, 0x7a, 0xd8, 0xd1, 0x08, 0x34, 0x68, 0xca, 0xf4, 0xe8, 0x90, 0x43, - 0xd7, 0xbd, 0xaf, 0x3b, 0x07, 0x0f, 0x3d, 0xec, 0xdc, 0x21, 0x70, 0x74, 0x09, 0x2a, 0x44, 0x96, - 0xe1, 0xf5, 0x9b, 0x73, 0xb4, 0x83, 0x34, 0x00, 0xf2, 0xa0, 0x4f, 0x7a, 0xa7, 0x4e, 0x39, 0x7d, - 0xd2, 0x29, 0xa2, 0x6f, 0xd7, 0xd5, 0xc4, 0x68, 0x21, 0x3a, 0x26, 0xb5, 0xae, 0xfb, 0x19, 0x3e, - 0x5e, 0xd7, 0x40, 0x76, 0x3d, 0xec, 0xd3, 0x04, 0x21, 0x8d, 0x99, 0xa2, 0x79, 0x8a, 0xf9, 0xc0, - 0x11, 0x9c, 0x99, 0x0c, 0x3d, 0x07, 0xb5, 0x1d, 0x37, 0x08, 0x35, 0x47, 0xef, 0xe1, 0xe6, 0x3c, - 0xc5, 0xa9, 0x12, 0xc0, 0x03, 0xbd, 0x87, 0x89, 0x9f, 0xa1, 0xfb, 0xc6, 0x4e, 0xf3, 0x34, 0xf3, - 0x33, 0xc8, 0xef, 0x84, 0xa9, 0x7a, 0xfa, 0xe3, 0xe6, 0x99, 0xa4, 0xa9, 0xee, 0xeb, 0x8f, 0x89, - 0xf7, 0xe1, 0x59, 0x66, 0xf3, 0x2c, 0x55, 0x9d, 0x2d, 0x79, 0x72, 0xe5, 0xf6, 0x2c, 0x13, 0x9d, - 0x83, 0x09, 0x8f, 0x7c, 0x6b, 0xd2, 0x6f, 0xd5, 0xa3, 0xc3, 0x85, 0x89, 0x36, 0xf9, 0x48, 0xa1, - 0x6c, 0x8d, 0x58, 0xae, 0x6f, 0x85, 0x07, 0xcd, 0x67, 0xc5, 0x1a, 0x61, 0x6d, 0xea, 0xd2, 0x58, - 0x66, 0xb3, 0x15, 0x33, 0xdd, 0x22, 0x4c, 0xfb, 0x96, 0x89, 0x16, 0x60, 0x7a, 0xdf, 0xf5, 0x77, - 0x49, 0x47, 0x4d, 0xcb, 0x6f, 0x3e, 0xc7, 0xfc, 0x05, 0x0e, 0x5a, 0xb5, 0xe8, 0xa9, 0xcd, 0xe7, - 0x0e, 0x99, 0x53, 0xb4, 0x9b, 0xe7, 0x28, 0x52, 0x83, 0x81, 0xb7, 0x38, 0x54, 0xf9, 0xd5, 0x24, - 0x54, 0xc9, 0xa2, 0x18, 0x3c, 0x49, 0x97, 0xc5, 0xae, 0xf9, 0x51, 0x98, 0x14, 0x4b, 0xa9, 0x9c, - 0xfb, 0x28, 0x22, 0x38, 0xd0, 0x1f, 0x2a, 0x23, 0x68, 0xfd, 0xb8, 0x04, 0x13, 0xa4, 0x9d, 0x28, - 0x09, 0xa9, 0xa5, 0x4a, 0x42, 0x6e, 0xc1, 0x14, 0x99, 0x46, 0x98, 0x05, 0x22, 0xf2, 0x36, 0xd4, - 0x88, 0xb7, 0x4a, 0x70, 0x55, 0x4e, 0x42, 0x26, 0x1e, 0xbd, 0x11, 0x0b, 0xf7, 0x97, 0xb7, 0xd0, - 0x32, 0x54, 0x3b, 0x58, 0x0f, 0xfb, 0x3e, 0x66, 0xbb, 0x62, 0x23, 0xaf, 0x9a, 0x46, 0xb0, 0xbd, - 0xc3, 0xb0, 0xd5, 0x88, 0x8c, 0x58, 0xb7, 0x67, 0x39, 0x9a, 0xad, 0x87, 0xd8, 0x31, 0x58, 0x39, - 0x58, 0x59, 0x85, 0x9e, 0xe5, 0x6c, 0x30, 0x08, 0x99, 0x3e, 0x56, 0xa0, 0xd1, 0x08, 0x2e, 0xe6, - 0xe1, 0xf4, 0xaa, 0x15, 0xd0, 0xf8, 0x31, 0x46, 0x1f, 0x87, 0x9a, 0x69, 0xf9, 0xd8, 0xa0, 0xf7, - 0x91, 0xca, 0x90, 0x40, 0xc9, 0xaa, 0xc0, 0x52, 0x63, 0x82, 0xd6, 0xdf, 0x91, 0xe3, 0x8a, 0xf4, - 0x30, 0x2d, 0x44, 0x1a, 0x10, 0xd2, 0x84, 0x8a, 0x6e, 0x9a, 0x74, 0x6b, 0x65, 0x7b, 0x93, 0x68, - 0xa6, 0xc5, 0x97, 0x0b, 0x8a, 0x27, 0x7c, 0x45, 0xb7, 0xd9, 0x16, 0x2b, 0x9a, 0xe8, 0x13, 0x50, - 0x09, 0x42, 0x1f, 0xeb, 0x3d, 0x11, 0x6c, 0x78, 0x61, 0xb8, 0x59, 0x37, 0x29, 0xb2, 0x2a, 0x88, - 0x5a, 0x17, 0x61, 0x8a, 0x81, 0xf2, 0xa6, 0x83, 0xf2, 0x3e, 0x54, 0xf8, 0x58, 0x20, 0x04, 0x0d, - 0x1e, 0x76, 0xe4, 0x10, 0xf9, 0x19, 0x34, 0x0b, 0xd3, 0x9f, 0xc5, 0xc1, 0x8e, 0x00, 0x48, 0xa8, - 0x01, 0x70, 0x7b, 0x63, 0x4d, 0xb4, 0x69, 0x18, 0x72, 0xc3, 0x35, 0x74, 0x5b, 0x40, 0xca, 0x34, - 0x80, 0xe9, 0xfa, 0xa2, 0x3d, 0x41, 0x58, 0xbc, 0xd3, 0xb7, 0x0c, 0x01, 0x98, 0x54, 0x7e, 0x28, - 0x41, 0xb5, 0x2d, 0xce, 0xa4, 0x79, 0x98, 0x0c, 0x42, 0x3d, 0x14, 0xf7, 0x6b, 0xd6, 0x20, 0x50, - 0xd3, 0xb5, 0x9c, 0xae, 0x88, 0x76, 0xd0, 0x46, 0xea, 0x6c, 0x23, 0x46, 0x2e, 0x25, 0xce, 0xb6, - 0x73, 0x50, 0x33, 0xf8, 0x1d, 0x81, 0x1d, 0x54, 0x13, 0x6a, 0x0c, 0x60, 0xb7, 0xed, 0x50, 0xb7, - 0xe9, 0xb4, 0x9a, 0x50, 0x59, 0x83, 0x4a, 0xc1, 0xb6, 0xce, 0xaa, 0x32, 0x27, 0x54, 0xd6, 0x50, - 0x0e, 0x25, 0x98, 0x7b, 0xd8, 0x0f, 0x1f, 0x76, 0x68, 0xb4, 0x51, 0x94, 0x95, 0x0d, 0x89, 0xef, - 0x15, 0x88, 0x94, 0x27, 0x0a, 0x75, 0x48, 0x07, 0xa6, 0xe2, 0x72, 0x3d, 0x5e, 0x83, 0x37, 0x11, - 0xd7, 0xe0, 0xcd, 0xc3, 0x64, 0xc7, 0xd6, 0xbb, 0x01, 0xd5, 0xb9, 0xa2, 0xb2, 0x06, 0x0d, 0x56, - 0x89, 0x92, 0x37, 0x2d, 0x1d, 0xaa, 0x93, 0xa3, 0x0f, 0xbc, 0x14, 0x2b, 0xae, 0x21, 0xab, 0x24, - 0x6a, 0xc8, 0x14, 0x1b, 0x9e, 0x3d, 0xd6, 0xbf, 0x11, 0x55, 0x89, 0x32, 0x94, 0xb7, 0xdd, 0xc7, - 0xfc, 0x76, 0x48, 0x7e, 0x92, 0xbd, 0x8e, 0xf9, 0xab, 0xbe, 0xc8, 0x97, 0xe2, 0x11, 0x96, 0x46, - 0x97, 0xa5, 0x8d, 0x72, 0xa8, 0xf2, 0x5f, 0x29, 0x73, 0xf2, 0x94, 0xf1, 0xd6, 0xa5, 0xd8, 0x31, - 0x4d, 0x84, 0x1c, 0xa5, 0x54, 0xc8, 0xb1, 0xf5, 0xe7, 0x91, 0x17, 0xf9, 0xa9, 0xf8, 0xd1, 0x94, - 0xf9, 0x51, 0x57, 0x32, 0xd7, 0xc1, 0xb1, 0x6e, 0xc5, 0xe5, 0x74, 0x64, 0x7e, 0xd8, 0x98, 0x1c, - 0xc2, 0x8f, 0xc5, 0xfb, 0x48, 0x0c, 0x40, 0x57, 0x41, 0xe6, 0xde, 0x77, 0x7c, 0x15, 0x4e, 0x76, - 0xa7, 0x1d, 0xdd, 0x87, 0xaf, 0x81, 0xac, 0xdb, 0x3e, 0xd6, 0xcd, 0x03, 0xcd, 0xe7, 0xe9, 0xef, - 0x74, 0xd0, 0xaa, 0xea, 0x2c, 0x87, 0x8b, 0xac, 0x78, 0xfa, 0x8a, 0x1f, 0x6b, 0xb4, 0x89, 0x75, - 0xbb, 0xf5, 0x20, 0xee, 0xf6, 0x90, 0x09, 0x95, 0xa5, 0x4d, 0x29, 0x4b, 0x9b, 0xd6, 0x65, 0x61, - 0xa0, 0x73, 0x50, 0x8b, 0x46, 0x5f, 0x54, 0x3d, 0x46, 0x00, 0xe5, 0xaf, 0x4b, 0x51, 0xc5, 0xc6, - 0xb0, 0x6b, 0x5f, 0x91, 0x04, 0xdf, 0x5b, 0xd0, 0x0a, 0xac, 0xae, 0x83, 0x4d, 0x7e, 0xe7, 0x0d, - 0x0f, 0x8e, 0x6b, 0x7b, 0x96, 0x61, 0xac, 0x73, 0x84, 0xd8, 0x88, 0x37, 0xe0, 0xd4, 0x1e, 0xd7, - 0x43, 0x4b, 0xdc, 0x5a, 0x59, 0x8c, 0x01, 0xed, 0x1d, 0x53, 0x91, 0xcc, 0x7a, 0x9f, 0xaa, 0xc9, - 0xe2, 0x4b, 0x9a, 0x49, 0x76, 0x0c, 0xb6, 0x57, 0xca, 0xc9, 0x0f, 0xab, 0x64, 0xf3, 0xa0, 0x97, - 0x67, 0x11, 0x8a, 0x62, 0xa8, 0xec, 0x34, 0x69, 0xc4, 0x60, 0x8a, 0x98, 0xbe, 0xff, 0x4f, 0x0d, - 0xde, 0xff, 0xc9, 0x69, 0xc7, 0xef, 0xe8, 0x15, 0xe6, 0x8a, 0xb2, 0x96, 0xf2, 0x16, 0xcc, 0xdd, - 0xb1, 0xfc, 0x20, 0xdc, 0xd0, 0x83, 0x70, 0x85, 0xad, 0x5f, 0xba, 0x91, 0x75, 0x08, 0x90, 0xd7, - 0xe1, 0xb2, 0x06, 0x0d, 0x9f, 0xe8, 0x41, 0xc8, 0xcb, 0xf2, 0xe8, 0x6f, 0xe5, 0x1f, 0x24, 0x38, - 0xc5, 0xdd, 0xfc, 0x44, 0x92, 0x00, 0x73, 0x1c, 0xb1, 0x6e, 0x63, 0x53, 0x8b, 0xd7, 0x5a, 0x8d, - 0x41, 0x6e, 0xbb, 0x8f, 0xd1, 0xf3, 0x50, 0xf7, 0xf5, 0x7d, 0xcd, 0x77, 0x59, 0x8e, 0x0c, 0x9f, - 0x9f, 0xd3, 0xbe, 0xbe, 0xaf, 0x72, 0x50, 0xeb, 0x9b, 0x12, 0x94, 0x09, 0x6a, 0xe2, 0xa0, 0x92, - 0xd2, 0x07, 0xd5, 0x3c, 0x4c, 0xd2, 0x7a, 0x6d, 0xf1, 0x44, 0x48, 0x1b, 0x05, 0x9e, 0x6c, 0x07, - 0xb3, 0x89, 0xeb, 0x99, 0x8f, 0x66, 0xbf, 0x92, 0xe0, 0xb4, 0x8a, 0x3b, 0x3e, 0x0e, 0x76, 0xd2, - 0xe9, 0x80, 0xad, 0xd7, 0x47, 0x78, 0x27, 0xf3, 0x30, 0xc9, 0xde, 0xfd, 0x4a, 0xec, 0x6e, 0xc5, - 0x9e, 0xfd, 0xde, 0x79, 0xc2, 0xd4, 0x35, 0x62, 0x08, 0xe2, 0xc2, 0xbb, 0xfd, 0x50, 0xdc, 0x78, - 0x78, 0xb3, 0xf5, 0xae, 0x58, 0x39, 0x6d, 0x98, 0xa6, 0x9e, 0x93, 0xd6, 0x71, 0xfb, 0x8e, 0xc9, - 0x1d, 0xae, 0x1b, 0x99, 0xdb, 0x4b, 0x66, 0x97, 0x98, 0xf7, 0x05, 0x94, 0xc7, 0x1d, 0xc2, 0xe2, - 0xba, 0x05, 0xf1, 0x03, 0x18, 0x3a, 0xc3, 0xf3, 0x67, 0xd8, 0xe3, 0xa1, 0x89, 0x3b, 0x96, 0x83, - 0x4d, 0xf9, 0x19, 0x34, 0xcf, 0x53, 0x1e, 0x08, 0x9c, 0x2f, 0x4d, 0x59, 0x4a, 0x41, 0xb9, 0x18, - 0xf6, 0x72, 0x18, 0x41, 0x13, 0x49, 0x53, 0x72, 0xf9, 0xfa, 0x07, 0x55, 0xa8, 0xc5, 0xef, 0x3c, - 0x67, 0x00, 0x45, 0x8d, 0xa4, 0xac, 0x4b, 0xb0, 0x10, 0xc1, 0xb3, 0xab, 0x5c, 0x65, 0x09, 0x5d, - 0x86, 0xe7, 0xd3, 0x48, 0x19, 0x15, 0xa3, 0x72, 0x09, 0x2d, 0xc0, 0x73, 0x11, 0xda, 0xf1, 0xb2, - 0x3b, 0x19, 0xa3, 0xf3, 0xf0, 0x6c, 0x26, 0xc2, 0x06, 0xee, 0x84, 0x72, 0x07, 0x5d, 0x87, 0x2b, - 0x83, 0x9f, 0xb3, 0x8b, 0xdb, 0xe4, 0x2e, 0xba, 0x06, 0x97, 0x87, 0xe3, 0x8a, 0xc4, 0xe7, 0x1d, - 0x74, 0x13, 0x5e, 0x1e, 0x8e, 0x9a, 0xae, 0x4d, 0x93, 0x2d, 0xb4, 0x04, 0x8b, 0xc3, 0x29, 0x06, - 0x8b, 0xc8, 0xe4, 0x2f, 0xa2, 0x45, 0xb8, 0x3e, 0x1e, 0xcd, 0x26, 0x76, 0x42, 0x79, 0x77, 0xb4, - 0x8c, 0xc1, 0x4a, 0x2a, 0xd9, 0x46, 0xaf, 0xc1, 0x8d, 0xf1, 0x68, 0xa2, 0xba, 0x24, 0xb9, 0x37, - 0xbe, 0x20, 0x51, 0x48, 0x24, 0x3b, 0x48, 0x81, 0x0b, 0x39, 0x34, 0xbc, 0xa4, 0x47, 0x76, 0xd1, - 0x0b, 0x70, 0x31, 0x07, 0x27, 0x2a, 0xc2, 0x91, 0x3d, 0xa4, 0xc0, 0xf9, 0x08, 0x2b, 0xab, 0x62, - 0x5b, 0xfe, 0xa9, 0x84, 0x6e, 0xc2, 0x4b, 0x11, 0xce, 0xe8, 0xb2, 0x5f, 0xf9, 0x47, 0x25, 0xf4, - 0x7a, 0xc2, 0x10, 0xe3, 0x95, 0xbf, 0xca, 0x7f, 0x5c, 0x42, 0x8b, 0x70, 0x2d, 0x5f, 0xce, 0x40, - 0x11, 0xaf, 0xfc, 0x27, 0x25, 0x74, 0x25, 0x31, 0xed, 0xf3, 0x2a, 0x7e, 0xe4, 0xdf, 0x2e, 0xa3, - 0xab, 0x70, 0x69, 0x18, 0x1e, 0x2f, 0xc5, 0x91, 0xbf, 0x5f, 0x46, 0x17, 0x12, 0x0b, 0x60, 0xb0, - 0x84, 0x46, 0xfe, 0x41, 0x19, 0xbd, 0x7a, 0x7c, 0xaa, 0x0e, 0x3b, 0x94, 0xe5, 0x5f, 0x96, 0x53, - 0x4a, 0xe6, 0xd5, 0xdc, 0xcb, 0xff, 0x5c, 0xb9, 0xfe, 0x81, 0x78, 0x0a, 0xcc, 0x78, 0xc1, 0x26, - 0x0b, 0x3c, 0xef, 0xdb, 0xc0, 0x66, 0x91, 0x87, 0xc6, 0x4f, 0x2b, 0x59, 0x22, 0xf3, 0x22, 0x1f, - 0x89, 0xa9, 0x26, 0x97, 0xae, 0xff, 0x85, 0x14, 0xa5, 0x35, 0xb3, 0xc2, 0x85, 0x67, 0xa3, 0xf4, - 0x70, 0xda, 0x4e, 0x8a, 0x1d, 0xf8, 0xf4, 0xc8, 0xe5, 0x13, 0x57, 0x96, 0xc8, 0xf6, 0x97, 0xfc, - 0x14, 0xad, 0x95, 0x12, 0x3a, 0x0d, 0x73, 0xc9, 0x2f, 0x6c, 0xb0, 0xca, 0xe8, 0x6c, 0x94, 0xa7, - 0xcc, 0x09, 0xd8, 0xd8, 0x4c, 0x0c, 0x0a, 0x89, 0x57, 0xd0, 0xe4, 0x20, 0x8d, 0x58, 0x02, 0x53, - 0xd7, 0xef, 0x42, 0x2d, 0xba, 0xb4, 0x91, 0xbb, 0x0d, 0xbf, 0x22, 0xad, 0x5a, 0xbe, 0xfc, 0x0c, - 0x69, 0xaf, 0x3b, 0xdb, 0x64, 0xd7, 0x27, 0x6d, 0x89, 0xdc, 0x75, 0x1e, 0xf6, 0xc3, 0x08, 0x50, - 0x42, 0x35, 0x98, 0xbc, 0x6d, 0x91, 0x9f, 0xe5, 0xa5, 0xbf, 0xbf, 0x0e, 0xb3, 0xe2, 0xbf, 0x49, - 0x88, 0x47, 0xc6, 0x20, 0xa3, 0x62, 0x09, 0x2d, 0x0e, 0x8b, 0x86, 0xc7, 0x78, 0x8b, 0x51, 0x59, - 0xd3, 0xd8, 0xf8, 0x9e, 0x7d, 0x70, 0x53, 0x42, 0x5f, 0x97, 0x72, 0x0b, 0x9b, 0xd0, 0xeb, 0x85, - 0x6a, 0x56, 0x84, 0x06, 0x4b, 0x05, 0xa9, 0xc8, 0xb9, 0x4b, 0xb4, 0xc8, 0xd9, 0xa2, 0x73, 0xb4, - 0xc8, 0xc1, 0x1e, 0xa1, 0x45, 0x3e, 0x15, 0xd1, 0xe2, 0x2b, 0x39, 0x25, 0x29, 0x68, 0x1c, 0x66, - 0x1c, 0x37, 0x52, 0xe0, 0x66, 0x21, 0x1a, 0x22, 0xfe, 0x4b, 0xd9, 0x45, 0x2e, 0xe8, 0xd5, 0x31, - 0x38, 0x31, 0xd4, 0x48, 0xf8, 0x8d, 0x22, 0x24, 0x44, 0xf6, 0xf7, 0xa5, 0xe1, 0xf5, 0x2f, 0xe8, - 0xcd, 0xb1, 0xec, 0x99, 0x24, 0x89, 0x94, 0x79, 0xe3, 0x49, 0x48, 0x89, 0x52, 0x61, 0x56, 0xa1, - 0x0c, 0x1a, 0xa7, 0x6f, 0x04, 0x31, 0x92, 0xff, 0xca, 0xf8, 0x04, 0x99, 0xc3, 0xc0, 0x8e, 0xc9, - 0xb1, 0x86, 0x81, 0xa1, 0x16, 0x1a, 0x86, 0x88, 0x24, 0x6f, 0x06, 0x92, 0x5d, 0x69, 0xdc, 0x19, - 0x48, 0x70, 0x8b, 0xce, 0x40, 0x4e, 0x43, 0xc4, 0x6f, 0xa7, 0xcb, 0x6a, 0xd0, 0xb5, 0xfc, 0xca, - 0x15, 0x8e, 0x12, 0x09, 0x7b, 0x71, 0x1c, 0x54, 0x22, 0x03, 0x0f, 0x14, 0xdb, 0xa0, 0xeb, 0x39, - 0xb9, 0x57, 0x09, 0x9c, 0x48, 0xca, 0xd5, 0xb1, 0x70, 0x79, 0x57, 0x92, 0x0e, 0x4c, 0x4e, 0x57, - 0x92, 0x28, 0x23, 0xba, 0x32, 0x80, 0x4a, 0x64, 0xec, 0x0c, 0x96, 0xd5, 0xa0, 0x97, 0x86, 0x91, - 0x72, 0xa4, 0x48, 0xce, 0xb5, 0xf1, 0x90, 0x89, 0xa4, 0xfd, 0xcc, 0x62, 0x1b, 0x34, 0x74, 0x84, - 0x93, 0x98, 0x91, 0xcc, 0xc5, 0x02, 0x14, 0x44, 0xf0, 0x57, 0xa5, 0xbc, 0x9a, 0x1c, 0xf4, 0x5a, - 0x76, 0xa6, 0x7b, 0x26, 0x72, 0x24, 0xff, 0xd5, 0x62, 0x44, 0x7c, 0x3d, 0x66, 0xd5, 0xef, 0xa0, - 0xf1, 0x58, 0x11, 0xd4, 0x11, 0xeb, 0x31, 0x87, 0x84, 0xaf, 0xc7, 0xcc, 0xea, 0x9e, 0x9c, 0xf5, - 0x98, 0x89, 0x3b, 0x62, 0x3d, 0xe6, 0xd1, 0x10, 0xf1, 0x3f, 0x92, 0xc6, 0x2c, 0x04, 0x42, 0xb7, - 0xc7, 0xe2, 0x9d, 0x49, 0x1b, 0xe9, 0xf7, 0xa9, 0x13, 0xf1, 0x20, 0xfa, 0xfe, 0xee, 0xc8, 0x92, - 0x22, 0x74, 0x6b, 0x3c, 0x21, 0x29, 0xa2, 0x48, 0xc3, 0x37, 0x9f, 0x8c, 0x98, 0xa8, 0xf6, 0xfb, - 0x63, 0xd4, 0x18, 0xa1, 0xb7, 0xc6, 0xe2, 0x3f, 0x48, 0x16, 0xa9, 0x77, 0xeb, 0x49, 0xc9, 0x89, - 0x82, 0xbb, 0xc7, 0x0a, 0x8e, 0x50, 0xb6, 0x2f, 0x37, 0x80, 0x15, 0x49, 0xbf, 0x3e, 0x26, 0x36, - 0xdf, 0xb9, 0xd2, 0x25, 0x45, 0x39, 0x3b, 0x57, 0x1a, 0x69, 0xc4, 0xce, 0x75, 0x0c, 0x99, 0x48, - 0x72, 0x32, 0xca, 0x58, 0x72, 0x9c, 0xda, 0x63, 0x78, 0x23, 0x76, 0xe4, 0xe3, 0xa5, 0x48, 0x37, - 0x25, 0xb4, 0x7b, 0xbc, 0x7a, 0x04, 0xbd, 0x32, 0x8c, 0x3c, 0x42, 0x8b, 0xa4, 0x5d, 0x19, 0x89, - 0x2e, 0x84, 0xbd, 0x9b, 0x28, 0xd9, 0x40, 0x43, 0xc8, 0xe8, 0x63, 0xbe, 0x60, 0xff, 0xc2, 0x48, - 0x3c, 0x7e, 0x4c, 0xa6, 0xaa, 0x21, 0x72, 0x8e, 0xc9, 0x14, 0xce, 0x88, 0x63, 0x72, 0x10, 0x97, - 0xcf, 0xba, 0x81, 0x42, 0x88, 0x9c, 0x59, 0x37, 0x80, 0x35, 0x62, 0xd6, 0x1d, 0xc7, 0x26, 0xc2, - 0x82, 0x8c, 0x2a, 0x89, 0x61, 0x73, 0x21, 0x55, 0x1b, 0x30, 0xfc, 0x82, 0x93, 0x85, 0xcf, 0x2e, - 0x38, 0xbd, 0x63, 0x79, 0xf0, 0xb9, 0x3d, 0x4c, 0x61, 0x8d, 0xec, 0xe1, 0x20, 0x36, 0x13, 0xf7, - 0x35, 0x29, 0x2f, 0x55, 0x3d, 0xe7, 0xc0, 0xcc, 0x46, 0x1e, 0x71, 0x60, 0xe6, 0x12, 0x31, 0x25, - 0xde, 0x4b, 0xa6, 0x67, 0xa3, 0x17, 0xf3, 0x59, 0xa4, 0xc7, 0xf2, 0xf2, 0x68, 0x44, 0x32, 0x8c, - 0xdf, 0x1a, 0x92, 0x63, 0x8c, 0xfe, 0x5f, 0x3e, 0x8f, 0x0c, 0xf4, 0x48, 0xf4, 0x6b, 0x45, 0xc9, - 0x88, 0x22, 0xef, 0x25, 0x33, 0x8e, 0xd0, 0xc8, 0x44, 0x9e, 0xe1, 0xdd, 0x4c, 0x21, 0x72, 0x9f, - 0x2b, 0x23, 0x53, 0x34, 0xc7, 0xe7, 0xca, 0xc0, 0x1c, 0xe1, 0x73, 0x65, 0x53, 0x88, 0xcb, 0x70, - 0x4e, 0xbe, 0x6c, 0xce, 0x65, 0x38, 0x07, 0x7b, 0xc4, 0x65, 0x38, 0x9f, 0x4a, 0xf8, 0x1e, 0x63, - 0x25, 0x9c, 0xe6, 0xf8, 0x1e, 0x63, 0xd1, 0x8e, 0xf0, 0x3d, 0xc6, 0xe5, 0x41, 0xf4, 0xfd, 0xb3, - 0x22, 0x59, 0xa3, 0xe8, 0x4e, 0x71, 0x79, 0x99, 0x96, 0x5d, 0x3d, 0x31, 0x1f, 0xa2, 0xfb, 0x37, - 0xa5, 0xdc, 0xdc, 0xd2, 0x9c, 0x11, 0xcf, 0xc1, 0x1e, 0x31, 0xe2, 0xf9, 0x54, 0x6c, 0xdf, 0x08, - 0x32, 0x92, 0x3b, 0x87, 0x47, 0xa0, 0x62, 0xbc, 0xf1, 0x22, 0x50, 0x29, 0x7c, 0x26, 0xf4, 0xf7, - 0x46, 0xe7, 0x50, 0xa2, 0x8f, 0xe7, 0x3c, 0xc1, 0x0c, 0xa5, 0x8a, 0x34, 0xfa, 0xd8, 0x13, 0x52, - 0x93, 0xa1, 0xf9, 0x4c, 0x9c, 0x9c, 0x83, 0x46, 0xa4, 0xb1, 0x08, 0x71, 0xa3, 0x92, 0x68, 0x28, - 0xdf, 0xf7, 0x33, 0x1e, 0xc2, 0x73, 0x4c, 0x7d, 0x0c, 0x6f, 0x84, 0xa9, 0xb3, 0xf0, 0xb9, 0xd3, - 0x97, 0x7e, 0x81, 0xce, 0x71, 0xfa, 0xd2, 0x48, 0x23, 0x9c, 0xbe, 0x63, 0xc8, 0xfc, 0xda, 0x94, - 0xf9, 0x3c, 0x96, 0x73, 0x6d, 0xca, 0x7e, 0x4a, 0x1b, 0x7e, 0x6d, 0xca, 0xa3, 0xf1, 0xec, 0x83, - 0xdb, 0x1f, 0xf9, 0xd9, 0x3f, 0x5e, 0x78, 0xe6, 0x2f, 0x8f, 0x2e, 0x48, 0x3f, 0x3b, 0xba, 0x20, - 0xfd, 0xfc, 0xe8, 0x82, 0xf4, 0xf9, 0x17, 0xb6, 0xb1, 0x1f, 0x1e, 0x2c, 0x86, 0xd8, 0xd8, 0xb9, - 0xc1, 0xb9, 0xdd, 0xf0, 0x76, 0xbb, 0x37, 0x52, 0xff, 0x56, 0x7d, 0x7b, 0x8a, 0x36, 0x5f, 0xfb, - 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x27, 0xb2, 0x61, 0x6e, 0x5d, 0x00, 0x00, + // 5760 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0x4b, 0x6c, 0x1c, 0xc9, + 0x79, 0xf0, 0xf6, 0xcc, 0x90, 0x33, 0xf3, 0x71, 0x38, 0x6c, 0x96, 0x28, 0x6a, 0x76, 0x56, 0x12, + 0xb5, 0xad, 0x95, 0x56, 0xd2, 0xee, 0x52, 0x5a, 0x7a, 0x61, 0x7b, 0x2d, 0xcb, 0x36, 0x5f, 0x92, + 0xb9, 0xa2, 0xa4, 0xd9, 0xa6, 0xe8, 0x17, 0x16, 0x7f, 0xbb, 0xd9, 0x5d, 0x33, 0x6c, 0xb3, 0xa7, + 0xbb, 0xb7, 0xbb, 0x87, 0x14, 0x0d, 0x1b, 0xf0, 0xef, 0x47, 0xe2, 0x83, 0xed, 0x18, 0xf1, 0x21, + 0x01, 0x62, 0xe4, 0x1c, 0x20, 0x70, 0x02, 0x18, 0x41, 0x80, 0x04, 0x39, 0xe5, 0x14, 0x07, 0x49, + 0xb0, 0xa7, 0xdc, 0xc2, 0x38, 0xcc, 0xc5, 0x06, 0x82, 0x20, 0x40, 0x9c, 0xe4, 0x60, 0x20, 0x08, + 0xea, 0xd5, 0x8f, 0x61, 0xf7, 0x3c, 0x48, 0x2d, 0x72, 0xc8, 0x89, 0x53, 0x5f, 0x7d, 0xef, 0xaa, + 0xfa, 0xea, 0xab, 0xaa, 0xaf, 0x09, 0xe7, 0x3c, 0xdf, 0x0d, 0x5d, 0xc3, 0xb5, 0xc3, 0x43, 0x0f, + 0x07, 0x8b, 0xb4, 0x85, 0xce, 0x1d, 0xe0, 0x60, 0xd7, 0xc1, 0xe1, 0xa2, 0xe8, 0x5c, 0xdc, 0x7f, + 0xb3, 0x39, 0xd7, 0x71, 0x3b, 0x2e, 0x05, 0xdc, 0x26, 0xbf, 0x58, 0x9f, 0xf2, 0xb7, 0x12, 0x94, + 0x97, 0x0d, 0xc3, 0xed, 0x39, 0x21, 0xba, 0x03, 0x13, 0x1d, 0xdf, 0xed, 0x79, 0x0d, 0xe9, 0x8a, + 0x74, 0x63, 0x6a, 0xa9, 0xb9, 0x98, 0xc1, 0x66, 0xf1, 0x01, 0xc1, 0x50, 0x19, 0x22, 0x5a, 0x84, + 0x73, 0x3a, 0x23, 0xd6, 0x3c, 0xdf, 0xda, 0xd7, 0x43, 0xac, 0xed, 0xe1, 0xc3, 0x46, 0xe1, 0x8a, + 0x74, 0xa3, 0xa6, 0xce, 0xf2, 0xae, 0x16, 0xeb, 0x79, 0x88, 0x0f, 0xd1, 0x2d, 0x98, 0xd5, 0x6d, + 0x4b, 0x0f, 0x52, 0xd8, 0x45, 0x8a, 0x3d, 0x43, 0x3b, 0x12, 0xb8, 0x6f, 0xc1, 0xbc, 0xd7, 0xdb, + 0xb1, 0x2d, 0x43, 0xf3, 0xb1, 0x63, 0xe2, 0xaf, 0xee, 0xbb, 0xbd, 0x40, 0x0b, 0x30, 0x36, 0x1b, + 0x25, 0x4a, 0x30, 0xc7, 0x7a, 0xd5, 0xa8, 0x73, 0x0b, 0x63, 0x53, 0xf9, 0x95, 0x04, 0x13, 0x54, + 0x45, 0x74, 0x09, 0x80, 0xd3, 0x13, 0x21, 0x12, 0xa5, 0xa9, 0x32, 0x08, 0x61, 0x3f, 0x0f, 0x93, + 0x01, 0x36, 0x7c, 0x1c, 0x72, 0x6d, 0x79, 0x8b, 0x90, 0xb1, 0x5f, 0x5a, 0x60, 0x75, 0xb8, 0x6e, + 0x55, 0x06, 0xd9, 0xb2, 0x3a, 0xe8, 0x1e, 0x00, 0x35, 0x5d, 0x23, 0xfe, 0xa6, 0x9a, 0xd4, 0x97, + 0x2e, 0xe7, 0x3b, 0xea, 0xe9, 0xa1, 0x87, 0xd5, 0x6a, 0x47, 0xfc, 0x44, 0x2f, 0x42, 0x25, 0xb0, + 0x3a, 0x8e, 0xe6, 0xf5, 0x76, 0x1a, 0x13, 0x94, 0x77, 0x99, 0xb4, 0x5b, 0xbd, 0x1d, 0xd2, 0x65, + 0x5b, 0xce, 0x1e, 0xd5, 0x76, 0x92, 0x75, 0x91, 0x36, 0xd1, 0xf5, 0x0a, 0xd4, 0x44, 0x17, 0xd5, + 0xaa, 0x4c, 0xbb, 0x81, 0x77, 0x6f, 0x59, 0x1d, 0xe5, 0x3f, 0x24, 0x90, 0xa9, 0xc0, 0xcf, 0x62, + 0xdd, 0x0c, 0xd6, 0x9f, 0x79, 0xae, 0x1f, 0x0e, 0xf3, 0x40, 0x52, 0x97, 0x42, 0x5a, 0x97, 0x75, + 0x38, 0xd7, 0xc5, 0xa1, 0x6e, 0xea, 0xa1, 0xae, 0xed, 0x12, 0x8e, 0x9a, 0x61, 0x99, 0x41, 0xa3, + 0x78, 0xa5, 0x78, 0xa3, 0xb6, 0x72, 0xfe, 0xf8, 0x68, 0x61, 0xf6, 0x11, 0xef, 0xa6, 0xf2, 0x56, + 0x37, 0xd6, 0x02, 0x75, 0xb6, 0x9b, 0x02, 0x59, 0x66, 0xc0, 0xd8, 0x04, 0x81, 0xde, 0xc1, 0x41, + 0x92, 0x4d, 0x29, 0xc9, 0x86, 0x75, 0xa7, 0xd8, 0x24, 0x41, 0x84, 0x4d, 0xd2, 0x33, 0x13, 0x29, + 0xcf, 0x28, 0x7f, 0x27, 0xc1, 0x34, 0xb5, 0x5b, 0xe8, 0x43, 0x06, 0x08, 0xef, 0x63, 0x27, 0x64, + 0x03, 0x24, 0x0d, 0x18, 0xa0, 0x75, 0x82, 0xc6, 0x06, 0x08, 0x8b, 0x9f, 0xa8, 0x01, 0x65, 0x4f, + 0x3f, 0xb4, 0x5d, 0xdd, 0x14, 0x3e, 0xe1, 0x4d, 0x24, 0x43, 0x31, 0x9e, 0x11, 0xe4, 0x27, 0x52, + 0x61, 0x56, 0xf0, 0xd3, 0x84, 0xf1, 0x74, 0x4a, 0x4c, 0x2d, 0x5d, 0xcb, 0x94, 0xd8, 0xe2, 0xbf, + 0x85, 0xb2, 0xaa, 0xec, 0xf5, 0x41, 0x94, 0x65, 0x6e, 0xcf, 0xba, 0xb3, 0x8f, 0x6d, 0xd7, 0xc3, + 0x68, 0x0e, 0x26, 0x1c, 0xd7, 0x31, 0x30, 0x1f, 0x3f, 0xd6, 0x20, 0x50, 0xaa, 0x33, 0x57, 0x92, + 0x35, 0xde, 0x29, 0x55, 0x8a, 0x72, 0x49, 0xf9, 0x77, 0x09, 0xea, 0xdc, 0xaf, 0xc4, 0x87, 0xd8, + 0x0f, 0x88, 0x55, 0x74, 0x29, 0x62, 0x9f, 0xb2, 0x29, 0xa9, 0xa2, 0x89, 0x6e, 0x42, 0xd5, 0xc4, + 0xfb, 0x96, 0x81, 0x35, 0x6f, 0x8f, 0x31, 0x5b, 0xa9, 0x1d, 0x1f, 0x2d, 0x54, 0xd6, 0x28, 0xb0, + 0xf5, 0x50, 0xad, 0xb0, 0xee, 0xd6, 0x5e, 0x86, 0x03, 0x1e, 0x41, 0x25, 0x61, 0x77, 0xf1, 0xc6, + 0xd4, 0xd2, 0x9b, 0x99, 0x76, 0xa7, 0xb5, 0x59, 0x14, 0xc6, 0xae, 0x3b, 0xa1, 0x7f, 0xa8, 0x46, + 0x2c, 0x9a, 0x77, 0x61, 0x3a, 0xd5, 0x45, 0x24, 0x8a, 0x99, 0x5b, 0x55, 0xc9, 0x4f, 0x62, 0xf7, + 0xbe, 0x6e, 0xf7, 0x30, 0x55, 0xb5, 0xaa, 0xb2, 0xc6, 0x27, 0x0a, 0x1f, 0x97, 0x94, 0x06, 0xc8, + 0xfd, 0xee, 0x7d, 0xa7, 0x54, 0x91, 0xe4, 0x82, 0xf2, 0x6d, 0x09, 0xe4, 0x75, 0xc7, 0xf0, 0x0f, + 0xbd, 0x10, 0x9b, 0x5c, 0x15, 0x74, 0x11, 0xaa, 0x9e, 0xad, 0x5b, 0x4e, 0x88, 0x9f, 0x85, 0xd1, + 0xd2, 0x10, 0x80, 0xec, 0x91, 0x2d, 0x9c, 0x6d, 0x64, 0x3d, 0x98, 0xe1, 0xc2, 0xa3, 0xb1, 0x7d, + 0x15, 0x66, 0xf8, 0x6c, 0xa7, 0xcb, 0x03, 0xfb, 0x01, 0x57, 0xa5, 0xde, 0x3d, 0x31, 0x7e, 0x1c, + 0x22, 0x66, 0x25, 0x6f, 0xc6, 0xd3, 0xa3, 0x98, 0x98, 0x1e, 0xef, 0x94, 0x2a, 0x25, 0x79, 0x42, + 0xf9, 0xa6, 0x04, 0x35, 0x3a, 0xc9, 0x57, 0x5d, 0x66, 0xd6, 0x3c, 0x14, 0x2c, 0x93, 0x89, 0x58, + 0x99, 0x3c, 0x3e, 0x5a, 0x28, 0x6c, 0xac, 0xa9, 0x05, 0xcb, 0x44, 0xaf, 0x03, 0x78, 0xba, 0x4f, + 0x16, 0x0d, 0x59, 0x9e, 0x05, 0xba, 0x3c, 0xa7, 0x8f, 0x8f, 0x16, 0xaa, 0x2d, 0x0a, 0x25, 0xcb, + 0xb2, 0xca, 0x10, 0x36, 0xcc, 0x00, 0x5d, 0x87, 0x0a, 0x0b, 0x81, 0xde, 0x1e, 0x93, 0xba, 0x32, + 0x75, 0x7c, 0xb4, 0x50, 0xa6, 0xd3, 0xb6, 0xf5, 0x50, 0x2d, 0xd3, 0xce, 0xd6, 0x1e, 0x57, 0x42, + 0x83, 0x46, 0x6a, 0x81, 0xb6, 0xd8, 0x72, 0xda, 0xc2, 0x4e, 0x98, 0x9e, 0x7c, 0xd2, 0xc0, 0xc9, + 0x97, 0xeb, 0x01, 0xc5, 0x82, 0x39, 0x62, 0x9f, 0x6e, 0x84, 0xcb, 0x64, 0x07, 0x79, 0x88, 0x0f, + 0x97, 0x4d, 0x13, 0x9b, 0xe3, 0x30, 0xbf, 0x0e, 0x15, 0xbe, 0x2d, 0x89, 0x35, 0x40, 0x2d, 0xa2, + 0xfc, 0x88, 0x45, 0x6c, 0x6b, 0xda, 0x53, 0xbe, 0x2f, 0xc1, 0x3c, 0x37, 0xa6, 0xbb, 0x83, 0x7d, + 0xc6, 0x29, 0x92, 0xd6, 0xa5, 0xc0, 0x3e, 0x69, 0x0c, 0x93, 0x48, 0x63, 0xdd, 0xad, 0xbd, 0x71, + 0x96, 0xdc, 0x25, 0x00, 0xce, 0x35, 0xb1, 0x19, 0x31, 0x08, 0x89, 0xfa, 0x0f, 0xa0, 0xce, 0x88, + 0x56, 0x77, 0x75, 0xcb, 0x21, 0x31, 0xfd, 0x25, 0xa8, 0x1a, 0xe4, 0x77, 0x22, 0xe2, 0x57, 0x0c, + 0xd1, 0x99, 0x88, 0x02, 0x85, 0x54, 0x14, 0x50, 0x7e, 0x47, 0xe2, 0xa3, 0x94, 0x66, 0x37, 0xb6, + 0x23, 0x3f, 0x0a, 0x75, 0x13, 0x07, 0xa1, 0x16, 0xbb, 0x82, 0xd9, 0x27, 0x1f, 0x1f, 0x2d, 0xd4, + 0xd6, 0x70, 0x10, 0x46, 0xee, 0xa8, 0x99, 0x71, 0x6b, 0x2f, 0x19, 0x75, 0x8b, 0xa9, 0xa8, 0x4b, + 0x34, 0x53, 0x1e, 0xf5, 0xec, 0xd0, 0x62, 0xb8, 0x54, 0x49, 0x3a, 0x2e, 0x2a, 0x0e, 0x5c, 0x7b, + 0x1f, 0xfb, 0x63, 0xeb, 0x78, 0x0d, 0xea, 0x6c, 0xb0, 0x7d, 0xce, 0x81, 0x4f, 0xa8, 0x69, 0x3d, + 0xc9, 0x16, 0x2d, 0xc0, 0x94, 0x48, 0x55, 0x5c, 0xb7, 0xcd, 0xd5, 0x02, 0x9e, 0xa4, 0xb8, 0x6e, + 0x5b, 0xf9, 0x81, 0x04, 0x57, 0x4e, 0x68, 0x66, 0x76, 0x2d, 0x47, 0x75, 0x6d, 0xfc, 0xc0, 0xd7, + 0x9d, 0x70, 0x3c, 0xbd, 0x3e, 0x0d, 0xb3, 0x1d, 0x4a, 0x85, 0x4f, 0xb8, 0xef, 0xdc, 0xf1, 0xd1, + 0xc2, 0x0c, 0x63, 0x89, 0x23, 0x0f, 0xce, 0x74, 0x52, 0x80, 0x3d, 0x65, 0x0b, 0xae, 0xf7, 0xeb, + 0xb3, 0xe1, 0x58, 0xa1, 0xa5, 0xdb, 0x0c, 0xb2, 0xec, 0x38, 0x6e, 0xcf, 0x31, 0xc6, 0x9a, 0xac, + 0x8a, 0x0e, 0x57, 0xb8, 0x65, 0xe6, 0xb2, 0x69, 0x5a, 0xa1, 0xe5, 0x3a, 0xba, 0x9d, 0xce, 0xb9, + 0xc6, 0x31, 0x12, 0x41, 0x89, 0xa6, 0x70, 0xcc, 0xe5, 0xf4, 0xb7, 0x62, 0xc2, 0x55, 0x96, 0x54, + 0xe2, 0xae, 0xbb, 0x8f, 0x3f, 0x2c, 0x29, 0xef, 0x03, 0xe2, 0x79, 0x2e, 0x15, 0xf6, 0x8e, 0x6b, + 0x39, 0xe3, 0x31, 0x8d, 0xb2, 0xe3, 0xc2, 0x88, 0xd9, 0xb1, 0x82, 0x41, 0x4e, 0x8a, 0xdc, 0xc4, + 0xed, 0x70, 0xcc, 0xa8, 0x14, 0xc5, 0xd9, 0x42, 0x7e, 0x9c, 0x55, 0xde, 0x81, 0x4b, 0x5c, 0x0c, + 0x8f, 0x83, 0x2a, 0x7e, 0xbf, 0x87, 0x83, 0x70, 0xcd, 0x0a, 0xf4, 0x1d, 0x7b, 0x2c, 0x23, 0x95, + 0x0d, 0xb8, 0x98, 0xc9, 0x6b, 0xdd, 0x19, 0x9b, 0xd5, 0x6f, 0x48, 0x70, 0x35, 0x93, 0x97, 0x8a, + 0xdb, 0xd8, 0xc7, 0x8e, 0x81, 0x55, 0x1c, 0xe0, 0xb1, 0x3c, 0x92, 0x7f, 0x24, 0x28, 0x0c, 0x38, + 0x12, 0x1c, 0x49, 0x70, 0x2d, 0x53, 0x91, 0x27, 0xbd, 0xb0, 0xe3, 0x5a, 0x4e, 0x67, 0xdd, 0x79, + 0xbf, 0x87, 0x7b, 0x63, 0x6f, 0x19, 0xa3, 0x0c, 0x0e, 0xfa, 0x34, 0x89, 0xb9, 0x54, 0x28, 0x0d, + 0x21, 0x79, 0xf9, 0xc3, 0xd6, 0xae, 0xee, 0x63, 0xe2, 0x62, 0xa1, 0xa1, 0xa0, 0x42, 0x2f, 0x43, + 0xcd, 0x3d, 0x70, 0xd2, 0xf9, 0x65, 0x4d, 0x9d, 0x72, 0x0f, 0x9c, 0x28, 0xb3, 0xf8, 0x1a, 0xbc, + 0x3c, 0xd0, 0xbe, 0x71, 0xf7, 0xda, 0xd7, 0x01, 0xb8, 0xf4, 0xd8, 0x3a, 0x9a, 0x0e, 0x70, 0xf6, + 0xad, 0x87, 0x6a, 0x95, 0x23, 0xb4, 0xf6, 0x94, 0x7f, 0xce, 0x73, 0xef, 0x86, 0x63, 0xb8, 0x5d, + 0xcb, 0xe9, 0xa8, 0xd8, 0xc0, 0xd6, 0xfe, 0x78, 0xee, 0x1d, 0x4b, 0x05, 0xf4, 0x51, 0xb8, 0x20, + 0xb0, 0xfb, 0x27, 0x06, 0x8b, 0xdb, 0xe7, 0x0d, 0xa1, 0x59, 0x5f, 0x48, 0x91, 0x05, 0x5d, 0x9f, + 0x7f, 0x67, 0x38, 0x3c, 0xf2, 0xf1, 0xff, 0x97, 0xe0, 0xfa, 0x40, 0x2b, 0xd7, 0xac, 0xc0, 0xd0, + 0x7d, 0xf3, 0x43, 0x34, 0x53, 0xf9, 0x83, 0x61, 0x9e, 0x5e, 0x36, 0x0c, 0xec, 0x85, 0x1f, 0xa6, + 0xa7, 0x47, 0xcc, 0xfd, 0x14, 0x0f, 0xce, 0xa7, 0x35, 0x5d, 0xb1, 0x5d, 0x63, 0xef, 0xc3, 0x74, + 0x8e, 0x0f, 0x17, 0xd2, 0x12, 0xb7, 0x9d, 0x9d, 0x0f, 0x5b, 0xe6, 0x4f, 0xc5, 0xa9, 0x5b, 0xc5, + 0x9e, 0x6d, 0x19, 0x7a, 0x68, 0x39, 0x9d, 0x71, 0xa4, 0xad, 0x01, 0xd2, 0x7b, 0xe1, 0x2e, 0x76, + 0x42, 0x4a, 0xec, 0x3a, 0x5a, 0xcf, 0xb7, 0xd9, 0xd1, 0x86, 0x1d, 0x8f, 0x97, 0x53, 0xbd, 0xdb, + 0xea, 0xa6, 0x3a, 0x9b, 0x26, 0xd8, 0xf6, 0x6d, 0xf4, 0x06, 0x20, 0x5f, 0xc8, 0x77, 0x1d, 0x2d, + 0xc0, 0x3e, 0x49, 0x6a, 0x8a, 0xf4, 0x80, 0x34, 0x9b, 0xe8, 0xd9, 0xa2, 0x1d, 0xca, 0x26, 0xcc, + 0x92, 0x5f, 0x96, 0x81, 0xd9, 0x35, 0xc1, 0x1a, 0x39, 0x7a, 0x55, 0xa1, 0xcc, 0xe7, 0x52, 0xf3, + 0x75, 0x98, 0x20, 0xe6, 0x1c, 0xa2, 0xab, 0x30, 0x8d, 0x29, 0x06, 0x36, 0x35, 0xba, 0x34, 0x58, + 0x3e, 0x59, 0x13, 0x40, 0x42, 0xa8, 0x7c, 0x30, 0x01, 0x17, 0x38, 0xbb, 0x07, 0x98, 0xb8, 0xbe, + 0x6d, 0x75, 0x7a, 0x3e, 0x95, 0x97, 0x64, 0xfa, 0xf3, 0x92, 0xe0, 0xfa, 0x3a, 0x40, 0x74, 0x65, + 0x24, 0xfc, 0x43, 0x3d, 0xcc, 0x47, 0x8f, 0x78, 0x58, 0x5c, 0x1c, 0x8d, 0x95, 0x2b, 0x7f, 0x12, + 0x64, 0xc1, 0xb8, 0x6f, 0x8a, 0xa2, 0xe3, 0xa3, 0x85, 0x7a, 0x72, 0x27, 0x6e, 0x3d, 0x54, 0xeb, + 0x7a, 0xb2, 0xbd, 0x87, 0xae, 0x42, 0xd9, 0xc3, 0xd8, 0xd7, 0x2c, 0x76, 0xbd, 0x54, 0x5d, 0x81, + 0xe3, 0xa3, 0x85, 0xc9, 0x16, 0xc6, 0xfe, 0xc6, 0x9a, 0x3a, 0x49, 0xba, 0x36, 0x4c, 0x72, 0x68, + 0xb4, 0xad, 0x20, 0xc4, 0x0e, 0x39, 0xa9, 0x4d, 0x5c, 0x29, 0xde, 0xa8, 0xaa, 0x31, 0x00, 0x7d, + 0x09, 0xa6, 0x76, 0x6c, 0xac, 0x61, 0xb6, 0x55, 0xd2, 0x3b, 0x9c, 0xfa, 0xd2, 0xdb, 0xd9, 0xe1, + 0x3e, 0xdb, 0x63, 0x8b, 0x5b, 0x38, 0x24, 0x73, 0x68, 0x2b, 0xd4, 0x43, 0xac, 0xc2, 0x8e, 0x8d, + 0xc5, 0xbe, 0x6b, 0x80, 0x7c, 0x60, 0xb5, 0x2d, 0xcd, 0x5b, 0xf2, 0x22, 0x01, 0xe5, 0xb3, 0x0a, + 0xa8, 0x13, 0x96, 0xad, 0x25, 0x4f, 0x08, 0x79, 0x0f, 0x6a, 0x5d, 0xd3, 0x09, 0x22, 0x01, 0x95, + 0xb3, 0x0a, 0x98, 0x22, 0xec, 0x04, 0xf7, 0xff, 0x07, 0xd3, 0x3e, 0xb6, 0xf5, 0xc3, 0x88, 0x7d, + 0xf5, 0xac, 0xec, 0x6b, 0x94, 0x1f, 0xe7, 0xaf, 0x3c, 0x80, 0x5a, 0xb2, 0x17, 0x4d, 0x41, 0x79, + 0xdb, 0xd9, 0x73, 0xdc, 0x03, 0x47, 0x7e, 0x81, 0x34, 0x38, 0x9e, 0x2c, 0xa1, 0x1a, 0x54, 0x44, + 0x6e, 0x24, 0x17, 0xd0, 0x0c, 0x4c, 0x6d, 0x3b, 0xfa, 0xbe, 0x6e, 0xd9, 0x04, 0x22, 0x17, 0x95, + 0xaf, 0xc3, 0x85, 0x9c, 0x84, 0x25, 0x39, 0xa3, 0x3f, 0x2f, 0x26, 0x74, 0x7e, 0x52, 0x22, 0xe5, + 0x27, 0x25, 0xe4, 0xc4, 0x23, 0xfc, 0x40, 0xa6, 0x75, 0x45, 0x15, 0x4d, 0xe5, 0x35, 0x38, 0x9f, + 0x99, 0xc7, 0x25, 0x85, 0x97, 0xb9, 0x70, 0xe5, 0xcb, 0xd1, 0xe1, 0x37, 0x95, 0xa8, 0x25, 0x71, + 0xef, 0x9d, 0x49, 0x51, 0x65, 0x17, 0x2e, 0xf6, 0x7b, 0x23, 0xc0, 0xd9, 0x2e, 0x39, 0xa3, 0xa4, + 0xef, 0x49, 0x80, 0xd2, 0xa2, 0xb6, 0xb0, 0x63, 0x36, 0xbb, 0x91, 0x80, 0x64, 0x32, 0x25, 0x3d, + 0x97, 0x64, 0xaa, 0x70, 0x22, 0x99, 0x8a, 0x5d, 0xfb, 0x85, 0x7e, 0xd7, 0xb2, 0xdd, 0xb5, 0xf9, + 0xb1, 0x58, 0x9f, 0xf4, 0x6e, 0x21, 0x0d, 0xde, 0x2d, 0x62, 0xce, 0x5f, 0xcc, 0x18, 0x61, 0x92, + 0x3b, 0x3c, 0x07, 0xd6, 0x0f, 0xa1, 0x46, 0xad, 0xe7, 0x58, 0xc9, 0xd1, 0xb9, 0x23, 0x46, 0xe7, + 0x55, 0x98, 0xc1, 0x8e, 0xe1, 0x9a, 0xd8, 0xd4, 0x92, 0xde, 0xac, 0xa9, 0x75, 0x0e, 0xe6, 0xc4, + 0xca, 0xf7, 0x25, 0x98, 0x5e, 0xc3, 0x04, 0x24, 0xd8, 0x2d, 0xc5, 0x0a, 0x8e, 0xca, 0xa5, 0xf9, + 0x59, 0x21, 0xf7, 0xac, 0xa3, 0xa7, 0xb4, 0xa0, 0x96, 0xcc, 0x26, 0x9e, 0x83, 0xbb, 0x54, 0xa8, + 0xa7, 0xb3, 0x85, 0xe7, 0xc0, 0xf3, 0x5d, 0x38, 0xd7, 0x77, 0x1f, 0x45, 0xa7, 0xf1, 0x9b, 0x31, + 0xe3, 0x64, 0x12, 0x25, 0xe5, 0x27, 0x51, 0x31, 0xcb, 0xa7, 0x30, 0xdf, 0x7f, 0xb2, 0x5f, 0xf5, + 0xb1, 0x1e, 0xa6, 0x56, 0xdf, 0x6d, 0xe1, 0xe7, 0x11, 0xd9, 0x2b, 0xef, 0xc1, 0x5c, 0x3f, 0x57, + 0x72, 0x2a, 0x6e, 0xde, 0x8d, 0x35, 0x1d, 0xfb, 0x45, 0x28, 0xd6, 0x79, 0x0b, 0xce, 0xf7, 0x73, + 0xdf, 0xc4, 0xfa, 0x3e, 0x3e, 0x93, 0x23, 0x0c, 0xb8, 0x36, 0xf0, 0x32, 0x88, 0x2c, 0x24, 0xdb, + 0x0d, 0xce, 0x26, 0xe4, 0x37, 0x25, 0xb8, 0x3c, 0xf8, 0x62, 0xa7, 0xf9, 0xde, 0xd8, 0xec, 0xd3, + 0x77, 0x2e, 0x85, 0x41, 0x77, 0x2e, 0xb1, 0x26, 0x3f, 0xcc, 0xb8, 0x62, 0xda, 0x70, 0xf6, 0xad, + 0x90, 0x6e, 0x86, 0x7c, 0x0a, 0x9c, 0xc2, 0xd4, 0xb7, 0xc5, 0x54, 0x19, 0x7b, 0x7c, 0x95, 0xef, + 0x4a, 0x30, 0xb3, 0xec, 0x45, 0xb7, 0xb9, 0x74, 0x6a, 0xbf, 0x3b, 0xbe, 0x37, 0x72, 0x9f, 0x59, + 0xd8, 0x1b, 0x46, 0x53, 0x11, 0x1a, 0xbe, 0x08, 0x45, 0x23, 0xba, 0xb3, 0x2e, 0x1f, 0x1f, 0x2d, + 0x14, 0x57, 0x37, 0xd6, 0x54, 0x02, 0x23, 0xe3, 0x54, 0xa7, 0xaa, 0xd0, 0x7b, 0xe0, 0xff, 0x4d, + 0x4d, 0x7e, 0x2a, 0x01, 0x4a, 0x5d, 0x72, 0xd3, 0x5b, 0x77, 0x74, 0x1f, 0xa6, 0xd9, 0x53, 0x94, + 0xe1, 0xc6, 0xef, 0x0c, 0x53, 0x4b, 0x2f, 0xe7, 0xbf, 0x46, 0xf1, 0x8b, 0x7a, 0xb5, 0x86, 0x93, + 0xd7, 0xf6, 0x9f, 0x4a, 0x3c, 0xb3, 0xb0, 0xcb, 0x27, 0x25, 0x7f, 0xa0, 0xa2, 0x17, 0x88, 0x88, + 0x26, 0x7e, 0x2c, 0x2a, 0x26, 0x1e, 0x8b, 0x94, 0x3f, 0x91, 0x60, 0x96, 0x53, 0xb0, 0x57, 0x89, + 0xe7, 0xaa, 0xf3, 0x3d, 0x28, 0x8b, 0x27, 0x0d, 0xa6, 0xf2, 0xd5, 0x11, 0x5e, 0x86, 0x54, 0x41, + 0x93, 0xbc, 0xee, 0x2f, 0xa6, 0xaf, 0xfb, 0xff, 0x33, 0x56, 0x9b, 0x99, 0xb7, 0x69, 0x91, 0xf3, + 0x85, 0x34, 0xfe, 0xc8, 0x5f, 0x87, 0x4a, 0x60, 0x39, 0x06, 0x26, 0x39, 0x7f, 0xe2, 0x0a, 0x67, + 0x8b, 0xc0, 0x36, 0xd6, 0xd4, 0x32, 0xed, 0xdc, 0x30, 0xd1, 0x4b, 0x50, 0x65, 0x78, 0x8e, 0x7b, + 0x40, 0xb5, 0xa9, 0xa8, 0x8c, 0xf0, 0xb1, 0x7b, 0x40, 0x98, 0xf4, 0x9c, 0xd0, 0xb2, 0xc5, 0xc1, + 0x81, 0x33, 0xd9, 0x26, 0x30, 0xc2, 0x84, 0x76, 0x32, 0x26, 0x0c, 0x8f, 0x30, 0x99, 0x60, 0x4c, + 0x28, 0x80, 0x30, 0xb9, 0x4a, 0x52, 0xe3, 0x7d, 0xec, 0x07, 0x58, 0x73, 0x7d, 0x13, 0xfb, 0xf4, + 0xec, 0x50, 0x21, 0xf9, 0x2d, 0x05, 0x3e, 0x21, 0xb0, 0xf8, 0x89, 0x97, 0xfb, 0xec, 0xff, 0x8a, + 0xdd, 0xff, 0x2d, 0x41, 0x95, 0x47, 0xbe, 0xb6, 0xdb, 0xd4, 0xc6, 0xb7, 0x77, 0xac, 0x33, 0x7d, + 0xf3, 0xb7, 0xa4, 0x53, 0x07, 0xc7, 0x31, 0x62, 0x7c, 0xfa, 0x60, 0x5b, 0x1c, 0x78, 0x91, 0xfa, + 0x15, 0x98, 0x5e, 0x36, 0x42, 0x5a, 0x17, 0x41, 0xa5, 0x35, 0x5b, 0xe3, 0xfb, 0xe0, 0x12, 0x80, + 0xed, 0x1a, 0xba, 0xad, 0xb9, 0x8e, 0x7d, 0xc8, 0x4f, 0x1c, 0x55, 0x0a, 0x79, 0xe2, 0xd8, 0x87, + 0xf1, 0x8e, 0xf3, 0x08, 0x66, 0xd6, 0xb0, 0x9e, 0x92, 0x76, 0x96, 0xad, 0xf4, 0x87, 0x13, 0x7c, + 0xb1, 0x32, 0xb3, 0xc8, 0xc1, 0xac, 0x17, 0x9c, 0x86, 0xe3, 0x8f, 0x8b, 0x71, 0x16, 0x59, 0x4a, + 0xbc, 0xec, 0xbf, 0x96, 0x3f, 0x28, 0x49, 0x91, 0x8b, 0xf4, 0x99, 0x9f, 0x12, 0x66, 0x3f, 0x9d, + 0x37, 0x7f, 0x26, 0xc1, 0x34, 0x39, 0xed, 0xaf, 0xba, 0x8e, 0x83, 0x8d, 0x10, 0x9b, 0xc9, 0x1b, + 0x01, 0x29, 0xf7, 0x46, 0x60, 0x8c, 0xfb, 0x89, 0x16, 0x40, 0xe8, 0xeb, 0x4e, 0xe0, 0xb9, 0x7e, + 0xc8, 0x4a, 0x29, 0xea, 0x4b, 0x77, 0x46, 0x55, 0x5f, 0x10, 0xaa, 0x09, 0x1e, 0x68, 0x1e, 0x26, + 0xbb, 0xba, 0x69, 0xfa, 0xac, 0xa2, 0xa2, 0xaa, 0xf2, 0x56, 0xf3, 0x63, 0x20, 0x13, 0x35, 0x55, + 0x6c, 0x30, 0x63, 0x2c, 0xa7, 0x33, 0x92, 0x35, 0x82, 0x90, 0x64, 0x51, 0x63, 0xb9, 0x41, 0xd9, + 0x81, 0x12, 0xad, 0x9e, 0x98, 0x81, 0x29, 0xf2, 0x37, 0x3e, 0x77, 0x37, 0x60, 0x8e, 0x00, 0xfa, + 0xb9, 0xca, 0x12, 0x3a, 0x0f, 0xb3, 0xa2, 0x27, 0xf2, 0xb9, 0x5c, 0x48, 0x12, 0x24, 0xf5, 0x97, + 0x8b, 0xca, 0x3a, 0x54, 0x23, 0x37, 0xa0, 0x3a, 0xc0, 0x53, 0x2f, 0x8c, 0xe5, 0x00, 0x4c, 0x3e, + 0xf5, 0xc2, 0xcd, 0xe5, 0xc7, 0xb2, 0xc4, 0x7f, 0x7f, 0x7e, 0xf9, 0xb1, 0x5c, 0x40, 0x32, 0xd4, + 0x9e, 0x7a, 0x61, 0xcb, 0x77, 0x9f, 0x59, 0x5d, 0x2b, 0x3c, 0x94, 0x8b, 0xca, 0x5f, 0x4b, 0x64, + 0x8a, 0xef, 0xf4, 0x3a, 0x24, 0x7e, 0x52, 0x4f, 0x07, 0xc9, 0x2c, 0xfa, 0x0f, 0xa5, 0x31, 0xd3, + 0x68, 0xb4, 0x99, 0xaa, 0x08, 0x2a, 0x8c, 0x52, 0x11, 0xc4, 0xc2, 0x4f, 0x66, 0x81, 0x50, 0x3a, + 0x58, 0x15, 0x87, 0x5c, 0x40, 0xfe, 0xa0, 0x08, 0xf3, 0xd4, 0x98, 0x0d, 0x27, 0xf0, 0xb0, 0xc1, + 0xec, 0xd9, 0x0a, 0x5d, 0x1f, 0x37, 0xbf, 0x7b, 0x8a, 0x9d, 0x61, 0x1b, 0x2a, 0xb6, 0xdb, 0x49, + 0x1a, 0xf2, 0x46, 0xa6, 0x21, 0x27, 0x44, 0x6e, 0xba, 0x1d, 0x6a, 0x17, 0x65, 0xcb, 0x1b, 0x6a, + 0xd9, 0x66, 0x3f, 0x9a, 0xbf, 0x90, 0x86, 0xe7, 0x50, 0xe8, 0x36, 0x4c, 0xf1, 0x1a, 0x04, 0x23, + 0x2e, 0x42, 0xa8, 0x1f, 0x1f, 0x2d, 0x00, 0x2b, 0x42, 0xa0, 0xc5, 0x41, 0xbc, 0x4c, 0x81, 0x56, + 0x05, 0x3d, 0x4e, 0xd4, 0x28, 0x25, 0x2a, 0x7e, 0x8a, 0x23, 0x55, 0xfc, 0x44, 0xc5, 0x4a, 0x11, + 0x28, 0xbd, 0x94, 0x4b, 0xc3, 0x8a, 0x11, 0x44, 0xce, 0x38, 0x99, 0x7e, 0xae, 0xf6, 0x00, 0xa8, + 0x73, 0x4e, 0x1d, 0x3a, 0x93, 0xa7, 0x38, 0xbe, 0xee, 0x82, 0x86, 0x44, 0x96, 0x37, 0x23, 0x60, + 0x0b, 0x2f, 0x50, 0xcb, 0x6c, 0xe5, 0x05, 0xca, 0xd7, 0x40, 0xee, 0x3f, 0x31, 0xa3, 0x79, 0x28, + 0x44, 0x62, 0x68, 0x9d, 0x47, 0xeb, 0xa1, 0x5a, 0xf0, 0x4e, 0xf9, 0x7e, 0x86, 0x9a, 0x89, 0xf4, + 0x93, 0x25, 0x63, 0x51, 0x5b, 0xb1, 0xe1, 0x22, 0xbf, 0xaa, 0x7b, 0xea, 0xee, 0x61, 0x67, 0xab, + 0xe7, 0xb1, 0xbb, 0x61, 0x0e, 0x44, 0x2f, 0x43, 0x2d, 0x60, 0x3f, 0xe3, 0x7a, 0xac, 0xaa, 0x3a, + 0xc5, 0x61, 0xdc, 0xef, 0xb2, 0x40, 0xc1, 0x8e, 0xe9, 0xb9, 0x16, 0x0f, 0xcd, 0x55, 0x75, 0x86, + 0xc3, 0xd7, 0x39, 0x58, 0xf9, 0x17, 0x09, 0x6a, 0x49, 0x71, 0x24, 0x96, 0x87, 0xe4, 0x07, 0xe7, + 0xcb, 0x1a, 0xcf, 0xe9, 0x5a, 0xfd, 0xcb, 0x80, 0x02, 0x61, 0x8e, 0xc6, 0x35, 0x61, 0x71, 0x3b, + 0xaf, 0xcc, 0x69, 0x90, 0x27, 0xd4, 0xd9, 0xa0, 0x0f, 0x12, 0xa0, 0xcb, 0x00, 0xf8, 0x99, 0x67, + 0xb1, 0xab, 0x4d, 0x3a, 0xe5, 0x8a, 0x6a, 0x02, 0xa2, 0xfc, 0x42, 0x82, 0x6b, 0xab, 0x3e, 0x36, + 0x89, 0x5e, 0xba, 0xfd, 0x39, 0xec, 0x5b, 0xed, 0xc4, 0x55, 0xbe, 0x65, 0xe0, 0x0d, 0xc7, 0x0a, + 0xef, 0xdb, 0xee, 0x41, 0xf2, 0x8e, 0xec, 0x36, 0x08, 0xef, 0x52, 0xab, 0x59, 0xcc, 0xa6, 0xeb, + 0x88, 0x13, 0x11, 0x73, 0x81, 0xa3, 0x10, 0x3b, 0xd3, 0x55, 0x82, 0x85, 0xfe, 0x2a, 0x41, 0x04, + 0x25, 0xdb, 0x72, 0xf6, 0xf8, 0x7b, 0x02, 0xfd, 0xdd, 0x6c, 0x25, 0xd6, 0x73, 0x2c, 0x84, 0xae, + 0x67, 0xc2, 0x9d, 0xc0, 0x48, 0x20, 0x0b, 0xb0, 0xd1, 0xf3, 0x71, 0xe4, 0xfc, 0x0a, 0x0b, 0x64, + 0x5b, 0x14, 0x4a, 0xf0, 0xaa, 0x0c, 0x61, 0xdb, 0xb7, 0x95, 0x1f, 0x49, 0x70, 0x73, 0xa0, 0xa9, + 0xab, 0x6e, 0xd7, 0xb3, 0x71, 0x88, 0xa9, 0xb9, 0xf7, 0x62, 0x73, 0x97, 0xa0, 0x66, 0xe8, 0xb6, + 0xbd, 0xa3, 0x1b, 0x7b, 0x5a, 0xcf, 0xb7, 0xb8, 0x2a, 0x33, 0xc7, 0x47, 0x0b, 0x53, 0xab, 0x1c, + 0xbe, 0xad, 0x6e, 0xa8, 0x53, 0x02, 0x69, 0xdb, 0xb7, 0x9a, 0xaf, 0x0a, 0xf5, 0x2f, 0x03, 0x58, + 0x54, 0x64, 0xdb, 0xe2, 0x95, 0x71, 0x55, 0x35, 0x01, 0x51, 0xbe, 0x55, 0x80, 0x0b, 0x4c, 0x17, + 0x6c, 0xc6, 0xda, 0x05, 0x34, 0xf3, 0xfe, 0x76, 0x22, 0xbe, 0xbe, 0x06, 0xb3, 0x6d, 0xcb, 0x0e, + 0xe9, 0x6a, 0xed, 0x63, 0x27, 0xb3, 0x8e, 0x8d, 0x08, 0x4e, 0x92, 0x5e, 0x81, 0x1c, 0x04, 0x3d, + 0x5e, 0x7e, 0x52, 0x55, 0x6b, 0x1c, 0x91, 0xc2, 0xe8, 0xed, 0xda, 0x33, 0xc3, 0xee, 0x99, 0x58, + 0xa3, 0x13, 0x82, 0xbf, 0x64, 0x56, 0xd4, 0x3a, 0x07, 0xaf, 0x33, 0x68, 0x53, 0x17, 0xb6, 0x7c, + 0x01, 0xc0, 0x88, 0x54, 0xe4, 0x29, 0xeb, 0xc7, 0x33, 0xa7, 0x29, 0x7f, 0x09, 0x39, 0x69, 0x98, + 0x8a, 0x3b, 0x56, 0x10, 0x62, 0x1f, 0x9b, 0x6a, 0x82, 0x97, 0xf2, 0x4b, 0x09, 0x16, 0xd4, 0xf4, + 0x33, 0x12, 0x99, 0xd0, 0x1c, 0x99, 0x45, 0xba, 0xbf, 0x38, 0xc5, 0x6e, 0x13, 0x2d, 0xde, 0xc2, + 0xf0, 0xc5, 0x5b, 0x7c, 0x2e, 0x6f, 0x62, 0xa5, 0x9c, 0x37, 0xb1, 0x38, 0x61, 0xfd, 0x86, 0x04, + 0x57, 0xb2, 0x6c, 0x65, 0x10, 0x9e, 0x11, 0x9f, 0xe9, 0x82, 0x6c, 0x41, 0x0c, 0xd8, 0x3c, 0x14, + 0x5c, 0xe6, 0xa0, 0x0a, 0x0b, 0xd2, 0x4f, 0x1e, 0xaa, 0x05, 0x77, 0x4f, 0xf9, 0x53, 0x00, 0xd8, + 0x3a, 0x0c, 0x42, 0xdc, 0xa5, 0x07, 0x9e, 0x44, 0x6e, 0xf2, 0x6f, 0xd1, 0x3e, 0xba, 0x0c, 0x65, + 0xcf, 0x77, 0x0d, 0x1c, 0x04, 0x5c, 0xf0, 0xab, 0xd9, 0x01, 0x29, 0x62, 0xb3, 0xd8, 0x62, 0xe8, + 0xaa, 0xa0, 0x43, 0x9f, 0x82, 0xa2, 0xb7, 0xe4, 0x0d, 0x3c, 0x9c, 0x27, 0xc9, 0x97, 0x5a, 0x6c, + 0x7d, 0xb7, 0x96, 0x5a, 0x2a, 0x21, 0x44, 0x8f, 0xa1, 0xec, 0xfa, 0x3b, 0x56, 0x68, 0xee, 0xf0, + 0xc2, 0x86, 0xa1, 0x2a, 0x3c, 0x21, 0xe8, 0x6b, 0x2b, 0x6c, 0x36, 0xf0, 0x86, 0x2a, 0x98, 0x90, + 0xd9, 0x70, 0xa0, 0xfb, 0x8e, 0xc8, 0x65, 0x59, 0xa3, 0xf9, 0xaf, 0x12, 0x08, 0x54, 0x64, 0xc6, + 0x0f, 0x7c, 0xd1, 0x7e, 0xc4, 0xac, 0x7f, 0x7b, 0x44, 0xd1, 0x8b, 0xc9, 0xa1, 0xa5, 0x99, 0xb5, + 0x3a, 0xc3, 0x59, 0x46, 0xf7, 0xff, 0x5f, 0x87, 0xd9, 0x13, 0x58, 0x64, 0x0b, 0xf4, 0x7c, 0xb7, + 0xe3, 0x0b, 0x87, 0x17, 0xd5, 0xa8, 0x4d, 0xaf, 0x2a, 0xf4, 0x67, 0x56, 0xb7, 0xd7, 0xa5, 0xce, + 0x2c, 0xaa, 0xa2, 0x49, 0xa8, 0x76, 0x7a, 0xed, 0x36, 0x16, 0xab, 0xb7, 0xa8, 0x46, 0x6d, 0x92, + 0xbb, 0xb3, 0xa2, 0x13, 0x1e, 0xf7, 0x79, 0xab, 0xb9, 0x08, 0xc4, 0xc5, 0x64, 0xfd, 0x47, 0xc9, + 0xb2, 0x46, 0xb6, 0x7a, 0x21, 0xb7, 0x1e, 0x81, 0x49, 0x26, 0x10, 0x34, 0xbf, 0x3b, 0x09, 0x65, + 0x3e, 0xb6, 0x44, 0x13, 0x72, 0x6e, 0x26, 0x9b, 0x09, 0x0b, 0x3e, 0xa2, 0x89, 0x2e, 0x40, 0x79, + 0xdf, 0x08, 0x34, 0x1f, 0xb7, 0xf9, 0x62, 0x9b, 0xdc, 0x37, 0x02, 0x15, 0xb7, 0x49, 0xd2, 0xd3, + 0xf3, 0x42, 0xab, 0x8b, 0xb5, 0x6e, 0xc0, 0x74, 0x64, 0x49, 0xcf, 0x36, 0x05, 0x3e, 0xda, 0x52, + 0x2b, 0xac, 0xfb, 0x51, 0x80, 0x3e, 0x01, 0x72, 0x2f, 0xc0, 0xbe, 0x66, 0x78, 0x3d, 0x4d, 0x50, + 0x00, 0xa5, 0x98, 0x3d, 0x3e, 0x5a, 0x98, 0xde, 0x0e, 0xb0, 0xbf, 0xda, 0xda, 0x7e, 0xca, 0xc8, + 0xa6, 0x09, 0xea, 0xaa, 0xd7, 0x7b, 0xca, 0x68, 0x3f, 0x03, 0x28, 0xa0, 0xa3, 0x91, 0xa2, 0x9e, + 0xa2, 0xd4, 0xb4, 0xb8, 0x8d, 0x8d, 0x55, 0x4c, 0x3f, 0xc3, 0xd0, 0x63, 0x0e, 0x97, 0x00, 0x82, + 0x50, 0xa7, 0x7b, 0xb1, 0x1e, 0x36, 0x6a, 0xd4, 0x17, 0x55, 0x0e, 0x59, 0xa6, 0xa5, 0xee, 0xbe, + 0x4d, 0x52, 0x7c, 0xcd, 0xe8, 0xf9, 0x8d, 0x69, 0x5a, 0xdd, 0x58, 0x65, 0x90, 0xd5, 0x1e, 0x8d, + 0xb9, 0x4e, 0xaf, 0xab, 0x75, 0x5c, 0xdf, 0xed, 0x85, 0x96, 0x83, 0x1b, 0x75, 0xca, 0xa0, 0xe6, + 0xf4, 0xba, 0x0f, 0x04, 0x8c, 0x0c, 0x89, 0xe3, 0xb6, 0x2d, 0x1b, 0x37, 0x66, 0xd8, 0x90, 0xb0, + 0x16, 0x7a, 0x03, 0xce, 0x85, 0xae, 0xab, 0x75, 0x75, 0xe7, 0x50, 0x73, 0x3d, 0xec, 0x68, 0x04, + 0x1a, 0x34, 0x64, 0x1a, 0x8f, 0xe5, 0xd0, 0x75, 0x1f, 0xe9, 0xce, 0xe1, 0x13, 0x0f, 0x3b, 0xf7, + 0x09, 0x9c, 0x1c, 0x98, 0x88, 0x2c, 0xc3, 0xeb, 0x35, 0x66, 0xa9, 0x81, 0xf4, 0xc0, 0xf4, 0xb8, + 0x47, 0xac, 0x53, 0x27, 0x9d, 0x1e, 0x31, 0x8a, 0xe8, 0xdb, 0x71, 0x35, 0x31, 0x5a, 0x88, 0x8e, + 0x49, 0xb5, 0xe3, 0x7e, 0x8e, 0x8f, 0xd7, 0x4d, 0x90, 0x5d, 0x0f, 0xfb, 0xb4, 0xa0, 0x40, 0x63, + 0xae, 0x68, 0x9c, 0x63, 0x39, 0x51, 0x04, 0x67, 0x2e, 0x43, 0x2f, 0x41, 0x75, 0xd7, 0x0d, 0x42, + 0xcd, 0xd1, 0xbb, 0xb8, 0x31, 0x47, 0x71, 0x2a, 0x04, 0xf0, 0x58, 0xef, 0x62, 0xb2, 0x79, 0xeb, + 0xbe, 0xb1, 0xdb, 0x38, 0xcf, 0x36, 0x6f, 0xf2, 0x3b, 0xe1, 0xaa, 0xae, 0xfe, 0xac, 0x31, 0x9f, + 0x74, 0xd5, 0x23, 0xfd, 0x19, 0xd9, 0xd2, 0x3d, 0xcb, 0x6c, 0x5c, 0xa0, 0xaa, 0xb3, 0x25, 0x4f, + 0x52, 0x74, 0xcf, 0x32, 0xd1, 0x45, 0x28, 0x79, 0xa4, 0xaf, 0x41, 0xfb, 0x2a, 0xc7, 0x47, 0x0b, + 0xa5, 0x16, 0xe9, 0xa4, 0x50, 0xb6, 0x46, 0x2c, 0xd7, 0xb7, 0xc2, 0xc3, 0xc6, 0x8b, 0x62, 0x8d, + 0xb0, 0x36, 0xcd, 0x13, 0x2c, 0xb3, 0xd1, 0x8c, 0x99, 0x6e, 0x13, 0xa6, 0x3d, 0xcb, 0x44, 0x0b, + 0x30, 0x75, 0xe0, 0xfa, 0x7b, 0xc4, 0x50, 0xd3, 0xf2, 0x1b, 0x2f, 0xb1, 0x4d, 0x98, 0x83, 0xd6, + 0x2c, 0xba, 0x15, 0xf2, 0xb9, 0x43, 0xe6, 0x14, 0x35, 0xf3, 0x22, 0x45, 0xaa, 0x33, 0xf0, 0x36, + 0x87, 0x2a, 0xbf, 0x9e, 0x80, 0x0a, 0x59, 0x14, 0x74, 0x7b, 0x4e, 0x84, 0xcd, 0x65, 0x11, 0x35, + 0x3f, 0x0e, 0x13, 0x62, 0x29, 0x15, 0x73, 0x2f, 0x51, 0x05, 0x07, 0xfa, 0x43, 0x65, 0x04, 0xcd, + 0x9f, 0x16, 0xa0, 0x44, 0xda, 0x89, 0x0a, 0xea, 0x6a, 0xaa, 0x82, 0xfa, 0x2e, 0x4c, 0x92, 0x69, + 0x84, 0xd9, 0xc1, 0x25, 0x2f, 0xa0, 0x46, 0xbc, 0x55, 0x82, 0xab, 0x72, 0x12, 0x32, 0xf1, 0xb0, + 0xef, 0xbb, 0x3e, 0xcb, 0x2e, 0xab, 0x2a, 0x6f, 0xa1, 0x65, 0xa8, 0xb4, 0xb1, 0x1e, 0xf6, 0x7c, + 0xcc, 0xa2, 0x62, 0x3d, 0xaf, 0xf8, 0x5c, 0xb0, 0xbd, 0xcf, 0xb0, 0xd5, 0x88, 0x8c, 0x78, 0xb7, + 0x6b, 0x39, 0x9a, 0xad, 0x87, 0xd8, 0x31, 0xd8, 0xd7, 0x13, 0x45, 0x15, 0xba, 0x96, 0xb3, 0xc9, + 0x20, 0x64, 0xfa, 0x58, 0x81, 0x46, 0x6f, 0x7c, 0x30, 0xbf, 0x7e, 0xab, 0x58, 0x01, 0xbd, 0x6f, + 0xc2, 0xe8, 0x93, 0x50, 0x35, 0x2d, 0x9f, 0x9c, 0xc0, 0x5d, 0x87, 0x97, 0x1b, 0x64, 0x1f, 0xac, + 0xd6, 0x04, 0x96, 0x1a, 0x13, 0x34, 0xff, 0x9e, 0x6c, 0x57, 0xc4, 0xc2, 0xb4, 0x10, 0xa9, 0x4f, + 0x48, 0x03, 0xca, 0xba, 0x69, 0xd2, 0xd0, 0xca, 0x62, 0x93, 0x68, 0xa6, 0xc5, 0x17, 0xc7, 0x14, + 0x4f, 0xf8, 0x0a, 0xb3, 0x59, 0x88, 0x15, 0x4d, 0xf4, 0x29, 0x28, 0x07, 0xa1, 0x8f, 0xf5, 0x2e, + 0x2b, 0xe2, 0x98, 0x5a, 0x7a, 0x65, 0xb0, 0x5b, 0xb7, 0x28, 0xb2, 0x2a, 0x88, 0x9a, 0x57, 0x60, + 0x92, 0x81, 0xf2, 0xa6, 0x83, 0xf2, 0x3e, 0x94, 0xf9, 0x58, 0x20, 0x04, 0x75, 0x7e, 0x4d, 0xc1, + 0x21, 0xf2, 0x0b, 0x68, 0x06, 0xa6, 0x3e, 0x8f, 0x83, 0x5d, 0x01, 0x90, 0x50, 0x1d, 0x60, 0x65, + 0x73, 0x5d, 0xb4, 0xe9, 0xb5, 0xc5, 0xa6, 0x6b, 0xe8, 0xb6, 0x80, 0x14, 0xe9, 0x85, 0x87, 0xeb, + 0x8b, 0x76, 0x89, 0xb0, 0x78, 0xb7, 0x67, 0x19, 0x02, 0x30, 0xa1, 0xfc, 0x58, 0x82, 0x4a, 0x4b, + 0xec, 0x49, 0x73, 0x30, 0x11, 0x84, 0x7a, 0x28, 0xce, 0x5b, 0xac, 0x41, 0xa0, 0xa6, 0x6b, 0x39, + 0x1d, 0x91, 0x70, 0xd1, 0x46, 0x6a, 0x6f, 0x23, 0x4e, 0x2e, 0x24, 0xf6, 0xb6, 0x8b, 0x50, 0x35, + 0x78, 0xe2, 0xcd, 0x36, 0xaa, 0x92, 0x1a, 0x03, 0x58, 0x02, 0x17, 0xea, 0x36, 0x9d, 0x56, 0x25, + 0x95, 0x35, 0xa8, 0x14, 0x6c, 0xeb, 0xec, 0x23, 0xa6, 0x92, 0xca, 0x1a, 0xca, 0x91, 0x04, 0xb3, + 0x4f, 0x7a, 0xe1, 0x93, 0x36, 0xbd, 0x9d, 0x10, 0x5f, 0x61, 0x0c, 0xb8, 0x0f, 0x18, 0xe3, 0x66, + 0x2d, 0x51, 0xd7, 0x4e, 0x0c, 0x98, 0x8c, 0xbf, 0x6e, 0xe1, 0x9f, 0xac, 0x94, 0xe2, 0x4f, 0x56, + 0xe6, 0x60, 0xa2, 0x6d, 0xeb, 0x9d, 0x80, 0xea, 0x5c, 0x56, 0x59, 0x83, 0x24, 0xf0, 0x58, 0x7c, + 0x21, 0xa2, 0xa5, 0x8f, 0xf6, 0x72, 0xd4, 0xc1, 0xbf, 0x5c, 0x88, 0x3f, 0xb9, 0x28, 0x27, 0x3e, + 0xb9, 0x50, 0x6c, 0x78, 0xf1, 0x84, 0x7d, 0x43, 0x3e, 0xe2, 0x91, 0xa1, 0xb8, 0xe3, 0x3e, 0xe3, + 0x47, 0x2e, 0xf2, 0x93, 0xc4, 0x3a, 0x96, 0x3a, 0xfb, 0xa2, 0xbe, 0x82, 0x9f, 0xb8, 0xeb, 0x1d, + 0x56, 0x66, 0xc6, 0xa1, 0xca, 0x7f, 0xa5, 0xdc, 0xc9, 0x2b, 0x2c, 0x9b, 0x57, 0xe3, 0xc4, 0x34, + 0x71, 0x45, 0x21, 0xa5, 0xae, 0x28, 0x48, 0xaa, 0xce, 0xe3, 0xe1, 0x67, 0xe2, 0x47, 0x16, 0x96, + 0x47, 0x5d, 0xcf, 0x5c, 0x07, 0x27, 0xcc, 0x8a, 0xbf, 0x3e, 0x21, 0xf3, 0xc3, 0xc6, 0x64, 0x13, + 0x7e, 0x26, 0xee, 0x53, 0x63, 0x00, 0xba, 0x01, 0x32, 0x3f, 0x08, 0xc4, 0xe7, 0xcb, 0xa4, 0x39, + 0xad, 0xe8, 0x90, 0x79, 0x13, 0x64, 0xdd, 0xf6, 0xb1, 0x6e, 0x1e, 0x6a, 0x3e, 0xaf, 0x16, 0xa5, + 0x83, 0x56, 0x51, 0x67, 0x38, 0x5c, 0x14, 0x91, 0xd2, 0x57, 0xbf, 0x58, 0xa3, 0x2d, 0xac, 0xdb, + 0xcd, 0xc7, 0xb1, 0xd9, 0x03, 0x26, 0x54, 0x96, 0x36, 0x85, 0x2c, 0x6d, 0x9a, 0xd7, 0x84, 0x83, + 0x2e, 0x42, 0x35, 0x1a, 0x7d, 0xf1, 0x91, 0x50, 0x04, 0x50, 0xfe, 0xa6, 0x10, 0x15, 0x38, 0x0f, + 0x3a, 0x4b, 0x8d, 0x53, 0x10, 0x78, 0x17, 0x9a, 0x81, 0xd5, 0x71, 0xb0, 0xc9, 0x0f, 0x92, 0xe1, + 0xe1, 0x49, 0x6d, 0x2f, 0x30, 0x8c, 0x0d, 0x8e, 0x10, 0x3b, 0xf1, 0x36, 0x9c, 0xdb, 0xe7, 0x7a, + 0x68, 0x89, 0xa3, 0x20, 0x3b, 0xb8, 0xa3, 0xfd, 0x13, 0x2a, 0x92, 0x59, 0xef, 0x53, 0x35, 0xd9, + 0x7d, 0x83, 0x66, 0x92, 0x88, 0xc1, 0x62, 0xa5, 0x9c, 0xec, 0x58, 0x23, 0xc1, 0x83, 0x9e, 0x48, + 0xc5, 0xd5, 0x04, 0x43, 0x65, 0xbb, 0x49, 0x3d, 0x06, 0x53, 0xc4, 0xf4, 0xa1, 0x7a, 0xb2, 0xff, + 0x50, 0x4d, 0x76, 0x3b, 0x7e, 0xf0, 0x2d, 0xb3, 0x54, 0x94, 0xb5, 0x94, 0x7b, 0x30, 0x7b, 0xdf, + 0xf2, 0x83, 0x70, 0x53, 0x0f, 0xc2, 0x55, 0xb6, 0x7e, 0x69, 0x20, 0x6b, 0x13, 0x20, 0xff, 0x6c, + 0x8d, 0x35, 0xe8, 0x9d, 0x84, 0x1e, 0x84, 0xfc, 0x2b, 0x16, 0xfa, 0x5b, 0xf9, 0x47, 0x09, 0xce, + 0xf1, 0x34, 0x3f, 0xf1, 0xa8, 0xc8, 0x12, 0x47, 0xac, 0xdb, 0xd8, 0xd4, 0xe2, 0xb5, 0x56, 0x65, + 0x90, 0x15, 0xf7, 0x19, 0x7a, 0x19, 0x6a, 0xbe, 0x7e, 0xa0, 0xf9, 0x2e, 0x7b, 0x53, 0xe7, 0xf3, + 0x73, 0xca, 0xd7, 0x0f, 0x54, 0x0e, 0x6a, 0x7e, 0x47, 0x82, 0x22, 0x41, 0x4d, 0x6c, 0x54, 0x52, + 0x7a, 0xa3, 0x9a, 0x83, 0x09, 0xfa, 0x79, 0xa3, 0x78, 0x52, 0xa0, 0x8d, 0x31, 0x9e, 0x78, 0xfa, + 0xab, 0x0f, 0x6b, 0x99, 0x97, 0xec, 0xbf, 0x96, 0xe0, 0xbc, 0x8a, 0xdb, 0x3e, 0x0e, 0x76, 0xd3, + 0xe5, 0x43, 0xcd, 0xb7, 0x86, 0x64, 0x27, 0x73, 0x30, 0xc1, 0xde, 0x09, 0x0a, 0xec, 0x6c, 0xc5, + 0x9e, 0x09, 0xde, 0x3d, 0x65, 0xa9, 0x0b, 0x71, 0x04, 0x49, 0xe1, 0xdd, 0x5e, 0x28, 0x4e, 0x3c, + 0xbc, 0xd9, 0xfc, 0xa2, 0x58, 0x39, 0x2d, 0x98, 0xa2, 0x99, 0x93, 0xd6, 0x76, 0x7b, 0x8e, 0xc9, + 0x13, 0xae, 0xdb, 0x99, 0xe1, 0x25, 0xd3, 0x24, 0x96, 0x7d, 0x01, 0xe5, 0x71, 0x9f, 0xb0, 0xb8, + 0x65, 0x41, 0x7c, 0x61, 0x8e, 0xe6, 0xf9, 0x7b, 0x3b, 0x7b, 0x6c, 0x30, 0x71, 0xdb, 0x72, 0xb0, + 0x29, 0xbf, 0x80, 0xe6, 0xf8, 0x13, 0x29, 0x81, 0xf3, 0xa5, 0x29, 0x4b, 0x29, 0x28, 0x17, 0xc3, + 0x5e, 0x1a, 0x22, 0x68, 0xa2, 0xc8, 0x42, 0x2e, 0xde, 0xfa, 0xf3, 0x32, 0x54, 0xe3, 0x7b, 0xe1, + 0x79, 0x40, 0x51, 0x23, 0x29, 0xeb, 0x2a, 0x2c, 0x44, 0xf0, 0xec, 0x8f, 0xc2, 0x64, 0x09, 0x5d, + 0x83, 0x97, 0xd3, 0x48, 0x19, 0x1f, 0x58, 0xc9, 0x05, 0xb4, 0x00, 0x2f, 0x45, 0x68, 0x27, 0xbf, + 0x52, 0x91, 0x31, 0xba, 0x04, 0x2f, 0x66, 0x22, 0x6c, 0xe2, 0x76, 0x28, 0xb7, 0xd1, 0x2d, 0xb8, + 0xde, 0xdf, 0x9d, 0xfd, 0x2d, 0x88, 0xdc, 0x41, 0x37, 0xe1, 0xda, 0x60, 0x5c, 0x51, 0x28, 0xb9, + 0x8b, 0xee, 0xc0, 0xeb, 0x83, 0x51, 0xd3, 0x9f, 0x72, 0xc8, 0x16, 0x5a, 0x82, 0xc5, 0xc1, 0x14, + 0xfd, 0xdf, 0x5c, 0xc8, 0x5f, 0x41, 0x8b, 0x70, 0x6b, 0x34, 0x9a, 0x2d, 0xec, 0x84, 0xf2, 0xde, + 0x70, 0x19, 0xfd, 0x1f, 0x1e, 0xc8, 0x36, 0xfa, 0x08, 0xdc, 0x1e, 0x8d, 0x26, 0x2a, 0xe3, 0x97, + 0xbb, 0xa3, 0x0b, 0x12, 0x75, 0xf7, 0xb2, 0x83, 0x14, 0xb8, 0x9c, 0x43, 0xc3, 0x2b, 0xe0, 0x65, + 0x17, 0xbd, 0x02, 0x57, 0x72, 0x70, 0xa2, 0x9a, 0x75, 0xd9, 0x43, 0x0a, 0x5c, 0x8a, 0xb0, 0xb2, + 0x3e, 0x70, 0x94, 0x7f, 0x26, 0xa1, 0x3b, 0xf0, 0x5a, 0x84, 0x33, 0xfc, 0x2b, 0x39, 0xf9, 0x27, + 0x05, 0xf4, 0x56, 0xc2, 0x11, 0xa3, 0x7d, 0x2d, 0x26, 0xff, 0x51, 0x01, 0x2d, 0xc2, 0xcd, 0x7c, + 0x39, 0x7d, 0xdf, 0xbc, 0xc9, 0x7f, 0x5c, 0x40, 0x97, 0x13, 0xd3, 0xb5, 0xbf, 0x40, 0x5e, 0xfe, + 0x51, 0x11, 0xbd, 0x79, 0x72, 0x62, 0x0d, 0xda, 0x42, 0xe5, 0x5f, 0x15, 0xd1, 0xf5, 0xfe, 0x95, + 0x94, 0xf1, 0x41, 0xa9, 0xfc, 0xcb, 0xf2, 0xad, 0xef, 0x49, 0xd0, 0xc8, 0x7b, 0x9f, 0x22, 0xcb, + 0x31, 0xaf, 0xaf, 0x6f, 0x69, 0xe7, 0xa1, 0xf1, 0xbd, 0x45, 0x96, 0xc8, 0x28, 0xe6, 0x23, 0x31, + 0xd5, 0xe4, 0xc2, 0xad, 0xbf, 0x94, 0xa2, 0xa2, 0x45, 0x56, 0x96, 0xfc, 0x62, 0x54, 0xfc, 0x49, + 0xdb, 0x49, 0xb1, 0x7d, 0x5d, 0x4f, 0x5d, 0x3e, 0xcd, 0x64, 0x89, 0x04, 0xab, 0x64, 0x57, 0x34, + 0xb3, 0x0b, 0xe8, 0x3c, 0xcc, 0x26, 0x7b, 0xd8, 0x40, 0x17, 0xd1, 0x85, 0xa8, 0x0a, 0x91, 0x13, + 0x74, 0x5d, 0x82, 0x5f, 0xea, 0x17, 0x12, 0xcf, 0xf7, 0x89, 0x7e, 0x1a, 0x31, 0x61, 0x27, 0x6f, + 0x3d, 0x80, 0x6a, 0x74, 0xc4, 0x22, 0x27, 0x11, 0x7e, 0xa0, 0x59, 0xb3, 0x7c, 0xf9, 0x05, 0xd2, + 0xde, 0x70, 0x76, 0x48, 0x8c, 0x26, 0x6d, 0x89, 0x9c, 0x4c, 0x9e, 0xf4, 0xc2, 0x08, 0x50, 0x40, + 0x55, 0x98, 0x58, 0xb1, 0xc8, 0xcf, 0xe2, 0xd2, 0x3f, 0x5c, 0x87, 0x19, 0xf1, 0xa9, 0xb4, 0x78, + 0x22, 0x0a, 0x32, 0xbe, 0x47, 0x40, 0x8b, 0x83, 0x1e, 0x58, 0x62, 0xbc, 0xc5, 0xe8, 0xa3, 0x85, + 0x91, 0xf1, 0x3d, 0xfb, 0xf0, 0x8e, 0x84, 0xbe, 0x25, 0xe5, 0x7e, 0xb6, 0x80, 0xde, 0x1a, 0xab, + 0x22, 0x5d, 0x68, 0xb0, 0x34, 0x26, 0x15, 0xd9, 0x25, 0x89, 0x16, 0x39, 0x01, 0x35, 0x47, 0x8b, + 0x1c, 0xec, 0x21, 0x5a, 0xe4, 0x53, 0x11, 0x2d, 0xbe, 0x9e, 0x53, 0x70, 0x8e, 0x46, 0x61, 0xc6, + 0x71, 0x23, 0x05, 0xee, 0x8c, 0x45, 0x43, 0xc4, 0x7f, 0x35, 0xbb, 0x84, 0x1d, 0xbd, 0x39, 0x02, + 0x27, 0x86, 0x1a, 0x09, 0xbf, 0x3d, 0x0e, 0x09, 0x91, 0xfd, 0xdb, 0xd2, 0xe0, 0xea, 0x76, 0xf4, + 0xf6, 0x48, 0xfe, 0x4c, 0x92, 0x44, 0xca, 0x7c, 0xec, 0x34, 0xa4, 0x44, 0xa9, 0x30, 0xab, 0x0c, + 0x1e, 0x8d, 0x62, 0x1b, 0x41, 0x8c, 0xe4, 0xbf, 0x31, 0x3a, 0x41, 0xe6, 0x30, 0xb0, 0x4d, 0x6d, + 0xa4, 0x61, 0x60, 0xa8, 0x63, 0x0d, 0x43, 0x44, 0x92, 0x37, 0x03, 0x49, 0x54, 0x1a, 0x75, 0x06, + 0x12, 0xdc, 0x71, 0x67, 0x20, 0xa7, 0x21, 0xe2, 0x77, 0xd2, 0x45, 0xf3, 0xe8, 0x66, 0x7e, 0x5d, + 0x3a, 0x47, 0x89, 0x84, 0xbd, 0x3a, 0x0a, 0x2a, 0x91, 0x81, 0xfb, 0x4a, 0xe9, 0xd1, 0xad, 0x9c, + 0xca, 0x8a, 0x04, 0x4e, 0x24, 0xe5, 0xc6, 0x48, 0xb8, 0xdc, 0x94, 0x64, 0xba, 0x91, 0x63, 0x4a, + 0x12, 0x65, 0x88, 0x29, 0x7d, 0xa8, 0x44, 0xc6, 0x6e, 0x7f, 0xd1, 0x3c, 0x7a, 0x6d, 0x10, 0x29, + 0x47, 0x8a, 0xe4, 0xdc, 0x1c, 0x0d, 0x99, 0x48, 0x3a, 0xc8, 0x2c, 0xa5, 0x47, 0x03, 0x47, 0x38, + 0x89, 0x19, 0xc9, 0x5c, 0x1c, 0x83, 0x82, 0x08, 0xfe, 0x86, 0x94, 0x57, 0x71, 0x8f, 0x3e, 0x92, + 0x5d, 0xc7, 0x9a, 0x89, 0x1c, 0xc9, 0x7f, 0x73, 0x3c, 0x22, 0xbe, 0x1e, 0xb3, 0xaa, 0xf3, 0xd1, + 0x68, 0xac, 0x08, 0xea, 0x90, 0xf5, 0x98, 0x43, 0xc2, 0xd7, 0x63, 0x66, 0xed, 0x7e, 0xce, 0x7a, + 0xcc, 0xc4, 0x1d, 0xb2, 0x1e, 0xf3, 0x68, 0x88, 0xf8, 0x9f, 0x48, 0x23, 0x96, 0xf9, 0xa3, 0x95, + 0x91, 0x78, 0x67, 0xd2, 0x46, 0xfa, 0x7d, 0xe6, 0x4c, 0x3c, 0x88, 0xbe, 0xbf, 0x3b, 0xf4, 0x83, + 0x01, 0x74, 0x77, 0x34, 0x21, 0x29, 0xa2, 0x48, 0xc3, 0xb7, 0x4f, 0x47, 0x4c, 0x54, 0xfb, 0xfd, + 0x11, 0xbe, 0x20, 0x40, 0xf7, 0x46, 0xe2, 0xdf, 0x4f, 0x16, 0xa9, 0x77, 0xf7, 0xb4, 0xe4, 0x44, + 0xc1, 0xbd, 0x13, 0x9f, 0x13, 0xa0, 0xec, 0x5c, 0xae, 0x0f, 0x2b, 0x92, 0x7e, 0x6b, 0x44, 0x6c, + 0x1e, 0xb9, 0xd2, 0x1f, 0x0c, 0xe4, 0x44, 0xae, 0x34, 0xd2, 0x90, 0xc8, 0x75, 0x02, 0x99, 0x48, + 0x72, 0x32, 0x8a, 0xd4, 0x73, 0x92, 0xda, 0x13, 0x78, 0x43, 0x22, 0xf2, 0xc9, 0x0f, 0x0d, 0xee, + 0x48, 0x68, 0xef, 0x64, 0x6d, 0x38, 0x7a, 0x63, 0x10, 0x79, 0x84, 0x16, 0x49, 0xbb, 0x3e, 0x14, + 0x5d, 0x08, 0xfb, 0x62, 0xa2, 0x20, 0x1b, 0x0d, 0x20, 0xa3, 0x4f, 0xef, 0x82, 0xfd, 0x2b, 0x43, + 0xf1, 0xf8, 0x36, 0x99, 0xaa, 0x75, 0xce, 0xd9, 0x26, 0x53, 0x38, 0x43, 0xb6, 0xc9, 0x7e, 0x5c, + 0x3e, 0xeb, 0xfa, 0xca, 0x9c, 0x73, 0x66, 0x5d, 0x1f, 0xd6, 0x90, 0x59, 0x77, 0x12, 0x9b, 0x08, + 0x0b, 0x32, 0x6a, 0xa0, 0x07, 0xcd, 0x85, 0x54, 0xe5, 0xef, 0xe0, 0x03, 0x4e, 0x16, 0x3e, 0x3b, + 0xe0, 0x74, 0x4f, 0x54, 0xb9, 0xe6, 0x5a, 0x98, 0xc2, 0x1a, 0x6a, 0x61, 0x3f, 0x36, 0x13, 0xf7, + 0x4d, 0x29, 0xaf, 0x10, 0x35, 0x67, 0xc3, 0xcc, 0x46, 0x1e, 0xb2, 0x61, 0xe6, 0x12, 0x31, 0x25, + 0xde, 0x4b, 0x16, 0x5f, 0xa2, 0x57, 0xf3, 0x59, 0xa4, 0xc7, 0xf2, 0xda, 0x70, 0x44, 0x32, 0x8c, + 0xef, 0x25, 0xcb, 0x72, 0xd0, 0xd0, 0x6a, 0x97, 0xc1, 0xdc, 0x53, 0x88, 0x62, 0xcf, 0x1b, 0xa9, + 0xd6, 0x2f, 0x67, 0xcf, 0x1b, 0x89, 0x76, 0xc8, 0x9e, 0x37, 0x2a, 0x0f, 0xa2, 0xef, 0x9f, 0x8d, + 0x53, 0xb0, 0x87, 0xee, 0x8f, 0x2f, 0x2f, 0x49, 0x1f, 0xe9, 0xbd, 0x76, 0x66, 0x3e, 0x44, 0xf7, + 0xef, 0x48, 0xb9, 0x65, 0x7d, 0x39, 0xc7, 0xee, 0x1c, 0xec, 0x21, 0xc7, 0xee, 0x7c, 0x2a, 0x36, + 0x5f, 0x7f, 0x6f, 0x78, 0x61, 0x1d, 0xfa, 0x64, 0xce, 0x9d, 0xf9, 0x40, 0xaa, 0x48, 0xaf, 0x4f, + 0x9c, 0x92, 0x9a, 0x78, 0xe9, 0x73, 0x71, 0x35, 0x05, 0x1a, 0x52, 0x77, 0x20, 0xc4, 0x0d, 0xab, + 0x7a, 0xa0, 0x7c, 0xdf, 0xcf, 0x78, 0xb9, 0xcc, 0x09, 0x87, 0x27, 0xf0, 0x86, 0x84, 0xc3, 0x2c, + 0x7c, 0xbe, 0xef, 0xa7, 0x9f, 0x0c, 0x73, 0xf6, 0xfd, 0x34, 0xd2, 0x90, 0x7d, 0xff, 0x04, 0x32, + 0xcf, 0x9c, 0x33, 0xdf, 0x33, 0x72, 0x32, 0xe7, 0xec, 0xb7, 0x8f, 0xc1, 0x99, 0x73, 0x1e, 0x8d, + 0x67, 0x1f, 0xae, 0x7c, 0xf4, 0x83, 0x7f, 0xba, 0xfc, 0xc2, 0x5f, 0x1d, 0x5f, 0x96, 0x3e, 0x38, + 0xbe, 0x2c, 0xfd, 0xfc, 0xf8, 0xb2, 0xf4, 0xa5, 0x57, 0x76, 0xb0, 0x1f, 0x1e, 0x2e, 0x86, 0xd8, + 0xd8, 0xbd, 0xcd, 0xb9, 0xdd, 0xf6, 0xf6, 0x3a, 0xb7, 0x53, 0xff, 0x36, 0x76, 0x67, 0x92, 0x36, + 0x3f, 0xf2, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x88, 0xd3, 0x9d, 0xd9, 0x4e, 0x56, 0x00, 0x00, } func (m *Account) Marshal() (dAtA []byte, err error) { @@ -12746,93 +11908,6 @@ func (m *AccountContactUnblocked) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *AccountServiceTokenAdded) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AccountServiceTokenAdded) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AccountServiceTokenAdded) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.ServiceToken != nil { - { - size, err := m.ServiceToken.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *AccountServiceTokenRemoved) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AccountServiceTokenRemoved) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AccountServiceTokenRemoved) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.TokenID) > 0 { - i -= len(m.TokenID) - copy(dAtA[i:], m.TokenID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.TokenID))) - i-- - dAtA[i] = 0x12 - } - if len(m.DevicePK) > 0 { - i -= len(m.DevicePK) - copy(dAtA[i:], m.DevicePK) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.DevicePK))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *GroupReplicating) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -15713,20 +14788,20 @@ func (m *GroupDeviceStatus_Reply_PeerConnected) MarshalToSizedBuffer(dAtA []byte } } if len(m.Transports) > 0 { - dAtA17 := make([]byte, len(m.Transports)*10) - var j16 int + dAtA16 := make([]byte, len(m.Transports)*10) + var j15 int for _, num := range m.Transports { for num >= 1<<7 { - dAtA17[j16] = uint8(uint64(num)&0x7f | 0x80) + dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j16++ + j15++ } - dAtA17[j16] = uint8(num) - j16++ + dAtA16[j15] = uint8(num) + j15++ } - i -= j16 - copy(dAtA[i:], dAtA17[:j16]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(j16)) + i -= j15 + copy(dAtA[i:], dAtA16[:j15]) + i = encodeVarintProtocoltypes(dAtA, i, uint64(j15)) i-- dAtA[i] = 0x1a } @@ -16140,180 +15215,6 @@ func (m *DebugGroup_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AuthExchangeResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthExchangeResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthExchangeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Services) > 0 { - for k := range m.Services { - v := m.Services[k] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(k) - copy(dAtA[i:], k) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(k))) - i-- - dAtA[i] = 0xa - i = encodeVarintProtocoltypes(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x2a - } - } - if len(m.ErrorDescription) > 0 { - i -= len(m.ErrorDescription) - copy(dAtA[i:], m.ErrorDescription) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.ErrorDescription))) - i-- - dAtA[i] = 0x22 - } - if len(m.Error) > 0 { - i -= len(m.Error) - copy(dAtA[i:], m.Error) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Error))) - i-- - dAtA[i] = 0x1a - } - if len(m.Scope) > 0 { - i -= len(m.Scope) - copy(dAtA[i:], m.Scope) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Scope))) - i-- - dAtA[i] = 0x12 - } - if len(m.AccessToken) > 0 { - i -= len(m.AccessToken) - copy(dAtA[i:], m.AccessToken) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.AccessToken))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *DebugAuthServiceSetToken) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DebugAuthServiceSetToken) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DebugAuthServiceSetToken) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *DebugAuthServiceSetToken_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DebugAuthServiceSetToken_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DebugAuthServiceSetToken_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.AuthenticationURL) > 0 { - i -= len(m.AuthenticationURL) - copy(dAtA[i:], m.AuthenticationURL) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.AuthenticationURL))) - i-- - dAtA[i] = 0x12 - } - if m.Token != nil { - { - size, err := m.Token.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *DebugAuthServiceSetToken_Reply) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DebugAuthServiceSetToken_Reply) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DebugAuthServiceSetToken_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - func (m *ShareableContact) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -16463,215 +15364,6 @@ func (m *ServiceToken) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AuthServiceCompleteFlow) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceCompleteFlow) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceCompleteFlow) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *AuthServiceCompleteFlow_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceCompleteFlow_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceCompleteFlow_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.CallbackURL) > 0 { - i -= len(m.CallbackURL) - copy(dAtA[i:], m.CallbackURL) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.CallbackURL))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *AuthServiceCompleteFlow_Reply) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceCompleteFlow_Reply) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceCompleteFlow_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.TokenID) > 0 { - i -= len(m.TokenID) - copy(dAtA[i:], m.TokenID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.TokenID))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *AuthServiceInitFlow) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceInitFlow) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceInitFlow) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *AuthServiceInitFlow_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceInitFlow_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceInitFlow_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Services) > 0 { - for iNdEx := len(m.Services) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Services[iNdEx]) - copy(dAtA[i:], m.Services[iNdEx]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Services[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.AuthURL) > 0 { - i -= len(m.AuthURL) - copy(dAtA[i:], m.AuthURL) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.AuthURL))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *AuthServiceInitFlow_Reply) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AuthServiceInitFlow_Reply) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AuthServiceInitFlow_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if m.SecureURL { - i-- - if m.SecureURL { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - } - if len(m.URL) > 0 { - i -= len(m.URL) - copy(dAtA[i:], m.URL) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.URL))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func (m *CredentialVerificationServiceInitFlow) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -17003,34 +15695,7 @@ func (m *VerifiedCredentialsList_Reply) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *ServicesTokenList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServicesTokenList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ServicesTokenList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *ServicesTokenList_Request) Marshal() (dAtA []byte, err error) { +func (m *ReplicationServiceRegisterGroup) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -17040,12 +15705,12 @@ func (m *ServicesTokenList_Request) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ServicesTokenList_Request) MarshalTo(dAtA []byte) (int, error) { +func (m *ReplicationServiceRegisterGroup) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ServicesTokenList_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ReplicationServiceRegisterGroup) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -17057,7 +15722,7 @@ func (m *ServicesTokenList_Request) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *ServicesTokenList_Reply) Marshal() (dAtA []byte, err error) { +func (m *ReplicationServiceRegisterGroup_Request) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -17067,12 +15732,12 @@ func (m *ServicesTokenList_Reply) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ServicesTokenList_Reply) MarshalTo(dAtA []byte) (int, error) { +func (m *ReplicationServiceRegisterGroup_Request) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ServicesTokenList_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ReplicationServiceRegisterGroup_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -17081,141 +15746,32 @@ func (m *ServicesTokenList_Reply) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Service != nil { - { - size, err := m.Service.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintProtocoltypes(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if len(m.TokenID) > 0 { - i -= len(m.TokenID) - copy(dAtA[i:], m.TokenID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.TokenID))) + if len(m.ReplicationServer) > 0 { + i -= len(m.ReplicationServer) + copy(dAtA[i:], m.ReplicationServer) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.ReplicationServer))) i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ServicesTokenCode) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServicesTokenCode) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ServicesTokenCode) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) + dAtA[i] = 0x22 } - if len(m.TokenID) > 0 { - i -= len(m.TokenID) - copy(dAtA[i:], m.TokenID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.TokenID))) + if len(m.AuthenticationURL) > 0 { + i -= len(m.AuthenticationURL) + copy(dAtA[i:], m.AuthenticationURL) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.AuthenticationURL))) i-- dAtA[i] = 0x1a } - if len(m.CodeChallenge) > 0 { - i -= len(m.CodeChallenge) - copy(dAtA[i:], m.CodeChallenge) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.CodeChallenge))) + if len(m.Token) > 0 { + i -= len(m.Token) + copy(dAtA[i:], m.Token) + i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Token))) i-- dAtA[i] = 0x12 } - if len(m.Services) > 0 { - for iNdEx := len(m.Services) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Services[iNdEx]) - copy(dAtA[i:], m.Services[iNdEx]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.Services[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ReplicationServiceRegisterGroup) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicationServiceRegisterGroup) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ReplicationServiceRegisterGroup) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - return len(dAtA) - i, nil -} - -func (m *ReplicationServiceRegisterGroup_Request) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicationServiceRegisterGroup_Request) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ReplicationServiceRegisterGroup_Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } if len(m.GroupPK) > 0 { i -= len(m.GroupPK) copy(dAtA[i:], m.GroupPK) i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.GroupPK))) i-- - dAtA[i] = 0x12 - } - if len(m.TokenID) > 0 { - i -= len(m.TokenID) - copy(dAtA[i:], m.TokenID) - i = encodeVarintProtocoltypes(dAtA, i, uint64(len(m.TokenID))) - i-- dAtA[i] = 0xa } return len(dAtA) - i, nil @@ -17919,20 +16475,20 @@ func (m *PeerList_Peer) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x28 } if len(m.Features) > 0 { - dAtA27 := make([]byte, len(m.Features)*10) - var j26 int + dAtA24 := make([]byte, len(m.Features)*10) + var j23 int for _, num := range m.Features { for num >= 1<<7 { - dAtA27[j26] = uint8(uint64(num)&0x7f | 0x80) + dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j26++ + j23++ } - dAtA27[j26] = uint8(num) - j26++ + dAtA24[j23] = uint8(num) + j23++ } - i -= j26 - copy(dAtA[i:], dAtA27[:j26]) - i = encodeVarintProtocoltypes(dAtA, i, uint64(j26)) + i -= j23 + copy(dAtA[i:], dAtA24[:j23]) + i = encodeVarintProtocoltypes(dAtA, i, uint64(j23)) i-- dAtA[i] = 0x22 } @@ -19569,46 +18125,6 @@ func (m *AccountContactUnblocked) Size() (n int) { return n } -func (m *AccountServiceTokenAdded) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.DevicePK) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.ServiceToken != nil { - l = m.ServiceToken.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AccountServiceTokenRemoved) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.DevicePK) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.TokenID) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - func (m *GroupReplicating) Size() (n int) { if m == nil { return 0 @@ -21120,86 +19636,6 @@ func (m *DebugGroup_Reply) Size() (n int) { return n } -func (m *AuthExchangeResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AccessToken) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.Scope) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.Error) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.ErrorDescription) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if len(m.Services) > 0 { - for k, v := range m.Services { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovProtocoltypes(uint64(len(k))) + 1 + len(v) + sovProtocoltypes(uint64(len(v))) - n += mapEntrySize + 1 + sovProtocoltypes(uint64(mapEntrySize)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DebugAuthServiceSetToken) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DebugAuthServiceSetToken_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Token != nil { - l = m.Token.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } - l = len(m.AuthenticationURL) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *DebugAuthServiceSetToken_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - func (m *ShareableContact) Size() (n int) { if m == nil { return 0 @@ -21273,103 +19709,6 @@ func (m *ServiceToken) Size() (n int) { return n } -func (m *AuthServiceCompleteFlow) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AuthServiceCompleteFlow_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.CallbackURL) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AuthServiceCompleteFlow_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.TokenID) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AuthServiceInitFlow) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AuthServiceInitFlow_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AuthURL) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if len(m.Services) > 0 { - for _, s := range m.Services { - l = len(s) - n += 1 + l + sovProtocoltypes(uint64(l)) - } - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *AuthServiceInitFlow_Reply) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.URL) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.SecureURL { - n += 2 - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - func (m *CredentialVerificationServiceInitFlow) Size() (n int) { if m == nil { return 0 @@ -21520,99 +19859,37 @@ func (m *VerifiedCredentialsList_Reply) Size() (n int) { return n } -func (m *ServicesTokenList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ServicesTokenList_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ServicesTokenList_Reply) Size() (n int) { +func (m *ReplicationServiceRegisterGroup) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.TokenID) - if l > 0 { - n += 1 + l + sovProtocoltypes(uint64(l)) - } - if m.Service != nil { - l = m.Service.Size() - n += 1 + l + sovProtocoltypes(uint64(l)) - } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *ServicesTokenCode) Size() (n int) { +func (m *ReplicationServiceRegisterGroup_Request) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Services) > 0 { - for _, s := range m.Services { - l = len(s) - n += 1 + l + sovProtocoltypes(uint64(l)) - } - } - l = len(m.CodeChallenge) + l = len(m.GroupPK) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.TokenID) + l = len(m.Token) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ReplicationServiceRegisterGroup) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *ReplicationServiceRegisterGroup_Request) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.TokenID) + l = len(m.AuthenticationURL) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } - l = len(m.GroupPK) + l = len(m.ReplicationServer) if l > 0 { n += 1 + l + sovProtocoltypes(uint64(l)) } @@ -26874,7 +25151,7 @@ func (m *AccountContactUnblocked) Unmarshal(dAtA []byte) error { } return nil } -func (m *AccountServiceTokenAdded) Unmarshal(dAtA []byte) error { +func (m *GroupReplicating) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -26897,10 +25174,10 @@ func (m *AccountServiceTokenAdded) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AccountServiceTokenAdded: wiretype end group for non-group") + return fmt.Errorf("proto: GroupReplicating: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AccountServiceTokenAdded: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GroupReplicating: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -26939,9 +25216,9 @@ func (m *AccountServiceTokenAdded) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -26951,293 +25228,55 @@ func (m *AccountServiceTokenAdded) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - if m.ServiceToken == nil { - m.ServiceToken = &ServiceToken{} + m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReplicationServer", wireType) } - if err := m.ServiceToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AccountServiceTokenRemoved) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AccountServiceTokenRemoved: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AccountServiceTokenRemoved: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TokenID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GroupReplicating) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GroupReplicating: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GroupReplicating: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DevicePK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DevicePK = append(m.DevicePK[:0], dAtA[iNdEx:postIndex]...) - if m.DevicePK == nil { - m.DevicePK = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReplicationServer", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ReplicationServer = string(dAtA[iNdEx:postIndex]) + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReplicationServer = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -34852,1238 +32891,7 @@ func (m *DebugGroup_Reply) Unmarshal(dAtA []byte) error { } return nil } -func (m *AuthExchangeResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AuthExchangeResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AuthExchangeResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AccessToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AccessToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Scope = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Error = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ErrorDescription", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ErrorDescription = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Services == nil { - m.Services = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthProtocoltypes - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthProtocoltypes - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthProtocoltypes - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthProtocoltypes - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Services[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DebugAuthServiceSetToken) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DebugAuthServiceSetToken: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DebugAuthServiceSetToken: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DebugAuthServiceSetToken_Request) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Token == nil { - m.Token = &AuthExchangeResponse{} - } - if err := m.Token.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DebugAuthServiceSetToken_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ShareableContact) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ShareableContact: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ShareableContact: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PK", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PK = append(m.PK[:0], dAtA[iNdEx:postIndex]...) - if m.PK == nil { - m.PK = []byte{} - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PublicRendezvousSeed", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PublicRendezvousSeed = append(m.PublicRendezvousSeed[:0], dAtA[iNdEx:postIndex]...) - if m.PublicRendezvousSeed == nil { - m.PublicRendezvousSeed = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metadata = append(m.Metadata[:0], dAtA[iNdEx:postIndex]...) - if m.Metadata == nil { - m.Metadata = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceTokenSupportedService) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceTokenSupportedService: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceTokenSupportedService: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceType", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceType = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceEndpoint", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceEndpoint = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceToken) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceToken: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceToken: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Token = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SupportedServices", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SupportedServices = append(m.SupportedServices, &ServiceTokenSupportedService{}) - if err := m.SupportedServices[len(m.SupportedServices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType) - } - m.Expiration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Expiration |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AuthServiceCompleteFlow) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AuthServiceCompleteFlow: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AuthServiceCompleteFlow: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AuthServiceCompleteFlow_Request) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CallbackURL", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CallbackURL = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AuthServiceCompleteFlow_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TokenID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AuthServiceInitFlow) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AuthServiceInitFlow: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AuthServiceInitFlow: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AuthServiceInitFlow_Request) Unmarshal(dAtA []byte) error { +func (m *ShareableContact) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36106,17 +32914,17 @@ func (m *AuthServiceInitFlow_Request) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") + return fmt.Errorf("proto: ShareableContact: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ShareableContact: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthURL", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PK", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36126,29 +32934,65 @@ func (m *AuthServiceInitFlow_Request) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PK = append(m.PK[:0], dAtA[iNdEx:postIndex]...) + if m.PK == nil { + m.PK = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PublicRendezvousSeed", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.AuthURL = string(dAtA[iNdEx:postIndex]) + m.PublicRendezvousSeed = append(m.PublicRendezvousSeed[:0], dAtA[iNdEx:postIndex]...) + if m.PublicRendezvousSeed == nil { + m.PublicRendezvousSeed = []byte{} + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36158,23 +33002,25 @@ func (m *AuthServiceInitFlow_Request) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.Services = append(m.Services, string(dAtA[iNdEx:postIndex])) + m.Metadata = append(m.Metadata[:0], dAtA[iNdEx:postIndex]...) + if m.Metadata == nil { + m.Metadata = []byte{} + } iNdEx = postIndex default: iNdEx = preIndex @@ -36198,7 +33044,7 @@ func (m *AuthServiceInitFlow_Request) Unmarshal(dAtA []byte) error { } return nil } -func (m *AuthServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { +func (m *ServiceTokenSupportedService) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36221,15 +33067,15 @@ func (m *AuthServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") + return fmt.Errorf("proto: ServiceTokenSupportedService: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ServiceTokenSupportedService: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ServiceType", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36257,13 +33103,13 @@ func (m *AuthServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.URL = string(dAtA[iNdEx:postIndex]) + m.ServiceType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SecureURL", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceEndpoint", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36273,63 +33119,24 @@ func (m *AuthServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.SecureURL = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthProtocoltypes } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CredentialVerificationServiceInitFlow) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CredentialVerificationServiceInitFlow: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CredentialVerificationServiceInitFlow: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + m.ServiceEndpoint = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -36352,7 +33159,7 @@ func (m *CredentialVerificationServiceInitFlow) Unmarshal(dAtA []byte) error { } return nil } -func (m *CredentialVerificationServiceInitFlow_Request) Unmarshal(dAtA []byte) error { +func (m *ServiceToken) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36375,15 +33182,15 @@ func (m *CredentialVerificationServiceInitFlow_Request) Unmarshal(dAtA []byte) e fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") + return fmt.Errorf("proto: ServiceToken: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ServiceToken: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceURL", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36411,45 +33218,11 @@ func (m *CredentialVerificationServiceInitFlow_Request) Unmarshal(dAtA []byte) e if postIndex > l { return io.ErrUnexpectedEOF } - m.ServiceURL = string(dAtA[iNdEx:postIndex]) + m.Token = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PublicKey = append(m.PublicKey[:0], dAtA[iNdEx:postIndex]...) - if m.PublicKey == nil { - m.PublicKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Link", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36477,64 +33250,13 @@ func (m *CredentialVerificationServiceInitFlow_Request) Unmarshal(dAtA []byte) e if postIndex > l { return io.ErrUnexpectedEOF } - m.Link = string(dAtA[iNdEx:postIndex]) + m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CredentialVerificationServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SupportedServices", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36544,29 +33266,31 @@ func (m *CredentialVerificationServiceInitFlow_Reply) Unmarshal(dAtA []byte) err } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.URL = string(dAtA[iNdEx:postIndex]) + m.SupportedServices = append(m.SupportedServices, &ServiceTokenSupportedService{}) + if err := m.SupportedServices[len(m.SupportedServices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SecureURL", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType) } - var v int + m.Expiration = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36576,12 +33300,11 @@ func (m *CredentialVerificationServiceInitFlow_Reply) Unmarshal(dAtA []byte) err } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.Expiration |= int64(b&0x7F) << shift if b < 0x80 { break } } - m.SecureURL = bool(v != 0) default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -36604,7 +33327,7 @@ func (m *CredentialVerificationServiceInitFlow_Reply) Unmarshal(dAtA []byte) err } return nil } -func (m *CredentialVerificationServiceCompleteFlow) Unmarshal(dAtA []byte) error { +func (m *CredentialVerificationServiceInitFlow) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36627,10 +33350,10 @@ func (m *CredentialVerificationServiceCompleteFlow) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CredentialVerificationServiceCompleteFlow: wiretype end group for non-group") + return fmt.Errorf("proto: CredentialVerificationServiceInitFlow: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CredentialVerificationServiceCompleteFlow: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CredentialVerificationServiceInitFlow: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -36655,7 +33378,7 @@ func (m *CredentialVerificationServiceCompleteFlow) Unmarshal(dAtA []byte) error } return nil } -func (m *CredentialVerificationServiceCompleteFlow_Request) Unmarshal(dAtA []byte) error { +func (m *CredentialVerificationServiceInitFlow_Request) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36686,7 +33409,7 @@ func (m *CredentialVerificationServiceCompleteFlow_Request) Unmarshal(dAtA []byt switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CallbackURI", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ServiceURL", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36714,62 +33437,45 @@ func (m *CredentialVerificationServiceCompleteFlow_Request) Unmarshal(dAtA []byt if postIndex > l { return io.ErrUnexpectedEOF } - m.CallbackURI = string(dAtA[iNdEx:postIndex]) + m.ServiceURL = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PublicKey", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if byteLen < 0 { + return ErrInvalidLengthProtocoltypes } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CredentialVerificationServiceCompleteFlow_Reply) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.PublicKey = append(m.PublicKey[:0], dAtA[iNdEx:postIndex]...) + if m.PublicKey == nil { + m.PublicKey = []byte{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Identifier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Link", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36797,7 +33503,7 @@ func (m *CredentialVerificationServiceCompleteFlow_Reply) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.Identifier = string(dAtA[iNdEx:postIndex]) + m.Link = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -36821,58 +33527,7 @@ func (m *CredentialVerificationServiceCompleteFlow_Reply) Unmarshal(dAtA []byte) } return nil } -func (m *VerifiedCredentialsList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: VerifiedCredentialsList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: VerifiedCredentialsList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipProtocoltypes(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthProtocoltypes - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { +func (m *CredentialVerificationServiceInitFlow_Reply) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -36895,15 +33550,15 @@ func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") + return fmt.Errorf("proto: Reply: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FilterIdentifier", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -36931,13 +33586,13 @@ func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FilterIdentifier = string(dAtA[iNdEx:postIndex]) + m.URL = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FilterIssuer", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SecureURL", wireType) } - var stringLen uint64 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -36947,44 +33602,63 @@ func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes + m.SecureURL = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipProtocoltypes(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProtocoltypes } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.FilterIssuer = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExcludeExpired", wireType) + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CredentialVerificationServiceCompleteFlow) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if iNdEx >= l { + return io.ErrUnexpectedEOF } - m.ExcludeExpired = bool(v != 0) + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CredentialVerificationServiceCompleteFlow: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CredentialVerificationServiceCompleteFlow: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -37007,7 +33681,7 @@ func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { } return nil } -func (m *VerifiedCredentialsList_Reply) Unmarshal(dAtA []byte) error { +func (m *CredentialVerificationServiceCompleteFlow_Request) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37030,17 +33704,17 @@ func (m *VerifiedCredentialsList_Reply) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") + return fmt.Errorf("proto: Request: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Credential", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CallbackURI", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -37050,27 +33724,23 @@ func (m *VerifiedCredentialsList_Reply) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Credential == nil { - m.Credential = &AccountVerifiedCredentialRegistered{} - } - if err := m.Credential.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CallbackURI = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -37094,7 +33764,7 @@ func (m *VerifiedCredentialsList_Reply) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServicesTokenList) Unmarshal(dAtA []byte) error { +func (m *CredentialVerificationServiceCompleteFlow_Reply) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37117,12 +33787,44 @@ func (m *ServicesTokenList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ServicesTokenList: wiretype end group for non-group") + return fmt.Errorf("proto: Reply: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ServicesTokenList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Identifier", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Identifier = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -37145,7 +33847,7 @@ func (m *ServicesTokenList) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServicesTokenList_Request) Unmarshal(dAtA []byte) error { +func (m *VerifiedCredentialsList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37168,10 +33870,10 @@ func (m *ServicesTokenList_Request) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") + return fmt.Errorf("proto: VerifiedCredentialsList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: VerifiedCredentialsList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -37196,7 +33898,7 @@ func (m *ServicesTokenList_Request) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServicesTokenList_Reply) Unmarshal(dAtA []byte) error { +func (m *VerifiedCredentialsList_Request) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37219,15 +33921,15 @@ func (m *ServicesTokenList_Reply) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Reply: wiretype end group for non-group") + return fmt.Errorf("proto: Request: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenID", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FilterIdentifier", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -37255,13 +33957,13 @@ func (m *ServicesTokenList_Reply) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TokenID = string(dAtA[iNdEx:postIndex]) + m.FilterIdentifier = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FilterIssuer", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -37271,28 +33973,44 @@ func (m *ServicesTokenList_Reply) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Service == nil { - m.Service = &ServiceToken{} + m.FilterIssuer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExcludeExpired", wireType) } - if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - iNdEx = postIndex + m.ExcludeExpired = bool(v != 0) default: iNdEx = preIndex skippy, err := skipProtocoltypes(dAtA[iNdEx:]) @@ -37315,7 +34033,7 @@ func (m *ServicesTokenList_Reply) Unmarshal(dAtA []byte) error { } return nil } -func (m *ServicesTokenCode) Unmarshal(dAtA []byte) error { +func (m *VerifiedCredentialsList_Reply) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -37338,49 +34056,17 @@ func (m *ServicesTokenCode) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ServicesTokenCode: wiretype end group for non-group") + return fmt.Errorf("proto: Reply: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ServicesTokenCode: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Reply: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Services = append(m.Services, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CodeChallenge", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Credential", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -37390,55 +34076,27 @@ func (m *ServicesTokenCode) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.CodeChallenge = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowProtocoltypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthProtocoltypes - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthProtocoltypes + if m.Credential == nil { + m.Credential = &AccountVerifiedCredentialRegistered{} } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.Credential.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.TokenID = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -37544,7 +34202,41 @@ func (m *ReplicationServiceRegisterGroup_Request) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TokenID", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field GroupPK", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthProtocoltypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.GroupPK = append(m.GroupPK[:0], dAtA[iNdEx:postIndex]...) + if m.GroupPK == nil { + m.GroupPK = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -37572,13 +34264,13 @@ func (m *ReplicationServiceRegisterGroup_Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TokenID = string(dAtA[iNdEx:postIndex]) + m.Token = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupPK", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationURL", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowProtocoltypes @@ -37588,25 +34280,55 @@ func (m *ReplicationServiceRegisterGroup_Request) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthProtocoltypes } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthProtocoltypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.GroupPK = append(m.GroupPK[:0], dAtA[iNdEx:postIndex]...) - if m.GroupPK == nil { - m.GroupPK = []byte{} + m.AuthenticationURL = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReplicationServer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProtocoltypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProtocoltypes } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProtocoltypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReplicationServer = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/protocoltypes/protocoltypes.pb.gw.go b/pkg/protocoltypes/protocoltypes.pb.gw.go index 31eb40da..c6904618 100644 --- a/pkg/protocoltypes/protocoltypes.pb.gw.go +++ b/pkg/protocoltypes/protocoltypes.pb.gw.go @@ -1033,40 +1033,6 @@ func local_request_ProtocolService_DebugGroup_0(ctx context.Context, marshaler r } -func request_ProtocolService_DebugAuthServiceSetToken_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DebugAuthServiceSetToken_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.DebugAuthServiceSetToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProtocolService_DebugAuthServiceSetToken_0(ctx context.Context, marshaler runtime.Marshaler, server ProtocolServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DebugAuthServiceSetToken_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.DebugAuthServiceSetToken(ctx, &protoReq) - return msg, metadata, err - -} - func request_ProtocolService_SystemInfo_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq SystemInfo_Request var metadata runtime.ServerMetadata @@ -1101,74 +1067,6 @@ func local_request_ProtocolService_SystemInfo_0(ctx context.Context, marshaler r } -func request_ProtocolService_AuthServiceInitFlow_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuthServiceInitFlow_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AuthServiceInitFlow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProtocolService_AuthServiceInitFlow_0(ctx context.Context, marshaler runtime.Marshaler, server ProtocolServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuthServiceInitFlow_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AuthServiceInitFlow(ctx, &protoReq) - return msg, metadata, err - -} - -func request_ProtocolService_AuthServiceCompleteFlow_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuthServiceCompleteFlow_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.AuthServiceCompleteFlow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_ProtocolService_AuthServiceCompleteFlow_0(ctx context.Context, marshaler runtime.Marshaler, server ProtocolServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq AuthServiceCompleteFlow_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.AuthServiceCompleteFlow(ctx, &protoReq) - return msg, metadata, err - -} - func request_ProtocolService_CredentialVerificationServiceInitFlow_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CredentialVerificationServiceInitFlow_Request var metadata runtime.ServerMetadata @@ -1262,31 +1160,6 @@ func request_ProtocolService_VerifiedCredentialsList_0(ctx context.Context, mars } -func request_ProtocolService_ServicesTokenList_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (ProtocolService_ServicesTokenListClient, runtime.ServerMetadata, error) { - var protoReq ServicesTokenList_Request - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - stream, err := client.ServicesTokenList(ctx, &protoReq) - if err != nil { - return nil, metadata, err - } - header, err := stream.Header() - if err != nil { - return nil, metadata, err - } - metadata.HeaderMD = header - return stream, metadata, nil - -} - func request_ProtocolService_ReplicationServiceRegisterGroup_0(ctx context.Context, marshaler runtime.Marshaler, client ProtocolServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ReplicationServiceRegisterGroup_Request var metadata runtime.ServerMetadata @@ -2080,29 +1953,6 @@ func RegisterProtocolServiceHandlerServer(ctx context.Context, mux *runtime.Serv }) - mux.Handle("POST", pattern_ProtocolService_DebugAuthServiceSetToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProtocolService_DebugAuthServiceSetToken_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_DebugAuthServiceSetToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_ProtocolService_SystemInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2126,52 +1976,6 @@ func RegisterProtocolServiceHandlerServer(ctx context.Context, mux *runtime.Serv }) - mux.Handle("POST", pattern_ProtocolService_AuthServiceInitFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProtocolService_AuthServiceInitFlow_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_AuthServiceInitFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ProtocolService_AuthServiceCompleteFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_ProtocolService_AuthServiceCompleteFlow_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_AuthServiceCompleteFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_ProtocolService_CredentialVerificationServiceInitFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2225,13 +2029,6 @@ func RegisterProtocolServiceHandlerServer(ctx context.Context, mux *runtime.Serv return }) - mux.Handle("POST", pattern_ProtocolService_ServicesTokenList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - mux.Handle("POST", pattern_ProtocolService_ReplicationServiceRegisterGroup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3008,26 +2805,6 @@ func RegisterProtocolServiceHandlerClient(ctx context.Context, mux *runtime.Serv }) - mux.Handle("POST", pattern_ProtocolService_DebugAuthServiceSetToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_ProtocolService_DebugAuthServiceSetToken_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_DebugAuthServiceSetToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_ProtocolService_SystemInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3048,46 +2825,6 @@ func RegisterProtocolServiceHandlerClient(ctx context.Context, mux *runtime.Serv }) - mux.Handle("POST", pattern_ProtocolService_AuthServiceInitFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_ProtocolService_AuthServiceInitFlow_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_AuthServiceInitFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_ProtocolService_AuthServiceCompleteFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_ProtocolService_AuthServiceCompleteFlow_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_AuthServiceCompleteFlow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_ProtocolService_CredentialVerificationServiceInitFlow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3148,26 +2885,6 @@ func RegisterProtocolServiceHandlerClient(ctx context.Context, mux *runtime.Serv }) - mux.Handle("POST", pattern_ProtocolService_ServicesTokenList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_ProtocolService_ServicesTokenList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_ProtocolService_ServicesTokenList_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_ProtocolService_ReplicationServiceRegisterGroup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3334,22 +3051,14 @@ var ( pattern_ProtocolService_DebugGroup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "DebugGroup"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_DebugAuthServiceSetToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "DebugAuthServiceSetToken"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_SystemInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "SystemInfo"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_AuthServiceInitFlow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "AuthServiceInitFlow"}, "", runtime.AssumeColonVerbOpt(true))) - - pattern_ProtocolService_AuthServiceCompleteFlow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "AuthServiceCompleteFlow"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_CredentialVerificationServiceInitFlow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "CredentialVerificationServiceInitFlow"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ProtocolService_CredentialVerificationServiceCompleteFlow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "CredentialVerificationServiceCompleteFlow"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ProtocolService_VerifiedCredentialsList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "VerifiedCredentialsList"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_ServicesTokenList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "ServicesTokenList"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_ProtocolService_ReplicationServiceRegisterGroup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "ReplicationServiceRegisterGroup"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ProtocolService_PeerList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"weshnet.protocol.v1.ProtocolService", "PeerList"}, "", runtime.AssumeColonVerbOpt(true))) @@ -3424,22 +3133,14 @@ var ( forward_ProtocolService_DebugGroup_0 = runtime.ForwardResponseMessage - forward_ProtocolService_DebugAuthServiceSetToken_0 = runtime.ForwardResponseMessage - forward_ProtocolService_SystemInfo_0 = runtime.ForwardResponseMessage - forward_ProtocolService_AuthServiceInitFlow_0 = runtime.ForwardResponseMessage - - forward_ProtocolService_AuthServiceCompleteFlow_0 = runtime.ForwardResponseMessage - forward_ProtocolService_CredentialVerificationServiceInitFlow_0 = runtime.ForwardResponseMessage forward_ProtocolService_CredentialVerificationServiceCompleteFlow_0 = runtime.ForwardResponseMessage forward_ProtocolService_VerifiedCredentialsList_0 = runtime.ForwardResponseStream - forward_ProtocolService_ServicesTokenList_0 = runtime.ForwardResponseStream - forward_ProtocolService_ReplicationServiceRegisterGroup_0 = runtime.ForwardResponseMessage forward_ProtocolService_PeerList_0 = runtime.ForwardResponseMessage diff --git a/pkg/protocoltypes/protocoltypes_grpc.pb.go b/pkg/protocoltypes/protocoltypes_grpc.pb.go index c2179be5..dcf2ec4b 100644 --- a/pkg/protocoltypes/protocoltypes_grpc.pb.go +++ b/pkg/protocoltypes/protocoltypes_grpc.pb.go @@ -50,14 +50,10 @@ const ( ProtocolService_DebugListGroups_FullMethodName = "/weshnet.protocol.v1.ProtocolService/DebugListGroups" ProtocolService_DebugInspectGroupStore_FullMethodName = "/weshnet.protocol.v1.ProtocolService/DebugInspectGroupStore" ProtocolService_DebugGroup_FullMethodName = "/weshnet.protocol.v1.ProtocolService/DebugGroup" - ProtocolService_DebugAuthServiceSetToken_FullMethodName = "/weshnet.protocol.v1.ProtocolService/DebugAuthServiceSetToken" ProtocolService_SystemInfo_FullMethodName = "/weshnet.protocol.v1.ProtocolService/SystemInfo" - ProtocolService_AuthServiceInitFlow_FullMethodName = "/weshnet.protocol.v1.ProtocolService/AuthServiceInitFlow" - ProtocolService_AuthServiceCompleteFlow_FullMethodName = "/weshnet.protocol.v1.ProtocolService/AuthServiceCompleteFlow" ProtocolService_CredentialVerificationServiceInitFlow_FullMethodName = "/weshnet.protocol.v1.ProtocolService/CredentialVerificationServiceInitFlow" ProtocolService_CredentialVerificationServiceCompleteFlow_FullMethodName = "/weshnet.protocol.v1.ProtocolService/CredentialVerificationServiceCompleteFlow" ProtocolService_VerifiedCredentialsList_FullMethodName = "/weshnet.protocol.v1.ProtocolService/VerifiedCredentialsList" - ProtocolService_ServicesTokenList_FullMethodName = "/weshnet.protocol.v1.ProtocolService/ServicesTokenList" ProtocolService_ReplicationServiceRegisterGroup_FullMethodName = "/weshnet.protocol.v1.ProtocolService/ReplicationServiceRegisterGroup" ProtocolService_PeerList_FullMethodName = "/weshnet.protocol.v1.ProtocolService/PeerList" ProtocolService_OutOfStoreReceive_FullMethodName = "/weshnet.protocol.v1.ProtocolService/OutOfStoreReceive" @@ -130,20 +126,13 @@ type ProtocolServiceClient interface { DebugListGroups(ctx context.Context, in *DebugListGroups_Request, opts ...grpc.CallOption) (ProtocolService_DebugListGroupsClient, error) DebugInspectGroupStore(ctx context.Context, in *DebugInspectGroupStore_Request, opts ...grpc.CallOption) (ProtocolService_DebugInspectGroupStoreClient, error) DebugGroup(ctx context.Context, in *DebugGroup_Request, opts ...grpc.CallOption) (*DebugGroup_Reply, error) - DebugAuthServiceSetToken(ctx context.Context, in *DebugAuthServiceSetToken_Request, opts ...grpc.CallOption) (*DebugAuthServiceSetToken_Reply, error) SystemInfo(ctx context.Context, in *SystemInfo_Request, opts ...grpc.CallOption) (*SystemInfo_Reply, error) - // AuthServiceInitFlow Initialize an authentication flow - AuthServiceInitFlow(ctx context.Context, in *AuthServiceInitFlow_Request, opts ...grpc.CallOption) (*AuthServiceInitFlow_Reply, error) - // AuthServiceCompleteFlow Completes an authentication flow - AuthServiceCompleteFlow(ctx context.Context, in *AuthServiceCompleteFlow_Request, opts ...grpc.CallOption) (*AuthServiceCompleteFlow_Reply, error) // CredentialVerificationServiceInitFlow Initialize a credential verification flow CredentialVerificationServiceInitFlow(ctx context.Context, in *CredentialVerificationServiceInitFlow_Request, opts ...grpc.CallOption) (*CredentialVerificationServiceInitFlow_Reply, error) // CredentialVerificationServiceCompleteFlow Completes a credential verification flow CredentialVerificationServiceCompleteFlow(ctx context.Context, in *CredentialVerificationServiceCompleteFlow_Request, opts ...grpc.CallOption) (*CredentialVerificationServiceCompleteFlow_Reply, error) // VerifiedCredentialsList Retrieves the list of verified credentials VerifiedCredentialsList(ctx context.Context, in *VerifiedCredentialsList_Request, opts ...grpc.CallOption) (ProtocolService_VerifiedCredentialsListClient, error) - // ServicesTokenList Retrieves the list of services tokens - ServicesTokenList(ctx context.Context, in *ServicesTokenList_Request, opts ...grpc.CallOption) (ProtocolService_ServicesTokenListClient, error) // ReplicationServiceRegisterGroup Asks a replication service to distribute a group contents ReplicationServiceRegisterGroup(ctx context.Context, in *ReplicationServiceRegisterGroup_Request, opts ...grpc.CallOption) (*ReplicationServiceRegisterGroup_Reply, error) // PeerList returns a list of P2P peers @@ -581,15 +570,6 @@ func (c *protocolServiceClient) DebugGroup(ctx context.Context, in *DebugGroup_R return out, nil } -func (c *protocolServiceClient) DebugAuthServiceSetToken(ctx context.Context, in *DebugAuthServiceSetToken_Request, opts ...grpc.CallOption) (*DebugAuthServiceSetToken_Reply, error) { - out := new(DebugAuthServiceSetToken_Reply) - err := c.cc.Invoke(ctx, ProtocolService_DebugAuthServiceSetToken_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *protocolServiceClient) SystemInfo(ctx context.Context, in *SystemInfo_Request, opts ...grpc.CallOption) (*SystemInfo_Reply, error) { out := new(SystemInfo_Reply) err := c.cc.Invoke(ctx, ProtocolService_SystemInfo_FullMethodName, in, out, opts...) @@ -599,24 +579,6 @@ func (c *protocolServiceClient) SystemInfo(ctx context.Context, in *SystemInfo_R return out, nil } -func (c *protocolServiceClient) AuthServiceInitFlow(ctx context.Context, in *AuthServiceInitFlow_Request, opts ...grpc.CallOption) (*AuthServiceInitFlow_Reply, error) { - out := new(AuthServiceInitFlow_Reply) - err := c.cc.Invoke(ctx, ProtocolService_AuthServiceInitFlow_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *protocolServiceClient) AuthServiceCompleteFlow(ctx context.Context, in *AuthServiceCompleteFlow_Request, opts ...grpc.CallOption) (*AuthServiceCompleteFlow_Reply, error) { - out := new(AuthServiceCompleteFlow_Reply) - err := c.cc.Invoke(ctx, ProtocolService_AuthServiceCompleteFlow_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *protocolServiceClient) CredentialVerificationServiceInitFlow(ctx context.Context, in *CredentialVerificationServiceInitFlow_Request, opts ...grpc.CallOption) (*CredentialVerificationServiceInitFlow_Reply, error) { out := new(CredentialVerificationServiceInitFlow_Reply) err := c.cc.Invoke(ctx, ProtocolService_CredentialVerificationServiceInitFlow_FullMethodName, in, out, opts...) @@ -667,38 +629,6 @@ func (x *protocolServiceVerifiedCredentialsListClient) Recv() (*VerifiedCredenti return m, nil } -func (c *protocolServiceClient) ServicesTokenList(ctx context.Context, in *ServicesTokenList_Request, opts ...grpc.CallOption) (ProtocolService_ServicesTokenListClient, error) { - stream, err := c.cc.NewStream(ctx, &ProtocolService_ServiceDesc.Streams[7], ProtocolService_ServicesTokenList_FullMethodName, opts...) - if err != nil { - return nil, err - } - x := &protocolServiceServicesTokenListClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type ProtocolService_ServicesTokenListClient interface { - Recv() (*ServicesTokenList_Reply, error) - grpc.ClientStream -} - -type protocolServiceServicesTokenListClient struct { - grpc.ClientStream -} - -func (x *protocolServiceServicesTokenListClient) Recv() (*ServicesTokenList_Reply, error) { - m := new(ServicesTokenList_Reply) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - func (c *protocolServiceClient) ReplicationServiceRegisterGroup(ctx context.Context, in *ReplicationServiceRegisterGroup_Request, opts ...grpc.CallOption) (*ReplicationServiceRegisterGroup_Reply, error) { out := new(ReplicationServiceRegisterGroup_Reply) err := c.cc.Invoke(ctx, ProtocolService_ReplicationServiceRegisterGroup_FullMethodName, in, out, opts...) @@ -809,20 +739,13 @@ type ProtocolServiceServer interface { DebugListGroups(*DebugListGroups_Request, ProtocolService_DebugListGroupsServer) error DebugInspectGroupStore(*DebugInspectGroupStore_Request, ProtocolService_DebugInspectGroupStoreServer) error DebugGroup(context.Context, *DebugGroup_Request) (*DebugGroup_Reply, error) - DebugAuthServiceSetToken(context.Context, *DebugAuthServiceSetToken_Request) (*DebugAuthServiceSetToken_Reply, error) SystemInfo(context.Context, *SystemInfo_Request) (*SystemInfo_Reply, error) - // AuthServiceInitFlow Initialize an authentication flow - AuthServiceInitFlow(context.Context, *AuthServiceInitFlow_Request) (*AuthServiceInitFlow_Reply, error) - // AuthServiceCompleteFlow Completes an authentication flow - AuthServiceCompleteFlow(context.Context, *AuthServiceCompleteFlow_Request) (*AuthServiceCompleteFlow_Reply, error) // CredentialVerificationServiceInitFlow Initialize a credential verification flow CredentialVerificationServiceInitFlow(context.Context, *CredentialVerificationServiceInitFlow_Request) (*CredentialVerificationServiceInitFlow_Reply, error) // CredentialVerificationServiceCompleteFlow Completes a credential verification flow CredentialVerificationServiceCompleteFlow(context.Context, *CredentialVerificationServiceCompleteFlow_Request) (*CredentialVerificationServiceCompleteFlow_Reply, error) // VerifiedCredentialsList Retrieves the list of verified credentials VerifiedCredentialsList(*VerifiedCredentialsList_Request, ProtocolService_VerifiedCredentialsListServer) error - // ServicesTokenList Retrieves the list of services tokens - ServicesTokenList(*ServicesTokenList_Request, ProtocolService_ServicesTokenListServer) error // ReplicationServiceRegisterGroup Asks a replication service to distribute a group contents ReplicationServiceRegisterGroup(context.Context, *ReplicationServiceRegisterGroup_Request) (*ReplicationServiceRegisterGroup_Reply, error) // PeerList returns a list of P2P peers @@ -933,18 +856,9 @@ func (UnimplementedProtocolServiceServer) DebugInspectGroupStore(*DebugInspectGr func (UnimplementedProtocolServiceServer) DebugGroup(context.Context, *DebugGroup_Request) (*DebugGroup_Reply, error) { return nil, status.Errorf(codes.Unimplemented, "method DebugGroup not implemented") } -func (UnimplementedProtocolServiceServer) DebugAuthServiceSetToken(context.Context, *DebugAuthServiceSetToken_Request) (*DebugAuthServiceSetToken_Reply, error) { - return nil, status.Errorf(codes.Unimplemented, "method DebugAuthServiceSetToken not implemented") -} func (UnimplementedProtocolServiceServer) SystemInfo(context.Context, *SystemInfo_Request) (*SystemInfo_Reply, error) { return nil, status.Errorf(codes.Unimplemented, "method SystemInfo not implemented") } -func (UnimplementedProtocolServiceServer) AuthServiceInitFlow(context.Context, *AuthServiceInitFlow_Request) (*AuthServiceInitFlow_Reply, error) { - return nil, status.Errorf(codes.Unimplemented, "method AuthServiceInitFlow not implemented") -} -func (UnimplementedProtocolServiceServer) AuthServiceCompleteFlow(context.Context, *AuthServiceCompleteFlow_Request) (*AuthServiceCompleteFlow_Reply, error) { - return nil, status.Errorf(codes.Unimplemented, "method AuthServiceCompleteFlow not implemented") -} func (UnimplementedProtocolServiceServer) CredentialVerificationServiceInitFlow(context.Context, *CredentialVerificationServiceInitFlow_Request) (*CredentialVerificationServiceInitFlow_Reply, error) { return nil, status.Errorf(codes.Unimplemented, "method CredentialVerificationServiceInitFlow not implemented") } @@ -954,9 +868,6 @@ func (UnimplementedProtocolServiceServer) CredentialVerificationServiceCompleteF func (UnimplementedProtocolServiceServer) VerifiedCredentialsList(*VerifiedCredentialsList_Request, ProtocolService_VerifiedCredentialsListServer) error { return status.Errorf(codes.Unimplemented, "method VerifiedCredentialsList not implemented") } -func (UnimplementedProtocolServiceServer) ServicesTokenList(*ServicesTokenList_Request, ProtocolService_ServicesTokenListServer) error { - return status.Errorf(codes.Unimplemented, "method ServicesTokenList not implemented") -} func (UnimplementedProtocolServiceServer) ReplicationServiceRegisterGroup(context.Context, *ReplicationServiceRegisterGroup_Request) (*ReplicationServiceRegisterGroup_Reply, error) { return nil, status.Errorf(codes.Unimplemented, "method ReplicationServiceRegisterGroup not implemented") } @@ -1561,24 +1472,6 @@ func _ProtocolService_DebugGroup_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _ProtocolService_DebugAuthServiceSetToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DebugAuthServiceSetToken_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProtocolServiceServer).DebugAuthServiceSetToken(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProtocolService_DebugAuthServiceSetToken_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProtocolServiceServer).DebugAuthServiceSetToken(ctx, req.(*DebugAuthServiceSetToken_Request)) - } - return interceptor(ctx, in, info, handler) -} - func _ProtocolService_SystemInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SystemInfo_Request) if err := dec(in); err != nil { @@ -1597,42 +1490,6 @@ func _ProtocolService_SystemInfo_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _ProtocolService_AuthServiceInitFlow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AuthServiceInitFlow_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProtocolServiceServer).AuthServiceInitFlow(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProtocolService_AuthServiceInitFlow_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProtocolServiceServer).AuthServiceInitFlow(ctx, req.(*AuthServiceInitFlow_Request)) - } - return interceptor(ctx, in, info, handler) -} - -func _ProtocolService_AuthServiceCompleteFlow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AuthServiceCompleteFlow_Request) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ProtocolServiceServer).AuthServiceCompleteFlow(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: ProtocolService_AuthServiceCompleteFlow_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProtocolServiceServer).AuthServiceCompleteFlow(ctx, req.(*AuthServiceCompleteFlow_Request)) - } - return interceptor(ctx, in, info, handler) -} - func _ProtocolService_CredentialVerificationServiceInitFlow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CredentialVerificationServiceInitFlow_Request) if err := dec(in); err != nil { @@ -1690,27 +1547,6 @@ func (x *protocolServiceVerifiedCredentialsListServer) Send(m *VerifiedCredentia return x.ServerStream.SendMsg(m) } -func _ProtocolService_ServicesTokenList_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(ServicesTokenList_Request) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(ProtocolServiceServer).ServicesTokenList(m, &protocolServiceServicesTokenListServer{stream}) -} - -type ProtocolService_ServicesTokenListServer interface { - Send(*ServicesTokenList_Reply) error - grpc.ServerStream -} - -type protocolServiceServicesTokenListServer struct { - grpc.ServerStream -} - -func (x *protocolServiceServicesTokenListServer) Send(m *ServicesTokenList_Reply) error { - return x.ServerStream.SendMsg(m) -} - func _ProtocolService_ReplicationServiceRegisterGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ReplicationServiceRegisterGroup_Request) if err := dec(in); err != nil { @@ -1908,22 +1744,10 @@ var ProtocolService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DebugGroup", Handler: _ProtocolService_DebugGroup_Handler, }, - { - MethodName: "DebugAuthServiceSetToken", - Handler: _ProtocolService_DebugAuthServiceSetToken_Handler, - }, { MethodName: "SystemInfo", Handler: _ProtocolService_SystemInfo_Handler, }, - { - MethodName: "AuthServiceInitFlow", - Handler: _ProtocolService_AuthServiceInitFlow_Handler, - }, - { - MethodName: "AuthServiceCompleteFlow", - Handler: _ProtocolService_AuthServiceCompleteFlow_Handler, - }, { MethodName: "CredentialVerificationServiceInitFlow", Handler: _ProtocolService_CredentialVerificationServiceInitFlow_Handler, @@ -1989,11 +1813,6 @@ var ProtocolService_ServiceDesc = grpc.ServiceDesc{ Handler: _ProtocolService_VerifiedCredentialsList_Handler, ServerStreams: true, }, - { - StreamName: "ServicesTokenList", - Handler: _ProtocolService_ServicesTokenList_Handler, - ServerStreams: true, - }, }, Metadata: "protocoltypes.proto", } diff --git a/service.go b/service.go index 0307b563..0b98a2f2 100644 --- a/service.go +++ b/service.go @@ -7,7 +7,6 @@ import ( mrand "math/rand" "path/filepath" "sync" - "sync/atomic" "time" "unsafe" @@ -65,7 +64,6 @@ type service struct { accountGroupCtx *GroupContext openedGroups map[string]*GroupContext lock sync.RWMutex - authSession atomic.Value close func() error startedAt time.Time host host.Host diff --git a/services_auth_test.go b/services_auth_test.go deleted file mode 100644 index e55a257b..00000000 --- a/services_auth_test.go +++ /dev/null @@ -1,61 +0,0 @@ -package weshnet - -import ( - "net/url" - "testing" - - "github.com/stretchr/testify/require" - - "berty.tech/weshnet/pkg/authtypes" - "berty.tech/weshnet/pkg/bertyauth" -) - -func TestServiceAuthServiceInitFlow(t *testing.T) { - s := service{} - - untypedAS := s.authSession.Load() - require.Nil(t, untypedAS) - - redirectURL, err := s.authInitURL("") - require.Error(t, err) - require.Empty(t, redirectURL) - - redirectURL, err = s.authInitURL("rubbish://") - require.Error(t, err) - require.Empty(t, redirectURL) - - redirectURL, err = s.authInitURL("http://") - require.Error(t, err) - require.Empty(t, redirectURL) - - redirectURL, err = s.authInitURL("http://localhost") - require.NoError(t, err) - require.NotEmpty(t, redirectURL) - - redirectURL, err = s.authInitURL("https://localhost/") - require.NoError(t, err) - require.NotEmpty(t, redirectURL) - - untypedAS = s.authSession.Load() - require.Equal(t, "https://localhost", untypedAS.(*bertyauth.AuthSession).BaseURL) - codeVerifier := untypedAS.(*bertyauth.AuthSession).CodeVerifier - state := untypedAS.(*bertyauth.AuthSession).State - - parsedURL, err := url.Parse(redirectURL) - require.NoError(t, err) - require.Equal(t, authtypes.AuthHTTPPathAuthorize, parsedURL.EscapedPath()) - require.Equal(t, authtypes.AuthResponseType, parsedURL.Query().Get("response_type")) - require.Equal(t, authtypes.AuthClientID, parsedURL.Query().Get("client_id")) - require.Equal(t, authtypes.AuthRedirect, parsedURL.Query().Get("redirect_uri")) - require.Equal(t, state, parsedURL.Query().Get("state")) - require.Equal(t, bertyauth.AuthSessionCodeChallenge(codeVerifier), parsedURL.Query().Get("code_challenge")) - require.Equal(t, authtypes.AuthCodeChallengeMethod, parsedURL.Query().Get("code_challenge_method")) - - redirectURL2, err := s.authInitURL("http://localhost/") - require.NoError(t, err) - require.NotEmpty(t, redirectURL2) - require.NotEqual(t, redirectURL, redirectURL2) - - require.NotEqual(t, state, s.authSession.Load().(*bertyauth.AuthSession).State) - require.NotEqual(t, codeVerifier, s.authSession.Load().(*bertyauth.AuthSession).CodeVerifier) -} diff --git a/store_metadata.go b/store_metadata.go index 172d998b..8d15337c 100644 --- a/store_metadata.go +++ b/store_metadata.go @@ -773,44 +773,6 @@ func (m *MetadataStore) SendAppMetadata(ctx context.Context, message []byte) (op }, protocoltypes.EventTypeGroupMetadataPayloadSent) } -func (m *MetadataStore) SendAccountServiceTokenAdded(ctx context.Context, token *protocoltypes.ServiceToken) (operation.Operation, error) { - if !m.typeChecker(isAccountGroup) { - return nil, errcode.ErrGroupInvalidType - } - - m.Index().(*metadataStoreIndex).lock.RLock() - _, ok := m.Index().(*metadataStoreIndex).serviceTokens[token.TokenID()] - m.Index().(*metadataStoreIndex).lock.RUnlock() - - if ok { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("token has already been registered")) - } - - return m.attributeSignAndAddEvent(ctx, &protocoltypes.AccountServiceTokenAdded{ - ServiceToken: token, - }, protocoltypes.EventTypeAccountServiceTokenAdded) -} - -func (m *MetadataStore) SendAccountServiceTokenRemoved(ctx context.Context, tokenID string) (operation.Operation, error) { - if !m.typeChecker(isAccountGroup) { - return nil, errcode.ErrGroupInvalidType - } - - m.Index().(*metadataStoreIndex).lock.RLock() - val, ok := m.Index().(*metadataStoreIndex).serviceTokens[tokenID] - m.Index().(*metadataStoreIndex).lock.RUnlock() - - if !ok { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("token not registered")) - } else if val == nil { - return nil, errcode.ErrInvalidInput.Wrap(fmt.Errorf("token already removed")) - } - - return m.attributeSignAndAddEvent(ctx, &protocoltypes.AccountServiceTokenRemoved{ - TokenID: tokenID, - }, protocoltypes.EventTypeAccountServiceTokenRemoved) -} - func (m *MetadataStore) SendAccountVerifiedCredentialAdded(ctx context.Context, token *protocoltypes.AccountVerifiedCredentialRegistered) (operation.Operation, error) { if !m.typeChecker(isAccountGroup) { return nil, errcode.ErrGroupInvalidType @@ -819,10 +781,10 @@ func (m *MetadataStore) SendAccountVerifiedCredentialAdded(ctx context.Context, return m.attributeSignAndAddEvent(ctx, token, protocoltypes.EventTypeAccountVerifiedCredentialRegistered) } -func (m *MetadataStore) SendGroupReplicating(ctx context.Context, t *protocoltypes.ServiceToken, endpoint string) (operation.Operation, error) { +func (m *MetadataStore) SendGroupReplicating(ctx context.Context, authenticationURL, replicationServer string) (operation.Operation, error) { return m.attributeSignAndAddEvent(ctx, &protocoltypes.GroupReplicating{ - AuthenticationURL: t.AuthenticationURL, - ReplicationServer: endpoint, + AuthenticationURL: authenticationURL, + ReplicationServer: replicationServer, }, protocoltypes.EventTypeGroupReplicating) } @@ -924,22 +886,6 @@ func (m *MetadataStore) checkContactStatus(pk crypto.PubKey, states ...protocolt return false } -func (m *MetadataStore) listServiceTokens() []*protocoltypes.ServiceToken { - return m.Index().(*metadataStoreIndex).listServiceTokens() -} - -func (m *MetadataStore) getServiceToken(tokenID string) (*protocoltypes.ServiceToken, error) { - m.Index().(*metadataStoreIndex).lock.RLock() - defer m.Index().(*metadataStoreIndex).lock.RUnlock() - - token, ok := m.Index().(*metadataStoreIndex).serviceTokens[tokenID] - if !ok { - return nil, errcode.ErrServicesAuthUnknownToken - } - - return token, nil -} - type EventMetadataReceived struct { MetaEvent *protocoltypes.GroupMetadataEvent Event proto.Message diff --git a/store_metadata_index.go b/store_metadata_index.go index 51f74e4d..5cf79237 100644 --- a/store_metadata_index.go +++ b/store_metadata_index.go @@ -27,7 +27,6 @@ type metadataStoreIndex struct { contacts map[string]*AccountContact contactsFromGroupPK map[string]*AccountContact groups map[string]*accountGroup - serviceTokens map[string]*protocoltypes.ServiceToken contactRequestMetadata map[string][]byte verifiedCredentials []*protocoltypes.AccountVerifiedCredentialRegistered contactRequestSeed []byte @@ -67,7 +66,6 @@ func (m *metadataStoreIndex) UpdateIndex(log ipfslog.Log, _ []ipfslog.Entry) err m.contacts = map[string]*AccountContact{} m.contactsFromGroupPK = map[string]*AccountContact{} m.groups = map[string]*accountGroup{} - m.serviceTokens = map[string]*protocoltypes.ServiceToken{} m.contactRequestMetadata = map[string][]byte{} m.contactRequestEnabled = nil m.contactRequestSeed = []byte(nil) @@ -623,49 +621,6 @@ func (m *metadataStoreIndex) handleContactAliasKeyAdded(event proto.Message) err return nil } -func (m *metadataStoreIndex) listServiceTokens() []*protocoltypes.ServiceToken { - m.lock.RLock() - defer m.lock.RUnlock() - - ret := []*protocoltypes.ServiceToken(nil) - - for _, t := range m.serviceTokens { - if t == nil { - continue - } - - ret = append(ret, t) - } - - return ret -} - -func (m *metadataStoreIndex) handleAccountServiceTokenAdded(event proto.Message) error { - evt, ok := event.(*protocoltypes.AccountServiceTokenAdded) - if !ok { - return errcode.ErrInvalidInput - } - - if _, ok := m.serviceTokens[evt.ServiceToken.TokenID()]; ok { - return nil - } - - m.serviceTokens[evt.ServiceToken.TokenID()] = evt.ServiceToken - - return nil -} - -func (m *metadataStoreIndex) handleAccountServiceTokenRemoved(event proto.Message) error { - evt, ok := event.(*protocoltypes.AccountServiceTokenRemoved) - if !ok { - return errcode.ErrInvalidInput - } - - m.serviceTokens[evt.TokenID] = nil - - return nil -} - func (m *metadataStoreIndex) handleMultiMemberInitialMember(event proto.Message) error { e, ok := event.(*protocoltypes.MultiMemberGroupInitialMemberAnnounced) if !ok { @@ -818,7 +773,6 @@ func newMetadataIndex(ctx context.Context, g *protocoltypes.Group, md secretstor contacts: map[string]*AccountContact{}, contactsFromGroupPK: map[string]*AccountContact{}, groups: map[string]*accountGroup{}, - serviceTokens: map[string]*protocoltypes.ServiceToken{}, contactRequestMetadata: map[string][]byte{}, group: g, ownMemberDevice: md, @@ -845,8 +799,6 @@ func newMetadataIndex(ctx context.Context, g *protocoltypes.Group, md secretstor protocoltypes.EventTypeGroupMemberDeviceAdded: {m.handleGroupMemberDeviceAdded}, protocoltypes.EventTypeMultiMemberGroupAdminRoleGranted: {m.handleMultiMemberGrantAdminRole}, protocoltypes.EventTypeMultiMemberGroupInitialMemberAnnounced: {m.handleMultiMemberInitialMember}, - protocoltypes.EventTypeAccountServiceTokenAdded: {m.handleAccountServiceTokenAdded}, - protocoltypes.EventTypeAccountServiceTokenRemoved: {m.handleAccountServiceTokenRemoved}, protocoltypes.EventTypeGroupMetadataPayloadSent: {m.handleGroupMetadataPayloadSent}, protocoltypes.EventTypeAccountVerifiedCredentialRegistered: {m.handleAccountVerifiedCredentialRegistered}, } From 827c8ea4d478dd9c7521d6b1a54055c9d3d78114 Mon Sep 17 00:00:00 2001 From: D4ryl00 Date: Thu, 29 Jun 2023 16:37:09 +0200 Subject: [PATCH 4/4] feat: add a build tag for proximity drivers Signed-off-by: D4ryl00 --- pkg/androidnearby/bridge_android.go | 4 +- pkg/androidnearby/bridge_unsupported.go | 4 +- pkg/ble-driver/BertyDevice_darwin.m | 230 +++++++++--------- pkg/ble-driver/BleInterface_darwin.m | 12 +- pkg/ble-driver/BleManager_darwin.m | 176 +++++++------- pkg/ble-driver/BleQueue.m | 24 +- pkg/ble-driver/CircularQueue.m | 18 +- pkg/ble-driver/ConnectedPeer.m | 2 +- pkg/ble-driver/CountDownLatch_darwin.m | 2 +- pkg/ble-driver/Logger.m | 18 +- pkg/ble-driver/PeerManager.m | 40 +-- pkg/ble-driver/TaskDelay.m | 4 +- pkg/ble-driver/WriteDataCache.m | 8 +- pkg/ble-driver/bridge_android.go | 4 +- pkg/ble-driver/bridge_darwin.go | 4 +- pkg/ble-driver/bridge_unsupported.go | 4 +- .../bridge_darwin.go | 4 +- .../bridge_unsupported.go | 4 +- .../driver/Logger.m | 18 +- .../driver/MCManager.m | 26 +- .../driver/cgo_bridge.go | 4 +- .../driver/mc-driver.m | 4 +- 22 files changed, 307 insertions(+), 307 deletions(-) diff --git a/pkg/androidnearby/bridge_android.go b/pkg/androidnearby/bridge_android.go index 0f07576c..8687ca2c 100644 --- a/pkg/androidnearby/bridge_android.go +++ b/pkg/androidnearby/bridge_android.go @@ -1,5 +1,5 @@ -//go:build android -// +build android +//go:build android && !noproximitytransport +// +build android,!noproximitytransport package androidnearby diff --git a/pkg/androidnearby/bridge_unsupported.go b/pkg/androidnearby/bridge_unsupported.go index 6689ba32..6092f63f 100644 --- a/pkg/androidnearby/bridge_unsupported.go +++ b/pkg/androidnearby/bridge_unsupported.go @@ -1,5 +1,5 @@ -//go:build !android -// +build !android +//go:build !android || noproximitytransport +// +build !android noproximitytransport package androidnearby diff --git a/pkg/ble-driver/BertyDevice_darwin.m b/pkg/ble-driver/BertyDevice_darwin.m index 3e006bf7..c6d4e8b7 100644 --- a/pkg/ble-driver/BertyDevice_darwin.m +++ b/pkg/ble-driver/BertyDevice_darwin.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // BertyDevice.m // ble @@ -19,7 +19,7 @@ CBService *getService(NSArray *services, NSString *uuid) { CBService *result = nil; - + for (CBService *service in services) { if ([service.UUID.UUIDString containsString:uuid] != NSNotFound) { result = service; @@ -33,59 +33,59 @@ @implementation BertyDevice - (instancetype)initWithPeripheral:(CBPeripheral *)peripheral logger:(Logger *__nonnull)logger central:(BleManager *)manager withName:(NSString *__nonnull)name { self = [self initWithIdentifier:[peripheral.identifier UUIDString] logger:logger central:manager asClient:TRUE]; - + if (self) { _peripheral = [peripheral retain]; _name = name; } - + return self; } - (instancetype)initWithIdentifier:(NSString *)identifier logger:(Logger *__nonnull)logger central:(BleManager *)manager asClient:(BOOL)client{ self = [super init]; - + if (self) { if (client) { _clientSideIdentifier = [identifier retain]; } else { _serverSideIdentifier = [identifier retain]; } - + _logger = [logger retain]; _peripheral = nil; _manager = manager; _remotePeerID = nil; _psm = 0; - + _connectionQ = [[BleQueue alloc] init: dispatch_get_main_queue() logger:logger]; _writeQ = [[BleQueue alloc] init: dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) logger:logger]; _readQ = [[BleQueue alloc] init: dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) logger:logger]; - + BOOL (^peerIDHandler)(NSData *data) = ^BOOL(NSData *data) { return [self handlePeerID:data]; }; - + BOOL (^writeHandler)(NSData *data) = ^BOOL(NSData *data) { return [self handleIncomingData:data]; }; - + _characteristicHandlers = [@{ [BleManager.writerUUID UUIDString]: [[writeHandler copy] autorelease], [BleManager.peerUUID UUIDString]: [[peerIDHandler copy] autorelease], } retain]; - + _characteristicData = [@{ [BleManager.writerUUID UUIDString]: [NSMutableData data], [BleManager.peerUUID UUIDString]: [NSMutableData data], } retain]; - + // put inside incoming message arrived before handsake is completed _dataCache = [[CircularQueue alloc] initWithCapacity:10]; - + _writerLatch = [[NSObject alloc] init]; } - + return self; } @@ -103,7 +103,7 @@ - (void)dealloc { [_characteristicData release]; [_dataCache release]; [_writerLatch release]; - + [super dealloc]; } @@ -111,13 +111,13 @@ - (NSString *__nonnull)getIdentifier { if (self.clientSideIdentifier != nil) { return self.clientSideIdentifier; } - + return self.serverSideIdentifier; } - (void)closeL2cap { [self.logger d:@"closeL2cap: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (self.l2capChannel != nil) { [self.l2capChannel.inputStream close]; [self.l2capChannel.outputStream close]; @@ -133,14 +133,14 @@ - (void)closeL2cap { - (void)closeBertyDevice { @synchronized (self) { [self.logger d:@"closeBertyDevice: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (!self.isDisconnecting) { self.isDisconnecting = TRUE; - + [self.connectionQ clear]; [self.writeQ clear]; [self.readQ clear]; - + [self closeL2cap]; if (self.peer != nil) { [self.manager.peerManager unregisterDevice:self]; @@ -158,16 +158,16 @@ - (BOOL)handlePeerID:(NSData *__nonnull)peerIDData { [self.logger e:@"handlePeerID: device=%@: peer already connected", [self.logger SensitiveNSObject:[self getIdentifier]]]; return FALSE; } - + NSMutableData *tmpData = [self.characteristicData objectForKey:[BleManager.peerUUID UUIDString]]; - + if ([peerIDData isEqual:[EOD dataUsingEncoding:NSUTF8StringEncoding]]) { // adding 0 byte unsigned char zeroByte = 0; @synchronized (tmpData) { [tmpData appendBytes:&zeroByte length:1]; } - + NSString *remotePeerID = [NSString stringWithUTF8String:[tmpData bytes]]; // reset tmpData [tmpData setLength:0]; @@ -198,7 +198,7 @@ - (BOOL)handleIncomingData:(NSData *__nonnull)data { if ([self.logger showSensitiveData]) { [BleManager printLongLog:[BleManager NSDataToHex:data]]; } - + if (self.l2capClientHandshakeRunning) { [self.l2capHandshakeRecvData appendBytes:data length:[data length]]; if ([self.l2capHandshakeRecvData length] < L2CAP_HANDSHAKE_DATA) { @@ -221,14 +221,14 @@ - (BOOL)handleIncomingData:(NSData *__nonnull)data { } else if (self.l2capServerHandshakeRunning) { if (!self.l2capHandshakeStepStatus) { [self.logger d:@"handleIncomingData: device=%@: server handshake received payload, going to write it back", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + // the server side needs to know when it receives all 1st step data, so it must count data len self.l2capHandshakeRecvDataLen += [data length]; if (self.l2capHandshakeRecvDataLen == L2CAP_HANDSHAKE_DATA) { self.l2capHandshakeStepStatus = TRUE; self.l2capHandshakeRecvDataLen = 0; } - + if (![self l2capWrite:data]) { [self.logger e:@"handleIncomingData: device=%@: server handshake write error", [self.logger SensitiveNSObject:[self getIdentifier]]]; self.l2capServerHandshakeRunning = FALSE; @@ -246,12 +246,12 @@ - (BOOL)handleIncomingData:(NSData *__nonnull)data { [self.logger e:@"handleIncomingData: device=%@: peer not existing", [self.logger SensitiveNSObject:[self getIdentifier]]]; return [self putIncomingDataInCache:data]; } - + if (![self.peer isConnected]) { [self.logger d:@"handleIncomingData: device=%@: peer not connected, put data in cache", [self.logger SensitiveNSObject:[self getIdentifier]]]; return [self putIncomingDataInCache:data]; } - + [self.readQ add:^{ BLEBridgeReceiveFromPeer(self.remotePeerID, data); [self.readQ completedTask:nil]; @@ -266,14 +266,14 @@ - (void)handshake { [self.manager disconnect:self]; return ; } - + if (![self readToCharacteristic:self.peerIDCharacteristic]) { [self.manager disconnect:self]; return ; } - + [self negotiateL2cap]; - + if (![self setNotifyValue]) { [self.manager disconnect:self]; } @@ -288,10 +288,10 @@ - (BOOL)setNotifyValue { [self.peripheral setNotifyValue:TRUE forCharacteristic:self.writerCharacteristic]; } } withCallback:nil withDelay:0]; - + return TRUE; } - + return FALSE; } @@ -301,19 +301,19 @@ - (void)peripheral:(CBPeripheral *)peripheral didModifyServices:(NSArray [self.peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse] ? [self.peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse] : self.remainingData.length; - + result = [NSData dataWithBytes:[self.remainingData bytes] length:chunckSize]; - + if (self.remainingData.length <= chunckSize) { self.remainingData = nil; } else { @@ -357,7 +357,7 @@ - (NSData *)getDataToSend { initWithBytes:[self.remainingData bytes] + chunckSize length:[self.remainingData length] - chunckSize]; } - + return result; } @@ -367,16 +367,16 @@ - (BOOL)writeToCharacteristic:(NSData *)data forCharacteristic:(CBCharacteristic if ([self.logger showSensitiveData]) { [BleManager printLongLog:[BleManager NSDataToHex:data]]; } - + __block BOOL success = FALSE; NSData *toSend = nil; self.remainingData = data; - + while (self.remainingData.length > 0) { if (self.peripheral != nil && self.peripheral.state == CBPeripheralStateConnected) { toSend = [[self getDataToSend] retain]; CountDownLatch *countDownLatch = [[CountDownLatch alloc] initCount:1]; - + [self.logger d:@"writeToCharacteristic: device=%@: going to write payload=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [self.logger SensitiveNSObject:[toSend base64EncodedStringWithOptions:0]]]; [self.writeQ add:^{ if (self.peripheral == nil || self.peripheral.state != CBPeripheralStateConnected) { @@ -385,7 +385,7 @@ - (BOOL)writeToCharacteristic:(NSData *)data forCharacteristic:(CBCharacteristic [countDownLatch countDown]; return ; } - + [self.logger d:@"writeToCharacteristic: device=%@: writing base64=%@ data=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [self.logger SensitiveNSObject:[toSend base64EncodedStringWithOptions:0]], [self.logger SensitiveNSObject:[BleManager NSDataToHex:toSend]]]; [self.peripheral writeValue:toSend forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse]; } withCallback:^(NSError *error){ @@ -393,12 +393,12 @@ - (BOOL)writeToCharacteristic:(NSData *)data forCharacteristic:(CBCharacteristic success = error == nil ? TRUE : FALSE; [countDownLatch countDown]; } withDelay:0]; - + [countDownLatch await]; [countDownLatch release]; - + [toSend release]; - + // don't write EOD is error occured if (!success) { [self.logger e:@"writeToCharacteristic error: device=%@: cancellation of the following writes", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -409,10 +409,10 @@ - (BOOL)writeToCharacteristic:(NSData *)data forCharacteristic:(CBCharacteristic return FALSE; } } - + if (eod) { dispatch_semaphore_t sema = dispatch_semaphore_create(0); - + [self.logger d:@"writeToCharacteristic: device=%@ going to write EOD", [self.logger SensitiveNSObject:[self getIdentifier]]]; [self.writeQ add:^{ [self.logger d:@"writeToCharacteristic: device=%@ writing EOD", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -422,36 +422,36 @@ - (BOOL)writeToCharacteristic:(NSData *)data forCharacteristic:(CBCharacteristic success = error == nil ? 1 : 0; dispatch_semaphore_signal(sema); } withDelay:0]; - + dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); } - + return success; } } - (BOOL)readToCharacteristic:(CBCharacteristic *) characteristic { [self.logger d:@"readToCharacteristic called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (self.peripheral == nil || self.peripheral.state != CBPeripheralStateConnected) { [self.logger e:@"readToCharacteristic error: device=%@ is not connected", [self.logger SensitiveNSObject:[self getIdentifier]]]; return FALSE; } - + __block BOOL success = FALSE; CountDownLatch *countDownLatch = [[CountDownLatch alloc] initCount:1]; - + [self.writeQ add:^{ [self.logger d:@"readToCharacteristic: device=%@: in queue", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (self.peripheral == nil || self.peripheral.state != CBPeripheralStateConnected) { [self.logger e:@"readToCharacteristic: device=%@ is not connected", [self.logger SensitiveNSObject:[self getIdentifier]]]; success = FALSE; [countDownLatch countDown]; return ; } - + [self.peripheral readValueForCharacteristic:characteristic]; } withCallback:^(NSError *error){ if (error == nil) { @@ -463,22 +463,22 @@ - (BOOL)readToCharacteristic:(CBCharacteristic *) characteristic { } [countDownLatch countDown]; } withDelay:0]; - + [countDownLatch await]; [countDownLatch release]; - + return success; } - (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { [self.writeQ completedTask:error]; - + if (error) { [self.logger e:@"didUpdateNotificationStateForCharacteristic error: device=%@ characteristic=%@ error=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [characteristic.UUID UUIDString], error]; [self.manager disconnect:self]; return; } - + self.peer = [self.manager.peerManager registerDevice:self withPeerID:self.remotePeerID isClient:TRUE]; if (self.peer == nil) { [self.logger e:@"didUpdateNotificationStateForCharacteristic error: device=%@: registerDevice failed", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -491,25 +491,25 @@ - (void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForChara // Called when the value of the characteristic changed, whether by readValueForCharacteristic: or by a notification after a subscription - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(nullable NSError *)error { [self.logger d:@"didUpdateValueForCharacteristic called: device=%@ characteristic=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [characteristic.UUID UUIDString]]; - + if (error) { [self.logger e:@"didUpdateValueForCharacteristic error: device=%@ error=%@", [self.logger SensitiveNSObject:[self getIdentifier]], error]; [self.manager disconnect:self]; [self.writeQ completedTask:error]; return; } - + if ([characteristic.UUID isEqual:self.manager.peerUUID]) { if (characteristic.value != nil) { int psm; [[characteristic.value subdataWithRange:NSMakeRange(0, 4)] getBytes:&psm length:sizeof(psm)]; self.psm = NSSwapBigIntToHost(psm); NSString* remotePeerID = [NSString stringWithUTF8String: [[characteristic.value subdataWithRange:NSMakeRange(4, characteristic.value.length - 4)] bytes]]; - + [self.logger d:@"didUpdateValueForCharacteristic: device=%@ PSM=%d remotePID=%@", [self.logger SensitiveNSObject:[self getIdentifier]], self.psm, [self.logger SensitiveNSObject:remotePeerID]]; - + self.remotePeerID = remotePeerID; - + [self.writeQ completedTask:nil]; } else { [self.logger e:@"didUpdateValueForCharacteristic error: device=%@: characteristic doesn't have any value", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -524,11 +524,11 @@ - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(C - (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { [self.logger d:@"didWriteValueForCharacteristic called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (error) { [self.logger e:@"didWriteValueForCharacteristic error: device=%@ characteristic=%@ error=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [characteristic.UUID UUIDString], error]; } - + [self.writeQ completedTask:error]; } @@ -540,7 +540,7 @@ - (void)discoverCharacteristics:(nullable NSArray *)characteristics forService:( [self.manager disconnect:self]; return ; } - + [self.connectionQ add:^{ [self.peripheral discoverCharacteristics:characteristics forService:service]; } withCallback:nil withDelay:0]; @@ -548,15 +548,15 @@ - (void)discoverCharacteristics:(nullable NSArray *)characteristics forService:( - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { [self.logger d:@"didDiscoverCharacteristicsForService called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + [self.connectionQ completedTask:error]; - + if (error) { [self.logger e:@"didDiscoverCharacteristicsForService error: device=%@ error=%@", [self.logger SensitiveNSObject:[self getIdentifier]], error]; [self.manager disconnect:self]; return; } - + for (CBCharacteristic *chr in service.characteristics) { if ([chr.UUID isEqual:self.manager.peerUUID]) { self.peerIDCharacteristic = chr; @@ -566,13 +566,13 @@ - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForServi [self.logger d:@"didDiscoverCharacteristicsForService: device=%@: writer characteristic found", [self.logger SensitiveNSObject:[self getIdentifier]]]; } } - + if (self.peerIDCharacteristic == nil || self.writerCharacteristic == nil) { [self.logger e:@"didDiscoverCharacteristicsForService error: device=%@: not all characteristics found", [self.logger SensitiveNSObject:[self getIdentifier]]]; [self.manager disconnect:self]; return ; } - + dispatch_async(dispatch_get_global_queue(0, 0), ^{ [self handshake]; }); @@ -586,7 +586,7 @@ - (void)discoverServices:(NSArray *)serviceUUIDs { [self.manager disconnect:self]; return ; } - + self.peripheral.delegate = self; [self.connectionQ add:^{ [self.peripheral discoverServices:serviceUUIDs]; @@ -595,9 +595,9 @@ - (void)discoverServices:(NSArray *)serviceUUIDs { - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error { [self.logger d:@"didDiscoverServices called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + [self.connectionQ completedTask:error]; - + if (error) { [self.logger e:@"didDiscoverServices error: device=%@ error=%@", [self.logger SensitiveNSObject:[self getIdentifier]], error]; [self.manager disconnect:self]; @@ -617,15 +617,15 @@ - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)err - (BOOL) negotiateL2cap { [self.logger d:@"negotiateL2cap called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if (self.peripheral == nil || self.peripheral.state != CBPeripheralStateConnected) { [self.logger e:@"negotiateL2cap error: device=%@ is not connected", [self.logger SensitiveNSObject:[self getIdentifier]]]; return FALSE; } - + __block BOOL success = FALSE; CountDownLatch *countDownLatch = [[CountDownLatch alloc] initCount:1]; - + if (@available(iOS 11.0, *)) { if (self.psm != 0) { [self.connectionQ add:^{ @@ -641,7 +641,7 @@ - (BOOL) negotiateL2cap { } [countDownLatch countDown]; } withDelay:0]; - + [countDownLatch await]; [countDownLatch release]; } else { @@ -652,23 +652,23 @@ - (BOOL) negotiateL2cap { [self.logger d:@"negotiateL2cap: device=%@: iOS 11+ is required", [self.logger SensitiveNSObject:[self getIdentifier]]]; success = TRUE; // return TRUE to continue connection without L2cap } - + return success; } - (BOOL)l2capWrite:(NSData *__nonnull)data { __block BOOL success = FALSE; - + if (self.l2capChannel != nil) { dispatch_semaphore_t sema = dispatch_semaphore_create(0); - + [self.writeQ add:^{ @synchronized (self.writerLatch) { [self.logger d:@"l2capWrite: device=%@ len=%lu base64=%@", [self.logger SensitiveNSObject:[self getIdentifier]], [data length], [self.logger SensitiveNSObject:[data base64EncodedStringWithOptions:0]]]; if ([self.logger showSensitiveData]) { [BleManager printLongLog:[BleManager NSDataToHex:data]]; } - + self.l2capWriteIndex = 0; self.l2capWriteData = data; if ([self.l2capChannel.outputStream hasSpaceAvailable]) { @@ -676,25 +676,25 @@ - (BOOL)l2capWrite:(NSData *__nonnull)data { NSUInteger data_len = [data length]; NSUInteger len = (data_len >= L2CAP_BUFFER) ? L2CAP_BUFFER : (data_len); uint8_t buf[len]; - + (void)memcpy(buf, readBytes, len); - + self.l2capWriteIndex = [self.l2capChannel.outputStream write:(const uint8_t *)buf maxLength:len]; [self.logger d:@"l2capWrite: device=%@: wrote len=%zd", [self.logger SensitiveNSObject:[self getIdentifier]], self.l2capWriteIndex]; - + if (self.l2capWriteIndex == -1) { [self.logger e:@"l2capWrite error: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]], self.l2capWriteIndex]; - + self.l2capWriteData = nil; [self.writeQ completedTask:[NSError errorWithDomain:@LOCAL_DOMAIN code:200 userInfo:@{@"Error reason": @"write error"}]]; return ; } - + if (self.l2capWriteIndex < data_len) { // write next data chunk when callback stream handleEvent: NSStreamEventHasSpaceAvailable is called [self.logger d:@"l2capWrite: device=%@: write completed but need more write space to send all data, waiting...", [self.logger SensitiveNSObject:[self getIdentifier]], self.l2capWriteIndex]; } else { [self.logger d:@"l2capWrite: device=%@: write completed and all data send", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + self.l2capWriteData = nil; [self.writeQ completedTask:nil]; } @@ -712,10 +712,10 @@ - (BOOL)l2capWrite:(NSData *__nonnull)data { } dispatch_semaphore_signal(sema); } withDelay:0]; - + dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); dispatch_release(sema); - + return success; } else { [self.logger e:@"l2capWrite error: device=%@: channel not set", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -730,32 +730,32 @@ - (void)peripheral:(CBPeripheral *)peripheral didOpenL2CAPChannel:(CBL2CAPChanne [self.connectionQ completedTask:error]; return ; } - + self.l2capChannel = channel; - + self.l2capThread = [[NSThread alloc] initWithTarget:self selector:@selector(setupL2capStreams) object:nil]; [self.l2capThread start]; self.l2capClientHandshakeRunning = TRUE; self.useL2cap = [self testL2cap]; self.l2capClientHandshakeRunning = FALSE; - + // wait that server complete L2CAP tests [NSThread sleepForTimeInterval:2.0f]; - + [self.connectionQ completedTask:nil]; } - (void)setupL2capStreams { [self.logger d:@"setupL2capStreams called: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + self.l2capChannel.inputStream.delegate = self; [self.l2capChannel.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [self.l2capChannel.inputStream open]; self.l2capChannel.outputStream.delegate = self; [self.l2capChannel.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [self.l2capChannel.outputStream open]; - + @autoreleasepool { do { [[NSRunLoop currentRunLoop] run]; @@ -766,7 +766,7 @@ - (void)setupL2capStreams { - (NSMutableData *__nonnull)createRandomNSData:(int) capacity { NSMutableData* theData = [NSMutableData dataWithCapacity:capacity]; - + for (unsigned int i = 0 ; i < capacity / 4 ; ++i ) { u_int32_t randomBits = arc4random(); [theData appendBytes:(void *)&randomBits length:4]; @@ -781,13 +781,13 @@ - (BOOL)testL2cap { self.l2capHandshakeStepStatus = FALSE; self.l2capHandshakeRecvData = [NSMutableData dataWithCapacity:L2CAP_HANDSHAKE_DATA]; self.l2capHandshakeLatch = [[CountDownLatch alloc] initCount:1]; - + self.l2capHandshakeBlock = dispatch_block_create(DISPATCH_BLOCK_INHERIT_QOS_CLASS, ^{ [self.logger e:@"testL2cap: device=%@: timout hired", [self.logger SensitiveNSObject:[self getIdentifier]]]; [self.l2capHandshakeLatch countDown]; }); dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), self.l2capHandshakeBlock); - + // step 1 [self.logger d:@"testL2cap: device=%@: client going to write the 1st payload", [self.logger SensitiveNSObject:[self getIdentifier]]]; self.l2capHandshakeData = [self createRandomNSData:L2CAP_HANDSHAKE_DATA]; @@ -798,12 +798,12 @@ - (BOOL)testL2cap { self.l2capHandshakeRecvData = nil; return FALSE; } - + // waiting for receiving remote PID [self.l2capHandshakeLatch await]; self.l2capHandshakeData = nil; self.l2capHandshakeRecvData = nil; - + // step 2 if (self.l2capHandshakeStepStatus) { [self.logger d:@"testL2cap: device=%@: client going to write the 2nd payload", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -811,11 +811,11 @@ - (BOOL)testL2cap { [self.logger e:@"testL2cap error: device=%@: client write error", [self.logger SensitiveNSObject:[self getIdentifier]]]; return FALSE; } - + [self.logger d:@"testL2cap: device=%@: client handshake completed", [self.logger SensitiveNSObject:[self getIdentifier]]]; return TRUE; } - + return FALSE; } @@ -845,12 +845,12 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } else { [self.logger e:@"stream handleEvent error: NSStreamEventHasBytesAvailable: device=%@: nothing to read", [self.logger SensitiveNSObject:[self getIdentifier]]]; } - + break; } case NSStreamEventHasSpaceAvailable: { [self.logger d:@"stream handleEvent: NSStreamEventHasSpaceAvailable: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + if ((self.peer != nil && [self.peer isConnected]) || self.l2capServerHandshakeRunning || self.l2capClientHandshakeRunning) { @synchronized (self.writerLatch) { if (self.l2capWriteData != nil) { @@ -867,15 +867,15 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } NSInteger wroteLen = [(NSOutputStream *)stream write:(const uint8_t *)buf maxLength:len]; [self.logger d:@"stream handleEvent: NSStreamEventHasSpaceAvailable: device=%@ wrote data offset=%lu len=%zd", [self.logger SensitiveNSObject:[self getIdentifier]], self.l2capWriteIndex, wroteLen]; - + if (wroteLen == -1) { [self.logger e:@"stream handleEvent error: NSStreamEventHasSpaceAvailable: device=%@ write: error", [self.logger SensitiveNSObject:[self getIdentifier]]]; self.l2capWriteData = nil; [self.writeQ completedTask:[NSError errorWithDomain:@LOCAL_DOMAIN code:200 userInfo:@{@"Error reason": @"write error"}]]; - + break; } - + self.l2capWriteIndex += wroteLen; if ([self.l2capWriteData length] == self.l2capWriteIndex) { [self.logger d:@"stream handleEvent: NSStreamEventHasSpaceAvailable: device=%@: write completed", [self.logger SensitiveNSObject:[self getIdentifier]]]; @@ -890,12 +890,12 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } else { [self.logger e:@"stream handleEvent error: NSStreamEventHasSpaceAvailable: device=%@: device is not connected", [self.logger SensitiveNSObject:[self getIdentifier]]]; } - + break; } case NSStreamEventErrorOccurred: { [self.logger d:@"stream handleEvent: NSStreamEventErrorOccurred: device=%@", [self.logger SensitiveNSObject:[self getIdentifier]]]; - + [self.manager disconnect:self]; break; } @@ -923,7 +923,7 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } [self.manager disconnect:self]; - + break; } } diff --git a/pkg/ble-driver/BleInterface_darwin.m b/pkg/ble-driver/BleInterface_darwin.m index 60b6832b..053c6fd8 100644 --- a/pkg/ble-driver/BleInterface_darwin.m +++ b/pkg/ble-driver/BleInterface_darwin.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // BleInterface.m // ble @@ -70,21 +70,21 @@ void BLEStop(void) { int BLESendToPeer(char *remotePID, void *payload, int length) { int status = 0; - + NSString *cPID = [[NSString alloc] initWithUTF8String:remotePID]; NSData *cPayload = [[NSData alloc] initWithBytes:payload length:length]; - + BertyDevice *bDevice = [getManager() findPeripheralFromPID:cPID]; if (bDevice == nil) { [getManager().logger e:@"BLESendToPeer error: no device found"]; return 0; } - + if (bDevice.peer == nil) { [getManager().logger e:@"BLESendToPeer error: peer object not found"]; return 0; } - + if (bDevice.useL2cap && bDevice.l2capChannel != nil) { status = [bDevice l2capWrite:cPayload]; } else { @@ -96,7 +96,7 @@ int BLESendToPeer(char *remotePID, void *payload, int length) { [getManager().logger e:@"BLESendToPeer error: device not connected"]; } } - + [cPID release]; [cPayload release]; return status; diff --git a/pkg/ble-driver/BleManager_darwin.m b/pkg/ble-driver/BleManager_darwin.m index 6bba187e..59f2990b 100644 --- a/pkg/ble-driver/BleManager_darwin.m +++ b/pkg/ble-driver/BleManager_darwin.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // BleManager.m // ble @@ -34,16 +34,16 @@ static inline char itoh(int i) { + (NSString *__nonnull)NSDataToHex:(NSData *__nonnull)data { NSUInteger i, len; unsigned char *buf, *bytes; - + len = data.length; bytes = (unsigned char*)data.bytes; buf = malloc(len*2); - + for (i=0; i> 4) & 0xF); buf[i*2+1] = itoh(bytes[i] & 0xF); } - + return [[[NSString alloc] initWithBytesNoCopy:buf length:len*2 encoding:NSASCIIStringEncoding @@ -70,7 +70,7 @@ + (void) printLongLog:(NSString *__nonnull)message { // TODO: No need to check error on this? - (instancetype __nonnull) initDriver:(BOOL)useExternalLogger { self = [super init]; - + if (self) { BOOL showSensitiveData = FALSE; if (useExternalLogger) { @@ -85,47 +85,47 @@ - (instancetype __nonnull) initDriver:(BOOL)useExternalLogger { _bleOn = [[CountDownLatch alloc] initCount:2]; _serviceAdded = [[CountDownLatch alloc] initCount:1]; _bDevices = [[NSMutableArray alloc] init]; - + _cManager = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_queue_create("CentralManager", DISPATCH_QUEUE_SERIAL) options:@{CBCentralManagerOptionShowPowerAlertKey:[NSNumber numberWithBool:NO]}]; - + _pManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:dispatch_queue_create("PeripheralManager", DISPATCH_QUEUE_SERIAL) options:@{CBPeripheralManagerOptionShowPowerAlertKey:[NSNumber numberWithBool:NO]}]; - + [self initService]; [self addService]; } - + return self; } - (void)initService { [self.logger d:@"initService called"]; - + _scanning = FALSE; _serviceUUID = [[CBUUID UUIDWithString:SERVICE_UUID] retain]; _peerUUID = [[CBUUID UUIDWithString:PEER_ID_UUID] retain]; _writerUUID = [[CBUUID UUIDWithString:WRITER_UUID] retain]; - + _peerIDCharacteristic = [[CBMutableCharacteristic alloc] initWithType:self.peerUUID properties:CBCharacteristicPropertyRead | CBCharacteristicPropertyWrite value:nil permissions:CBAttributePermissionsReadable | CBAttributePermissionsWriteable]; - + _writerCharacteristic = [[CBMutableCharacteristic alloc] initWithType:self.writerUUID properties:CBCharacteristicPropertyWrite | CBCharacteristicPropertyNotify value:nil permissions:CBAttributePermissionsWriteable]; - + _bertyService = [[CBMutableService alloc] initWithType:self.serviceUUID primary:YES]; - + _bertyService.characteristics = [@[self.writerCharacteristic, self.peerIDCharacteristic] retain]; } @@ -145,7 +145,7 @@ - (void)dealloc { [_writerCharacteristic release]; [_bertyService.characteristics release]; [_bertyService release]; - + [super dealloc]; } @@ -176,13 +176,13 @@ - (void)startScanning { if (self.cmEnable && !self.scanning) { if (self.localPID != nil) { [self.logger d:@"startScanning called"]; - + NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil]; [self.cManager scanForPeripheralsWithServices:@[self.serviceUUID] options:options]; self.scanning = TRUE; - + dispatch_async(dispatch_get_main_queue(), ^(void){ self.scannerTimer = [NSTimer scheduledTimerWithTimeInterval:12.0 target:self selector:@selector(toggleScanner:) userInfo:nil repeats:YES]; }); @@ -206,14 +206,14 @@ - (void)toggleScanner:(NSTimer*)timer { CBCentralManagerScanOptionAllowDuplicatesKey, nil]; [self.cManager scanForPeripheralsWithServices:@[self.serviceUUID] options:options]; } - + } - (void)stopScanning { @synchronized (self.cManager) { if (self.cmEnable && self.scanning) { [self.logger d:@"stopScanning called"]; - + dispatch_async(dispatch_get_main_queue(), ^{ if (self.scannerTimer != nil) { if ([self.scannerTimer isValid]) { @@ -221,11 +221,11 @@ - (void)stopScanning { } self.scannerTimer = nil; } - + if ([self.cManager isScanning]) { [self.cManager stopScan]; } - + self.scanning = FALSE; }); } @@ -237,13 +237,13 @@ - (void)startAdvertising { if (self.pmEnable && ![self.pManager isAdvertising]) { if (self.ID != nil) { [self.logger d:@"startAdvertising called: ID=%@", [self.logger SensitiveNSObject:self.ID]]; - + // publish l2cap channel self.psm = 0; if (@available(iOS 11.0, *)) { [self.pManager publishL2CAPChannelWithEncryption:false]; } - + [self.pManager startAdvertising:@{ CBAdvertisementDataLocalNameKey:self.ID, CBAdvertisementDataServiceUUIDsKey:@[self.serviceUUID]}]; } else { [self.logger e:@"startAdvertising error: local ID is null"]; @@ -271,7 +271,7 @@ - (void)stopAdvertising { // Only the client side can disconnect - (void)disconnect:(BertyDevice *__nonnull)device { [self.logger d:@"closeAllConnections called: debice=%@", [self.logger SensitiveNSObject:[device clientSideIdentifier]]]; - + if (device.peripheral != nil && device.clientSideIdentifier != nil) { [self.logger d:@"disconnect: client device=%@", [self.logger SensitiveNSObject:[device clientSideIdentifier]]]; if (device.peripheral.state == CBPeripheralStateConnecting || device.peripheral.state == CBPeripheralStateConnected) { @@ -302,61 +302,61 @@ - (BOOL)writeAndNotify:(BertyDevice *__nonnull)device data:(NSData *__nonnull)da if ([self.logger showSensitiveData]) { [BleManager printLongLog:[BleManager NSDataToHex:data]]; } - + BOOL success = FALSE; NSUInteger mtu = device.cbCentral.maximumUpdateValueLength; NSUInteger offset = 0; NSUInteger dataLen = [data length]; - + while (offset < dataLen) { if (![device.peer isServerReady]) { [self.logger e:@"writeAndNotify error: device=%@ server not connected", [self.logger SensitiveNSObject:[device clientSideIdentifier]]]; return FALSE; } - + self.writerLactch = [[CountDownLatch alloc] initCount:1]; NSUInteger toWriteLen = (dataLen - offset) < mtu ? (dataLen - offset) : mtu; NSData *toWrite = [[data subdataWithRange:NSMakeRange(offset, toWriteLen)] retain]; - + if ([self.logger showSensitiveData]) { [self.logger d:@"writeAndNotify: device=%@ mtu=%lu base64=%@ data=%@", [device getIdentifier], mtu, [toWrite base64EncodedStringWithOptions:0], [BleManager NSDataToHex:toWrite]]; } - + // Need to add data to the cache prior to write it because sometime peripheralManagerIsReadyToUpdateSubscribers is called before data is put to the cache @synchronized (self.writeCache) { self.writeCache = [[WriteDataCache alloc] initWithDevice:device withData:toWrite]; [self.logger d:@"writeAndNotify: device=%@: data put in cache successfully", [self.logger SensitiveNSObject:[device getIdentifier]]]; } - + success = [self.pManager updateValue:toWrite forCharacteristic:self.writerCharacteristic onSubscribedCentrals:@[device.cbCentral]]; - + if (success) { [self.writerLactch countDown]; } else { [self.logger d:@"writeAndNotify: device=%@: operation queue is full and will be processed by the peripheralManagerIsReadyToUpdateSubscribers callback", [self.logger SensitiveNSObject:[device getIdentifier]]]; } - + [self.writerLactch await]; - + // take write status from peripheralManagerIsReadyToUpdateSubscribers if (!success) { success = self.writeStatus; } - + [self.writeCache release]; self.writeCache = nil; [self.writerLactch release]; self.writerLactch = nil; [toWrite release]; - + // this time write failed, don't continue if (!success) { break ; } - + offset += toWriteLen; } - + [self.logger d:@"writeAndNotify: device=%@: success=%d", [self.logger SensitiveNSObject:[device getIdentifier]], success]; return success; } @@ -365,7 +365,7 @@ - (BOOL)writeAndNotify:(BertyDevice *__nonnull)device data:(NSData *__nonnull)da - (BertyDevice *)findPeripheral:(CBPeripheral *)peripheral { BertyDevice *result = nil; - + @synchronized (self.bDevices) { for (BertyDevice *bDevice in self.bDevices) { if (bDevice.peripheral == peripheral) { @@ -374,7 +374,7 @@ - (BertyDevice *)findPeripheral:(CBPeripheral *)peripheral { } } } - + return result; } @@ -386,13 +386,13 @@ - (BertyDevice *)findPeripheralFromName:(NSString *) name { } } } - + return nil; } - (BertyDevice *)findPeripheralFromPID:(NSString *)peerID { BertyDevice *result = nil; - + @synchronized (self.bDevices) { for (BertyDevice *bDevice in self.bDevices) { if ([bDevice.remotePeerID isEqualToString:peerID]) { @@ -401,7 +401,7 @@ - (BertyDevice *)findPeripheralFromPID:(NSString *)peerID { } } } - + return result; } @@ -409,7 +409,7 @@ - (BertyDevice *)findPeripheralFromPID:(NSString *)peerID { - (BertyDevice *)findPeripheralFromIdentifier:(NSUUID *)identifier { BertyDevice *result = nil; NSString *id = [identifier UUIDString]; - + @synchronized (self.bDevices) { for (BertyDevice *bDevice in self.bDevices) { if ([bDevice.clientSideIdentifier isEqual:id]) { @@ -421,7 +421,7 @@ - (BertyDevice *)findPeripheralFromIdentifier:(NSUUID *)identifier { } } } - + return result; } @@ -429,7 +429,7 @@ - (BertyDevice *)findPeripheralFromIdentifier:(NSUUID *)identifier { - (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral { [self.logger i:@"didConnectPeripheral called: device=%@", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; - + BertyDevice *bDevice = [self findPeripheral:peripheral]; if (bDevice == nil) { [self.logger e:@"didConnectPeripheral error: device=%@ not found", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; @@ -441,7 +441,7 @@ - (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPerip - (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error { [self.logger i:@"didFailToConnectPeripheral called: device=%@", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; - + BertyDevice *bDevice = [self findPeripheral:peripheral]; if (bDevice == nil) { [self.logger e:@"didFailToConnectPeripheral error: device=%@ not found", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; @@ -454,11 +454,11 @@ - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { NSString *id = nil; - + if (advertisementData && [advertisementData.allKeys containsObject:CBAdvertisementDataLocalNameKey]) { // between 2 iOS id = [advertisementData valueForKeyPath:CBAdvertisementDataLocalNameKey]; - + } else if (advertisementData && [advertisementData.allKeys containsObject:CBAdvertisementDataServiceDataKey]) { // between Android / iOS NSDictionary *data = [advertisementData valueForKey:CBAdvertisementDataServiceDataKey]; @@ -475,19 +475,19 @@ - (void)centralManager:(CBCentralManager *)central // [self.logger e:@"didDiscoverPeripheral error: device=%@ has not advertisement name", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; return ; } - + if ([id length] == 0) { [self.logger d:@"didDiscoverPeripheral error: device=%@: id is empty", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; return ; } - + // only lower id can be client if ([self.ID compare:id] != NSOrderedAscending) { // Verbose // [self.logger d:@"didDiscoverPeripheral: device=%@: greater ID, cancel client connection", [self.logger SensitiveNSObject:[peripheral.identifier UUIDString]]]; return ; } - + BertyDevice *nDevice = [self findPeripheralFromIdentifier:peripheral.identifier]; if (nDevice != nil) { // peripheral already known if (nDevice.clientSideIdentifier != nil) { // peripheral already discovered @@ -500,11 +500,11 @@ - (void)centralManager:(CBCentralManager *)central nDevice.clientSideIdentifier = [peripheral.identifier UUIDString]; } else { nDevice = [self findPeripheralFromName:id]; - + if (nDevice != nil && nDevice.peripheral != nil) { // device already known with another peripheral object return ; } - + // TODO: retest if bDevices is still null after @synchronized @synchronized (self.bDevices) { nDevice = [[BertyDevice alloc]initWithPeripheral:peripheral logger:self.logger central:self withName:id]; @@ -536,7 +536,7 @@ - (void)peripheralManagerDidUpdateState:(nonnull CBPeripheralManager *)periphera @synchronized (self.pManager) { self.pmEnable = FALSE; } - + switch(peripheral.state) { case CBManagerStateUnknown: { @@ -580,7 +580,7 @@ - (void)centralManagerDidUpdateState:(nonnull CBCentralManager *)central { @synchronized (self.cManager) { self.cmEnable = FALSE; } - + switch(central.state) { case CBManagerStateResetting: { @@ -614,19 +614,19 @@ - (void)centralManagerDidUpdateState:(nonnull CBCentralManager *)central { - (void)peripheralManager:(CBPeripheralManager *)peripheral central:(CBCentral *)central didSubscribeToCharacteristic:(CBCharacteristic *)characteristic { [self.logger d:@"peripheralManager didSubscribeToCharacteristic called: device=%@", [self.logger SensitiveNSObject:[central.identifier UUIDString]]]; - + BertyDevice *device; if ((device = [self findPeripheralFromIdentifier:central.identifier]) == nil) { [self.logger e:@"peripheralManager didSubscribeToCharacteristic error: device=%@ not found", [self.logger SensitiveNSObject:[central.identifier UUIDString]]]; return ; } - + device.cbCentral = central; - + // Server doesn't know if the L2CAP handshake failed on the client side // so we have to set it manually at this step. device.l2capServerHandshakeRunning = FALSE; - + // complete handshake device.peer = [self.peerManager registerDevice:device withPeerID:device.remotePeerID isClient:FALSE]; if (device.peer == nil) { @@ -640,13 +640,13 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral central:(CBCentral * // server disconnection callback entry point - (void)peripheralManager:(CBPeripheralManager *)peripheral central:(CBCentral *)central didUnsubscribeFromCharacteristic:(CBCharacteristic *)characteristic { [self.logger d:@"peripheralManager didUnsubscribeFromCharacteristic called: device=%@", [self.logger SensitiveNSObject:[central.identifier UUIDString]]]; - + BertyDevice *device; if ((device = [self findPeripheralFromIdentifier:central.identifier]) == nil) { [self.logger e:@"peripheralManager didUnsubscribeFromCharacteristic error: device=%@ not found", [self.logger SensitiveNSObject:[central.identifier UUIDString]]]; return ; } - + [device closeBertyDevice]; @synchronized (self.bDevices) { [self.bDevices removeObject:device]; @@ -655,34 +655,34 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral central:(CBCentral * - (void)peripheralManagerIsReadyToUpdateSubscribers:(CBPeripheralManager *)peripheral { [self.logger d:@"peripheralManager peripheralManagerIsReadyToUpdateSubscribers called"]; - + self.writeStatus = FALSE; - + @synchronized(self.writeCache) { if (self.writeCache != nil) { if (self.logger.showSensitiveData) { [self.logger d:@"peripheralManagerIsReadyToUpdateSubscribers: device=%@ base64=%@ data=%@", [self.writeCache.device getIdentifier], [self.writeCache.data base64EncodedStringWithOptions:0], [BleManager NSDataToHex:self.writeCache.data]]; } - + if (self.writerLactch == nil) { [self.logger e:@"peripheralManagerIsReadyToUpdateSubscribers error: writer latch is null"]; return ; } - + if (self.writeCache.device.peer == nil) { [self.logger e:@"peripheralManagerIsReadyToUpdateSubscribers error: peer object not found"]; [self.writerLactch countDown]; return ; } - + if (![self.writeCache.device.peer isServerReady]) { [self.logger e:@"peripheralManagerIsReadyToUpdateSubscribers error: server not connected"]; [self.writerLactch countDown]; return ; } - + self.writeStatus = [self.pManager updateValue:self.writeCache.data forCharacteristic:self.writerCharacteristic onSubscribedCentrals:@[self.writeCache.device.cbCentral]]; - + if (self.writeStatus) { [self.logger d:@"peripheralManagerIsReadyToUpdateSubscribers: device=%@: data sent", [self.logger SensitiveNSObject:[self.writeCache.device getIdentifier]]]; [self.writerLactch countDown]; @@ -699,23 +699,23 @@ - (void)peripheralManagerIsReadyToUpdateSubscribers:(CBPeripheralManager *)perip - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadRequest:(CBATTRequest *)request { [self.logger d:@"didReceiveReadRequests called: device=%@ offset=%lu", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]], request.offset]; - + if ([request.characteristic.UUID isEqual:self.peerUUID]) { [self.logger d:@"didReceiveReadRequests: device=%@: use peerID characteristic", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]]]; - + BertyDevice *device = [self findPeripheralFromIdentifier:request.central.identifier]; if (device == nil || device.remotePeerID == nil) { [self.logger e:@"didReceiveReadRequests: device=%@: need writeRequest completed before readRequest", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]]]; [peripheral respondToRequest:request withResult:CBATTErrorReadNotPermitted]; return ; } - + // Write PSM to big endian int psm = NSSwapHostIntToBig(self.psm); NSMutableData *toSend = [[NSMutableData alloc] initWithBytes:&psm length:sizeof(psm)]; [toSend appendData:[self.localPID dataUsingEncoding:NSUTF8StringEncoding]]; request.value = toSend; - + [peripheral respondToRequest:request withResult:CBATTErrorSuccess]; [toSend release]; } else { @@ -729,18 +729,18 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveReadReques #pragma mark - write - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests { - + BertyDevice *device; NSData *data = nil; - + for (CBATTRequest *request in requests) { [self.logger d:@"didReceiveWriteRequests: device=%@ base64=%@", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]], [self.logger SensitiveNSObject:[data base64EncodedStringWithOptions:0]]]; if (self.logger.showSensitiveData) { [BleManager printLongLog:[BleManager NSDataToHex:data]]; } - + CBMutableCharacteristic *characteristic; - + @synchronized (self.bDevices) { // check if we hold a remote device of this type device = [self findPeripheralFromIdentifier:request.central.identifier]; @@ -751,7 +751,7 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteReque [self.logger d:@"didReceiveWriteRequests: device=%@ added to BleManager.bDevices", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]]]; } } - + if ([request.characteristic.UUID isEqual:self.writerUUID]) { characteristic = self.writerCharacteristic; } @@ -763,16 +763,16 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteReque [peripheral respondToRequest:request withResult:CBATTErrorWriteNotPermitted]; return ; } - + data = request.value; - + BOOL(^handler)(NSData *) = [device.characteristicHandlers objectForKey:[request.characteristic.UUID UUIDString]]; if (!handler(data)) { [self.logger e:@"didReceiveWriteRequests error: device=%@: handle failed", [self.logger SensitiveNSObject:[request.central.identifier UUIDString]]]; [device closeBertyDevice]; [peripheral respondToRequest:request withResult:CBATTErrorWriteNotPermitted]; } - + // Process response back request.value = [self.localPID dataUsingEncoding:NSUTF8StringEncoding]; } @@ -792,36 +792,36 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral didPublishL2CAPChann - (void)peripheralManager:(CBPeripheralManager *)peripheral didUnpublishL2CAPChannel:(CBL2CAPPSM)PSM error:(NSError *)error { [self.logger d:@"peripheralManager didUnpublishL2CAPChannel called"]; - + self.psm = 0; } - (void)peripheralManager:(CBPeripheralManager *)peripheral didOpenL2CAPChannel:(CBL2CAPChannel *)channel error:(NSError *)error API_AVAILABLE(ios(11.0)) { [self.logger d:@"peripheralManager didOpenL2CAPChannel called: device=%@", [self.logger SensitiveNSObject:[channel.peer.identifier UUIDString]]]; - + if (error != nil) { [self.logger e:@"peripheralManager didOpenL2CAPChannel error=%@", error]; return ; } - + BertyDevice *device; if ((device = [self findPeripheralFromIdentifier:channel.peer.identifier]) == nil) { [self.logger e:@"peripheralManager didOpenL2CAPChannel error: device=%@ not found", [self.logger SensitiveNSObject:[channel.peer.identifier UUIDString]]]; return ; } - + device.l2capChannel = channel; - + device.l2capThread = [[NSThread alloc] initWithBlock:^{ [self.logger d:@"peripheralManager didOpenL2CAPChannel: device=%@: in thread", [self.logger SensitiveNSObject:[device getIdentifier]]]; - + channel.inputStream.delegate = device; [channel.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [channel.inputStream open]; channel.outputStream.delegate = device; [channel.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [channel.outputStream open]; - + @autoreleasepool { do { [[NSRunLoop currentRunLoop] run]; @@ -829,7 +829,7 @@ - (void)peripheralManager:(CBPeripheralManager *)peripheral didOpenL2CAPChannel: } }]; [device.l2capThread start]; - + device.l2capServerHandshakeRunning = TRUE; } diff --git a/pkg/ble-driver/BleQueue.m b/pkg/ble-driver/BleQueue.m index 7f0f7642..18901a41 100644 --- a/pkg/ble-driver/BleQueue.m +++ b/pkg/ble-driver/BleQueue.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // BleQueue.m // BertyBridgeDemo @@ -13,13 +13,13 @@ @implementation BleQueue - (instancetype __nullable) init:(dispatch_queue_t)queue logger:(Logger *__nonnull)logger { self = [super init]; - + if (self) { _tasks = [[NSMutableArray alloc] init]; _queue = [queue retain]; _logger = [logger retain]; } - + return self; } @@ -45,12 +45,12 @@ - (void) add:(void (^__nonnull)(void))block withCallback:(void (^__nullable)(NSE - (void) completedTask:(NSError *__nullable)error { @synchronized (self.tasks) { TaskDelay *currentTask; - + if ([self.tasks count] == 0) { [self.logger e:@"BleQueue: completedTask error: no task running"]; return ; } - + currentTask = [self.tasks objectAtIndex:0]; [self.logger d:@"BleQueue: completedTask at index=%d", currentTask.index]; if (currentTask.callback != nil) { @@ -58,7 +58,7 @@ - (void) completedTask:(NSError *__nullable)error { currentTask.callback(error); }); } - + self.isRetrying = FALSE; self.taskQueueBusy = FALSE; [self.tasks removeObjectAtIndex:0]; @@ -69,20 +69,20 @@ - (void) completedTask:(NSError *__nullable)error { - (void) nextTask { @synchronized (self.tasks) { TaskDelay *nextTask; - + if (self.taskQueueBusy) { [self.logger d:@"BleQueue: nextTask: another task is running"]; return ; } - + if ([self.tasks count] == 0 ) { [self.logger d:@"BleQueue: nextTask error: no task queued: count=%ld", [self.tasks count]]; return ; } - + nextTask = [self.tasks objectAtIndex:0]; [self.logger d:@"BleQueue: nextTask at index=%d with delay=%ld", nextTask.index, nextTask.delay]; - + self.taskQueueBusy = TRUE; if (!self.isRetrying) { self.nbTries = 0; @@ -95,7 +95,7 @@ - (void) nextTask { - (void) retryTask { @synchronized (self.tasks) { TaskDelay *currentTask; - + self.taskQueueBusy = FALSE; if ([self.tasks count] == 0) { @@ -110,7 +110,7 @@ - (void) retryTask { self.isRetrying = TRUE; } } - + [self nextTask]; } } diff --git a/pkg/ble-driver/CircularQueue.m b/pkg/ble-driver/CircularQueue.m index b0b64963..8fe99102 100644 --- a/pkg/ble-driver/CircularQueue.m +++ b/pkg/ble-driver/CircularQueue.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport #import "CircularQueue.h" @@ -6,7 +6,7 @@ @implementation CircularQueue - (instancetype __nonnull)initWithCapacity:(NSUInteger)capacity { self = [super init]; - + if (self) { _capacity = capacity < 1 ? DEFAULT_CAPACITY : capacity; _data = [[NSMutableArray alloc] initWithCapacity:_capacity]; @@ -17,13 +17,13 @@ - (instancetype __nonnull)initWithCapacity:(NSUInteger)capacity { [_data addObject:[NSNull null]]; } } - + return self; } - (void)dealloc { [_data release]; - + [super dealloc]; } @@ -31,7 +31,7 @@ - (void)offer:(id)obj { if ([self isNotFull]) { NSInteger nextWrite = (self.writeSequence + 1) % self.capacity; [self.data replaceObjectAtIndex:nextWrite withObject:obj]; - + self.writeSequence++; } else { @throw [[[NSException alloc] initWithName:NSRangeException reason:nil userInfo:nil] autorelease]; @@ -42,13 +42,13 @@ - (id)poll { if ([self isNotEmpty]) { NSInteger index = self.readSequence % self.capacity; id value = [[self.data objectAtIndex:index] retain]; - + [self.data replaceObjectAtIndex:index withObject:[NSNull null]]; self.readSequence++; - + return [value autorelease]; } - + return [NSNull null]; } @@ -57,7 +57,7 @@ - (id)element { NSInteger index = self.readSequence % self.capacity; return [self.data objectAtIndex:index]; } - + return [NSNull null]; } diff --git a/pkg/ble-driver/ConnectedPeer.m b/pkg/ble-driver/ConnectedPeer.m index bc7e7289..1c93a61a 100644 --- a/pkg/ble-driver/ConnectedPeer.m +++ b/pkg/ble-driver/ConnectedPeer.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // ConnectedPeer.m // BertyBridgeDemo diff --git a/pkg/ble-driver/CountDownLatch_darwin.m b/pkg/ble-driver/CountDownLatch_darwin.m index 9cfbde6f..e369ec8d 100644 --- a/pkg/ble-driver/CountDownLatch_darwin.m +++ b/pkg/ble-driver/CountDownLatch_darwin.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // CountDownLatch.m // ble diff --git a/pkg/ble-driver/Logger.m b/pkg/ble-driver/Logger.m index 9f0853c9..6c153b20 100644 --- a/pkg/ble-driver/Logger.m +++ b/pkg/ble-driver/Logger.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // Logger.m // BertyBridgeDemo @@ -14,31 +14,31 @@ @implementation Logger - (instancetype __nonnull)initLocalLoggerWithSubSystem:(const char *)subSystem andCategorie:(const char*)categorie showSensitiveData:(BOOL)showSensitiveData { self = [super init]; - + if (self) { _logger = os_log_create(subSystem, categorie); _useExternalLogger = FALSE; _showSensitiveData = showSensitiveData; } - + return self; } - (instancetype __nonnull)initWithExternalLoggerAndShowSensitiveData:(BOOL)showSensitiveData { self = [super init]; - + if (self) { _logger = nil; _useExternalLogger = TRUE; _showSensitiveData = showSensitiveData; } - + return self; } - (void)log:(enum level)level withFormat:(NSString *__nonnull)format withArgs:(va_list)args { NSString *message = [[NSString alloc] initWithFormat:format arguments:args]; - + if (self.useExternalLogger) { BLEBridgeLog(level, message); } else { @@ -60,11 +60,11 @@ - (void)log:(enum level)level withFormat:(NSString *__nonnull)format withArgs:(v osLevel = OS_LOG_TYPE_DEFAULT; break ; } - + os_log_with_type(self.logger, osLevel, "%@", message); } } - + [message release]; } @@ -101,7 +101,7 @@ - (NSString *__nonnull)SensitiveString:(const char *)data { if (data == nil) { return @""; } - + if (self.showSensitiveData) { return [NSString stringWithFormat:@"%s", data]; } else { diff --git a/pkg/ble-driver/PeerManager.m b/pkg/ble-driver/PeerManager.m index 20212002..e98407bc 100644 --- a/pkg/ble-driver/PeerManager.m +++ b/pkg/ble-driver/PeerManager.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // PeerManager.m // BertyBridgeDemo @@ -13,33 +13,33 @@ @implementation PeerManager - (instancetype __nonnull)initWithLogger:(Logger *__nonnull)logger { self = [super init]; - + if (self) { _logger = [logger retain]; _connectedPeers = [[NSMutableDictionary alloc] init]; } - + return self; } - (void)dealloc { [_connectedPeers release]; [_logger release]; - + [super dealloc]; } - (ConnectedPeer *__nonnull)getPeer:(NSString *__nonnull) peerID { [self.logger d:@"getPeer called: peerID=%@", [self.logger SensitiveNSObject:peerID]]; - + ConnectedPeer *peer; - + @synchronized (_connectedPeers) { if ((peer = [self.connectedPeers objectForKey:peerID]) != nil) { [self.logger d:@"getPeer: peerID=%@ alread created", [self.logger SensitiveNSObject:peerID]]; return peer; } - + [self.logger d:@"getPeer: peerID=%@ created", [self.logger SensitiveNSObject:peerID]]; peer = [[ConnectedPeer alloc] init]; [self.connectedPeers setObject:peer forKey:peerID]; @@ -50,9 +50,9 @@ - (ConnectedPeer *__nonnull)getPeer:(NSString *__nonnull) peerID { - (ConnectedPeer *__nullable)registerDevice:(BertyDevice *__nonnull)device withPeerID:(NSString *__nonnull)peerID isClient:(BOOL)isClient { [self.logger d:@"registerDevice called: identifier=%@ peer=%@ isClient=%d", [self.logger SensitiveNSObject:[device getIdentifier]], [self.logger SensitiveNSObject:peerID], isClient]; - + ConnectedPeer *peer; - + @synchronized (_connectedPeers) { peer = [self getPeer:peerID]; if (isClient) { @@ -60,46 +60,46 @@ - (ConnectedPeer *__nullable)registerDevice:(BertyDevice *__nonnull)device withP } else { peer.server = device; } - + device.peer = peer; - + peer.connected = TRUE; - + if (!BLEBridgeHandleFoundPeer(peerID)) { [self.logger e:@"registerDevice error: device=%@ peer=%@: HandleFoundPeer failed", [self.logger SensitiveNSObject:[device getIdentifier]], [self.logger SensitiveNSObject:peerID]]; return NULL; } - + [device flushCache]; } - + return peer; } - (void)unregisterDevice:(BertyDevice *)device { [self.logger d:@"unregisterDevice called: device=%@ peerID=%@", [self.logger SensitiveNSObject:[device getIdentifier]], [self.logger SensitiveNSObject:device.remotePeerID]]; - + ConnectedPeer *peer; - + @synchronized (_connectedPeers) { if ((peer = [self.connectedPeers objectForKey:device.remotePeerID]) == nil) { [self.logger e:@"unregisterDevice called: device=%@ peerID=%@: peerID not found", [self.logger SensitiveNSObject:[device getIdentifier]], [self.logger SensitiveNSObject:device.remotePeerID]]; return ; } - + if ([peer isConnected]) { [self.logger d:@"unregisterDevice called: device=%{public}@ peerID=%{public}@: calling HandleLostPeer", [self.logger SensitiveNSObject:[device getIdentifier]], [self.logger SensitiveNSObject:device.remotePeerID]]; BLEBridgeHandleLostPeer(device.remotePeerID); peer.connected = FALSE; } - + [self removePeer:device.remotePeerID]; } } - (void)removePeer:(NSString *__nonnull) peerID { [self.logger d:@"removePeer called: peerID=%{public}@", [self.logger SensitiveNSObject:peerID]]; - + @synchronized (_connectedPeers) { [self.connectedPeers removeObjectForKey:peerID]; } @@ -107,7 +107,7 @@ - (void)removePeer:(NSString *__nonnull) peerID { - (void)removeAllPeers { [self.logger d:@"removeAllPeers called"]; - + @synchronized (_connectedPeers) { [self.connectedPeers removeAllObjects]; } diff --git a/pkg/ble-driver/TaskDelay.m b/pkg/ble-driver/TaskDelay.m index 224be604..d49c0bd0 100644 --- a/pkg/ble-driver/TaskDelay.m +++ b/pkg/ble-driver/TaskDelay.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // TaskDelay.m // BertyBridgeDemo @@ -19,7 +19,7 @@ - (instancetype __nullable) initWithBlock:(void (^ __nonnull)(void))block withCa _delay = delay; _index = index; } - + return self; } diff --git a/pkg/ble-driver/WriteDataCache.m b/pkg/ble-driver/WriteDataCache.m index b4efb1c1..00661769 100644 --- a/pkg/ble-driver/WriteDataCache.m +++ b/pkg/ble-driver/WriteDataCache.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // WriteDataCache.m // BertyBridgeDemo @@ -13,19 +13,19 @@ @implementation WriteDataCache - (instancetype __nonnull) initWithDevice:(BertyDevice *__nonnull)device withData:(NSData *__nonnull)data { self = [super init]; - + if (self) { _device = [device retain]; _data = [data retain]; } - + return self; } - (void)dealloc { [_device release]; [_data release]; - + [super dealloc]; } diff --git a/pkg/ble-driver/bridge_android.go b/pkg/ble-driver/bridge_android.go index 4124769b..37d32a8d 100644 --- a/pkg/ble-driver/bridge_android.go +++ b/pkg/ble-driver/bridge_android.go @@ -1,5 +1,5 @@ -//go:build android -// +build android +//go:build android && !noproximitytransport +// +build android,!noproximitytransport package ble diff --git a/pkg/ble-driver/bridge_darwin.go b/pkg/ble-driver/bridge_darwin.go index 42035474..f9dddbec 100644 --- a/pkg/ble-driver/bridge_darwin.go +++ b/pkg/ble-driver/bridge_darwin.go @@ -1,5 +1,5 @@ -//go:build darwin && cgo -// +build darwin,cgo +//go:build darwin && cgo && !noproximitytransport +// +build darwin,cgo,!noproximitytransport package ble diff --git a/pkg/ble-driver/bridge_unsupported.go b/pkg/ble-driver/bridge_unsupported.go index 4e1a7a19..db74a689 100644 --- a/pkg/ble-driver/bridge_unsupported.go +++ b/pkg/ble-driver/bridge_unsupported.go @@ -1,5 +1,5 @@ -//go:build !darwin && !android -// +build !darwin,!android +//go:build (!darwin && !android) || noproximitytransport +// +build !darwin,!android noproximitytransport package ble diff --git a/pkg/multipeer-connectivity-driver/bridge_darwin.go b/pkg/multipeer-connectivity-driver/bridge_darwin.go index 3484041f..4db977d6 100644 --- a/pkg/multipeer-connectivity-driver/bridge_darwin.go +++ b/pkg/multipeer-connectivity-driver/bridge_darwin.go @@ -1,5 +1,5 @@ -//go:build darwin && cgo && !catalyst -// +build darwin,cgo,!catalyst +//go:build darwin && cgo && !catalyst && !noproximitytransport +// +build darwin,cgo,!catalyst,!noproximitytransport package mc diff --git a/pkg/multipeer-connectivity-driver/bridge_unsupported.go b/pkg/multipeer-connectivity-driver/bridge_unsupported.go index 4b0ca374..eca23bd2 100644 --- a/pkg/multipeer-connectivity-driver/bridge_unsupported.go +++ b/pkg/multipeer-connectivity-driver/bridge_unsupported.go @@ -1,5 +1,5 @@ -//go:build !darwin || (darwin && !cgo) || catalyst -// +build !darwin darwin,!cgo catalyst +//go:build !darwin || (darwin && !cgo) || catalyst || noproximitytransport +// +build !darwin darwin,!cgo catalyst noproximitytransport package mc diff --git a/pkg/multipeer-connectivity-driver/driver/Logger.m b/pkg/multipeer-connectivity-driver/driver/Logger.m index 6fc026e4..60378ee3 100644 --- a/pkg/multipeer-connectivity-driver/driver/Logger.m +++ b/pkg/multipeer-connectivity-driver/driver/Logger.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport // // Logger.m // BertyBridgeDemo @@ -14,31 +14,31 @@ @implementation Logger - (instancetype __nonnull)initLocalLoggerWithSubSystem:(const char *)subSystem andCategorie:(const char*)categorie showSensitiveData:(BOOL)showSensitiveData { self = [super init]; - + if (self) { _logger = os_log_create(subSystem, categorie); _useExternalLogger = FALSE; _showSensitiveData = showSensitiveData; } - + return self; } - (instancetype __nonnull)initWithExternalLoggerAndShowSensitiveData:(BOOL)showSensitiveData { self = [super init]; - + if (self) { _logger = nil; _useExternalLogger = TRUE; _showSensitiveData = showSensitiveData; } - + return self; } - (void)log:(enum level)level withFormat:(NSString *__nonnull)format withArgs:(va_list)args { NSString *message = [[NSString alloc] initWithFormat:format arguments:args]; - + if (self.useExternalLogger) { MCBridgeLog(level, message); } else { @@ -60,11 +60,11 @@ - (void)log:(enum level)level withFormat:(NSString *__nonnull)format withArgs:(v osLevel = OS_LOG_TYPE_DEFAULT; break ; } - + os_log_with_type(self.logger, osLevel, "%@", message); } } - + [message release]; } @@ -101,7 +101,7 @@ - (NSString *__nonnull)SensitiveString:(const char *)data { if (data == nil) { return @""; } - + if (self.showSensitiveData) { return [NSString stringWithFormat:@"%s", data]; } else { diff --git a/pkg/multipeer-connectivity-driver/driver/MCManager.m b/pkg/multipeer-connectivity-driver/driver/MCManager.m index a2578523..118ee5a0 100644 --- a/pkg/multipeer-connectivity-driver/driver/MCManager.m +++ b/pkg/multipeer-connectivity-driver/driver/MCManager.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport #import #import "MCManager.h" @@ -14,13 +14,13 @@ @implementation MCManager - (MCPeerID *)getMCPeerID:(NSString *)appPID { NSString *kAppPID = @"berty-peerID"; NSString *kPIDData = @"berty-PIDData"; - + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *oldAppPID = [defaults stringForKey:kAppPID]; MCPeerID *peerID; NSData *peerIDData; NSError *error; - + if ([oldAppPID isEqualToString:appPID]) { peerIDData = [defaults dataForKey:kPIDData]; if ((peerID = [NSKeyedUnarchiver unarchivedObjectOfClass:[MCPeerID class] fromData:peerIDData error:&error])) { @@ -139,24 +139,24 @@ - (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCS break; } } - + - (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID{ BridgeReceiveFromPeer([peerID displayName], data); } - - + + - (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress{ - + } - - + + - (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error{ - + } - - + + - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID{ - + } /* diff --git a/pkg/multipeer-connectivity-driver/driver/cgo_bridge.go b/pkg/multipeer-connectivity-driver/driver/cgo_bridge.go index e0819ba1..a0bea046 100644 --- a/pkg/multipeer-connectivity-driver/driver/cgo_bridge.go +++ b/pkg/multipeer-connectivity-driver/driver/cgo_bridge.go @@ -1,5 +1,5 @@ -//go:build darwin && cgo && !catalyst -// +build darwin,cgo,!catalyst +//go:build darwin && cgo && !catalyst && !noproximitytransport +// +build darwin,cgo,!catalyst,!noproximitytransport package driver diff --git a/pkg/multipeer-connectivity-driver/driver/mc-driver.m b/pkg/multipeer-connectivity-driver/driver/mc-driver.m index 66477e55..777772dc 100644 --- a/pkg/multipeer-connectivity-driver/driver/mc-driver.m +++ b/pkg/multipeer-connectivity-driver/driver/mc-driver.m @@ -1,4 +1,4 @@ -// +build darwin +// +build darwin,!noproximitytransport #import #import "mc-driver.h" @@ -98,4 +98,4 @@ void BridgeReceiveFromPeer(NSString *remotePID, NSData *payload) { void MCBridgeLog(enum level level, NSString *message) { char *cMessage = (char *)[message UTF8String]; MCLog(level, cMessage); -} \ No newline at end of file +}