// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol for communication between sync client and server.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}. If you add new Specifics proto,
// also update proto_value_conversions.{h, cc}.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.6.1
// source: sync.proto

package sync_pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ClientToServerMessage_Contents int32

const (
	ClientToServerMessage_COMMIT            ClientToServerMessage_Contents = 1
	ClientToServerMessage_GET_UPDATES       ClientToServerMessage_Contents = 2
	ClientToServerMessage_DEPRECATED_3      ClientToServerMessage_Contents = 3
	ClientToServerMessage_DEPRECATED_4      ClientToServerMessage_Contents = 4
	ClientToServerMessage_CLEAR_SERVER_DATA ClientToServerMessage_Contents = 5
)

// Enum value maps for ClientToServerMessage_Contents.
var (
	ClientToServerMessage_Contents_name = map[int32]string{
		1: "COMMIT",
		2: "GET_UPDATES",
		3: "DEPRECATED_3",
		4: "DEPRECATED_4",
		5: "CLEAR_SERVER_DATA",
	}
	ClientToServerMessage_Contents_value = map[string]int32{
		"COMMIT":            1,
		"GET_UPDATES":       2,
		"DEPRECATED_3":      3,
		"DEPRECATED_4":      4,
		"CLEAR_SERVER_DATA": 5,
	}
)

func (x ClientToServerMessage_Contents) Enum() *ClientToServerMessage_Contents {
	p := new(ClientToServerMessage_Contents)
	*p = x
	return p
}

func (x ClientToServerMessage_Contents) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClientToServerMessage_Contents) Descriptor() protoreflect.EnumDescriptor {
	return file_sync_proto_enumTypes[0].Descriptor()
}

func (ClientToServerMessage_Contents) Type() protoreflect.EnumType {
	return &file_sync_proto_enumTypes[0]
}

func (x ClientToServerMessage_Contents) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *ClientToServerMessage_Contents) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ClientToServerMessage_Contents(num)
	return nil
}

// Deprecated: Use ClientToServerMessage_Contents.Descriptor instead.
func (ClientToServerMessage_Contents) EnumDescriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{8, 0}
}

type CommitResponse_ResponseType int32

const (
	CommitResponse_SUCCESS  CommitResponse_ResponseType = 1
	CommitResponse_CONFLICT CommitResponse_ResponseType = 2 // You're out of date; update and check your data
	// TODO(ncarter): What's the difference between RETRY and TRANSIENT_ERROR?
	CommitResponse_RETRY           CommitResponse_ResponseType = 3 // Someone has a conflicting, non-expired session open
	CommitResponse_INVALID_MESSAGE CommitResponse_ResponseType = 4 // What the client sent was invalid, and trying again
	// won't help.
	CommitResponse_OVER_QUOTA      CommitResponse_ResponseType = 5 // This operation would put you, or you are, over quota
	CommitResponse_TRANSIENT_ERROR CommitResponse_ResponseType = 6 // Something went wrong; try again in a bit
)

// Enum value maps for CommitResponse_ResponseType.
var (
	CommitResponse_ResponseType_name = map[int32]string{
		1: "SUCCESS",
		2: "CONFLICT",
		3: "RETRY",
		4: "INVALID_MESSAGE",
		5: "OVER_QUOTA",
		6: "TRANSIENT_ERROR",
	}
	CommitResponse_ResponseType_value = map[string]int32{
		"SUCCESS":         1,
		"CONFLICT":        2,
		"RETRY":           3,
		"INVALID_MESSAGE": 4,
		"OVER_QUOTA":      5,
		"TRANSIENT_ERROR": 6,
	}
)

func (x CommitResponse_ResponseType) Enum() *CommitResponse_ResponseType {
	p := new(CommitResponse_ResponseType)
	*p = x
	return p
}

func (x CommitResponse_ResponseType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CommitResponse_ResponseType) Descriptor() protoreflect.EnumDescriptor {
	return file_sync_proto_enumTypes[1].Descriptor()
}

func (CommitResponse_ResponseType) Type() protoreflect.EnumType {
	return &file_sync_proto_enumTypes[1]
}

func (x CommitResponse_ResponseType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *CommitResponse_ResponseType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = CommitResponse_ResponseType(num)
	return nil
}

// Deprecated: Use CommitResponse_ResponseType.Descriptor instead.
func (CommitResponse_ResponseType) EnumDescriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{9, 0}
}

// This message contains diagnostic information used to correlate
// commit-related traffic with extensions-related mutations to the
// data models in chromium.  It plays no functional role in
// processing this CommitMessage.
type ChromiumExtensionsActivity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The human-readable ID identifying the extension responsible
	// for the traffic reported in this ChromiumExtensionsActivity.
	ExtensionId *string `protobuf:"bytes,1,opt,name=extension_id,json=extensionId" json:"extension_id,omitempty"`
	// How many times the extension successfully invoked a write
	// operation through the bookmarks API since the last CommitMessage.
	BookmarkWritesSinceLastCommit *uint32 `protobuf:"varint,2,opt,name=bookmark_writes_since_last_commit,json=bookmarkWritesSinceLastCommit" json:"bookmark_writes_since_last_commit,omitempty"`
}

func (x *ChromiumExtensionsActivity) Reset() {
	*x = ChromiumExtensionsActivity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChromiumExtensionsActivity) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChromiumExtensionsActivity) ProtoMessage() {}

func (x *ChromiumExtensionsActivity) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChromiumExtensionsActivity.ProtoReflect.Descriptor instead.
func (*ChromiumExtensionsActivity) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{0}
}

func (x *ChromiumExtensionsActivity) GetExtensionId() string {
	if x != nil && x.ExtensionId != nil {
		return *x.ExtensionId
	}
	return ""
}

func (x *ChromiumExtensionsActivity) GetBookmarkWritesSinceLastCommit() uint32 {
	if x != nil && x.BookmarkWritesSinceLastCommit != nil {
		return *x.BookmarkWritesSinceLastCommit
	}
	return 0
}

// Client specific configuration information.
type ClientConfigParams struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The set of data types this client has enabled. Note that this does not
	// include proxy types, as they do not have protocol field numbers and are
	// placeholder types that implicitly enable protocol types.
	EnabledTypeIds []int32 `protobuf:"varint,1,rep,name=enabled_type_ids,json=enabledTypeIds" json:"enabled_type_ids,omitempty"`
	// Whether the PROXY_TABS proxy datatype is enabled on this client.
	// Deprecated and not populated anymore since M120.
	//
	// Deprecated: Marked as deprecated in sync.proto.
	TabsDatatypeEnabled *bool `protobuf:"varint,2,opt,name=tabs_datatype_enabled,json=tabsDatatypeEnabled" json:"tabs_datatype_enabled,omitempty"`
	// Whether the account(s) present in the content area's cookie jar match the
	// chrome account. If multiple accounts are present in the cookie jar, a
	// mismatch implies all of them are different from the chrome account.
	CookieJarMismatch *bool `protobuf:"varint,3,opt,name=cookie_jar_mismatch,json=cookieJarMismatch" json:"cookie_jar_mismatch,omitempty"`
	// Indicates that the client is not aware of any other active clients
	// interested in the committed data types. This flag shows that it is not
	// necessary to send invalidations for the committed data. A client is
	// considered active if it's DeviceInfo has updated recent enough. This flag
	// does not take into account whether standalone invalidations are enabled (as
	// opposed to |single_client_with_standalone_invalidations|). However, it's
	// set depending on interested data types of other devices, e.g. if there are
	// other devices but they are not interested in SESSION data type, and current
	// commit request contains only SESSION, it will be set to true.
	// Introduced in M88.
	SingleClient *bool `protobuf:"varint,4,opt,name=single_client,json=singleClient" json:"single_client,omitempty"`
	// A list of FCM registration tokens which are obtained from other clients.
	// This list is used by the server to send invalidations to all other clients.
	// If the list is empty, the server should treat this as "there is no
	// information about other clients". In practice, this happens by the next
	// causes:
	// 1. This is the old client which doesn't set this field.
	// 2. There are too many active devices and the list would have too many
	// items.
	// 3. An empty list could also mean that the current client is the only
	// client. This case should be covered by the
	// |single_client_with_standalone_invalidations| field instead (otherwise it
	// could be mixed up with older clients). The server doesn't have to use this
	// field and can ignore it. Note that this list does not take into account
	// interested data types from the other clients.
	// Introduced in M89.
	DevicesFcmRegistrationTokens []string `protobuf:"bytes,5,rep,name=devices_fcm_registration_tokens,json=devicesFcmRegistrationTokens" json:"devices_fcm_registration_tokens,omitempty"`
	// Similar to |single_client| but takes into account only clients with enabled
	// sync standalone invalidations. When set to true, there are no other clients
	// with sync standalone invalidations interested in the committing types and
	// hence it's not necessary to send out standalone invalidations (it may still
	// be necessary to send out invalidations using the legacy system, see
	// |single_client| instead).
	// Introduced in M105.
	SingleClientWithStandaloneInvalidations *bool `protobuf:"varint,6,opt,name=single_client_with_standalone_invalidations,json=singleClientWithStandaloneInvalidations" json:"single_client_with_standalone_invalidations,omitempty"`
	// Similar to |devices_fcm_registration_tokens| but takes into account clients
	// which are subscribed to the data types which are committed in current
	// commit request.
	// A list of FCM registration tokens which are obtained from other clients.
	// This list is used by the server to send invalidations to all other clients.
	// If the list is empty, the server should treat this as "there is no
	// information about other clients". In practice, this happens by the next
	// causes:
	// 1. This is the old client which doesn't set this field.
	// 2. There are too many active devices and the list would have too many
	// items.
	// 3. An empty list could also mean that the current client is the only
	// client. This case should be covered by the
	// |single_client_with_standalone_invalidations| field instead (otherwise it
	// could be mixed up with older clients). The server doesn't have to use this
	// field and can ignore it.
	// Introduced in M105.
	FcmRegistrationTokensForInterestedClients []string `protobuf:"bytes,7,rep,name=fcm_registration_tokens_for_interested_clients,json=fcmRegistrationTokensForInterestedClients" json:"fcm_registration_tokens_for_interested_clients,omitempty"`
	// Similar to |single_client| but takes into account only clients which are
	// subscribed to old invalidations (i.e. not subscribed to sync standalone
	// invalidations). When set to true, there are no other clients subscribed to
	// old invalidations. Note that opposed to |single_client|, this flag does not
	// always take into account the list of interested data types (because
	// interested data types were introduced in M89). When the list is empty, a
	// client is considered to be subscribed to all data types. Note that "single
	// client" is a bit misleading since this will also be true if there are no
	// clients with old invalidations at all.
	// Introduced in M110.
	SingleClientWithOldInvalidations *bool `protobuf:"varint,8,opt,name=single_client_with_old_invalidations,json=singleClientWithOldInvalidations" json:"single_client_with_old_invalidations,omitempty"`
}

func (x *ClientConfigParams) Reset() {
	*x = ClientConfigParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClientConfigParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientConfigParams) ProtoMessage() {}

func (x *ClientConfigParams) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientConfigParams.ProtoReflect.Descriptor instead.
func (*ClientConfigParams) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{1}
}

func (x *ClientConfigParams) GetEnabledTypeIds() []int32 {
	if x != nil {
		return x.EnabledTypeIds
	}
	return nil
}

// Deprecated: Marked as deprecated in sync.proto.
func (x *ClientConfigParams) GetTabsDatatypeEnabled() bool {
	if x != nil && x.TabsDatatypeEnabled != nil {
		return *x.TabsDatatypeEnabled
	}
	return false
}

func (x *ClientConfigParams) GetCookieJarMismatch() bool {
	if x != nil && x.CookieJarMismatch != nil {
		return *x.CookieJarMismatch
	}
	return false
}

func (x *ClientConfigParams) GetSingleClient() bool {
	if x != nil && x.SingleClient != nil {
		return *x.SingleClient
	}
	return false
}

func (x *ClientConfigParams) GetDevicesFcmRegistrationTokens() []string {
	if x != nil {
		return x.DevicesFcmRegistrationTokens
	}
	return nil
}

func (x *ClientConfigParams) GetSingleClientWithStandaloneInvalidations() bool {
	if x != nil && x.SingleClientWithStandaloneInvalidations != nil {
		return *x.SingleClientWithStandaloneInvalidations
	}
	return false
}

func (x *ClientConfigParams) GetFcmRegistrationTokensForInterestedClients() []string {
	if x != nil {
		return x.FcmRegistrationTokensForInterestedClients
	}
	return nil
}

func (x *ClientConfigParams) GetSingleClientWithOldInvalidations() bool {
	if x != nil && x.SingleClientWithOldInvalidations != nil {
		return *x.SingleClientWithOldInvalidations
	}
	return false
}

type CommitMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entries []*SyncEntity `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
	// A GUID that identifies the committing sync client.  This value will be
	// returned as originator_cache_guid for any new items.
	CacheGuid          *string                       `protobuf:"bytes,2,opt,name=cache_guid,json=cacheGuid" json:"cache_guid,omitempty"`
	ExtensionsActivity []*ChromiumExtensionsActivity `protobuf:"bytes,3,rep,name=extensions_activity,json=extensionsActivity" json:"extensions_activity,omitempty"`
	// The configuration of this client at commit time. Used by the server to
	// make commit-time decisions about how to process datatypes that might
	// involve server-side interaction, and e.g require explicit user intent for
	// syncing a particular data type regardless of whether a commit for that
	// datatype is currently being sent up.
	ConfigParams *ClientConfigParams `protobuf:"bytes,4,opt,name=config_params,json=configParams" json:"config_params,omitempty"`
	// Set of optional per-client datatype contexts.
	ClientContexts []*DataTypeContext `protobuf:"bytes,5,rep,name=client_contexts,json=clientContexts" json:"client_contexts,omitempty"`
	// This field need to be 256 bytes if set. This attempts to mitigate CRIME
	// attacks when sync communicate from client to server with compression. So if
	// compression is used, this need to set a 256 random ASCII bytes. If no
	// compression, this field should not be set. The server can ignore the
	// padding.
	Padding *string `protobuf:"bytes,6,opt,name=padding" json:"padding,omitempty"`
}

func (x *CommitMessage) Reset() {
	*x = CommitMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitMessage) ProtoMessage() {}

func (x *CommitMessage) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CommitMessage.ProtoReflect.Descriptor instead.
func (*CommitMessage) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{2}
}

func (x *CommitMessage) GetEntries() []*SyncEntity {
	if x != nil {
		return x.Entries
	}
	return nil
}

func (x *CommitMessage) GetCacheGuid() string {
	if x != nil && x.CacheGuid != nil {
		return *x.CacheGuid
	}
	return ""
}

func (x *CommitMessage) GetExtensionsActivity() []*ChromiumExtensionsActivity {
	if x != nil {
		return x.ExtensionsActivity
	}
	return nil
}

func (x *CommitMessage) GetConfigParams() *ClientConfigParams {
	if x != nil {
		return x.ConfigParams
	}
	return nil
}

func (x *CommitMessage) GetClientContexts() []*DataTypeContext {
	if x != nil {
		return x.ClientContexts
	}
	return nil
}

func (x *CommitMessage) GetPadding() string {
	if x != nil && x.Padding != nil {
		return *x.Padding
	}
	return ""
}

type GetUpdatesMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Indicates the reason for the GetUpdatesMessage.
	// This was *mostly* deprecated in M29.  GetUpdatesOrigin is the new way to
	// encode the reason for the GetUpdates request, but some parts of the server
	// still rely on this field.  It also still contains the
	// "notifications_enabled" flag which needs to be moved elsewhere before this
	// can be fully removed. See https://crbug.com/510165.
	CallerInfo *GetUpdatesCallerInfo `protobuf:"bytes,2,opt,name=caller_info,json=callerInfo" json:"caller_info,omitempty"`
	// Indicates whether related folders should be fetched.
	FetchFolders *bool `protobuf:"varint,3,opt,name=fetch_folders,json=fetchFolders,def=1" json:"fetch_folders,omitempty"`
	// Per-datatype progress marker.
	//
	// With the exception of certain configuration or initial sync requests, the
	// client should include one instance of this field for each enabled data
	// type.
	FromProgressMarker []*DataTypeProgressMarker `protobuf:"bytes,6,rep,name=from_progress_marker,json=fromProgressMarker" json:"from_progress_marker,omitempty"`
	// Indicates whether the response should be sent in chunks.  This may be
	// needed for devices with limited memory resources.  If true, the response
	// will include one or more ClientToServerResponses, with the first one
	// containing GetUpdatesMetadataResponse, and the remaining ones, if any,
	// containing GetUpdatesStreamingResponse.  These ClientToServerResponses are
	// delimited by a length prefix, which is encoded as a varint.
	Streaming *bool `protobuf:"varint,7,opt,name=streaming,def=0" json:"streaming,omitempty"`
	// Whether the client needs the server to provide an encryption key for this
	// account.
	// Note: this should typically only be set on the first GetUpdates a client
	// requests. Clients are expected to persist the encryption key from then on.
	// The allowed frequency for requesting encryption keys is much lower than
	// other datatypes, so repeated usage will likely result in throttling.
	NeedEncryptionKey *bool `protobuf:"varint,8,opt,name=need_encryption_key,json=needEncryptionKey,def=0" json:"need_encryption_key,omitempty"`
	// This value is an updated version of the GetUpdatesCallerInfo's
	// GetUpdatesSource.  It describes the reason for the GetUpdate request.
	// Introduced in M29.
	GetUpdatesOrigin *SyncEnums_GetUpdatesOrigin `protobuf:"varint,9,opt,name=get_updates_origin,json=getUpdatesOrigin,enum=sync_pb.SyncEnums_GetUpdatesOrigin" json:"get_updates_origin,omitempty"`
	// Whether this GU also serves as a retry GU. Any GU that happens after
	// retry timer timeout is a retry GU effectively.
	IsRetry *bool `protobuf:"varint,10,opt,name=is_retry,json=isRetry,def=0" json:"is_retry,omitempty"`
	// Set of optional per-client datatype contexts.
	ClientContexts []*DataTypeContext `protobuf:"bytes,11,rep,name=client_contexts,json=clientContexts" json:"client_contexts,omitempty"`
}

// Default values for GetUpdatesMessage fields.
const (
	Default_GetUpdatesMessage_FetchFolders      = bool(true)
	Default_GetUpdatesMessage_Streaming         = bool(false)
	Default_GetUpdatesMessage_NeedEncryptionKey = bool(false)
	Default_GetUpdatesMessage_IsRetry           = bool(false)
)

func (x *GetUpdatesMessage) Reset() {
	*x = GetUpdatesMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUpdatesMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUpdatesMessage) ProtoMessage() {}

func (x *GetUpdatesMessage) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUpdatesMessage.ProtoReflect.Descriptor instead.
func (*GetUpdatesMessage) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{3}
}

func (x *GetUpdatesMessage) GetCallerInfo() *GetUpdatesCallerInfo {
	if x != nil {
		return x.CallerInfo
	}
	return nil
}

func (x *GetUpdatesMessage) GetFetchFolders() bool {
	if x != nil && x.FetchFolders != nil {
		return *x.FetchFolders
	}
	return Default_GetUpdatesMessage_FetchFolders
}

func (x *GetUpdatesMessage) GetFromProgressMarker() []*DataTypeProgressMarker {
	if x != nil {
		return x.FromProgressMarker
	}
	return nil
}

func (x *GetUpdatesMessage) GetStreaming() bool {
	if x != nil && x.Streaming != nil {
		return *x.Streaming
	}
	return Default_GetUpdatesMessage_Streaming
}

func (x *GetUpdatesMessage) GetNeedEncryptionKey() bool {
	if x != nil && x.NeedEncryptionKey != nil {
		return *x.NeedEncryptionKey
	}
	return Default_GetUpdatesMessage_NeedEncryptionKey
}

func (x *GetUpdatesMessage) GetGetUpdatesOrigin() SyncEnums_GetUpdatesOrigin {
	if x != nil && x.GetUpdatesOrigin != nil {
		return *x.GetUpdatesOrigin
	}
	return SyncEnums_UNKNOWN_ORIGIN
}

func (x *GetUpdatesMessage) GetIsRetry() bool {
	if x != nil && x.IsRetry != nil {
		return *x.IsRetry
	}
	return Default_GetUpdatesMessage_IsRetry
}

func (x *GetUpdatesMessage) GetClientContexts() []*DataTypeContext {
	if x != nil {
		return x.ClientContexts
	}
	return nil
}

// Message from a client asking the server to clear its data. This causes the
// server to generate a new store birthday, which allows dealing reliably with
// in-flight requests (in particular commits) from other clients.
type ClearServerDataMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ClearServerDataMessage) Reset() {
	*x = ClearServerDataMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClearServerDataMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClearServerDataMessage) ProtoMessage() {}

func (x *ClearServerDataMessage) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClearServerDataMessage.ProtoReflect.Descriptor instead.
func (*ClearServerDataMessage) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{4}
}

// Response to a ClearServerData request.
type ClearServerDataResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ClearServerDataResponse) Reset() {
	*x = ClearServerDataResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClearServerDataResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClearServerDataResponse) ProtoMessage() {}

func (x *ClearServerDataResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClearServerDataResponse.ProtoReflect.Descriptor instead.
func (*ClearServerDataResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{5}
}

// The client must preserve, store, and resend the chip bag with
// every request.  The server depends on the chip bag in order
// to precisely choreograph a client-server state machines.
//
// Because the client stores and sends this data on every request,
// the contents of the chip bag should be kept relatively small.
//
// If the server does not return a chip bag, the client must assume
// that there has been no change to the chip bag.  The client must
// resend the bag of chips it had prior on the next request.
//
// The client must make the chip bag durable if and only if it
// processes the response from the server.
type ChipBag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Server chips are deliberately oqaque, allowing the server
	// to encapsulate its state machine logic.
	ServerChips []byte `protobuf:"bytes,1,opt,name=server_chips,json=serverChips" json:"server_chips,omitempty"`
}

func (x *ChipBag) Reset() {
	*x = ChipBag{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ChipBag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ChipBag) ProtoMessage() {}

func (x *ChipBag) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ChipBag.ProtoReflect.Descriptor instead.
func (*ChipBag) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{6}
}

func (x *ChipBag) GetServerChips() []byte {
	if x != nil {
		return x.ServerChips
	}
	return nil
}

// Information about the syncer's state.
type ClientStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Flag to indicate if the client has detected hierarchy conflcits.  The flag
	// is left unset if update application has not been attempted yet.
	//
	// The server should attempt to resolve any hierarchy conflicts when this flag
	// is set.  The client may not assume that any particular action will be
	// taken.  There is no guarantee the problem will be addressed in a reasonable
	// amount of time.
	// TODO(crbug.com/1315573): Deprecated in M103.
	//
	// Deprecated: Marked as deprecated in sync.proto.
	HierarchyConflictDetected *bool `protobuf:"varint,1,opt,name=hierarchy_conflict_detected,json=hierarchyConflictDetected" json:"hierarchy_conflict_detected,omitempty"`
	// Whether the client has full sync (or, sync the feature) enabled or not.
	IsSyncFeatureEnabled *bool `protobuf:"varint,2,opt,name=is_sync_feature_enabled,json=isSyncFeatureEnabled" json:"is_sync_feature_enabled,omitempty"`
}

func (x *ClientStatus) Reset() {
	*x = ClientStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClientStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientStatus) ProtoMessage() {}

func (x *ClientStatus) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientStatus.ProtoReflect.Descriptor instead.
func (*ClientStatus) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{7}
}

// Deprecated: Marked as deprecated in sync.proto.
func (x *ClientStatus) GetHierarchyConflictDetected() bool {
	if x != nil && x.HierarchyConflictDetected != nil {
		return *x.HierarchyConflictDetected
	}
	return false
}

func (x *ClientStatus) GetIsSyncFeatureEnabled() bool {
	if x != nil && x.IsSyncFeatureEnabled != nil {
		return *x.IsSyncFeatureEnabled
	}
	return false
}

type ClientToServerMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// |share| field is only used on the server for logging and can sometimes
	// contain empty string. It is still useful for logging username when it can't
	// be derived from access token in case of auth error.
	Share           *string `protobuf:"bytes,1,req,name=share" json:"share,omitempty"`
	ProtocolVersion *int32  `protobuf:"varint,2,opt,name=protocol_version,json=protocolVersion,def=99" json:"protocol_version,omitempty"`
	// Each ClientToServerMessage contains one request defined by the
	// message_contents. Each type has a corresponding message field that will be
	// present iff the message is of that type. E.g. a commit message will have a
	// message_contents of COMMIT and its commit field will be present.
	MessageContents *ClientToServerMessage_Contents `protobuf:"varint,3,req,name=message_contents,json=messageContents,enum=sync_pb.ClientToServerMessage_Contents" json:"message_contents,omitempty"`
	Commit          *CommitMessage                  `protobuf:"bytes,4,opt,name=commit" json:"commit,omitempty"`
	GetUpdates      *GetUpdatesMessage              `protobuf:"bytes,5,opt,name=get_updates,json=getUpdates" json:"get_updates,omitempty"`
	// Opaque server-provided ID representing an "epoch" of the server-side data.
	// Clients must hand this opaque ID back to the server as part of all requests
	// within the same sync session (i.e. for all requests to the server except
	// the very first GetUpdates request). See analogous field
	// ClientToServerResponse.store_birthday for more details about its lifetime.
	StoreBirthday *string `protobuf:"bytes,7,opt,name=store_birthday,json=storeBirthday" json:"store_birthday,omitempty"`
	// Client side state information for debugging purpose.
	// This is only sent on the first getupdates of every sync cycle,
	// as an optimization to save bandwidth.
	DebugInfo *DebugInfo `protobuf:"bytes,10,opt,name=debug_info,json=debugInfo" json:"debug_info,omitempty"`
	// Per-client state for use by the server. Sent with every message sent to the
	// server.
	BagOfChips *ChipBag `protobuf:"bytes,11,opt,name=bag_of_chips,json=bagOfChips" json:"bag_of_chips,omitempty"`
	// Google API key.
	ApiKey *string `protobuf:"bytes,12,opt,name=api_key,json=apiKey" json:"api_key,omitempty"`
	// Client's self-reported state.
	// The client should set this on every message sent to the server, though its
	// member fields may often be unset.
	ClientStatus *ClientStatus `protobuf:"bytes,13,opt,name=client_status,json=clientStatus" json:"client_status,omitempty"`
	// The ID that our invalidation client used to identify itself to the server.
	// Sending the ID here allows the server to not send notifications of our own
	// changes to our invalidator.
	// The field was deprecated in M117 and is no longer populated.
	//
	// Deprecated: Marked as deprecated in sync.proto.
	InvalidatorClientId *string `protobuf:"bytes,14,opt,name=invalidator_client_id,json=invalidatorClientId" json:"invalidator_client_id,omitempty"`
	// Identifies this ClientToServerMessage as a clear server data request. This
	// field is present when message_contents is CLEAR_SERVER_DATA.
	ClearServerData *ClearServerDataMessage `protobuf:"bytes,15,opt,name=clear_server_data,json=clearServerData" json:"clear_server_data,omitempty"`
}

// Default values for ClientToServerMessage fields.
const (
	Default_ClientToServerMessage_ProtocolVersion = int32(99)
)

func (x *ClientToServerMessage) Reset() {
	*x = ClientToServerMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClientToServerMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientToServerMessage) ProtoMessage() {}

func (x *ClientToServerMessage) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientToServerMessage.ProtoReflect.Descriptor instead.
func (*ClientToServerMessage) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{8}
}

func (x *ClientToServerMessage) GetShare() string {
	if x != nil && x.Share != nil {
		return *x.Share
	}
	return ""
}

func (x *ClientToServerMessage) GetProtocolVersion() int32 {
	if x != nil && x.ProtocolVersion != nil {
		return *x.ProtocolVersion
	}
	return Default_ClientToServerMessage_ProtocolVersion
}

func (x *ClientToServerMessage) GetMessageContents() ClientToServerMessage_Contents {
	if x != nil && x.MessageContents != nil {
		return *x.MessageContents
	}
	return ClientToServerMessage_COMMIT
}

func (x *ClientToServerMessage) GetCommit() *CommitMessage {
	if x != nil {
		return x.Commit
	}
	return nil
}

func (x *ClientToServerMessage) GetGetUpdates() *GetUpdatesMessage {
	if x != nil {
		return x.GetUpdates
	}
	return nil
}

func (x *ClientToServerMessage) GetStoreBirthday() string {
	if x != nil && x.StoreBirthday != nil {
		return *x.StoreBirthday
	}
	return ""
}

func (x *ClientToServerMessage) GetDebugInfo() *DebugInfo {
	if x != nil {
		return x.DebugInfo
	}
	return nil
}

func (x *ClientToServerMessage) GetBagOfChips() *ChipBag {
	if x != nil {
		return x.BagOfChips
	}
	return nil
}

func (x *ClientToServerMessage) GetApiKey() string {
	if x != nil && x.ApiKey != nil {
		return *x.ApiKey
	}
	return ""
}

func (x *ClientToServerMessage) GetClientStatus() *ClientStatus {
	if x != nil {
		return x.ClientStatus
	}
	return nil
}

// Deprecated: Marked as deprecated in sync.proto.
func (x *ClientToServerMessage) GetInvalidatorClientId() string {
	if x != nil && x.InvalidatorClientId != nil {
		return *x.InvalidatorClientId
	}
	return ""
}

func (x *ClientToServerMessage) GetClearServerData() *ClearServerDataMessage {
	if x != nil {
		return x.ClearServerData
	}
	return nil
}

type CommitResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entryresponse []*CommitResponse_EntryResponse `protobuf:"group,1,rep,name=EntryResponse,json=entryresponse" json:"entryresponse,omitempty"`
}

func (x *CommitResponse) Reset() {
	*x = CommitResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitResponse) ProtoMessage() {}

func (x *CommitResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CommitResponse.ProtoReflect.Descriptor instead.
func (*CommitResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{9}
}

func (x *CommitResponse) GetEntryresponse() []*CommitResponse_EntryResponse {
	if x != nil {
		return x.Entryresponse
	}
	return nil
}

type GetUpdatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// New sync entries that the client should apply.
	Entries []*SyncEntity `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"`
	// Approximate count of changes remaining - use this for UI feedback.
	// If present and zero, this estimate is firm: the server has no changes
	// after the current batch.
	ChangesRemaining *int64 `protobuf:"varint,4,opt,name=changes_remaining,json=changesRemaining" json:"changes_remaining,omitempty"`
	// Opaque, per-datatype timestamp-like tokens.  Clients should retain and
	// persist the values returned in this field, and present them back to the
	// server to indicate the starting point for future update requests.
	//
	// This will be sent only if the client provided |from_progress_marker|
	// in the update request.
	//
	// The server may provide a new progress marker even if this is the end of
	// the batch, or if there were no new updates on the server; and the client
	// must save these.  If the server does not provide a |new_progress_marker|
	// value for a particular datatype, when the request provided a
	// |from_progress_marker| value for that datatype, the client should
	// interpret this to mean "no change from the previous state" and retain its
	// previous progress-marker value for that datatype.
	NewProgressMarker []*DataTypeProgressMarker `protobuf:"bytes,5,rep,name=new_progress_marker,json=newProgressMarker" json:"new_progress_marker,omitempty"`
	// The current encryption keys associated with this account. Will be set if
	// the GetUpdatesMessage in the request had need_encryption_key == true or
	// the server has updated the set of encryption keys (e.g. due to a key
	// rotation).
	EncryptionKeys [][]byte `protobuf:"bytes,6,rep,name=encryption_keys,json=encryptionKeys" json:"encryption_keys,omitempty"`
	// Set of optional datatype contexts server mutations.
	ContextMutations []*DataTypeContext `protobuf:"bytes,7,rep,name=context_mutations,json=contextMutations" json:"context_mutations,omitempty"`
}

func (x *GetUpdatesResponse) Reset() {
	*x = GetUpdatesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUpdatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUpdatesResponse) ProtoMessage() {}

func (x *GetUpdatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUpdatesResponse.ProtoReflect.Descriptor instead.
func (*GetUpdatesResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{10}
}

func (x *GetUpdatesResponse) GetEntries() []*SyncEntity {
	if x != nil {
		return x.Entries
	}
	return nil
}

func (x *GetUpdatesResponse) GetChangesRemaining() int64 {
	if x != nil && x.ChangesRemaining != nil {
		return *x.ChangesRemaining
	}
	return 0
}

func (x *GetUpdatesResponse) GetNewProgressMarker() []*DataTypeProgressMarker {
	if x != nil {
		return x.NewProgressMarker
	}
	return nil
}

func (x *GetUpdatesResponse) GetEncryptionKeys() [][]byte {
	if x != nil {
		return x.EncryptionKeys
	}
	return nil
}

func (x *GetUpdatesResponse) GetContextMutations() []*DataTypeContext {
	if x != nil {
		return x.ContextMutations
	}
	return nil
}

type ClientToServerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Commit     *CommitResponse     `protobuf:"bytes,1,opt,name=commit" json:"commit,omitempty"`
	GetUpdates *GetUpdatesResponse `protobuf:"bytes,2,opt,name=get_updates,json=getUpdates" json:"get_updates,omitempty"`
	// Up until protocol_version 24, the default was SUCCESS which made it
	// impossible to add new enum values since older clients would parse any
	// out-of-range value as SUCCESS. Starting with 25, unless explicitly set,
	// the error_code will be UNKNOWN so that clients know when they're
	// out-of-date. Note also that when using protocol_version < 25,
	// TRANSIENT_ERROR is not supported. Instead, the server sends back a HTTP
	// 400 error code. This is deprecated now.
	ErrorCode    *SyncEnums_ErrorType `protobuf:"varint,4,opt,name=error_code,json=errorCode,enum=sync_pb.SyncEnums_ErrorType,def=100" json:"error_code,omitempty"`
	ErrorMessage *string              `protobuf:"bytes,5,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
	// Opaque server-provided ID representing an "epoch" of the server-side data,
	// referred to as "birthday" or "store birthday". This ID remains fixed until
	// server-side data gets cleared/reset (e.g. via ClearServerDataMessage),
	// which clients experience as NOT_MY_BIRTHDAY error, and involves clearing
	// all local sync metadata including the cached store birthday.
	//
	// This mechanism allows the server to implement clear-data/reset
	// functionality that reliably identifies and deletes sync entities uploaded
	// before the clear-data/reset event (e.g. via ClearServerDataMessage).
	// Furthermore, it allows the server to deal reliably with in-flight changes
	// from other clients upon clear-data event, because all writes issued with an
	// outdated birthday (which in-flight writes would use) can be detected by the
	// server.
	StoreBirthday *string        `protobuf:"bytes,6,opt,name=store_birthday,json=storeBirthday" json:"store_birthday,omitempty"`
	ClientCommand *ClientCommand `protobuf:"bytes,7,opt,name=client_command,json=clientCommand" json:"client_command,omitempty"`
	// The data types whose storage has been migrated.  Present when the value of
	// error_code is MIGRATION_DONE.
	MigratedDataTypeId []int32                       `protobuf:"varint,12,rep,name=migrated_data_type_id,json=migratedDataTypeId" json:"migrated_data_type_id,omitempty"`
	Error              *ClientToServerResponse_Error `protobuf:"bytes,13,opt,name=error" json:"error,omitempty"`
	// The new per-client state for this client. If set, should be persisted and
	// sent with any subsequent ClientToServerMessages.
	NewBagOfChips *ChipBag `protobuf:"bytes,14,opt,name=new_bag_of_chips,json=newBagOfChips" json:"new_bag_of_chips,omitempty"`
	// Present if this ClientToServerResponse is in response to a ClearServerData
	// request.
	ClearServerData *ClearServerDataResponse `protobuf:"bytes,15,opt,name=clear_server_data,json=clearServerData" json:"clear_server_data,omitempty"`
}

// Default values for ClientToServerResponse fields.
const (
	Default_ClientToServerResponse_ErrorCode = SyncEnums_UNKNOWN
)

func (x *ClientToServerResponse) Reset() {
	*x = ClientToServerResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClientToServerResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientToServerResponse) ProtoMessage() {}

func (x *ClientToServerResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientToServerResponse.ProtoReflect.Descriptor instead.
func (*ClientToServerResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{11}
}

func (x *ClientToServerResponse) GetCommit() *CommitResponse {
	if x != nil {
		return x.Commit
	}
	return nil
}

func (x *ClientToServerResponse) GetGetUpdates() *GetUpdatesResponse {
	if x != nil {
		return x.GetUpdates
	}
	return nil
}

func (x *ClientToServerResponse) GetErrorCode() SyncEnums_ErrorType {
	if x != nil && x.ErrorCode != nil {
		return *x.ErrorCode
	}
	return Default_ClientToServerResponse_ErrorCode
}

func (x *ClientToServerResponse) GetErrorMessage() string {
	if x != nil && x.ErrorMessage != nil {
		return *x.ErrorMessage
	}
	return ""
}

func (x *ClientToServerResponse) GetStoreBirthday() string {
	if x != nil && x.StoreBirthday != nil {
		return *x.StoreBirthday
	}
	return ""
}

func (x *ClientToServerResponse) GetClientCommand() *ClientCommand {
	if x != nil {
		return x.ClientCommand
	}
	return nil
}

func (x *ClientToServerResponse) GetMigratedDataTypeId() []int32 {
	if x != nil {
		return x.MigratedDataTypeId
	}
	return nil
}

func (x *ClientToServerResponse) GetError() *ClientToServerResponse_Error {
	if x != nil {
		return x.Error
	}
	return nil
}

func (x *ClientToServerResponse) GetNewBagOfChips() *ChipBag {
	if x != nil {
		return x.NewBagOfChips
	}
	return nil
}

func (x *ClientToServerResponse) GetClearServerData() *ClearServerDataResponse {
	if x != nil {
		return x.ClearServerData
	}
	return nil
}

// A message to notify the server of certain sync events. Idempotent. Send these
// to the /event endpoint.
type EventRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SyncDisabled *SyncDisabledEvent `protobuf:"bytes,1,opt,name=sync_disabled,json=syncDisabled" json:"sync_disabled,omitempty"`
}

func (x *EventRequest) Reset() {
	*x = EventRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EventRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EventRequest) ProtoMessage() {}

func (x *EventRequest) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead.
func (*EventRequest) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{12}
}

func (x *EventRequest) GetSyncDisabled() *SyncDisabledEvent {
	if x != nil {
		return x.SyncDisabled
	}
	return nil
}

type EventResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *EventResponse) Reset() {
	*x = EventResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EventResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EventResponse) ProtoMessage() {}

func (x *EventResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EventResponse.ProtoReflect.Descriptor instead.
func (*EventResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{13}
}

// A message indicating that the sync engine has been disabled on a client.
type SyncDisabledEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The GUID that identifies the sync client.
	CacheGuid *string `protobuf:"bytes,1,opt,name=cache_guid,json=cacheGuid" json:"cache_guid,omitempty"`
	// The store birthday that the client was using before disabling sync.
	StoreBirthday *string `protobuf:"bytes,2,opt,name=store_birthday,json=storeBirthday" json:"store_birthday,omitempty"`
}

func (x *SyncDisabledEvent) Reset() {
	*x = SyncDisabledEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SyncDisabledEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncDisabledEvent) ProtoMessage() {}

func (x *SyncDisabledEvent) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncDisabledEvent.ProtoReflect.Descriptor instead.
func (*SyncDisabledEvent) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{14}
}

func (x *SyncDisabledEvent) GetCacheGuid() string {
	if x != nil && x.CacheGuid != nil {
		return *x.CacheGuid
	}
	return ""
}

func (x *SyncDisabledEvent) GetStoreBirthday() string {
	if x != nil && x.StoreBirthday != nil {
		return *x.StoreBirthday
	}
	return ""
}

type CommitResponse_EntryResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ResponseType *CommitResponse_ResponseType `protobuf:"varint,2,req,name=response_type,json=responseType,enum=sync_pb.CommitResponse_ResponseType" json:"response_type,omitempty"`
	// Sync servers may also return a new ID for an existing item, indicating
	// a new entry's been created to hold the data the client's sending up.
	IdString *string `protobuf:"bytes,3,opt,name=id_string,json=idString" json:"id_string,omitempty"`
	// The item's current version.
	Version      *int64  `protobuf:"varint,6,opt,name=version" json:"version,omitempty"`
	ErrorMessage *string `protobuf:"bytes,9,opt,name=error_message,json=errorMessage" json:"error_message,omitempty"`
	// Last modification time (in milliseconds since Unix epoch).  Allows the
	// server to override the client-supplied mtime during a commit operation.
	// TODO(crbug.com/1182252): Delete this field too.
	//
	// Deprecated: Marked as deprecated in sync.proto.
	Mtime *int64 `protobuf:"varint,10,opt,name=mtime" json:"mtime,omitempty"`
	// Datatype specific error (if any).
	DatatypeSpecificError *CommitResponse_EntryResponse_DatatypeSpecificError `protobuf:"bytes,11,opt,name=datatype_specific_error,json=datatypeSpecificError" json:"datatype_specific_error,omitempty"`
}

func (x *CommitResponse_EntryResponse) Reset() {
	*x = CommitResponse_EntryResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitResponse_EntryResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitResponse_EntryResponse) ProtoMessage() {}

func (x *CommitResponse_EntryResponse) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CommitResponse_EntryResponse.ProtoReflect.Descriptor instead.
func (*CommitResponse_EntryResponse) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{9, 0}
}

func (x *CommitResponse_EntryResponse) GetResponseType() CommitResponse_ResponseType {
	if x != nil && x.ResponseType != nil {
		return *x.ResponseType
	}
	return CommitResponse_SUCCESS
}

func (x *CommitResponse_EntryResponse) GetIdString() string {
	if x != nil && x.IdString != nil {
		return *x.IdString
	}
	return ""
}

func (x *CommitResponse_EntryResponse) GetVersion() int64 {
	if x != nil && x.Version != nil {
		return *x.Version
	}
	return 0
}

func (x *CommitResponse_EntryResponse) GetErrorMessage() string {
	if x != nil && x.ErrorMessage != nil {
		return *x.ErrorMessage
	}
	return ""
}

// Deprecated: Marked as deprecated in sync.proto.
func (x *CommitResponse_EntryResponse) GetMtime() int64 {
	if x != nil && x.Mtime != nil {
		return *x.Mtime
	}
	return 0
}

func (x *CommitResponse_EntryResponse) GetDatatypeSpecificError() *CommitResponse_EntryResponse_DatatypeSpecificError {
	if x != nil {
		return x.DatatypeSpecificError
	}
	return nil
}

type CommitResponse_EntryResponse_DatatypeSpecificError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to DatatypeError:
	//	*CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError
	//	*CommitResponse_EntryResponse_DatatypeSpecificError_OutgoingPasswordSharingInvitationError
	DatatypeError isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError `protobuf_oneof:"datatype_error"`
}

func (x *CommitResponse_EntryResponse_DatatypeSpecificError) Reset() {
	*x = CommitResponse_EntryResponse_DatatypeSpecificError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CommitResponse_EntryResponse_DatatypeSpecificError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitResponse_EntryResponse_DatatypeSpecificError) ProtoMessage() {}

func (x *CommitResponse_EntryResponse_DatatypeSpecificError) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CommitResponse_EntryResponse_DatatypeSpecificError.ProtoReflect.Descriptor instead.
func (*CommitResponse_EntryResponse_DatatypeSpecificError) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{9, 0, 0}
}

func (m *CommitResponse_EntryResponse_DatatypeSpecificError) GetDatatypeError() isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError {
	if m != nil {
		return m.DatatypeError
	}
	return nil
}

func (x *CommitResponse_EntryResponse_DatatypeSpecificError) GetSharingMessageError() *SharingMessageCommitError {
	if x, ok := x.GetDatatypeError().(*CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError); ok {
		return x.SharingMessageError
	}
	return nil
}

func (x *CommitResponse_EntryResponse_DatatypeSpecificError) GetOutgoingPasswordSharingInvitationError() *OutgoingPasswordSharingInvitationCommitError {
	if x, ok := x.GetDatatypeError().(*CommitResponse_EntryResponse_DatatypeSpecificError_OutgoingPasswordSharingInvitationError); ok {
		return x.OutgoingPasswordSharingInvitationError
	}
	return nil
}

type isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError interface {
	isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError()
}

type CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError struct {
	SharingMessageError *SharingMessageCommitError `protobuf:"bytes,1,opt,name=sharing_message_error,json=sharingMessageError,oneof"`
}

type CommitResponse_EntryResponse_DatatypeSpecificError_OutgoingPasswordSharingInvitationError struct {
	OutgoingPasswordSharingInvitationError *OutgoingPasswordSharingInvitationCommitError `protobuf:"bytes,2,opt,name=outgoing_password_sharing_invitation_error,json=outgoingPasswordSharingInvitationError,oneof"`
}

func (*CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError) isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError() {
}

func (*CommitResponse_EntryResponse_DatatypeSpecificError_OutgoingPasswordSharingInvitationError) isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError() {
}

type ClientToServerResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ErrorType        *SyncEnums_ErrorType `protobuf:"varint,1,opt,name=error_type,json=errorType,enum=sync_pb.SyncEnums_ErrorType,def=100" json:"error_type,omitempty"`
	ErrorDescription *string              `protobuf:"bytes,2,opt,name=error_description,json=errorDescription" json:"error_description,omitempty"`
	Action           *SyncEnums_Action    `protobuf:"varint,4,opt,name=action,enum=sync_pb.SyncEnums_Action,def=5" json:"action,omitempty"`
	// Currently meaningful if |error_type| is throttled or partial_failure.
	// In the throttled case, if this field is absent then the whole client
	// (all datatypes) is throttled.
	// In the partial_failure case, this field denotes partial failures. The
	// client should retry those datatypes with exponential backoff.
	ErrorDataTypeIds []int32 `protobuf:"varint,5,rep,name=error_data_type_ids,json=errorDataTypeIds" json:"error_data_type_ids,omitempty"`
}

// Default values for ClientToServerResponse_Error fields.
const (
	Default_ClientToServerResponse_Error_ErrorType = SyncEnums_UNKNOWN
	Default_ClientToServerResponse_Error_Action    = SyncEnums_UNKNOWN_ACTION
)

func (x *ClientToServerResponse_Error) Reset() {
	*x = ClientToServerResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_sync_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ClientToServerResponse_Error) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientToServerResponse_Error) ProtoMessage() {}

func (x *ClientToServerResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_sync_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientToServerResponse_Error.ProtoReflect.Descriptor instead.
func (*ClientToServerResponse_Error) Descriptor() ([]byte, []int) {
	return file_sync_proto_rawDescGZIP(), []int{11, 0}
}

func (x *ClientToServerResponse_Error) GetErrorType() SyncEnums_ErrorType {
	if x != nil && x.ErrorType != nil {
		return *x.ErrorType
	}
	return Default_ClientToServerResponse_Error_ErrorType
}

func (x *ClientToServerResponse_Error) GetErrorDescription() string {
	if x != nil && x.ErrorDescription != nil {
		return *x.ErrorDescription
	}
	return ""
}

func (x *ClientToServerResponse_Error) GetAction() SyncEnums_Action {
	if x != nil && x.Action != nil {
		return *x.Action
	}
	return Default_ClientToServerResponse_Error_Action
}

func (x *ClientToServerResponse_Error) GetErrorDataTypeIds() []int32 {
	if x != nil {
		return x.ErrorDataTypeIds
	}
	return nil
}

var File_sync_proto protoreflect.FileDescriptor

var file_sync_proto_rawDesc = []byte{
	0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f,
	0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x11, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75, 0x6d,
	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
	0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
	0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x89, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x41,
	0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e,
	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65,
	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x21, 0x62, 0x6f,
	0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x69,
	0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x57,
	0x72, 0x69, 0x74, 0x65, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f,
	0x6d, 0x6d, 0x69, 0x74, 0x22, 0xa3, 0x04, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x54, 0x79,
	0x70, 0x65, 0x49, 0x64, 0x73, 0x12, 0x36, 0x0a, 0x15, 0x74, 0x61, 0x62, 0x73, 0x5f, 0x64, 0x61,
	0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x74, 0x61, 0x62, 0x73, 0x44, 0x61,
	0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a,
	0x13, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x5f, 0x6a, 0x61, 0x72, 0x5f, 0x6d, 0x69, 0x73, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6f, 0x6f, 0x6b,
	0x69, 0x65, 0x4a, 0x61, 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a,
	0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x66, 0x63,
	0x6d, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
	0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x73, 0x46, 0x63, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x2b, 0x73, 0x69, 0x6e,
	0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f,
	0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x27,
	0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68,
	0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69,
	0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x2e, 0x66, 0x63, 0x6d, 0x5f, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65,
	0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x29, 0x66, 0x63, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73,
	0x74, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x24, 0x73, 0x69,
	0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68,
	0x5f, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
	0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x6c, 0x64, 0x49, 0x6e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x0d, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x07,
	0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x78,
	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
	0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
	0x62, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
	0x69, 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x12, 0x65, 0x78,
	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
	0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
	0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f,
	0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22,
	0xcc, 0x04, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x43,
	0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65,
	0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x0d, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x66,
	0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72,
	0x75, 0x65, 0x52, 0x0c, 0x66, 0x65, 0x74, 0x63, 0x68, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73,
	0x12, 0x51, 0x0a, 0x14, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
	0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70,
	0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52,
	0x12, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72,
	0x6b, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x13, 0x6e, 0x65, 0x65, 0x64,
	0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6e, 0x65,
	0x65, 0x64, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12,
	0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x6f,
	0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e,
	0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e,
	0x52, 0x10, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67,
	0x69, 0x6e, 0x12, 0x20, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52,
	0x65, 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65,
	0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08,
	0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0xe9,
	0x07, 0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x1e,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6f,
	0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x18,
	0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74,
	0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61,
	0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x07, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x12, 0x21,
	0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x69, 0x70,
	0x73, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x42, 0x0a, 0x1b, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x68, 0x69, 0x65,
	0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x44, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x53, 0x79, 0x6e, 0x63, 0x46,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa0, 0x06,
	0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2d, 0x0a,
	0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x39, 0x39, 0x52, 0x0f, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x10,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73,
	0x18, 0x03, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52,
	0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73,
	0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x12, 0x3b, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e,
	0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a,
	0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, 0x72, 0x74,
	0x68, 0x64, 0x61, 0x79, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e,
	0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x64, 0x65,
	0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x0c, 0x62, 0x61, 0x67, 0x5f, 0x6f,
	0x66, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x52,
	0x0a, 0x62, 0x61, 0x67, 0x4f, 0x66, 0x43, 0x68, 0x69, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61,
	0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70,
	0x69, 0x4b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x36, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x02, 0x18, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61,
	0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c,
	0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x62, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x73, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a,
	0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x10,
	0x0a, 0x0c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x33, 0x10, 0x03,
	0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x34,
	0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x56,
	0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a,
	0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0c, 0x61, 0x75, 0x74,
	0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
	0x22, 0x86, 0x07, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x72, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x1a, 0xb6, 0x05, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a,
	0x09, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x69, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6d, 0x74,
	0x69, 0x6d, 0x65, 0x12, 0x73, 0x0a, 0x17, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f,
	0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43,
	0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61,
	0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x52, 0x15, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69,
	0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x99, 0x02, 0x0a, 0x15, 0x44, 0x61, 0x74,
	0x61, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x93, 0x01, 0x0a,
	0x2a, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,
	0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x35, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x75, 0x74, 0x67,
	0x6f, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x26, 0x6f, 0x75, 0x74, 0x67,
	0x6f, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06,
	0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x10, 0x70, 0x61,
	0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x0f, 0x6e, 0x6f, 0x6e, 0x5f, 0x75, 0x6e,
	0x69, 0x71, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x0c, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43,
	0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49,
	0x43, 0x54, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x03, 0x12,
	0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x4f,
	0x54, 0x41, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x45, 0x4e,
	0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x22, 0xde, 0x02, 0x0a, 0x12, 0x47, 0x65,
	0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x2d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63,
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12,
	0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69,
	0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x13,
	0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72,
	0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x67,
	0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x11, 0x6e, 0x65, 0x77, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x27, 0x0a,
	0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73,
	0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
	0x74, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61,
	0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6e,
	0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x04, 0x08,
	0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa5, 0x07, 0x0a, 0x16, 0x43,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e,
	0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06,
	0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
	0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52,
	0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
	0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61,
	0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69,
	0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c,
	0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61,
	0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
	0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x67,
	0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61,
	0x67, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x67, 0x4f, 0x66, 0x43, 0x68, 0x69, 0x70, 0x73,
	0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x63,
	0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xf7,
	0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73,
	0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73,
	0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b,
	0x0a, 0x11, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x06, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e,
	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f,
	0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d,
	0x0a, 0x13, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x73, 0x4a, 0x04, 0x08,
	0x03, 0x10, 0x04, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04,
	0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b,
	0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f,
	0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x64, 0x61,
	0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63,
	0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72,
	0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x42,
	0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e,
	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f,
	0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
}

var (
	file_sync_proto_rawDescOnce sync.Once
	file_sync_proto_rawDescData = file_sync_proto_rawDesc
)

func file_sync_proto_rawDescGZIP() []byte {
	file_sync_proto_rawDescOnce.Do(func() {
		file_sync_proto_rawDescData = protoimpl.X.CompressGZIP(file_sync_proto_rawDescData)
	})
	return file_sync_proto_rawDescData
}

var file_sync_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_sync_proto_goTypes = []interface{}{
	(ClientToServerMessage_Contents)(0),                        // 0: sync_pb.ClientToServerMessage.Contents
	(CommitResponse_ResponseType)(0),                           // 1: sync_pb.CommitResponse.ResponseType
	(*ChromiumExtensionsActivity)(nil),                         // 2: sync_pb.ChromiumExtensionsActivity
	(*ClientConfigParams)(nil),                                 // 3: sync_pb.ClientConfigParams
	(*CommitMessage)(nil),                                      // 4: sync_pb.CommitMessage
	(*GetUpdatesMessage)(nil),                                  // 5: sync_pb.GetUpdatesMessage
	(*ClearServerDataMessage)(nil),                             // 6: sync_pb.ClearServerDataMessage
	(*ClearServerDataResponse)(nil),                            // 7: sync_pb.ClearServerDataResponse
	(*ChipBag)(nil),                                            // 8: sync_pb.ChipBag
	(*ClientStatus)(nil),                                       // 9: sync_pb.ClientStatus
	(*ClientToServerMessage)(nil),                              // 10: sync_pb.ClientToServerMessage
	(*CommitResponse)(nil),                                     // 11: sync_pb.CommitResponse
	(*GetUpdatesResponse)(nil),                                 // 12: sync_pb.GetUpdatesResponse
	(*ClientToServerResponse)(nil),                             // 13: sync_pb.ClientToServerResponse
	(*EventRequest)(nil),                                       // 14: sync_pb.EventRequest
	(*EventResponse)(nil),                                      // 15: sync_pb.EventResponse
	(*SyncDisabledEvent)(nil),                                  // 16: sync_pb.SyncDisabledEvent
	(*CommitResponse_EntryResponse)(nil),                       // 17: sync_pb.CommitResponse.EntryResponse
	(*CommitResponse_EntryResponse_DatatypeSpecificError)(nil), // 18: sync_pb.CommitResponse.EntryResponse.DatatypeSpecificError
	(*ClientToServerResponse_Error)(nil),                       // 19: sync_pb.ClientToServerResponse.Error
	(*SyncEntity)(nil),                                         // 20: sync_pb.SyncEntity
	(*DataTypeContext)(nil),                                    // 21: sync_pb.DataTypeContext
	(*GetUpdatesCallerInfo)(nil),                               // 22: sync_pb.GetUpdatesCallerInfo
	(*DataTypeProgressMarker)(nil),                             // 23: sync_pb.DataTypeProgressMarker
	(SyncEnums_GetUpdatesOrigin)(0),                            // 24: sync_pb.SyncEnums.GetUpdatesOrigin
	(*DebugInfo)(nil),                                          // 25: sync_pb.DebugInfo
	(SyncEnums_ErrorType)(0),                                   // 26: sync_pb.SyncEnums.ErrorType
	(*ClientCommand)(nil),                                      // 27: sync_pb.ClientCommand
	(*SharingMessageCommitError)(nil),                          // 28: sync_pb.SharingMessageCommitError
	(*OutgoingPasswordSharingInvitationCommitError)(nil),       // 29: sync_pb.OutgoingPasswordSharingInvitationCommitError
	(SyncEnums_Action)(0),                                      // 30: sync_pb.SyncEnums.Action
}
var file_sync_proto_depIdxs = []int32{
	20, // 0: sync_pb.CommitMessage.entries:type_name -> sync_pb.SyncEntity
	2,  // 1: sync_pb.CommitMessage.extensions_activity:type_name -> sync_pb.ChromiumExtensionsActivity
	3,  // 2: sync_pb.CommitMessage.config_params:type_name -> sync_pb.ClientConfigParams
	21, // 3: sync_pb.CommitMessage.client_contexts:type_name -> sync_pb.DataTypeContext
	22, // 4: sync_pb.GetUpdatesMessage.caller_info:type_name -> sync_pb.GetUpdatesCallerInfo
	23, // 5: sync_pb.GetUpdatesMessage.from_progress_marker:type_name -> sync_pb.DataTypeProgressMarker
	24, // 6: sync_pb.GetUpdatesMessage.get_updates_origin:type_name -> sync_pb.SyncEnums.GetUpdatesOrigin
	21, // 7: sync_pb.GetUpdatesMessage.client_contexts:type_name -> sync_pb.DataTypeContext
	0,  // 8: sync_pb.ClientToServerMessage.message_contents:type_name -> sync_pb.ClientToServerMessage.Contents
	4,  // 9: sync_pb.ClientToServerMessage.commit:type_name -> sync_pb.CommitMessage
	5,  // 10: sync_pb.ClientToServerMessage.get_updates:type_name -> sync_pb.GetUpdatesMessage
	25, // 11: sync_pb.ClientToServerMessage.debug_info:type_name -> sync_pb.DebugInfo
	8,  // 12: sync_pb.ClientToServerMessage.bag_of_chips:type_name -> sync_pb.ChipBag
	9,  // 13: sync_pb.ClientToServerMessage.client_status:type_name -> sync_pb.ClientStatus
	6,  // 14: sync_pb.ClientToServerMessage.clear_server_data:type_name -> sync_pb.ClearServerDataMessage
	17, // 15: sync_pb.CommitResponse.entryresponse:type_name -> sync_pb.CommitResponse.EntryResponse
	20, // 16: sync_pb.GetUpdatesResponse.entries:type_name -> sync_pb.SyncEntity
	23, // 17: sync_pb.GetUpdatesResponse.new_progress_marker:type_name -> sync_pb.DataTypeProgressMarker
	21, // 18: sync_pb.GetUpdatesResponse.context_mutations:type_name -> sync_pb.DataTypeContext
	11, // 19: sync_pb.ClientToServerResponse.commit:type_name -> sync_pb.CommitResponse
	12, // 20: sync_pb.ClientToServerResponse.get_updates:type_name -> sync_pb.GetUpdatesResponse
	26, // 21: sync_pb.ClientToServerResponse.error_code:type_name -> sync_pb.SyncEnums.ErrorType
	27, // 22: sync_pb.ClientToServerResponse.client_command:type_name -> sync_pb.ClientCommand
	19, // 23: sync_pb.ClientToServerResponse.error:type_name -> sync_pb.ClientToServerResponse.Error
	8,  // 24: sync_pb.ClientToServerResponse.new_bag_of_chips:type_name -> sync_pb.ChipBag
	7,  // 25: sync_pb.ClientToServerResponse.clear_server_data:type_name -> sync_pb.ClearServerDataResponse
	16, // 26: sync_pb.EventRequest.sync_disabled:type_name -> sync_pb.SyncDisabledEvent
	1,  // 27: sync_pb.CommitResponse.EntryResponse.response_type:type_name -> sync_pb.CommitResponse.ResponseType
	18, // 28: sync_pb.CommitResponse.EntryResponse.datatype_specific_error:type_name -> sync_pb.CommitResponse.EntryResponse.DatatypeSpecificError
	28, // 29: sync_pb.CommitResponse.EntryResponse.DatatypeSpecificError.sharing_message_error:type_name -> sync_pb.SharingMessageCommitError
	29, // 30: sync_pb.CommitResponse.EntryResponse.DatatypeSpecificError.outgoing_password_sharing_invitation_error:type_name -> sync_pb.OutgoingPasswordSharingInvitationCommitError
	26, // 31: sync_pb.ClientToServerResponse.Error.error_type:type_name -> sync_pb.SyncEnums.ErrorType
	30, // 32: sync_pb.ClientToServerResponse.Error.action:type_name -> sync_pb.SyncEnums.Action
	33, // [33:33] is the sub-list for method output_type
	33, // [33:33] is the sub-list for method input_type
	33, // [33:33] is the sub-list for extension type_name
	33, // [33:33] is the sub-list for extension extendee
	0,  // [0:33] is the sub-list for field type_name
}

func init() { file_sync_proto_init() }
func file_sync_proto_init() {
	if File_sync_proto != nil {
		return
	}
	file_client_commands_proto_init()
	file_client_debug_info_proto_init()
	file_data_type_progress_marker_proto_init()
	file_get_updates_caller_info_proto_init()
	file_password_sharing_invitation_specifics_proto_init()
	file_sync_entity_proto_init()
	file_sync_enums_proto_init()
	file_sharing_message_specifics_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_sync_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChromiumExtensionsActivity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClientConfigParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUpdatesMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearServerDataMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearServerDataResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ChipBag); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClientStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClientToServerMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUpdatesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClientToServerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EventRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EventResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SyncDisabledEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitResponse_EntryResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CommitResponse_EntryResponse_DatatypeSpecificError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_sync_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClientToServerResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_sync_proto_msgTypes[16].OneofWrappers = []interface{}{
		(*CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError)(nil),
		(*CommitResponse_EntryResponse_DatatypeSpecificError_OutgoingPasswordSharingInvitationError)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_sync_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   18,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_sync_proto_goTypes,
		DependencyIndexes: file_sync_proto_depIdxs,
		EnumInfos:         file_sync_proto_enumTypes,
		MessageInfos:      file_sync_proto_msgTypes,
	}.Build()
	File_sync_proto = out.File
	file_sync_proto_rawDesc = nil
	file_sync_proto_goTypes = nil
	file_sync_proto_depIdxs = nil
}
