// 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 datatype extension for sessions.

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

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.31.0
// 	protoc        v3.6.1
// source: session_specifics.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)
)

// The type of favicon. For now only normal web favicons are supported.
type SessionTab_FaviconType int32

const (
	SessionTab_TYPE_WEB_FAVICON SessionTab_FaviconType = 1
)

// Enum value maps for SessionTab_FaviconType.
var (
	SessionTab_FaviconType_name = map[int32]string{
		1: "TYPE_WEB_FAVICON",
	}
	SessionTab_FaviconType_value = map[string]int32{
		"TYPE_WEB_FAVICON": 1,
	}
)

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

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

func (SessionTab_FaviconType) Descriptor() protoreflect.EnumDescriptor {
	return file_session_specifics_proto_enumTypes[0].Descriptor()
}

func (SessionTab_FaviconType) Type() protoreflect.EnumType {
	return &file_session_specifics_proto_enumTypes[0]
}

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

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

// Deprecated: Use SessionTab_FaviconType.Descriptor instead.
func (SessionTab_FaviconType) EnumDescriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{3, 0}
}

type TabNavigation_BlockedState int32

const (
	TabNavigation_STATE_ALLOWED TabNavigation_BlockedState = 1
	TabNavigation_STATE_BLOCKED TabNavigation_BlockedState = 2
)

// Enum value maps for TabNavigation_BlockedState.
var (
	TabNavigation_BlockedState_name = map[int32]string{
		1: "STATE_ALLOWED",
		2: "STATE_BLOCKED",
	}
	TabNavigation_BlockedState_value = map[string]int32{
		"STATE_ALLOWED": 1,
		"STATE_BLOCKED": 2,
	}
)

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

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

func (TabNavigation_BlockedState) Descriptor() protoreflect.EnumDescriptor {
	return file_session_specifics_proto_enumTypes[1].Descriptor()
}

func (TabNavigation_BlockedState) Type() protoreflect.EnumType {
	return &file_session_specifics_proto_enumTypes[1]
}

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

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

// Deprecated: Use TabNavigation_BlockedState.Descriptor instead.
func (TabNavigation_BlockedState) EnumDescriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{4, 0}
}

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

	// Unique id for the client. M89 and higher use sync's cache GUID (client ID)
	// to populate this tag for *new* sessions.
	SessionTag *string        `protobuf:"bytes,1,opt,name=session_tag,json=sessionTag" json:"session_tag,omitempty"`
	Header     *SessionHeader `protobuf:"bytes,2,opt,name=header" json:"header,omitempty"`
	Tab        *SessionTab    `protobuf:"bytes,3,opt,name=tab" json:"tab,omitempty"`
	// The local tab id used by sync. Unique across all nodes for that client.
	TabNodeId *int32 `protobuf:"varint,4,opt,name=tab_node_id,json=tabNodeId,def=-1" json:"tab_node_id,omitempty"`
}

// Default values for SessionSpecifics fields.
const (
	Default_SessionSpecifics_TabNodeId = int32(-1)
)

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

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

func (*SessionSpecifics) ProtoMessage() {}

func (x *SessionSpecifics) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 SessionSpecifics.ProtoReflect.Descriptor instead.
func (*SessionSpecifics) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{0}
}

func (x *SessionSpecifics) GetSessionTag() string {
	if x != nil && x.SessionTag != nil {
		return *x.SessionTag
	}
	return ""
}

func (x *SessionSpecifics) GetHeader() *SessionHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *SessionSpecifics) GetTab() *SessionTab {
	if x != nil {
		return x.Tab
	}
	return nil
}

func (x *SessionSpecifics) GetTabNodeId() int32 {
	if x != nil && x.TabNodeId != nil {
		return *x.TabNodeId
	}
	return Default_SessionSpecifics_TabNodeId
}

// Properties of session sync objects.
type SessionHeader struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Each session is composed of windows.
	Window []*SessionWindow `protobuf:"bytes,2,rep,name=window" json:"window,omitempty"`
	// A non-unique but human-readable name to describe this client.
	ClientName *string `protobuf:"bytes,3,opt,name=client_name,json=clientName" json:"client_name,omitempty"`
	// The form factor of device.
	DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,5,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"`
	// The type of device.
	// Mandatory until M115. Replaced by device_form_factor afterwards, but still
	// populated for backward compatibility.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	DeviceType *SyncEnums_DeviceType `protobuf:"varint,4,opt,name=device_type,json=deviceType,enum=sync_pb.SyncEnums_DeviceType" json:"device_type,omitempty"`
}

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

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

func (*SessionHeader) ProtoMessage() {}

func (x *SessionHeader) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 SessionHeader.ProtoReflect.Descriptor instead.
func (*SessionHeader) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{1}
}

func (x *SessionHeader) GetWindow() []*SessionWindow {
	if x != nil {
		return x.Window
	}
	return nil
}

func (x *SessionHeader) GetClientName() string {
	if x != nil && x.ClientName != nil {
		return *x.ClientName
	}
	return ""
}

func (x *SessionHeader) GetDeviceFormFactor() SyncEnums_DeviceFormFactor {
	if x != nil && x.DeviceFormFactor != nil {
		return *x.DeviceFormFactor
	}
	return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *SessionHeader) GetDeviceType() SyncEnums_DeviceType {
	if x != nil && x.DeviceType != nil {
		return *x.DeviceType
	}
	return SyncEnums_TYPE_UNSET
}

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

	// Unique (to the owner) id for this window.
	WindowId *int32 `protobuf:"varint,1,opt,name=window_id,json=windowId" json:"window_id,omitempty"`
	// Index of the selected tab in tabs; -1 if no tab is selected.
	SelectedTabIndex *int32 `protobuf:"varint,2,opt,name=selected_tab_index,json=selectedTabIndex,def=-1" json:"selected_tab_index,omitempty"`
	// Type of the window.
	BrowserType *SyncEnums_BrowserType `protobuf:"varint,3,opt,name=browser_type,json=browserType,enum=sync_pb.SyncEnums_BrowserType,def=1" json:"browser_type,omitempty"`
	// The tabs that compose a window (correspond to tab id's).
	Tab []int32 `protobuf:"varint,4,rep,name=tab" json:"tab,omitempty"`
}

// Default values for SessionWindow fields.
const (
	Default_SessionWindow_SelectedTabIndex = int32(-1)
	Default_SessionWindow_BrowserType      = SyncEnums_TYPE_TABBED
)

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

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

func (*SessionWindow) ProtoMessage() {}

func (x *SessionWindow) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 SessionWindow.ProtoReflect.Descriptor instead.
func (*SessionWindow) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{2}
}

func (x *SessionWindow) GetWindowId() int32 {
	if x != nil && x.WindowId != nil {
		return *x.WindowId
	}
	return 0
}

func (x *SessionWindow) GetSelectedTabIndex() int32 {
	if x != nil && x.SelectedTabIndex != nil {
		return *x.SelectedTabIndex
	}
	return Default_SessionWindow_SelectedTabIndex
}

func (x *SessionWindow) GetBrowserType() SyncEnums_BrowserType {
	if x != nil && x.BrowserType != nil {
		return *x.BrowserType
	}
	return Default_SessionWindow_BrowserType
}

func (x *SessionWindow) GetTab() []int32 {
	if x != nil {
		return x.Tab
	}
	return nil
}

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

	// Unique (to the owner) id for this tab.
	TabId *int32 `protobuf:"varint,1,opt,name=tab_id,json=tabId,def=-1" json:"tab_id,omitempty"`
	// The unique id for the window this tab belongs to.
	WindowId *int32 `protobuf:"varint,2,opt,name=window_id,json=windowId" json:"window_id,omitempty"`
	// Visual index of the tab within its window. There may be gaps in these
	// values.
	TabVisualIndex *int32 `protobuf:"varint,3,opt,name=tab_visual_index,json=tabVisualIndex,def=-1" json:"tab_visual_index,omitempty"`
	// Identifies the index of the current navigation in navigations. For
	// example, if this is 2 it means the current navigation is navigations[2].
	CurrentNavigationIndex *int32 `protobuf:"varint,4,opt,name=current_navigation_index,json=currentNavigationIndex,def=-1" json:"current_navigation_index,omitempty"`
	// True if the tab is pinned.
	Pinned *bool `protobuf:"varint,5,opt,name=pinned,def=0" json:"pinned,omitempty"`
	// If non-empty, this tab is an app tab and this is the id of the extension.
	ExtensionAppId *string `protobuf:"bytes,6,opt,name=extension_app_id,json=extensionAppId" json:"extension_app_id,omitempty"`
	// Tabs are navigated, and the navigation data is here.
	Navigation  []*TabNavigation       `protobuf:"bytes,7,rep,name=navigation" json:"navigation,omitempty"`
	BrowserType *SyncEnums_BrowserType `protobuf:"varint,13,opt,name=browser_type,json=browserType,enum=sync_pb.SyncEnums_BrowserType" json:"browser_type,omitempty"`
	// Timestamp for when this tab was last activated.
	// Corresponds to WebContents::GetLastActiveTime().
	LastActiveTimeUnixEpochMillis *int64 `protobuf:"varint,14,opt,name=last_active_time_unix_epoch_millis,json=lastActiveTimeUnixEpochMillis" json:"last_active_time_unix_epoch_millis,omitempty"`
	// The favicon for the current url the tab is displaying. Either empty
	// or a valid PNG encoded favicon.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	Favicon []byte `protobuf:"bytes,8,opt,name=favicon" json:"favicon,omitempty"`
	// Deprecated: Marked as deprecated in session_specifics.proto.
	FaviconType *SessionTab_FaviconType `protobuf:"varint,9,opt,name=favicon_type,json=faviconType,enum=sync_pb.SessionTab_FaviconType" json:"favicon_type,omitempty"`
	// The url of the actual favicon (as opposed to the page using the favicon).
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	FaviconSource *string `protobuf:"bytes,11,opt,name=favicon_source,json=faviconSource" json:"favicon_source,omitempty"`
	// Ids of the currently assigned variations which should be sent to sync.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	VariationId []uint64 `protobuf:"varint,12,rep,name=variation_id,json=variationId" json:"variation_id,omitempty"`
}

// Default values for SessionTab fields.
const (
	Default_SessionTab_TabId                  = int32(-1)
	Default_SessionTab_TabVisualIndex         = int32(-1)
	Default_SessionTab_CurrentNavigationIndex = int32(-1)
	Default_SessionTab_Pinned                 = bool(false)
)

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

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

func (*SessionTab) ProtoMessage() {}

func (x *SessionTab) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 SessionTab.ProtoReflect.Descriptor instead.
func (*SessionTab) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{3}
}

func (x *SessionTab) GetTabId() int32 {
	if x != nil && x.TabId != nil {
		return *x.TabId
	}
	return Default_SessionTab_TabId
}

func (x *SessionTab) GetWindowId() int32 {
	if x != nil && x.WindowId != nil {
		return *x.WindowId
	}
	return 0
}

func (x *SessionTab) GetTabVisualIndex() int32 {
	if x != nil && x.TabVisualIndex != nil {
		return *x.TabVisualIndex
	}
	return Default_SessionTab_TabVisualIndex
}

func (x *SessionTab) GetCurrentNavigationIndex() int32 {
	if x != nil && x.CurrentNavigationIndex != nil {
		return *x.CurrentNavigationIndex
	}
	return Default_SessionTab_CurrentNavigationIndex
}

func (x *SessionTab) GetPinned() bool {
	if x != nil && x.Pinned != nil {
		return *x.Pinned
	}
	return Default_SessionTab_Pinned
}

func (x *SessionTab) GetExtensionAppId() string {
	if x != nil && x.ExtensionAppId != nil {
		return *x.ExtensionAppId
	}
	return ""
}

func (x *SessionTab) GetNavigation() []*TabNavigation {
	if x != nil {
		return x.Navigation
	}
	return nil
}

func (x *SessionTab) GetBrowserType() SyncEnums_BrowserType {
	if x != nil && x.BrowserType != nil {
		return *x.BrowserType
	}
	return SyncEnums_BROWSER_TYPE_UNKNOWN
}

func (x *SessionTab) GetLastActiveTimeUnixEpochMillis() int64 {
	if x != nil && x.LastActiveTimeUnixEpochMillis != nil {
		return *x.LastActiveTimeUnixEpochMillis
	}
	return 0
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *SessionTab) GetFavicon() []byte {
	if x != nil {
		return x.Favicon
	}
	return nil
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *SessionTab) GetFaviconType() SessionTab_FaviconType {
	if x != nil && x.FaviconType != nil {
		return *x.FaviconType
	}
	return SessionTab_TYPE_WEB_FAVICON
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *SessionTab) GetFaviconSource() string {
	if x != nil && x.FaviconSource != nil {
		return *x.FaviconSource
	}
	return ""
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *SessionTab) GetVariationId() []uint64 {
	if x != nil {
		return x.VariationId
	}
	return nil
}

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

	// The virtual URL, when nonempty, will override the actual URL of the page
	// when we display it to the user.
	VirtualUrl *string `protobuf:"bytes,2,opt,name=virtual_url,json=virtualUrl" json:"virtual_url,omitempty"`
	// The referring URL, which can be empty.
	Referrer *string `protobuf:"bytes,3,opt,name=referrer" json:"referrer,omitempty"`
	// The title of the page.
	Title *string `protobuf:"bytes,4,opt,name=title" json:"title,omitempty"`
	// The core transition type.
	PageTransition *SyncEnums_PageTransition `protobuf:"varint,6,opt,name=page_transition,json=pageTransition,enum=sync_pb.SyncEnums_PageTransition,def=0" json:"page_transition,omitempty"`
	// If this transition was triggered by a redirect, the redirect type.
	RedirectType *SyncEnums_PageTransitionRedirectType `protobuf:"varint,7,opt,name=redirect_type,json=redirectType,enum=sync_pb.SyncEnums_PageTransitionRedirectType" json:"redirect_type,omitempty"`
	// The unique navigation id (within this client).
	UniqueId *int32 `protobuf:"varint,8,opt,name=unique_id,json=uniqueId" json:"unique_id,omitempty"`
	// Timestamp for when this navigation last occurred (in client time).
	// If the user goes back/forward in history the timestamp may refresh.
	TimestampMsec *int64 `protobuf:"varint,9,opt,name=timestamp_msec,json=timestampMsec" json:"timestamp_msec,omitempty"`
	// User used the Forward or Back button to navigate among browsing history.
	NavigationForwardBack *bool `protobuf:"varint,10,opt,name=navigation_forward_back,json=navigationForwardBack" json:"navigation_forward_back,omitempty"`
	// User used the address bar to trigger this navigation.
	NavigationFromAddressBar *bool `protobuf:"varint,11,opt,name=navigation_from_address_bar,json=navigationFromAddressBar" json:"navigation_from_address_bar,omitempty"`
	// User is navigating to the home page.
	NavigationHomePage *bool `protobuf:"varint,12,opt,name=navigation_home_page,json=navigationHomePage" json:"navigation_home_page,omitempty"`
	// The id for this navigation, which is globally unique with high
	// probability.
	GlobalId *int64 `protobuf:"varint,15,opt,name=global_id,json=globalId" json:"global_id,omitempty"`
	// The favicon url associated with this page.
	FaviconUrl *string `protobuf:"bytes,17,opt,name=favicon_url,json=faviconUrl" json:"favicon_url,omitempty"`
	// The status code from the last navigation.
	HttpStatusCode *int32 `protobuf:"varint,20,opt,name=http_status_code,json=httpStatusCode" json:"http_status_code,omitempty"`
	// Correct referrer policy. Valid enums are defined in
	// third_party/WebKit/public/platform/WebReferrerPolicy.h.
	CorrectReferrerPolicy *int32 `protobuf:"varint,25,opt,name=correct_referrer_policy,json=correctReferrerPolicy,def=1" json:"correct_referrer_policy,omitempty"`
	// Whether the Password Manager saw a password field on the page.
	PasswordState *SyncEnums_PasswordState `protobuf:"varint,26,opt,name=password_state,json=passwordState,enum=sync_pb.SyncEnums_PasswordState" json:"password_state,omitempty"`
	// The start/end of a redirect chain. Deprecated in M108 because they were
	// always set to false in practice, and don't make sense in the first place -
	// this message corresponds to a complete chain.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	NavigationChainStart *bool `protobuf:"varint,13,opt,name=navigation_chain_start,json=navigationChainStart" json:"navigation_chain_start,omitempty"`
	// Deprecated: Marked as deprecated in session_specifics.proto.
	NavigationChainEnd *bool `protobuf:"varint,14,opt,name=navigation_chain_end,json=navigationChainEnd" json:"navigation_chain_end,omitempty"`
	// Search terms extracted from the URL. Deprecated in M64.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	SearchTerms *string `protobuf:"bytes,16,opt,name=search_terms,json=searchTerms" json:"search_terms,omitempty"`
	// Whether access to the URL was allowed or blocked. Deprecated in M121
	// because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	BlockedState *TabNavigation_BlockedState `protobuf:"varint,18,opt,name=blocked_state,json=blockedState,enum=sync_pb.TabNavigation_BlockedState,def=1" json:"blocked_state,omitempty"`
	// Referrer policy. Old, broken value. Deprecated in M61.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	ObsoleteReferrerPolicy *int32 `protobuf:"varint,21,opt,name=obsolete_referrer_policy,json=obsoleteReferrerPolicy" json:"obsolete_referrer_policy,omitempty"`
	// True if created from restored navigation entry that hasn't been loaded.
	// Deprecated in M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	IsRestored *bool `protobuf:"varint,22,opt,name=is_restored,json=isRestored" json:"is_restored,omitempty"`
	// The chain of redirections for this navigation, from the original URL
	// through the last URL that redirected. Deprecated in M121 because it was
	// unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	NavigationRedirect []*NavigationRedirect `protobuf:"bytes,23,rep,name=navigation_redirect,json=navigationRedirect" json:"navigation_redirect,omitempty"`
	// The last URL traversed when different from the virtual_url. Deprecated in
	// M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	LastNavigationRedirectUrl *string `protobuf:"bytes,24,opt,name=last_navigation_redirect_url,json=lastNavigationRedirectUrl" json:"last_navigation_redirect_url,omitempty"`
	// The id for the task associated with this navigation, which is globally
	// unique with high probability. Deprecated in M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	TaskId *int64 `protobuf:"varint,27,opt,name=task_id,json=taskId" json:"task_id,omitempty"`
	// Task ids of all ancestor navigations, which can be from other tabs, from
	// root to parent. Deprecated in M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	AncestorTaskId []int64 `protobuf:"varint,28,rep,name=ancestor_task_id,json=ancestorTaskId" json:"ancestor_task_id,omitempty"`
	// When a history entry is replaced (e.g. history.replaceState()), this
	// contained some information about the entry prior to being replaced.
	// Deprecated in M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	ReplacedNavigation *ReplacedNavigation `protobuf:"bytes,29,opt,name=replaced_navigation,json=replacedNavigation" json:"replaced_navigation,omitempty"`
	// The page language as determined by its textual content. An ISO 639 language
	// code (two letters, except for Chinese where a localization is necessary).
	// Deprecated in M121 because it was unused.
	//
	// Deprecated: Marked as deprecated in session_specifics.proto.
	PageLanguage *string `protobuf:"bytes,30,opt,name=page_language,json=pageLanguage" json:"page_language,omitempty"`
}

// Default values for TabNavigation fields.
const (
	Default_TabNavigation_PageTransition        = SyncEnums_LINK
	Default_TabNavigation_CorrectReferrerPolicy = int32(1)
	Default_TabNavigation_BlockedState          = TabNavigation_STATE_ALLOWED
)

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

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

func (*TabNavigation) ProtoMessage() {}

func (x *TabNavigation) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 TabNavigation.ProtoReflect.Descriptor instead.
func (*TabNavigation) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{4}
}

func (x *TabNavigation) GetVirtualUrl() string {
	if x != nil && x.VirtualUrl != nil {
		return *x.VirtualUrl
	}
	return ""
}

func (x *TabNavigation) GetReferrer() string {
	if x != nil && x.Referrer != nil {
		return *x.Referrer
	}
	return ""
}

func (x *TabNavigation) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *TabNavigation) GetPageTransition() SyncEnums_PageTransition {
	if x != nil && x.PageTransition != nil {
		return *x.PageTransition
	}
	return Default_TabNavigation_PageTransition
}

func (x *TabNavigation) GetRedirectType() SyncEnums_PageTransitionRedirectType {
	if x != nil && x.RedirectType != nil {
		return *x.RedirectType
	}
	return SyncEnums_CLIENT_REDIRECT
}

func (x *TabNavigation) GetUniqueId() int32 {
	if x != nil && x.UniqueId != nil {
		return *x.UniqueId
	}
	return 0
}

func (x *TabNavigation) GetTimestampMsec() int64 {
	if x != nil && x.TimestampMsec != nil {
		return *x.TimestampMsec
	}
	return 0
}

func (x *TabNavigation) GetNavigationForwardBack() bool {
	if x != nil && x.NavigationForwardBack != nil {
		return *x.NavigationForwardBack
	}
	return false
}

func (x *TabNavigation) GetNavigationFromAddressBar() bool {
	if x != nil && x.NavigationFromAddressBar != nil {
		return *x.NavigationFromAddressBar
	}
	return false
}

func (x *TabNavigation) GetNavigationHomePage() bool {
	if x != nil && x.NavigationHomePage != nil {
		return *x.NavigationHomePage
	}
	return false
}

func (x *TabNavigation) GetGlobalId() int64 {
	if x != nil && x.GlobalId != nil {
		return *x.GlobalId
	}
	return 0
}

func (x *TabNavigation) GetFaviconUrl() string {
	if x != nil && x.FaviconUrl != nil {
		return *x.FaviconUrl
	}
	return ""
}

func (x *TabNavigation) GetHttpStatusCode() int32 {
	if x != nil && x.HttpStatusCode != nil {
		return *x.HttpStatusCode
	}
	return 0
}

func (x *TabNavigation) GetCorrectReferrerPolicy() int32 {
	if x != nil && x.CorrectReferrerPolicy != nil {
		return *x.CorrectReferrerPolicy
	}
	return Default_TabNavigation_CorrectReferrerPolicy
}

func (x *TabNavigation) GetPasswordState() SyncEnums_PasswordState {
	if x != nil && x.PasswordState != nil {
		return *x.PasswordState
	}
	return SyncEnums_PASSWORD_STATE_UNKNOWN
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetNavigationChainStart() bool {
	if x != nil && x.NavigationChainStart != nil {
		return *x.NavigationChainStart
	}
	return false
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetNavigationChainEnd() bool {
	if x != nil && x.NavigationChainEnd != nil {
		return *x.NavigationChainEnd
	}
	return false
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetSearchTerms() string {
	if x != nil && x.SearchTerms != nil {
		return *x.SearchTerms
	}
	return ""
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetBlockedState() TabNavigation_BlockedState {
	if x != nil && x.BlockedState != nil {
		return *x.BlockedState
	}
	return Default_TabNavigation_BlockedState
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetObsoleteReferrerPolicy() int32 {
	if x != nil && x.ObsoleteReferrerPolicy != nil {
		return *x.ObsoleteReferrerPolicy
	}
	return 0
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetIsRestored() bool {
	if x != nil && x.IsRestored != nil {
		return *x.IsRestored
	}
	return false
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetNavigationRedirect() []*NavigationRedirect {
	if x != nil {
		return x.NavigationRedirect
	}
	return nil
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetLastNavigationRedirectUrl() string {
	if x != nil && x.LastNavigationRedirectUrl != nil {
		return *x.LastNavigationRedirectUrl
	}
	return ""
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetTaskId() int64 {
	if x != nil && x.TaskId != nil {
		return *x.TaskId
	}
	return 0
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetAncestorTaskId() []int64 {
	if x != nil {
		return x.AncestorTaskId
	}
	return nil
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetReplacedNavigation() *ReplacedNavigation {
	if x != nil {
		return x.ReplacedNavigation
	}
	return nil
}

// Deprecated: Marked as deprecated in session_specifics.proto.
func (x *TabNavigation) GetPageLanguage() string {
	if x != nil && x.PageLanguage != nil {
		return *x.PageLanguage
	}
	return ""
}

// Navigation information for a single redirection within a single navigation.
type NavigationRedirect struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A URL that redirected while navigating to the virtual_url.
	Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
}

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

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

func (*NavigationRedirect) ProtoMessage() {}

func (x *NavigationRedirect) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 NavigationRedirect.ProtoReflect.Descriptor instead.
func (*NavigationRedirect) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{5}
}

func (x *NavigationRedirect) GetUrl() string {
	if x != nil && x.Url != nil {
		return *x.Url
	}
	return ""
}

// Subset of TabNavigation fields representing a navigation that was later
// replaced in history (e.g. history.replaceState()), which allows tracking
// information about the original navigation prior to the first replacement.
type ReplacedNavigation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FirstCommittedUrl   *string                   `protobuf:"bytes,1,opt,name=first_committed_url,json=firstCommittedUrl" json:"first_committed_url,omitempty"`
	FirstTimestampMsec  *int64                    `protobuf:"varint,2,opt,name=first_timestamp_msec,json=firstTimestampMsec" json:"first_timestamp_msec,omitempty"`
	FirstPageTransition *SyncEnums_PageTransition `protobuf:"varint,3,opt,name=first_page_transition,json=firstPageTransition,enum=sync_pb.SyncEnums_PageTransition" json:"first_page_transition,omitempty"`
}

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

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

func (*ReplacedNavigation) ProtoMessage() {}

func (x *ReplacedNavigation) ProtoReflect() protoreflect.Message {
	mi := &file_session_specifics_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 ReplacedNavigation.ProtoReflect.Descriptor instead.
func (*ReplacedNavigation) Descriptor() ([]byte, []int) {
	return file_session_specifics_proto_rawDescGZIP(), []int{6}
}

func (x *ReplacedNavigation) GetFirstCommittedUrl() string {
	if x != nil && x.FirstCommittedUrl != nil {
		return *x.FirstCommittedUrl
	}
	return ""
}

func (x *ReplacedNavigation) GetFirstTimestampMsec() int64 {
	if x != nil && x.FirstTimestampMsec != nil {
		return *x.FirstTimestampMsec
	}
	return 0
}

func (x *ReplacedNavigation) GetFirstPageTransition() SyncEnums_PageTransition {
	if x != nil && x.FirstPageTransition != nil {
		return *x.FirstPageTransition
	}
	return SyncEnums_LINK
}

var File_session_specifics_proto protoreflect.FileDescriptor

var file_session_specifics_proto_rawDesc = []byte{
	0x0a, 0x17, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
	0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x12, 0x2e, 0x0a, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e,
	0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x03, 0x74, 0x61,
	0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
	0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x52, 0x03, 0x74, 0x61,
	0x62, 0x12, 0x22, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x74, 0x61, 0x62, 0x4e,
	0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f,
	0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
	0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52,
	0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05,
	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, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46,
	0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0b, 0x64,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45,
	0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42,
	0x02, 0x18, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22,
	0xc0, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f,
	0x77, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x30,
	0x0a, 0x12, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x10,
	0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62,
	0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73,
	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42,
	0x42, 0x45, 0x44, 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x62, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x74,
	0x61, 0x62, 0x22, 0x9c, 0x05, 0x0a, 0x0a, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61,
	0x62, 0x12, 0x19, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09,
	0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x10, 0x74, 0x61, 0x62,
	0x5f, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x56, 0x69, 0x73, 0x75,
	0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65,
	0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x16, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x70, 0x69,
	0x6e, 0x6e, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
	0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x36,
	0x0a, 0x0a, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62,
	0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x61, 0x76, 0x69,
	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65,
	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73,
	0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73,
	0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x72,
	0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x22, 0x6c, 0x61, 0x73,
	0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e,
	0x69, 0x78, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69,
	0x6c, 0x6c, 0x69, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x66, 0x61, 0x76, 0x69, 0x63,
	0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0c, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x2e, 0x46, 0x61,
	0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x66,
	0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x61,
	0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0b,
	0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54,
	0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x42, 0x5f, 0x46, 0x41, 0x56, 0x49, 0x43, 0x4f, 0x4e, 0x10,
	0x01, 0x22, 0x84, 0x0c, 0x0a, 0x0d, 0x54, 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x75,
	0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61,
	0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74,
	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e,
	0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x3a, 0x04, 0x4c, 0x49, 0x4e, 0x4b, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69,
	0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e,
	0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c,
	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x65, 0x63,
	0x12, 0x36, 0x0a, 0x17, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,
	0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x15, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
	0x77, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x1b, 0x6e, 0x61, 0x76, 0x69,
	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x5f, 0x62, 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6e,
	0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64,
	0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x48, 0x6f, 0x6d, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x6c,
	0x6f, 0x62, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f,
	0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76,
	0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64,
	0x65, 0x12, 0x39, 0x0a, 0x17, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x66,
	0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x19, 0x20, 0x01,
	0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x15, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65,
	0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x47, 0x0a, 0x0e,
	0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x1a,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53,
	0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
	0x34, 0x0a, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18,
	0x01, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61,
	0x69, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f,
	0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x73, 0x12, 0x5b, 0x0a, 0x0d,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x61,
	0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
	0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x62, 0x6c, 0x6f,
	0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x18, 0x6f, 0x62, 0x73,
	0x6f, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70,
	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52,
	0x16, 0x6f, 0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65,
	0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65,
	0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01,
	0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x13,
	0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63,
	0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69,
	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x43,
	0x0a, 0x1c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x18,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61,
	0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x1b,
	0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
	0x12, 0x2c, 0x0a, 0x10, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x61, 0x73,
	0x6b, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e,
	0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x50,
	0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79,
	0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61,
	0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x72, 0x65,
	0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x70, 0x61, 0x67,
	0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d,
	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x4a,
	0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x13, 0x10,
	0x14, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52,
	0x17, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x61,
	0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x26, 0x0a, 0x12, 0x4e, 0x61, 0x76, 0x69,
	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x10,
	0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,
	0x22, 0xcd, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x76,
	0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
	0x74, 0x74, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x69, 0x72, 0x73, 0x74,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x65, 0x63, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x65, 0x63, 0x12, 0x55, 0x0a, 0x15, 0x66, 0x69, 0x72,
	0x73, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f,
	0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67,
	0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x66, 0x69, 0x72,
	0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	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_session_specifics_proto_rawDescOnce sync.Once
	file_session_specifics_proto_rawDescData = file_session_specifics_proto_rawDesc
)

func file_session_specifics_proto_rawDescGZIP() []byte {
	file_session_specifics_proto_rawDescOnce.Do(func() {
		file_session_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_session_specifics_proto_rawDescData)
	})
	return file_session_specifics_proto_rawDescData
}

var file_session_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_session_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_session_specifics_proto_goTypes = []interface{}{
	(SessionTab_FaviconType)(0),               // 0: sync_pb.SessionTab.FaviconType
	(TabNavigation_BlockedState)(0),           // 1: sync_pb.TabNavigation.BlockedState
	(*SessionSpecifics)(nil),                  // 2: sync_pb.SessionSpecifics
	(*SessionHeader)(nil),                     // 3: sync_pb.SessionHeader
	(*SessionWindow)(nil),                     // 4: sync_pb.SessionWindow
	(*SessionTab)(nil),                        // 5: sync_pb.SessionTab
	(*TabNavigation)(nil),                     // 6: sync_pb.TabNavigation
	(*NavigationRedirect)(nil),                // 7: sync_pb.NavigationRedirect
	(*ReplacedNavigation)(nil),                // 8: sync_pb.ReplacedNavigation
	(SyncEnums_DeviceFormFactor)(0),           // 9: sync_pb.SyncEnums.DeviceFormFactor
	(SyncEnums_DeviceType)(0),                 // 10: sync_pb.SyncEnums.DeviceType
	(SyncEnums_BrowserType)(0),                // 11: sync_pb.SyncEnums.BrowserType
	(SyncEnums_PageTransition)(0),             // 12: sync_pb.SyncEnums.PageTransition
	(SyncEnums_PageTransitionRedirectType)(0), // 13: sync_pb.SyncEnums.PageTransitionRedirectType
	(SyncEnums_PasswordState)(0),              // 14: sync_pb.SyncEnums.PasswordState
}
var file_session_specifics_proto_depIdxs = []int32{
	3,  // 0: sync_pb.SessionSpecifics.header:type_name -> sync_pb.SessionHeader
	5,  // 1: sync_pb.SessionSpecifics.tab:type_name -> sync_pb.SessionTab
	4,  // 2: sync_pb.SessionHeader.window:type_name -> sync_pb.SessionWindow
	9,  // 3: sync_pb.SessionHeader.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor
	10, // 4: sync_pb.SessionHeader.device_type:type_name -> sync_pb.SyncEnums.DeviceType
	11, // 5: sync_pb.SessionWindow.browser_type:type_name -> sync_pb.SyncEnums.BrowserType
	6,  // 6: sync_pb.SessionTab.navigation:type_name -> sync_pb.TabNavigation
	11, // 7: sync_pb.SessionTab.browser_type:type_name -> sync_pb.SyncEnums.BrowserType
	0,  // 8: sync_pb.SessionTab.favicon_type:type_name -> sync_pb.SessionTab.FaviconType
	12, // 9: sync_pb.TabNavigation.page_transition:type_name -> sync_pb.SyncEnums.PageTransition
	13, // 10: sync_pb.TabNavigation.redirect_type:type_name -> sync_pb.SyncEnums.PageTransitionRedirectType
	14, // 11: sync_pb.TabNavigation.password_state:type_name -> sync_pb.SyncEnums.PasswordState
	1,  // 12: sync_pb.TabNavigation.blocked_state:type_name -> sync_pb.TabNavigation.BlockedState
	7,  // 13: sync_pb.TabNavigation.navigation_redirect:type_name -> sync_pb.NavigationRedirect
	8,  // 14: sync_pb.TabNavigation.replaced_navigation:type_name -> sync_pb.ReplacedNavigation
	12, // 15: sync_pb.ReplacedNavigation.first_page_transition:type_name -> sync_pb.SyncEnums.PageTransition
	16, // [16:16] is the sub-list for method output_type
	16, // [16:16] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_session_specifics_proto_init() }
func file_session_specifics_proto_init() {
	if File_session_specifics_proto != nil {
		return
	}
	file_sync_enums_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_session_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SessionSpecifics); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SessionHeader); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SessionWindow); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SessionTab); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TabNavigation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NavigationRedirect); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_session_specifics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplacedNavigation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_session_specifics_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_session_specifics_proto_goTypes,
		DependencyIndexes: file_session_specifics_proto_depIdxs,
		EnumInfos:         file_session_specifics_proto_enumTypes,
		MessageInfos:      file_session_specifics_proto_msgTypes,
	}.Build()
	File_session_specifics_proto = out.File
	file_session_specifics_proto_rawDesc = nil
	file_session_specifics_proto_goTypes = nil
	file_session_specifics_proto_depIdxs = nil
}
