// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: components/sync/protocol/device_info_specifics.proto
// Protobuf C++ Version: 7.35.1

#include "components/sync/protocol/device_info_specifics.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace sync_pb {
class SharingSpecificFields::_Internal {
 public:
  using HasBits = decltype(::std::declval<SharingSpecificFields>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_._has_bits_);
};

constexpr SharingSpecificFields::ParseTableT_ SharingSpecificFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_._has_bits_),
      0, // no _extensions_
      11, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965255,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::SharingSpecificFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string sender_id_fcm_token_v2 = 8;
      {::_pbi::TcParser::FastBS1,
       {66, 4, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_fcm_token_v2_)}},
      // optional bytes sender_id_p256dh_v2 = 9;
      {::_pbi::TcParser::FastBS1,
       {74, 5, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_p256dh_v2_)}},
      // optional bytes sender_id_auth_secret_v2 = 10;
      {::_pbi::TcParser::FastBS1,
       {82, 6, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_auth_secret_v2_)}},
      // optional string chime_representative_target_id = 11;
      {::_pbi::TcParser::FastBS1,
       {90, 7, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.chime_representative_target_id_)}},
      // repeated .sync_pb.SharingSpecificFields.EnabledFeatures enabled_features = 4;
      {::_pbi::TcParser::FastEvR1,
       {32, 0, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.enabled_features_)}},
      // optional string sender_id_fcm_token_deprecated = 5 [deprecated = true];
      {::_pbi::TcParser::FastBS1,
       {42, 1, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_fcm_token_deprecated_)}},
      // optional bytes sender_id_p256dh_deprecated = 6 [deprecated = true];
      {::_pbi::TcParser::FastBS1,
       {50, 2, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_p256dh_deprecated_)}},
      // optional bytes sender_id_auth_secret_deprecated = 7 [deprecated = true];
      {::_pbi::TcParser::FastBS1,
       {58, 3, 0,
        PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_auth_secret_deprecated_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .sync_pb.SharingSpecificFields.EnabledFeatures enabled_features = 4;
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.enabled_features_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kEnum)},
      // optional string sender_id_fcm_token_deprecated = 5 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_fcm_token_deprecated_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes sender_id_p256dh_deprecated = 6 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_p256dh_deprecated_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes sender_id_auth_secret_deprecated = 7 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_auth_secret_deprecated_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string sender_id_fcm_token_v2 = 8;
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_fcm_token_v2_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes sender_id_p256dh_v2 = 9;
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_p256dh_v2_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes sender_id_auth_secret_v2 = 10;
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.sender_id_auth_secret_v2_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string chime_representative_target_id = 11;
      {PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_.chime_representative_target_id_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    {{
        {::_pbi::FieldAuxEnumData{}, ::sync_pb::SharingSpecificFields_EnabledFeatures_internal_data_},
    }},
    {{
    }},
  };
}


inline constexpr SharingSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        enabled_features_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::SharingSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::SharingSpecificFields, _impl_.enabled_features_)>()
         }
        ,
        sender_id_fcm_token_deprecated_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sender_id_p256dh_deprecated_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sender_id_auth_secret_deprecated_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sender_id_fcm_token_v2_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sender_id_p256dh_v2_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sender_id_auth_secret_v2_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        chime_representative_target_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr SharingSpecificFields::SharingSpecificFields(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SharingSpecificFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SharingSpecificFields(arena);
}
constexpr auto SharingSpecificFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SharingSpecificFields), alignof(SharingSpecificFields));
}
constexpr auto SharingSpecificFields::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SharingSpecificFields::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<SharingSpecificFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SharingSpecificFields::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<SharingSpecificFields>(), &SharingSpecificFields::ByteSizeLong,
              &SharingSpecificFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SharingSpecificFields, _impl_._cached_size_),
          true,
      },
      "sync_pb.SharingSpecificFields",
  };
}
struct SharingSpecificFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SharingSpecificFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SharingSpecificFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SharingSpecificFields::InternalGenerateClassData_(
            _default, &SharingSpecificFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SharingSpecificFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SharingSpecificFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SharingSpecificFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SharingSpecificFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SharingSpecificFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SharingSpecificFieldsGlobalsTypeInternal SharingSpecificFields_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SharingSpecificFields_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SharingSpecificFields_globals_.GetClassData();
#else
  return SharingSpecificFields_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class PhoneAsASecurityKeySpecificFields::_Internal {
 public:
  using HasBits = decltype(::std::declval<PhoneAsASecurityKeySpecificFields>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_._has_bits_);
};

constexpr PhoneAsASecurityKeySpecificFields::ParseTableT_ PhoneAsASecurityKeySpecificFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::PhoneAsASecurityKeySpecificFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional uint32 tunnel_server_domain = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 4, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.tunnel_server_domain_)}},
      // optional bytes contact_id = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.contact_id_)}},
      // optional bytes secret = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.secret_)}},
      // optional fixed32 id = 4;
      {::_pbi::TcParser::FastF32S1,
       {37, 5, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.id_)}},
      // optional bytes peer_public_key_x962 = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 2, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.peer_public_key_x962_)}},
      // optional bytes google_credential_id = 6;
      {::_pbi::TcParser::FastBS1,
       {50, 3, 0,
        PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.google_credential_id_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional uint32 tunnel_server_domain = 1;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.tunnel_server_domain_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bytes contact_id = 2;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.contact_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes secret = 3;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.secret_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional fixed32 id = 4;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.id_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed32)},
      // optional bytes peer_public_key_x962 = 5;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.peer_public_key_x962_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes google_credential_id = 6;
      {PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.google_credential_id_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PhoneAsASecurityKeySpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        contact_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        secret_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        peer_public_key_x962_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        google_credential_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        tunnel_server_domain_{0u},
        id_{0u} {}

template <typename>
constexpr PhoneAsASecurityKeySpecificFields::PhoneAsASecurityKeySpecificFields(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PhoneAsASecurityKeySpecificFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PhoneAsASecurityKeySpecificFields(arena);
}
constexpr auto PhoneAsASecurityKeySpecificFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PhoneAsASecurityKeySpecificFields), alignof(PhoneAsASecurityKeySpecificFields));
}
constexpr auto PhoneAsASecurityKeySpecificFields::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PhoneAsASecurityKeySpecificFields::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PhoneAsASecurityKeySpecificFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PhoneAsASecurityKeySpecificFields::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PhoneAsASecurityKeySpecificFields>(), &PhoneAsASecurityKeySpecificFields::ByteSizeLong,
              &PhoneAsASecurityKeySpecificFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_._cached_size_),
          true,
      },
      "sync_pb.PhoneAsASecurityKeySpecificFields",
  };
}
struct PhoneAsASecurityKeySpecificFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PhoneAsASecurityKeySpecificFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PhoneAsASecurityKeySpecificFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PhoneAsASecurityKeySpecificFields::InternalGenerateClassData_(
            _default, &PhoneAsASecurityKeySpecificFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PhoneAsASecurityKeySpecificFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PhoneAsASecurityKeySpecificFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PhoneAsASecurityKeySpecificFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PhoneAsASecurityKeySpecificFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PhoneAsASecurityKeySpecificFieldsGlobalsTypeInternal PhoneAsASecurityKeySpecificFields_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PhoneAsASecurityKeySpecificFields_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PhoneAsASecurityKeySpecificFields_globals_.GetClassData();
#else
  return PhoneAsASecurityKeySpecificFields_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class PersonalContextSpecificFields::_Internal {
 public:
  using HasBits = decltype(::std::declval<PersonalContextSpecificFields>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_._has_bits_);
};

constexpr PersonalContextSpecificFields::ParseTableT_ PersonalContextSpecificFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::PersonalContextSpecificFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bytes serialized_tink_keyset = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_.serialized_tink_keyset_)}},
      // optional bytes p256dh_v2 = 1 [deprecated = true];
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_.p256dh_v2_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes p256dh_v2 = 1 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_.p256dh_v2_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes serialized_tink_keyset = 2;
      {PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_.serialized_tink_keyset_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PersonalContextSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        p256dh_v2_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        serialized_tink_keyset_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr PersonalContextSpecificFields::PersonalContextSpecificFields(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PersonalContextSpecificFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PersonalContextSpecificFields(arena);
}
constexpr auto PersonalContextSpecificFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PersonalContextSpecificFields), alignof(PersonalContextSpecificFields));
}
constexpr auto PersonalContextSpecificFields::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PersonalContextSpecificFields::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PersonalContextSpecificFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PersonalContextSpecificFields::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PersonalContextSpecificFields>(), &PersonalContextSpecificFields::ByteSizeLong,
              &PersonalContextSpecificFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFields, _impl_._cached_size_),
          true,
      },
      "sync_pb.PersonalContextSpecificFields",
  };
}
struct PersonalContextSpecificFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PersonalContextSpecificFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PersonalContextSpecificFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PersonalContextSpecificFields::InternalGenerateClassData_(
            _default, &PersonalContextSpecificFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PersonalContextSpecificFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PersonalContextSpecificFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PersonalContextSpecificFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PersonalContextSpecificFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PersonalContextSpecificFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PersonalContextSpecificFieldsGlobalsTypeInternal PersonalContextSpecificFields_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PersonalContextSpecificFields_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PersonalContextSpecificFields_globals_.GetClassData();
#else
  return PersonalContextSpecificFields_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class InvalidationSpecificFields::_Internal {
 public:
  using HasBits = decltype(::std::declval<InvalidationSpecificFields>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_._has_bits_);
};

constexpr InvalidationSpecificFields::ParseTableT_ InvalidationSpecificFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::InvalidationSpecificFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated int32 interested_data_type_ids = 2;
      {::_pbi::TcParser::FastV32R1,
       {16, 0, 0,
        PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_.interested_data_type_ids_)}},
      // optional string instance_id_token = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_.instance_id_token_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string instance_id_token = 1;
      {PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_.instance_id_token_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated int32 interested_data_type_ids = 2;
      {PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_.interested_data_type_ids_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr InvalidationSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        interested_data_type_ids_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::InvalidationSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::InvalidationSpecificFields, _impl_.interested_data_type_ids_)>()
         }
        ,
        instance_id_token_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr InvalidationSpecificFields::InvalidationSpecificFields(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL InvalidationSpecificFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) InvalidationSpecificFields(arena);
}
constexpr auto InvalidationSpecificFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(InvalidationSpecificFields), alignof(InvalidationSpecificFields));
}
constexpr auto InvalidationSpecificFields::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &InvalidationSpecificFields::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<InvalidationSpecificFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &InvalidationSpecificFields::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<InvalidationSpecificFields>(), &InvalidationSpecificFields::ByteSizeLong,
              &InvalidationSpecificFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(InvalidationSpecificFields, _impl_._cached_size_),
          true,
      },
      "sync_pb.InvalidationSpecificFields",
  };
}
struct InvalidationSpecificFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr InvalidationSpecificFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 InvalidationSpecificFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(InvalidationSpecificFields::InternalGenerateClassData_(
            _default, &InvalidationSpecificFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<InvalidationSpecificFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~InvalidationSpecificFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) InvalidationSpecificFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<InvalidationSpecificFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(InvalidationSpecificFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST InvalidationSpecificFieldsGlobalsTypeInternal InvalidationSpecificFields_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* InvalidationSpecificFields_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return InvalidationSpecificFields_globals_.GetClassData();
#else
  return InvalidationSpecificFields_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class GooglePlayServicesVersionInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<GooglePlayServicesVersionInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfo, _impl_._has_bits_);
};

constexpr GooglePlayServicesVersionInfo::ParseTableT_ GooglePlayServicesVersionInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfo, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::GooglePlayServicesVersionInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string apk_version_name = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfo, _impl_.apk_version_name_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string apk_version_name = 1;
      {PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfo, _impl_.apk_version_name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr GooglePlayServicesVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        apk_version_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr GooglePlayServicesVersionInfo::GooglePlayServicesVersionInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL GooglePlayServicesVersionInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) GooglePlayServicesVersionInfo(arena);
}
constexpr auto GooglePlayServicesVersionInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(GooglePlayServicesVersionInfo), alignof(GooglePlayServicesVersionInfo));
}
constexpr auto GooglePlayServicesVersionInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &GooglePlayServicesVersionInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<GooglePlayServicesVersionInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &GooglePlayServicesVersionInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<GooglePlayServicesVersionInfo>(), &GooglePlayServicesVersionInfo::ByteSizeLong,
              &GooglePlayServicesVersionInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfo, _impl_._cached_size_),
          true,
      },
      "sync_pb.GooglePlayServicesVersionInfo",
  };
}
struct GooglePlayServicesVersionInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GooglePlayServicesVersionInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 GooglePlayServicesVersionInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(GooglePlayServicesVersionInfo::InternalGenerateClassData_(
            _default, &GooglePlayServicesVersionInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<GooglePlayServicesVersionInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GooglePlayServicesVersionInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) GooglePlayServicesVersionInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<GooglePlayServicesVersionInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GooglePlayServicesVersionInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST GooglePlayServicesVersionInfoGlobalsTypeInternal GooglePlayServicesVersionInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* GooglePlayServicesVersionInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return GooglePlayServicesVersionInfo_globals_.GetClassData();
#else
  return GooglePlayServicesVersionInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class FeatureSpecificFields::_Internal {
 public:
  using HasBits = decltype(::std::declval<FeatureSpecificFields>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_._has_bits_);
};

constexpr FeatureSpecificFields::ParseTableT_ FeatureSpecificFields::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967072,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::FeatureSpecificFields>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 glic_experimental_triggering_version = 8;
      {::_pbi::TcParser::FastV32S1,
       {64, 6, 0,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.glic_experimental_triggering_version_)}},
      // optional bool send_tab_to_self_receiving_enabled = 1;
      {::_pbi::TcParser::FastV8S1,
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.send_tab_to_self_receiving_enabled_)}},
      // optional .sync_pb.SyncEnums.SendTabReceivingType send_tab_to_self_receiving_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 1, 1,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.send_tab_to_self_receiving_type_)}},
      // optional int64 auto_sign_out_last_signin_timestamp_windows_epoch_micros = 3;
      {::_pbi::TcParser::FastV64S1,
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.auto_sign_out_last_signin_timestamp_windows_epoch_micros_)}},
      // optional bool desktop_to_ios_promo_receiving_enabled = 4;
      {::_pbi::TcParser::FastV8S1,
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_enabled_)}},
      // repeated .sync_pb.SyncEnums.MobilePromoOnDesktopPromoType desktop_to_ios_promo_receiving_types = 5;
      {::_pbi::TcParser::FastEr0R1,
       {40, 0, 5,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_types_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.SyncEnums.GlicExperimentalTriggeringState glic_experimental_triggering_state = 7;
      {::_pbi::TcParser::FastEr0S1,
       {56, 5, 2,
        PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.glic_experimental_triggering_state_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bool send_tab_to_self_receiving_enabled = 1;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.send_tab_to_self_receiving_enabled_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional .sync_pb.SyncEnums.SendTabReceivingType send_tab_to_self_receiving_type = 2;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.send_tab_to_self_receiving_type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional int64 auto_sign_out_last_signin_timestamp_windows_epoch_micros = 3;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.auto_sign_out_last_signin_timestamp_windows_epoch_micros_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional bool desktop_to_ios_promo_receiving_enabled = 4;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_enabled_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .sync_pb.SyncEnums.MobilePromoOnDesktopPromoType desktop_to_ios_promo_receiving_types = 5;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_types_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
      // optional .sync_pb.SyncEnums.GlicExperimentalTriggeringState glic_experimental_triggering_state = 7;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.glic_experimental_triggering_state_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional int32 glic_experimental_triggering_version = 8;
      {PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.glic_experimental_triggering_version_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    {{
        {0, 1},
        {0, 5},
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr FeatureSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        desktop_to_ios_promo_receiving_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::FeatureSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_types_)>()
         }
        ,
        send_tab_to_self_receiving_type_{static_cast< ::sync_pb::SyncEnums_SendTabReceivingType >(0)},
        send_tab_to_self_receiving_enabled_{false},
        desktop_to_ios_promo_receiving_enabled_{false},
        auto_sign_out_last_signin_timestamp_windows_epoch_micros_{::int64_t{0}},
        glic_experimental_triggering_state_{static_cast< ::sync_pb::SyncEnums_GlicExperimentalTriggeringState >(0)},
        glic_experimental_triggering_version_{0} {}

template <typename>
constexpr FeatureSpecificFields::FeatureSpecificFields(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FeatureSpecificFields::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FeatureSpecificFields(arena);
}
constexpr auto FeatureSpecificFields::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FeatureSpecificFields), alignof(FeatureSpecificFields));
}
constexpr auto FeatureSpecificFields::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FeatureSpecificFields::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FeatureSpecificFields>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FeatureSpecificFields::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FeatureSpecificFields>(), &FeatureSpecificFields::ByteSizeLong,
              &FeatureSpecificFields::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_._cached_size_),
          true,
      },
      "sync_pb.FeatureSpecificFields",
  };
}
struct FeatureSpecificFieldsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FeatureSpecificFieldsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FeatureSpecificFields_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FeatureSpecificFields::InternalGenerateClassData_(
            _default, &FeatureSpecificFields_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FeatureSpecificFields>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FeatureSpecificFieldsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FeatureSpecificFields _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FeatureSpecificFields>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FeatureSpecificFieldsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FeatureSpecificFieldsGlobalsTypeInternal FeatureSpecificFields_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FeatureSpecificFields_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FeatureSpecificFields_globals_.GetClassData();
#else
  return FeatureSpecificFields_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ChromeVersionInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<ChromeVersionInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ChromeVersionInfo, _impl_._has_bits_);
};

constexpr ChromeVersionInfo::ParseTableT_ ChromeVersionInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ChromeVersionInfo, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::ChromeVersionInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string version_number = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ChromeVersionInfo, _impl_.version_number_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string version_number = 1;
      {PROTOBUF_FIELD_OFFSET(ChromeVersionInfo, _impl_.version_number_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ChromeVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        version_number_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ChromeVersionInfo::ChromeVersionInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ChromeVersionInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ChromeVersionInfo(arena);
}
constexpr auto ChromeVersionInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ChromeVersionInfo), alignof(ChromeVersionInfo));
}
constexpr auto ChromeVersionInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ChromeVersionInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ChromeVersionInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ChromeVersionInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ChromeVersionInfo>(), &ChromeVersionInfo::ByteSizeLong,
              &ChromeVersionInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ChromeVersionInfo, _impl_._cached_size_),
          true,
      },
      "sync_pb.ChromeVersionInfo",
  };
}
struct ChromeVersionInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ChromeVersionInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ChromeVersionInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ChromeVersionInfo::InternalGenerateClassData_(
            _default, &ChromeVersionInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ChromeVersionInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ChromeVersionInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ChromeVersionInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ChromeVersionInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ChromeVersionInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ChromeVersionInfoGlobalsTypeInternal ChromeVersionInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ChromeVersionInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ChromeVersionInfo_globals_.GetClassData();
#else
  return ChromeVersionInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class DeviceInfoSpecifics::_Internal {
 public:
  using HasBits = decltype(::std::declval<DeviceInfoSpecifics>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::sync_pb::DeviceInfoSpecifics, _impl_._oneof_case_);
};

constexpr DeviceInfoSpecifics::ParseTableT_ DeviceInfoSpecifics::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_._has_bits_),
      0, // no _extensions_
      23, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4286578688,  // skipmap
      offsetof(ParseTableT_, field_entries),
      23,  // num_field_entries
      10,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::sync_pb::DeviceInfoSpecifics>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string cache_guid = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.cache_guid_)}},
      // optional string client_name = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.client_name_)}},
      // optional .sync_pb.SyncEnums.DeviceType device_type = 3 [deprecated = true];
      {::_pbi::TcParser::FastEr0S1,
       {24, 17, 7,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.device_type_)}},
      // optional string sync_user_agent = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.sync_user_agent_)}},
      // optional string chrome_version = 5 [deprecated = true];
      {::_pbi::TcParser::FastBS1,
       {42, 3, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.chrome_version_)}},
      // optional int64 deprecated_backup_timestamp = 6 [deprecated = true];
      {::_pbi::TcParser::FastV64S1,
       {48, 15, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.deprecated_backup_timestamp_)}},
      // optional string signin_scoped_device_id = 7;
      {::_pbi::TcParser::FastBS1,
       {58, 4, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.signin_scoped_device_id_)}},
      // optional int64 last_updated_timestamp = 8;
      {::_pbi::TcParser::FastV64S1,
       {64, 16, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.last_updated_timestamp_)}},
      // optional .sync_pb.FeatureSpecificFields feature_fields = 9;
      {::_pbi::TcParser::FastMtS1,
       {74, 10, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.feature_fields_)}},
      // optional .sync_pb.SharingSpecificFields sharing_fields = 10;
      {::_pbi::TcParser::FastMtS1,
       {82, 11, 1,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.sharing_fields_)}},
      // optional string model = 11;
      {::_pbi::TcParser::FastBS1,
       {90, 5, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.model_)}},
      // optional string manufacturer = 12;
      {::_pbi::TcParser::FastBS1,
       {98, 6, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.manufacturer_)}},
      // optional int32 pulse_interval_in_minutes = 13;
      {::_pbi::TcParser::FastV32S1,
       {104, 18, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.pulse_interval_in_minutes_)}},
      // optional .sync_pb.InvalidationSpecificFields invalidation_fields = 14;
      {::_pbi::TcParser::FastMtS1,
       {114, 12, 2,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.invalidation_fields_)}},
      // optional .sync_pb.PhoneAsASecurityKeySpecificFields paask_fields = 15;
      {::_pbi::TcParser::FastMtS1,
       {122, 13, 3,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.paask_fields_)}},
      // optional string full_hardware_class = 16;
      {::_pbi::TcParser::FastBS2,
       {386, 7, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.full_hardware_class_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .sync_pb.SyncEnums.OsType os_type = 19;
      {::_pbi::TcParser::FastEr0S2,
       {408, 19, 8,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.os_type_)}},
      // optional .sync_pb.SyncEnums.DeviceFormFactor device_form_factor = 20;
      {::_pbi::TcParser::FastEr0S2,
       {416, 20, 6,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.device_form_factor_)}},
      // optional string android_os_build_fingerprint_prefix = 21;
      {::_pbi::TcParser::FastBS2,
       {426, 8, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.android_os_build_fingerprint_prefix_)}},
      // optional string server_determined_model_name = 22;
      {::_pbi::TcParser::FastBS2,
       {434, 9, 0,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.server_determined_model_name_)}},
      // optional .sync_pb.PersonalContextSpecificFields personal_context_fields = 23;
      {::_pbi::TcParser::FastMtS2,
       {442, 14, 6,
        PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.personal_context_fields_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string cache_guid = 1;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.cache_guid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string client_name = 2;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.client_name_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .sync_pb.SyncEnums.DeviceType device_type = 3 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.device_type_), _Internal::kHasBitsOffset + 17, 7, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string sync_user_agent = 4;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.sync_user_agent_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string chrome_version = 5 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.chrome_version_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int64 deprecated_backup_timestamp = 6 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.deprecated_backup_timestamp_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional string signin_scoped_device_id = 7;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.signin_scoped_device_id_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int64 last_updated_timestamp = 8;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.last_updated_timestamp_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional .sync_pb.FeatureSpecificFields feature_fields = 9;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.feature_fields_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.SharingSpecificFields sharing_fields = 10;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.sharing_fields_), _Internal::kHasBitsOffset + 11, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string model = 11;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.model_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string manufacturer = 12;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.manufacturer_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int32 pulse_interval_in_minutes = 13;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.pulse_interval_in_minutes_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional .sync_pb.InvalidationSpecificFields invalidation_fields = 14;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.invalidation_fields_), _Internal::kHasBitsOffset + 12, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.PhoneAsASecurityKeySpecificFields paask_fields = 15;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.paask_fields_), _Internal::kHasBitsOffset + 13, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string full_hardware_class = 16;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.full_hardware_class_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .sync_pb.ChromeVersionInfo chrome_version_info = 17;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.client_version_info_.chrome_version_info_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .sync_pb.GooglePlayServicesVersionInfo google_play_services_version_info = 18;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.client_version_info_.google_play_services_version_info_), _Internal::kOneofCaseOffset + 0, 5, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .sync_pb.SyncEnums.OsType os_type = 19;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.os_type_), _Internal::kHasBitsOffset + 19, 8, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .sync_pb.SyncEnums.DeviceFormFactor device_form_factor = 20;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.device_form_factor_), _Internal::kHasBitsOffset + 20, 9, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string android_os_build_fingerprint_prefix = 21;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.android_os_build_fingerprint_prefix_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string server_determined_model_name = 22;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.server_determined_model_name_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .sync_pb.PersonalContextSpecificFields personal_context_fields = 23;
      {PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.personal_context_fields_), _Internal::kHasBitsOffset + 14, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::FeatureSpecificFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::FeatureSpecificFields_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::SharingSpecificFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::SharingSpecificFields_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::InvalidationSpecificFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::InvalidationSpecificFields_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::PhoneAsASecurityKeySpecificFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::PhoneAsASecurityKeySpecificFields_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::ChromeVersionInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::ChromeVersionInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::GooglePlayServicesVersionInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::GooglePlayServicesVersionInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::sync_pb::PersonalContextSpecificFields>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::sync_pb::PersonalContextSpecificFields_globals_},
        #endif
        {0, 7},
        {0, 8},
        {0, 6},
    }},
    {{
    }},
  };
}


inline constexpr DeviceInfoSpecifics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        cache_guid_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        client_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sync_user_agent_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        chrome_version_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        signin_scoped_device_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        model_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        manufacturer_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        full_hardware_class_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        android_os_build_fingerprint_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        server_determined_model_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        feature_fields_{nullptr},
        sharing_fields_{nullptr},
        invalidation_fields_{nullptr},
        paask_fields_{nullptr},
        personal_context_fields_{nullptr},
        deprecated_backup_timestamp_{::int64_t{0}},
        last_updated_timestamp_{::int64_t{0}},
        device_type_{static_cast< ::sync_pb::SyncEnums_DeviceType >(0)},
        pulse_interval_in_minutes_{0},
        os_type_{static_cast< ::sync_pb::SyncEnums_OsType >(0)},
        device_form_factor_{static_cast< ::sync_pb::SyncEnums_DeviceFormFactor >(0)},
        client_version_info_{},
        _oneof_case_{} {}

template <typename>
constexpr DeviceInfoSpecifics::DeviceInfoSpecifics(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL DeviceInfoSpecifics::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DeviceInfoSpecifics(arena);
}
constexpr auto DeviceInfoSpecifics::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(DeviceInfoSpecifics), alignof(DeviceInfoSpecifics));
}
constexpr auto DeviceInfoSpecifics::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &DeviceInfoSpecifics::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<DeviceInfoSpecifics>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DeviceInfoSpecifics::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<DeviceInfoSpecifics>(), &DeviceInfoSpecifics::ByteSizeLong,
              &DeviceInfoSpecifics::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_._cached_size_),
          true,
      },
      "sync_pb.DeviceInfoSpecifics",
  };
}
struct DeviceInfoSpecificsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr DeviceInfoSpecificsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 DeviceInfoSpecifics_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(DeviceInfoSpecifics::InternalGenerateClassData_(
            _default, &DeviceInfoSpecifics_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<DeviceInfoSpecifics>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~DeviceInfoSpecificsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) DeviceInfoSpecifics _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<DeviceInfoSpecifics>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(DeviceInfoSpecificsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST DeviceInfoSpecificsGlobalsTypeInternal DeviceInfoSpecifics_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* DeviceInfoSpecifics_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return DeviceInfoSpecifics_globals_.GetClassData();
#else
  return DeviceInfoSpecifics_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace sync_pb
namespace sync_pb {
PROTOBUF_CONSTINIT const uint32_t SharingSpecificFields_EnabledFeatures_internal_data_[] = {
    65536u, 32u, 3852u, };
static const char SharingSpecificFields_EnabledFeatures_names[] = {
    "BROWSER_ACTUATOR"
    "GLIC_EXPERIMENTAL_TRIGGERING"
    "ONE_TIME_TOKEN_BACKEND_NOTIFICATION"
    "OPTIMIZATION_GUIDE_PUSH_NOTIFICATION"
    "REMOTE_COPY"
    "SMS_FETCHER"
    "UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry SharingSpecificFields_EnabledFeatures_entries[] = {
    {{&SharingSpecificFields_EnabledFeatures_names[0], 16}, 12},
    {{&SharingSpecificFields_EnabledFeatures_names[16], 28}, 11},
    {{&SharingSpecificFields_EnabledFeatures_names[44], 35}, 10},
    {{&SharingSpecificFields_EnabledFeatures_names[79], 36}, 9},
    {{&SharingSpecificFields_EnabledFeatures_names[115], 11}, 4},
    {{&SharingSpecificFields_EnabledFeatures_names[126], 11}, 3},
    {{&SharingSpecificFields_EnabledFeatures_names[137], 7}, 0},
};

static const int SharingSpecificFields_EnabledFeatures_entries_by_number[] = {
    6,  // 0 -> UNKNOWN
    5,  // 3 -> SMS_FETCHER
    4,  // 4 -> REMOTE_COPY
    3,  // 9 -> OPTIMIZATION_GUIDE_PUSH_NOTIFICATION
    2,  // 10 -> ONE_TIME_TOKEN_BACKEND_NOTIFICATION
    1,  // 11 -> GLIC_EXPERIMENTAL_TRIGGERING
    0,  // 12 -> BROWSER_ACTUATOR
};

bool SharingSpecificFields_EnabledFeatures_Parse(::absl::string_view name,
                                  SharingSpecificFields_EnabledFeatures* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      SharingSpecificFields_EnabledFeatures_entries, 7, name, &int_value);
  if (success) {
    *value = static_cast<SharingSpecificFields_EnabledFeatures>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    SharingSpecificFields_EnabledFeatures_strings[7] = {};

const ::std::string& SharingSpecificFields_EnabledFeatures_Name(SharingSpecificFields_EnabledFeatures value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      SharingSpecificFields_EnabledFeatures_entries, SharingSpecificFields_EnabledFeatures_entries_by_number, 7,
      SharingSpecificFields_EnabledFeatures_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(SharingSpecificFields_EnabledFeatures_entries,
                                  SharingSpecificFields_EnabledFeatures_entries_by_number,
                                  7, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : SharingSpecificFields_EnabledFeatures_strings[idx].get();
}
// ===================================================================

void DeviceInfoSpecifics::set_allocated_chrome_version_info(::sync_pb::ChromeVersionInfo* PROTOBUF_NULLABLE chrome_version_info) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_client_version_info();
  if (chrome_version_info) {
    ::google::protobuf::Arena* submessage_arena = chrome_version_info->GetArena();
    if (message_arena != submessage_arena) {
      chrome_version_info = ::google::protobuf::internal::GetOwnedMessage(message_arena, chrome_version_info, submessage_arena);
    }
    set_has_chrome_version_info();
    _impl_.client_version_info_.chrome_version_info_ = chrome_version_info;
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.DeviceInfoSpecifics.chrome_version_info)
}
void DeviceInfoSpecifics::set_allocated_google_play_services_version_info(::sync_pb::GooglePlayServicesVersionInfo* PROTOBUF_NULLABLE google_play_services_version_info) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_client_version_info();
  if (google_play_services_version_info) {
    ::google::protobuf::Arena* submessage_arena = google_play_services_version_info->GetArena();
    if (message_arena != submessage_arena) {
      google_play_services_version_info = ::google::protobuf::internal::GetOwnedMessage(message_arena, google_play_services_version_info, submessage_arena);
    }
    set_has_google_play_services_version_info();
    _impl_.client_version_info_.google_play_services_version_info_ = google_play_services_version_info;
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.DeviceInfoSpecifics.google_play_services_version_info)
}
DeviceInfoSpecifics::DeviceInfoSpecifics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, DeviceInfoSpecifics_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.DeviceInfoSpecifics)
}
PROTOBUF_NDEBUG_INLINE DeviceInfoSpecifics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::DeviceInfoSpecifics& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        cache_guid_(arena, from.cache_guid_),
        client_name_(arena, from.client_name_),
        sync_user_agent_(arena, from.sync_user_agent_),
        chrome_version_(arena, from.chrome_version_),
        signin_scoped_device_id_(arena, from.signin_scoped_device_id_),
        model_(arena, from.model_),
        manufacturer_(arena, from.manufacturer_),
        full_hardware_class_(arena, from.full_hardware_class_),
        android_os_build_fingerprint_prefix_(arena, from.android_os_build_fingerprint_prefix_),
        server_determined_model_name_(arena, from.server_determined_model_name_),
        client_version_info_{},
        _oneof_case_{from._oneof_case_[0]} {}

DeviceInfoSpecifics::DeviceInfoSpecifics(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DeviceInfoSpecifics& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, DeviceInfoSpecifics_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DeviceInfoSpecifics* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.feature_fields_ = (CheckHasBit(cached_has_bits, 0x00000400U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.feature_fields_)
                : nullptr;
  _impl_.sharing_fields_ = (CheckHasBit(cached_has_bits, 0x00000800U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.sharing_fields_)
                : nullptr;
  _impl_.invalidation_fields_ = (CheckHasBit(cached_has_bits, 0x00001000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.invalidation_fields_)
                : nullptr;
  _impl_.paask_fields_ = (CheckHasBit(cached_has_bits, 0x00002000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.paask_fields_)
                : nullptr;
  _impl_.personal_context_fields_ = (CheckHasBit(cached_has_bits, 0x00004000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.personal_context_fields_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, deprecated_backup_timestamp_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, deprecated_backup_timestamp_),
           offsetof(Impl_, device_form_factor_) -
               offsetof(Impl_, deprecated_backup_timestamp_) +
               sizeof(Impl_::device_form_factor_));
  switch (client_version_info_case()) {
    case CLIENT_VERSION_INFO_NOT_SET:
      break;
      case kChromeVersionInfo:
        _impl_.client_version_info_.chrome_version_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_version_info_.chrome_version_info_);
        break;
      case kGooglePlayServicesVersionInfo:
        _impl_.client_version_info_.google_play_services_version_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_version_info_.google_play_services_version_info_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:sync_pb.DeviceInfoSpecifics)
}
PROTOBUF_NDEBUG_INLINE DeviceInfoSpecifics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        cache_guid_(arena),
        client_name_(arena),
        sync_user_agent_(arena),
        chrome_version_(arena),
        signin_scoped_device_id_(arena),
        model_(arena),
        manufacturer_(arena),
        full_hardware_class_(arena),
        android_os_build_fingerprint_prefix_(arena),
        server_determined_model_name_(arena),
        client_version_info_{},
        _oneof_case_{} {}

inline void DeviceInfoSpecifics::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, feature_fields_),
           0,
           offsetof(Impl_, device_form_factor_) -
               offsetof(Impl_, feature_fields_) +
               sizeof(Impl_::device_form_factor_));
}
DeviceInfoSpecifics::~DeviceInfoSpecifics() {
  // @@protoc_insertion_point(destructor:sync_pb.DeviceInfoSpecifics)
  SharedDtor(*this);
}
inline void DeviceInfoSpecifics::SharedDtor(MessageLite& self) {
  DeviceInfoSpecifics& this_ = static_cast<DeviceInfoSpecifics&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.cache_guid_.Destroy();
  this_._impl_.client_name_.Destroy();
  this_._impl_.sync_user_agent_.Destroy();
  this_._impl_.chrome_version_.Destroy();
  this_._impl_.signin_scoped_device_id_.Destroy();
  this_._impl_.model_.Destroy();
  this_._impl_.manufacturer_.Destroy();
  this_._impl_.full_hardware_class_.Destroy();
  this_._impl_.android_os_build_fingerprint_prefix_.Destroy();
  this_._impl_.server_determined_model_name_.Destroy();
  delete this_._impl_.feature_fields_;
  delete this_._impl_.sharing_fields_;
  delete this_._impl_.invalidation_fields_;
  delete this_._impl_.paask_fields_;
  delete this_._impl_.personal_context_fields_;
  if (this_.has_client_version_info()) {
    this_.clear_client_version_info();
  }
  this_._impl_.~Impl_();
}

void DeviceInfoSpecifics::clear_client_version_info() {
// @@protoc_insertion_point(one_of_clear_start:sync_pb.DeviceInfoSpecifics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (client_version_info_case()) {
    case kChromeVersionInfo: {
      if (GetArena() == nullptr) {
        delete _impl_.client_version_info_.chrome_version_info_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.client_version_info_.chrome_version_info_ != nullptr) {
          _impl_.client_version_info_.chrome_version_info_->Clear();
        }
      }
      break;
    }
    case kGooglePlayServicesVersionInfo: {
      if (GetArena() == nullptr) {
        delete _impl_.client_version_info_.google_play_services_version_info_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.client_version_info_.google_play_services_version_info_ != nullptr) {
          _impl_.client_version_info_.google_play_services_version_info_->Clear();
        }
      }
      break;
    }
    case CLIENT_VERSION_INFO_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = CLIENT_VERSION_INFO_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite DeviceInfoSpecifics_class_data_ =
    DeviceInfoSpecifics::InternalGenerateClassData_(DeviceInfoSpecifics_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DeviceInfoSpecifics::GetClassData() const {
  return DeviceInfoSpecifics_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DeviceInfoSpecifics::GetClassData() const {
  return DeviceInfoSpecifics_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const DeviceInfoSpecifics::ParseTableT_
    DeviceInfoSpecifics::_table_ =
        DeviceInfoSpecifics::InternalGenerateParseTable_(DeviceInfoSpecifics_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void DeviceInfoSpecifics::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.DeviceInfoSpecifics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.cache_guid_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.client_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.sync_user_agent_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.chrome_version_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.signin_scoped_device_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.model_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.manufacturer_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.full_hardware_class_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00007f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _impl_.android_os_build_fingerprint_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _impl_.server_determined_model_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(_impl_.feature_fields_ != nullptr);
      _impl_.feature_fields_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(_impl_.sharing_fields_ != nullptr);
      _impl_.sharing_fields_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(_impl_.invalidation_fields_ != nullptr);
      _impl_.invalidation_fields_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(_impl_.paask_fields_ != nullptr);
      _impl_.paask_fields_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(_impl_.personal_context_fields_ != nullptr);
      _impl_.personal_context_fields_->Clear();
    }
  }
  _impl_.deprecated_backup_timestamp_ = ::int64_t{0};
  if (BatchCheckHasBit(cached_has_bits, 0x001f0000U)) {
    ::memset(&_impl_.last_updated_timestamp_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.device_form_factor_) -
        reinterpret_cast<char*>(&_impl_.last_updated_timestamp_)) + sizeof(_impl_.device_form_factor_));
  }
  clear_client_version_info();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL DeviceInfoSpecifics::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const DeviceInfoSpecifics& this_ = static_cast<const DeviceInfoSpecifics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL DeviceInfoSpecifics::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const DeviceInfoSpecifics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.DeviceInfoSpecifics)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string cache_guid = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_cache_guid();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string client_name = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_client_name();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional .sync_pb.SyncEnums.DeviceType device_type = 3 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_device_type(), target);
  }

  // optional string sync_user_agent = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_sync_user_agent();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string chrome_version = 5 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_chrome_version();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional int64 deprecated_backup_timestamp = 6 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<6>(
            stream, this_._internal_deprecated_backup_timestamp(), target);
  }

  // optional string signin_scoped_device_id = 7;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_signin_scoped_device_id();
    target = stream->WriteStringMaybeAliased(7, _s, target);
  }

  // optional int64 last_updated_timestamp = 8;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<8>(
            stream, this_._internal_last_updated_timestamp(), target);
  }

  // optional .sync_pb.FeatureSpecificFields feature_fields = 9;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.feature_fields_, this_._impl_.feature_fields_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.SharingSpecificFields sharing_fields = 10;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.sharing_fields_, this_._impl_.sharing_fields_->GetCachedSize(), target,
        stream);
  }

  // optional string model = 11;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_model();
    target = stream->WriteStringMaybeAliased(11, _s, target);
  }

  // optional string manufacturer = 12;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_manufacturer();
    target = stream->WriteStringMaybeAliased(12, _s, target);
  }

  // optional int32 pulse_interval_in_minutes = 13;
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
            stream, this_._internal_pulse_interval_in_minutes(), target);
  }

  // optional .sync_pb.InvalidationSpecificFields invalidation_fields = 14;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        14, *this_._impl_.invalidation_fields_, this_._impl_.invalidation_fields_->GetCachedSize(), target,
        stream);
  }

  // optional .sync_pb.PhoneAsASecurityKeySpecificFields paask_fields = 15;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        15, *this_._impl_.paask_fields_, this_._impl_.paask_fields_->GetCachedSize(), target,
        stream);
  }

  // optional string full_hardware_class = 16;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_full_hardware_class();
    target = stream->WriteStringMaybeAliased(16, _s, target);
  }

  switch (this_.client_version_info_case()) {
    case kChromeVersionInfo: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          17, *this_._impl_.client_version_info_.chrome_version_info_, this_._impl_.client_version_info_.chrome_version_info_->GetCachedSize(), target,
          stream);
      break;
    }
    case kGooglePlayServicesVersionInfo: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          18, *this_._impl_.client_version_info_.google_play_services_version_info_, this_._impl_.client_version_info_.google_play_services_version_info_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  // optional .sync_pb.SyncEnums.OsType os_type = 19;
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        19, this_._internal_os_type(), target);
  }

  // optional .sync_pb.SyncEnums.DeviceFormFactor device_form_factor = 20;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        20, this_._internal_device_form_factor(), target);
  }

  // optional string android_os_build_fingerprint_prefix = 21;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    const ::std::string& _s = this_._internal_android_os_build_fingerprint_prefix();
    target = stream->WriteStringMaybeAliased(21, _s, target);
  }

  // optional string server_determined_model_name = 22;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    const ::std::string& _s = this_._internal_server_determined_model_name();
    target = stream->WriteStringMaybeAliased(22, _s, target);
  }

  // optional .sync_pb.PersonalContextSpecificFields personal_context_fields = 23;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        23, *this_._impl_.personal_context_fields_, this_._impl_.personal_context_fields_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.DeviceInfoSpecifics)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DeviceInfoSpecifics::ByteSizeLong(const MessageLite& base) {
  const DeviceInfoSpecifics& this_ = static_cast<const DeviceInfoSpecifics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DeviceInfoSpecifics::ByteSizeLong() const {
  const DeviceInfoSpecifics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.DeviceInfoSpecifics)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // optional string cache_guid = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cache_guid());
    }
    // optional string client_name = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_client_name());
    }
    // optional string sync_user_agent = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_sync_user_agent());
    }
    // optional string chrome_version = 5 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_chrome_version());
    }
    // optional string signin_scoped_device_id = 7;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_signin_scoped_device_id());
    }
    // optional string model = 11;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_model());
    }
    // optional string manufacturer = 12;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_manufacturer());
    }
    // optional string full_hardware_class = 16;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_full_hardware_class());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // optional string android_os_build_fingerprint_prefix = 21;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_android_os_build_fingerprint_prefix());
    }
    // optional string server_determined_model_name = 22;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_server_determined_model_name());
    }
    // optional .sync_pb.FeatureSpecificFields feature_fields = 9;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.feature_fields_);
    }
    // optional .sync_pb.SharingSpecificFields sharing_fields = 10;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sharing_fields_);
    }
    // optional .sync_pb.InvalidationSpecificFields invalidation_fields = 14;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.invalidation_fields_);
    }
    // optional .sync_pb.PhoneAsASecurityKeySpecificFields paask_fields = 15;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.paask_fields_);
    }
    // optional .sync_pb.PersonalContextSpecificFields personal_context_fields = 23;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.personal_context_fields_);
    }
    // optional int64 deprecated_backup_timestamp = 6 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_deprecated_backup_timestamp());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x001f0000U)) {
    // optional int64 last_updated_timestamp = 8;
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_last_updated_timestamp());
    }
    // optional .sync_pb.SyncEnums.DeviceType device_type = 3 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_device_type());
    }
    // optional int32 pulse_interval_in_minutes = 13;
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_pulse_interval_in_minutes());
    }
    // optional .sync_pb.SyncEnums.OsType os_type = 19;
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_os_type());
    }
    // optional .sync_pb.SyncEnums.DeviceFormFactor device_form_factor = 20;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_device_form_factor());
    }
  }
  switch (this_.client_version_info_case()) {
    // .sync_pb.ChromeVersionInfo chrome_version_info = 17;
    case kChromeVersionInfo: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_version_info_.chrome_version_info_);
      break;
    }
    // .sync_pb.GooglePlayServicesVersionInfo google_play_services_version_info = 18;
    case kGooglePlayServicesVersionInfo: {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.client_version_info_.google_play_services_version_info_);
      break;
    }
    case CLIENT_VERSION_INFO_NOT_SET: {
      break;
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void DeviceInfoSpecifics::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<DeviceInfoSpecifics*>(&to_msg);
  auto& from = static_cast<const DeviceInfoSpecifics&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.DeviceInfoSpecifics)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_cache_guid(from._internal_cache_guid());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_client_name(from._internal_client_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_sync_user_agent(from._internal_sync_user_agent());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_chrome_version(from._internal_chrome_version());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_signin_scoped_device_id(from._internal_signin_scoped_device_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_model(from._internal_model());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_manufacturer(from._internal_manufacturer());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_full_hardware_class(from._internal_full_hardware_class());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_internal_set_android_os_build_fingerprint_prefix(from._internal_android_os_build_fingerprint_prefix());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_internal_set_server_determined_model_name(from._internal_server_determined_model_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(from._impl_.feature_fields_ != nullptr);
      if (_this->_impl_.feature_fields_ == nullptr) {
        _this->_impl_.feature_fields_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.feature_fields_);
      } else {
        _this->_impl_.feature_fields_->MergeFrom(*from._impl_.feature_fields_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(from._impl_.sharing_fields_ != nullptr);
      if (_this->_impl_.sharing_fields_ == nullptr) {
        _this->_impl_.sharing_fields_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.sharing_fields_);
      } else {
        _this->_impl_.sharing_fields_->MergeFrom(*from._impl_.sharing_fields_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(from._impl_.invalidation_fields_ != nullptr);
      if (_this->_impl_.invalidation_fields_ == nullptr) {
        _this->_impl_.invalidation_fields_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.invalidation_fields_);
      } else {
        _this->_impl_.invalidation_fields_->MergeFrom(*from._impl_.invalidation_fields_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(from._impl_.paask_fields_ != nullptr);
      if (_this->_impl_.paask_fields_ == nullptr) {
        _this->_impl_.paask_fields_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.paask_fields_);
      } else {
        _this->_impl_.paask_fields_->MergeFrom(*from._impl_.paask_fields_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(from._impl_.personal_context_fields_ != nullptr);
      if (_this->_impl_.personal_context_fields_ == nullptr) {
        _this->_impl_.personal_context_fields_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.personal_context_fields_);
      } else {
        _this->_impl_.personal_context_fields_->MergeFrom(*from._impl_.personal_context_fields_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.deprecated_backup_timestamp_ = from._impl_.deprecated_backup_timestamp_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x001f0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.last_updated_timestamp_ = from._impl_.last_updated_timestamp_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.device_type_ = from._impl_.device_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.pulse_interval_in_minutes_ = from._impl_.pulse_interval_in_minutes_;
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_impl_.os_type_ = from._impl_.os_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      _this->_impl_.device_form_factor_ = from._impl_.device_form_factor_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_client_version_info();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kChromeVersionInfo: {
        if (oneof_needs_init) {
          _this->_impl_.client_version_info_.chrome_version_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_version_info_.chrome_version_info_);
        } else {
          _this->_impl_.client_version_info_.chrome_version_info_->MergeFrom(*from._impl_.client_version_info_.chrome_version_info_);
        }
        break;
      }
      case kGooglePlayServicesVersionInfo: {
        if (oneof_needs_init) {
          _this->_impl_.client_version_info_.google_play_services_version_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.client_version_info_.google_play_services_version_info_);
        } else {
          _this->_impl_.client_version_info_.google_play_services_version_info_->MergeFrom(*from._impl_.client_version_info_.google_play_services_version_info_);
        }
        break;
      }
      case CLIENT_VERSION_INFO_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void DeviceInfoSpecifics::CopyFrom(const DeviceInfoSpecifics& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.DeviceInfoSpecifics)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void DeviceInfoSpecifics::InternalSwap(DeviceInfoSpecifics* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cache_guid_, &other->_impl_.cache_guid_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.client_name_, &other->_impl_.client_name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sync_user_agent_, &other->_impl_.sync_user_agent_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.chrome_version_, &other->_impl_.chrome_version_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.signin_scoped_device_id_, &other->_impl_.signin_scoped_device_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.model_, &other->_impl_.model_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.manufacturer_, &other->_impl_.manufacturer_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.full_hardware_class_, &other->_impl_.full_hardware_class_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.android_os_build_fingerprint_prefix_, &other->_impl_.android_os_build_fingerprint_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.server_determined_model_name_, &other->_impl_.server_determined_model_name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.device_form_factor_)
      + sizeof(DeviceInfoSpecifics::_impl_.device_form_factor_)
      - PROTOBUF_FIELD_OFFSET(DeviceInfoSpecifics, _impl_.feature_fields_)>(
          reinterpret_cast<char*>(&_impl_.feature_fields_),
          reinterpret_cast<char*>(&other->_impl_.feature_fields_));
  swap(_impl_.client_version_info_, other->_impl_.client_version_info_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

// ===================================================================

FeatureSpecificFields::FeatureSpecificFields(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FeatureSpecificFields_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.FeatureSpecificFields)
}
PROTOBUF_NDEBUG_INLINE FeatureSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::FeatureSpecificFields& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        desktop_to_ios_promo_receiving_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::FeatureSpecificFields,
              PROTOBUF_FIELD_OFFSET(::sync_pb::FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_types_)>()
          , from.desktop_to_ios_promo_receiving_types_
        }
     {}

FeatureSpecificFields::FeatureSpecificFields(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FeatureSpecificFields& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FeatureSpecificFields_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FeatureSpecificFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, send_tab_to_self_receiving_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, send_tab_to_self_receiving_type_),
           offsetof(Impl_, glic_experimental_triggering_version_) -
               offsetof(Impl_, send_tab_to_self_receiving_type_) +
               sizeof(Impl_::glic_experimental_triggering_version_));

  // @@protoc_insertion_point(copy_constructor:sync_pb.FeatureSpecificFields)
}
PROTOBUF_NDEBUG_INLINE FeatureSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        desktop_to_ios_promo_receiving_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::FeatureSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::FeatureSpecificFields, _impl_.desktop_to_ios_promo_receiving_types_)>()
         }
     {}

inline void FeatureSpecificFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, send_tab_to_self_receiving_type_),
           0,
           offsetof(Impl_, glic_experimental_triggering_version_) -
               offsetof(Impl_, send_tab_to_self_receiving_type_) +
               sizeof(Impl_::glic_experimental_triggering_version_));
}
FeatureSpecificFields::~FeatureSpecificFields() {
  // @@protoc_insertion_point(destructor:sync_pb.FeatureSpecificFields)
  SharedDtor(*this);
}
inline void FeatureSpecificFields::SharedDtor(MessageLite& self) {
  FeatureSpecificFields& this_ = static_cast<FeatureSpecificFields&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FeatureSpecificFields_class_data_ =
    FeatureSpecificFields::InternalGenerateClassData_(FeatureSpecificFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FeatureSpecificFields::GetClassData() const {
  return FeatureSpecificFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FeatureSpecificFields::GetClassData() const {
  return FeatureSpecificFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FeatureSpecificFields::ParseTableT_
    FeatureSpecificFields::_table_ =
        FeatureSpecificFields::InternalGenerateParseTable_(FeatureSpecificFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FeatureSpecificFields::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.FeatureSpecificFields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.desktop_to_ios_promo_receiving_types_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007eU)) {
    ::memset(&_impl_.send_tab_to_self_receiving_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.glic_experimental_triggering_version_) -
        reinterpret_cast<char*>(&_impl_.send_tab_to_self_receiving_type_)) + sizeof(_impl_.glic_experimental_triggering_version_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL FeatureSpecificFields::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const FeatureSpecificFields& this_ = static_cast<const FeatureSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL FeatureSpecificFields::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const FeatureSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.FeatureSpecificFields)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool send_tab_to_self_receiving_enabled = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_send_tab_to_self_receiving_enabled(), target);
  }

  // optional .sync_pb.SyncEnums.SendTabReceivingType send_tab_to_self_receiving_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_send_tab_to_self_receiving_type(), target);
  }

  // optional int64 auto_sign_out_last_signin_timestamp_windows_epoch_micros = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<3>(
            stream, this_._internal_auto_sign_out_last_signin_timestamp_windows_epoch_micros(), target);
  }

  // optional bool desktop_to_ios_promo_receiving_enabled = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_desktop_to_ios_promo_receiving_enabled(), target);
  }

  // repeated .sync_pb.SyncEnums.MobilePromoOnDesktopPromoType desktop_to_ios_promo_receiving_types = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_desktop_to_ios_promo_receiving_types_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          5, static_cast<::sync_pb::SyncEnums_MobilePromoOnDesktopPromoType>(this_._internal_desktop_to_ios_promo_receiving_types().Get(i)),
          target);
    }
  }

  // optional .sync_pb.SyncEnums.GlicExperimentalTriggeringState glic_experimental_triggering_state = 7;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        7, this_._internal_glic_experimental_triggering_state(), target);
  }

  // optional int32 glic_experimental_triggering_version = 8;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
            stream, this_._internal_glic_experimental_triggering_version(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.FeatureSpecificFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FeatureSpecificFields::ByteSizeLong(const MessageLite& base) {
  const FeatureSpecificFields& this_ = static_cast<const FeatureSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FeatureSpecificFields::ByteSizeLong() const {
  const FeatureSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.FeatureSpecificFields)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000000cU & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x00000073U)) {
    // repeated .sync_pb.SyncEnums.MobilePromoOnDesktopPromoType desktop_to_ios_promo_receiving_types = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_desktop_to_ios_promo_receiving_types());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_desktop_to_ios_promo_receiving_types_size());
      total_size += data_size + tag_size;
    }
    // optional .sync_pb.SyncEnums.SendTabReceivingType send_tab_to_self_receiving_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_send_tab_to_self_receiving_type());
    }
    // optional int64 auto_sign_out_last_signin_timestamp_windows_epoch_micros = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_auto_sign_out_last_signin_timestamp_windows_epoch_micros());
    }
    // optional .sync_pb.SyncEnums.GlicExperimentalTriggeringState glic_experimental_triggering_state = 7;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_glic_experimental_triggering_state());
    }
    // optional int32 glic_experimental_triggering_version = 8;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_glic_experimental_triggering_version());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void FeatureSpecificFields::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FeatureSpecificFields*>(&to_msg);
  auto& from = static_cast<const FeatureSpecificFields&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.FeatureSpecificFields)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_desktop_to_ios_promo_receiving_types()->MergeFrom(from._internal_desktop_to_ios_promo_receiving_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.send_tab_to_self_receiving_type_ = from._impl_.send_tab_to_self_receiving_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.send_tab_to_self_receiving_enabled_ = from._impl_.send_tab_to_self_receiving_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.desktop_to_ios_promo_receiving_enabled_ = from._impl_.desktop_to_ios_promo_receiving_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.auto_sign_out_last_signin_timestamp_windows_epoch_micros_ = from._impl_.auto_sign_out_last_signin_timestamp_windows_epoch_micros_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.glic_experimental_triggering_state_ = from._impl_.glic_experimental_triggering_state_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.glic_experimental_triggering_version_ = from._impl_.glic_experimental_triggering_version_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void FeatureSpecificFields::CopyFrom(const FeatureSpecificFields& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.FeatureSpecificFields)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FeatureSpecificFields::InternalSwap(FeatureSpecificFields* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.desktop_to_ios_promo_receiving_types_.InternalSwap(&other->_impl_.desktop_to_ios_promo_receiving_types_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.glic_experimental_triggering_version_)
      + sizeof(FeatureSpecificFields::_impl_.glic_experimental_triggering_version_)
      - PROTOBUF_FIELD_OFFSET(FeatureSpecificFields, _impl_.send_tab_to_self_receiving_type_)>(
          reinterpret_cast<char*>(&_impl_.send_tab_to_self_receiving_type_),
          reinterpret_cast<char*>(&other->_impl_.send_tab_to_self_receiving_type_));
}

// ===================================================================

SharingSpecificFields::SharingSpecificFields(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, SharingSpecificFields_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.SharingSpecificFields)
}
PROTOBUF_NDEBUG_INLINE SharingSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::SharingSpecificFields& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        enabled_features_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::SharingSpecificFields,
              PROTOBUF_FIELD_OFFSET(::sync_pb::SharingSpecificFields, _impl_.enabled_features_)>()
          , from.enabled_features_
        }
        ,
        sender_id_fcm_token_deprecated_(arena, from.sender_id_fcm_token_deprecated_),
        sender_id_p256dh_deprecated_(arena, from.sender_id_p256dh_deprecated_),
        sender_id_auth_secret_deprecated_(arena, from.sender_id_auth_secret_deprecated_),
        sender_id_fcm_token_v2_(arena, from.sender_id_fcm_token_v2_),
        sender_id_p256dh_v2_(arena, from.sender_id_p256dh_v2_),
        sender_id_auth_secret_v2_(arena, from.sender_id_auth_secret_v2_),
        chime_representative_target_id_(arena, from.chime_representative_target_id_) {}

SharingSpecificFields::SharingSpecificFields(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SharingSpecificFields& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, SharingSpecificFields_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharingSpecificFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:sync_pb.SharingSpecificFields)
}
PROTOBUF_NDEBUG_INLINE SharingSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        enabled_features_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::SharingSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::SharingSpecificFields, _impl_.enabled_features_)>()
         }
        ,
        sender_id_fcm_token_deprecated_(arena),
        sender_id_p256dh_deprecated_(arena),
        sender_id_auth_secret_deprecated_(arena),
        sender_id_fcm_token_v2_(arena),
        sender_id_p256dh_v2_(arena),
        sender_id_auth_secret_v2_(arena),
        chime_representative_target_id_(arena) {}

inline void SharingSpecificFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
SharingSpecificFields::~SharingSpecificFields() {
  // @@protoc_insertion_point(destructor:sync_pb.SharingSpecificFields)
  SharedDtor(*this);
}
inline void SharingSpecificFields::SharedDtor(MessageLite& self) {
  SharingSpecificFields& this_ = static_cast<SharingSpecificFields&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sender_id_fcm_token_deprecated_.Destroy();
  this_._impl_.sender_id_p256dh_deprecated_.Destroy();
  this_._impl_.sender_id_auth_secret_deprecated_.Destroy();
  this_._impl_.sender_id_fcm_token_v2_.Destroy();
  this_._impl_.sender_id_p256dh_v2_.Destroy();
  this_._impl_.sender_id_auth_secret_v2_.Destroy();
  this_._impl_.chime_representative_target_id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite SharingSpecificFields_class_data_ =
    SharingSpecificFields::InternalGenerateClassData_(SharingSpecificFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SharingSpecificFields::GetClassData() const {
  return SharingSpecificFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SharingSpecificFields::GetClassData() const {
  return SharingSpecificFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SharingSpecificFields::ParseTableT_
    SharingSpecificFields::_table_ =
        SharingSpecificFields::InternalGenerateParseTable_(SharingSpecificFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SharingSpecificFields::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.SharingSpecificFields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.enabled_features_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.sender_id_fcm_token_deprecated_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.sender_id_p256dh_deprecated_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.sender_id_auth_secret_deprecated_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.sender_id_fcm_token_v2_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.sender_id_p256dh_v2_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.sender_id_auth_secret_v2_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.chime_representative_target_id_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SharingSpecificFields::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SharingSpecificFields& this_ = static_cast<const SharingSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SharingSpecificFields::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SharingSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.SharingSpecificFields)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .sync_pb.SharingSpecificFields.EnabledFeatures enabled_features = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_enabled_features_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, static_cast<::sync_pb::SharingSpecificFields_EnabledFeatures>(this_._internal_enabled_features().Get(i)),
          target);
    }
  }

  // optional string sender_id_fcm_token_deprecated = 5 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_sender_id_fcm_token_deprecated();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional bytes sender_id_p256dh_deprecated = 6 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_sender_id_p256dh_deprecated();
    target = stream->WriteBytesMaybeAliased(6, _s, target);
  }

  // optional bytes sender_id_auth_secret_deprecated = 7 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_sender_id_auth_secret_deprecated();
    target = stream->WriteBytesMaybeAliased(7, _s, target);
  }

  // optional string sender_id_fcm_token_v2 = 8;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_sender_id_fcm_token_v2();
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  // optional bytes sender_id_p256dh_v2 = 9;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_sender_id_p256dh_v2();
    target = stream->WriteBytesMaybeAliased(9, _s, target);
  }

  // optional bytes sender_id_auth_secret_v2 = 10;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_sender_id_auth_secret_v2();
    target = stream->WriteBytesMaybeAliased(10, _s, target);
  }

  // optional string chime_representative_target_id = 11;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_chime_representative_target_id();
    target = stream->WriteStringMaybeAliased(11, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.SharingSpecificFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SharingSpecificFields::ByteSizeLong(const MessageLite& base) {
  const SharingSpecificFields& this_ = static_cast<const SharingSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SharingSpecificFields::ByteSizeLong() const {
  const SharingSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.SharingSpecificFields)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .sync_pb.SharingSpecificFields.EnabledFeatures enabled_features = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_enabled_features());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_enabled_features_size());
      total_size += data_size + tag_size;
    }
    // optional string sender_id_fcm_token_deprecated = 5 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_sender_id_fcm_token_deprecated());
    }
    // optional bytes sender_id_p256dh_deprecated = 6 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sender_id_p256dh_deprecated());
    }
    // optional bytes sender_id_auth_secret_deprecated = 7 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sender_id_auth_secret_deprecated());
    }
    // optional string sender_id_fcm_token_v2 = 8;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_sender_id_fcm_token_v2());
    }
    // optional bytes sender_id_p256dh_v2 = 9;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sender_id_p256dh_v2());
    }
    // optional bytes sender_id_auth_secret_v2 = 10;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sender_id_auth_secret_v2());
    }
    // optional string chime_representative_target_id = 11;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_chime_representative_target_id());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void SharingSpecificFields::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SharingSpecificFields*>(&to_msg);
  auto& from = static_cast<const SharingSpecificFields&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.SharingSpecificFields)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_enabled_features()->MergeFrom(from._internal_enabled_features());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_sender_id_fcm_token_deprecated(from._internal_sender_id_fcm_token_deprecated());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_sender_id_p256dh_deprecated(from._internal_sender_id_p256dh_deprecated());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_sender_id_auth_secret_deprecated(from._internal_sender_id_auth_secret_deprecated());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_sender_id_fcm_token_v2(from._internal_sender_id_fcm_token_v2());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_sender_id_p256dh_v2(from._internal_sender_id_p256dh_v2());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_sender_id_auth_secret_v2(from._internal_sender_id_auth_secret_v2());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_chime_representative_target_id(from._internal_chime_representative_target_id());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void SharingSpecificFields::CopyFrom(const SharingSpecificFields& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.SharingSpecificFields)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SharingSpecificFields::InternalSwap(SharingSpecificFields* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.enabled_features_.InternalSwap(&other->_impl_.enabled_features_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_fcm_token_deprecated_, &other->_impl_.sender_id_fcm_token_deprecated_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_p256dh_deprecated_, &other->_impl_.sender_id_p256dh_deprecated_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_auth_secret_deprecated_, &other->_impl_.sender_id_auth_secret_deprecated_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_fcm_token_v2_, &other->_impl_.sender_id_fcm_token_v2_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_p256dh_v2_, &other->_impl_.sender_id_p256dh_v2_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sender_id_auth_secret_v2_, &other->_impl_.sender_id_auth_secret_v2_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.chime_representative_target_id_, &other->_impl_.chime_representative_target_id_, arena);
}

// ===================================================================

InvalidationSpecificFields::InvalidationSpecificFields(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, InvalidationSpecificFields_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.InvalidationSpecificFields)
}
PROTOBUF_NDEBUG_INLINE InvalidationSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::InvalidationSpecificFields& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        interested_data_type_ids_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::sync_pb::InvalidationSpecificFields,
              PROTOBUF_FIELD_OFFSET(::sync_pb::InvalidationSpecificFields, _impl_.interested_data_type_ids_)>()
          , from.interested_data_type_ids_
        }
        ,
        instance_id_token_(arena, from.instance_id_token_) {}

InvalidationSpecificFields::InvalidationSpecificFields(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const InvalidationSpecificFields& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, InvalidationSpecificFields_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  InvalidationSpecificFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:sync_pb.InvalidationSpecificFields)
}
PROTOBUF_NDEBUG_INLINE InvalidationSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        interested_data_type_ids_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::sync_pb::InvalidationSpecificFields,
            PROTOBUF_FIELD_OFFSET(::sync_pb::InvalidationSpecificFields, _impl_.interested_data_type_ids_)>()
         }
        ,
        instance_id_token_(arena) {}

inline void InvalidationSpecificFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
InvalidationSpecificFields::~InvalidationSpecificFields() {
  // @@protoc_insertion_point(destructor:sync_pb.InvalidationSpecificFields)
  SharedDtor(*this);
}
inline void InvalidationSpecificFields::SharedDtor(MessageLite& self) {
  InvalidationSpecificFields& this_ = static_cast<InvalidationSpecificFields&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.instance_id_token_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite InvalidationSpecificFields_class_data_ =
    InvalidationSpecificFields::InternalGenerateClassData_(InvalidationSpecificFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
InvalidationSpecificFields::GetClassData() const {
  return InvalidationSpecificFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
InvalidationSpecificFields::GetClassData() const {
  return InvalidationSpecificFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const InvalidationSpecificFields::ParseTableT_
    InvalidationSpecificFields::_table_ =
        InvalidationSpecificFields::InternalGenerateParseTable_(InvalidationSpecificFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void InvalidationSpecificFields::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.InvalidationSpecificFields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.interested_data_type_ids_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.instance_id_token_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL InvalidationSpecificFields::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const InvalidationSpecificFields& this_ = static_cast<const InvalidationSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL InvalidationSpecificFields::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const InvalidationSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.InvalidationSpecificFields)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string instance_id_token = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_instance_id_token();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // repeated int32 interested_data_type_ids = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_interested_data_type_ids_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          2, this_._internal_interested_data_type_ids().Get(i), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.InvalidationSpecificFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t InvalidationSpecificFields::ByteSizeLong(const MessageLite& base) {
  const InvalidationSpecificFields& this_ = static_cast<const InvalidationSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t InvalidationSpecificFields::ByteSizeLong() const {
  const InvalidationSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.InvalidationSpecificFields)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated int32 interested_data_type_ids = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_interested_data_type_ids());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_interested_data_type_ids_size());
      total_size += tag_size + data_size;
    }
    // optional string instance_id_token = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_instance_id_token());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void InvalidationSpecificFields::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<InvalidationSpecificFields*>(&to_msg);
  auto& from = static_cast<const InvalidationSpecificFields&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.InvalidationSpecificFields)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_interested_data_type_ids()->MergeFrom(from._internal_interested_data_type_ids());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_instance_id_token(from._internal_instance_id_token());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void InvalidationSpecificFields::CopyFrom(const InvalidationSpecificFields& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.InvalidationSpecificFields)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void InvalidationSpecificFields::InternalSwap(InvalidationSpecificFields* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.interested_data_type_ids_.InternalSwap(&other->_impl_.interested_data_type_ids_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.instance_id_token_, &other->_impl_.instance_id_token_, arena);
}

// ===================================================================

PhoneAsASecurityKeySpecificFields::PhoneAsASecurityKeySpecificFields(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PhoneAsASecurityKeySpecificFields_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.PhoneAsASecurityKeySpecificFields)
}
PROTOBUF_NDEBUG_INLINE PhoneAsASecurityKeySpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::PhoneAsASecurityKeySpecificFields& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        contact_id_(arena, from.contact_id_),
        secret_(arena, from.secret_),
        peer_public_key_x962_(arena, from.peer_public_key_x962_),
        google_credential_id_(arena, from.google_credential_id_) {}

PhoneAsASecurityKeySpecificFields::PhoneAsASecurityKeySpecificFields(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PhoneAsASecurityKeySpecificFields& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PhoneAsASecurityKeySpecificFields_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PhoneAsASecurityKeySpecificFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, tunnel_server_domain_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, tunnel_server_domain_),
           offsetof(Impl_, id_) -
               offsetof(Impl_, tunnel_server_domain_) +
               sizeof(Impl_::id_));

  // @@protoc_insertion_point(copy_constructor:sync_pb.PhoneAsASecurityKeySpecificFields)
}
PROTOBUF_NDEBUG_INLINE PhoneAsASecurityKeySpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        contact_id_(arena),
        secret_(arena),
        peer_public_key_x962_(arena),
        google_credential_id_(arena) {}

inline void PhoneAsASecurityKeySpecificFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, tunnel_server_domain_),
           0,
           offsetof(Impl_, id_) -
               offsetof(Impl_, tunnel_server_domain_) +
               sizeof(Impl_::id_));
}
PhoneAsASecurityKeySpecificFields::~PhoneAsASecurityKeySpecificFields() {
  // @@protoc_insertion_point(destructor:sync_pb.PhoneAsASecurityKeySpecificFields)
  SharedDtor(*this);
}
inline void PhoneAsASecurityKeySpecificFields::SharedDtor(MessageLite& self) {
  PhoneAsASecurityKeySpecificFields& this_ = static_cast<PhoneAsASecurityKeySpecificFields&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.contact_id_.Destroy();
  this_._impl_.secret_.Destroy();
  this_._impl_.peer_public_key_x962_.Destroy();
  this_._impl_.google_credential_id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PhoneAsASecurityKeySpecificFields_class_data_ =
    PhoneAsASecurityKeySpecificFields::InternalGenerateClassData_(PhoneAsASecurityKeySpecificFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneAsASecurityKeySpecificFields::GetClassData() const {
  return PhoneAsASecurityKeySpecificFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneAsASecurityKeySpecificFields::GetClassData() const {
  return PhoneAsASecurityKeySpecificFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PhoneAsASecurityKeySpecificFields::ParseTableT_
    PhoneAsASecurityKeySpecificFields::_table_ =
        PhoneAsASecurityKeySpecificFields::InternalGenerateParseTable_(PhoneAsASecurityKeySpecificFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PhoneAsASecurityKeySpecificFields::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.PhoneAsASecurityKeySpecificFields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.contact_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.secret_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.peer_public_key_x962_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.google_credential_id_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000030U)) {
    ::memset(&_impl_.tunnel_server_domain_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.id_) -
        reinterpret_cast<char*>(&_impl_.tunnel_server_domain_)) + sizeof(_impl_.id_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PhoneAsASecurityKeySpecificFields::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PhoneAsASecurityKeySpecificFields& this_ = static_cast<const PhoneAsASecurityKeySpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PhoneAsASecurityKeySpecificFields::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PhoneAsASecurityKeySpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.PhoneAsASecurityKeySpecificFields)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 tunnel_server_domain = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_tunnel_server_domain(), target);
  }

  // optional bytes contact_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_contact_id();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  // optional bytes secret = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_secret();
    target = stream->WriteBytesMaybeAliased(3, _s, target);
  }

  // optional fixed32 id = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFixed32ToArray(
        4, this_._internal_id(), target);
  }

  // optional bytes peer_public_key_x962 = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_peer_public_key_x962();
    target = stream->WriteBytesMaybeAliased(5, _s, target);
  }

  // optional bytes google_credential_id = 6;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_google_credential_id();
    target = stream->WriteBytesMaybeAliased(6, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.PhoneAsASecurityKeySpecificFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PhoneAsASecurityKeySpecificFields::ByteSizeLong(const MessageLite& base) {
  const PhoneAsASecurityKeySpecificFields& this_ = static_cast<const PhoneAsASecurityKeySpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PhoneAsASecurityKeySpecificFields::ByteSizeLong() const {
  const PhoneAsASecurityKeySpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.PhoneAsASecurityKeySpecificFields)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 5;
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // optional bytes contact_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_contact_id());
    }
    // optional bytes secret = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_secret());
    }
    // optional bytes peer_public_key_x962 = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_peer_public_key_x962());
    }
    // optional bytes google_credential_id = 6;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_google_credential_id());
    }
    // optional uint32 tunnel_server_domain = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_tunnel_server_domain());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PhoneAsASecurityKeySpecificFields::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PhoneAsASecurityKeySpecificFields*>(&to_msg);
  auto& from = static_cast<const PhoneAsASecurityKeySpecificFields&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.PhoneAsASecurityKeySpecificFields)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_contact_id(from._internal_contact_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_secret(from._internal_secret());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_peer_public_key_x962(from._internal_peer_public_key_x962());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_google_credential_id(from._internal_google_credential_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.tunnel_server_domain_ = from._impl_.tunnel_server_domain_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.id_ = from._impl_.id_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PhoneAsASecurityKeySpecificFields::CopyFrom(const PhoneAsASecurityKeySpecificFields& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.PhoneAsASecurityKeySpecificFields)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PhoneAsASecurityKeySpecificFields::InternalSwap(PhoneAsASecurityKeySpecificFields* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.contact_id_, &other->_impl_.contact_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.secret_, &other->_impl_.secret_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.peer_public_key_x962_, &other->_impl_.peer_public_key_x962_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.google_credential_id_, &other->_impl_.google_credential_id_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.id_)
      + sizeof(PhoneAsASecurityKeySpecificFields::_impl_.id_)
      - PROTOBUF_FIELD_OFFSET(PhoneAsASecurityKeySpecificFields, _impl_.tunnel_server_domain_)>(
          reinterpret_cast<char*>(&_impl_.tunnel_server_domain_),
          reinterpret_cast<char*>(&other->_impl_.tunnel_server_domain_));
}

// ===================================================================

ChromeVersionInfo::ChromeVersionInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ChromeVersionInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.ChromeVersionInfo)
}
PROTOBUF_NDEBUG_INLINE ChromeVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::ChromeVersionInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        version_number_(arena, from.version_number_) {}

ChromeVersionInfo::ChromeVersionInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ChromeVersionInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ChromeVersionInfo_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ChromeVersionInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:sync_pb.ChromeVersionInfo)
}
PROTOBUF_NDEBUG_INLINE ChromeVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        version_number_(arena) {}

inline void ChromeVersionInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ChromeVersionInfo::~ChromeVersionInfo() {
  // @@protoc_insertion_point(destructor:sync_pb.ChromeVersionInfo)
  SharedDtor(*this);
}
inline void ChromeVersionInfo::SharedDtor(MessageLite& self) {
  ChromeVersionInfo& this_ = static_cast<ChromeVersionInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.version_number_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ChromeVersionInfo_class_data_ =
    ChromeVersionInfo::InternalGenerateClassData_(ChromeVersionInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeVersionInfo::GetClassData() const {
  return ChromeVersionInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeVersionInfo::GetClassData() const {
  return ChromeVersionInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ChromeVersionInfo::ParseTableT_
    ChromeVersionInfo::_table_ =
        ChromeVersionInfo::InternalGenerateParseTable_(ChromeVersionInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ChromeVersionInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.ChromeVersionInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.version_number_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ChromeVersionInfo::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ChromeVersionInfo& this_ = static_cast<const ChromeVersionInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ChromeVersionInfo::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ChromeVersionInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.ChromeVersionInfo)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string version_number = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_version_number();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.ChromeVersionInfo)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ChromeVersionInfo::ByteSizeLong(const MessageLite& base) {
  const ChromeVersionInfo& this_ = static_cast<const ChromeVersionInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ChromeVersionInfo::ByteSizeLong() const {
  const ChromeVersionInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.ChromeVersionInfo)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional string version_number = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_version_number());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ChromeVersionInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ChromeVersionInfo*>(&to_msg);
  auto& from = static_cast<const ChromeVersionInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.ChromeVersionInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_set_version_number(from._internal_version_number());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ChromeVersionInfo::CopyFrom(const ChromeVersionInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.ChromeVersionInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ChromeVersionInfo::InternalSwap(ChromeVersionInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.version_number_, &other->_impl_.version_number_, arena);
}

// ===================================================================

GooglePlayServicesVersionInfo::GooglePlayServicesVersionInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GooglePlayServicesVersionInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.GooglePlayServicesVersionInfo)
}
PROTOBUF_NDEBUG_INLINE GooglePlayServicesVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::GooglePlayServicesVersionInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        apk_version_name_(arena, from.apk_version_name_) {}

GooglePlayServicesVersionInfo::GooglePlayServicesVersionInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const GooglePlayServicesVersionInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GooglePlayServicesVersionInfo_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GooglePlayServicesVersionInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:sync_pb.GooglePlayServicesVersionInfo)
}
PROTOBUF_NDEBUG_INLINE GooglePlayServicesVersionInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        apk_version_name_(arena) {}

inline void GooglePlayServicesVersionInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
GooglePlayServicesVersionInfo::~GooglePlayServicesVersionInfo() {
  // @@protoc_insertion_point(destructor:sync_pb.GooglePlayServicesVersionInfo)
  SharedDtor(*this);
}
inline void GooglePlayServicesVersionInfo::SharedDtor(MessageLite& self) {
  GooglePlayServicesVersionInfo& this_ = static_cast<GooglePlayServicesVersionInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.apk_version_name_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite GooglePlayServicesVersionInfo_class_data_ =
    GooglePlayServicesVersionInfo::InternalGenerateClassData_(GooglePlayServicesVersionInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GooglePlayServicesVersionInfo::GetClassData() const {
  return GooglePlayServicesVersionInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GooglePlayServicesVersionInfo::GetClassData() const {
  return GooglePlayServicesVersionInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const GooglePlayServicesVersionInfo::ParseTableT_
    GooglePlayServicesVersionInfo::_table_ =
        GooglePlayServicesVersionInfo::InternalGenerateParseTable_(GooglePlayServicesVersionInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void GooglePlayServicesVersionInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.GooglePlayServicesVersionInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.apk_version_name_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL GooglePlayServicesVersionInfo::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const GooglePlayServicesVersionInfo& this_ = static_cast<const GooglePlayServicesVersionInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL GooglePlayServicesVersionInfo::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const GooglePlayServicesVersionInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.GooglePlayServicesVersionInfo)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string apk_version_name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_apk_version_name();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.GooglePlayServicesVersionInfo)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t GooglePlayServicesVersionInfo::ByteSizeLong(const MessageLite& base) {
  const GooglePlayServicesVersionInfo& this_ = static_cast<const GooglePlayServicesVersionInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t GooglePlayServicesVersionInfo::ByteSizeLong() const {
  const GooglePlayServicesVersionInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.GooglePlayServicesVersionInfo)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional string apk_version_name = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_apk_version_name());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void GooglePlayServicesVersionInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<GooglePlayServicesVersionInfo*>(&to_msg);
  auto& from = static_cast<const GooglePlayServicesVersionInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.GooglePlayServicesVersionInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_set_apk_version_name(from._internal_apk_version_name());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void GooglePlayServicesVersionInfo::CopyFrom(const GooglePlayServicesVersionInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.GooglePlayServicesVersionInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void GooglePlayServicesVersionInfo::InternalSwap(GooglePlayServicesVersionInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.apk_version_name_, &other->_impl_.apk_version_name_, arena);
}

// ===================================================================

PersonalContextSpecificFields::PersonalContextSpecificFields(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PersonalContextSpecificFields_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:sync_pb.PersonalContextSpecificFields)
}
PROTOBUF_NDEBUG_INLINE PersonalContextSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::sync_pb::PersonalContextSpecificFields& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        p256dh_v2_(arena, from.p256dh_v2_),
        serialized_tink_keyset_(arena, from.serialized_tink_keyset_) {}

PersonalContextSpecificFields::PersonalContextSpecificFields(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PersonalContextSpecificFields& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PersonalContextSpecificFields_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PersonalContextSpecificFields* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:sync_pb.PersonalContextSpecificFields)
}
PROTOBUF_NDEBUG_INLINE PersonalContextSpecificFields::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        p256dh_v2_(arena),
        serialized_tink_keyset_(arena) {}

inline void PersonalContextSpecificFields::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
PersonalContextSpecificFields::~PersonalContextSpecificFields() {
  // @@protoc_insertion_point(destructor:sync_pb.PersonalContextSpecificFields)
  SharedDtor(*this);
}
inline void PersonalContextSpecificFields::SharedDtor(MessageLite& self) {
  PersonalContextSpecificFields& this_ = static_cast<PersonalContextSpecificFields&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.p256dh_v2_.Destroy();
  this_._impl_.serialized_tink_keyset_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PersonalContextSpecificFields_class_data_ =
    PersonalContextSpecificFields::InternalGenerateClassData_(PersonalContextSpecificFields_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PersonalContextSpecificFields::GetClassData() const {
  return PersonalContextSpecificFields_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PersonalContextSpecificFields::GetClassData() const {
  return PersonalContextSpecificFields_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PersonalContextSpecificFields::ParseTableT_
    PersonalContextSpecificFields::_table_ =
        PersonalContextSpecificFields::InternalGenerateParseTable_(PersonalContextSpecificFields_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PersonalContextSpecificFields::Clear() {
// @@protoc_insertion_point(message_clear_start:sync_pb.PersonalContextSpecificFields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.p256dh_v2_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.serialized_tink_keyset_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PersonalContextSpecificFields::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PersonalContextSpecificFields& this_ = static_cast<const PersonalContextSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PersonalContextSpecificFields::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PersonalContextSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:sync_pb.PersonalContextSpecificFields)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes p256dh_v2 = 1 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_p256dh_v2();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // optional bytes serialized_tink_keyset = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_serialized_tink_keyset();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sync_pb.PersonalContextSpecificFields)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PersonalContextSpecificFields::ByteSizeLong(const MessageLite& base) {
  const PersonalContextSpecificFields& this_ = static_cast<const PersonalContextSpecificFields&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PersonalContextSpecificFields::ByteSizeLong() const {
  const PersonalContextSpecificFields& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:sync_pb.PersonalContextSpecificFields)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional bytes p256dh_v2 = 1 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_p256dh_v2());
    }
    // optional bytes serialized_tink_keyset = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_serialized_tink_keyset());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PersonalContextSpecificFields::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PersonalContextSpecificFields*>(&to_msg);
  auto& from = static_cast<const PersonalContextSpecificFields&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:sync_pb.PersonalContextSpecificFields)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_p256dh_v2(from._internal_p256dh_v2());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_serialized_tink_keyset(from._internal_serialized_tink_keyset());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PersonalContextSpecificFields::CopyFrom(const PersonalContextSpecificFields& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:sync_pb.PersonalContextSpecificFields)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PersonalContextSpecificFields::InternalSwap(PersonalContextSpecificFields* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.p256dh_v2_, &other->_impl_.p256dh_v2_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.serialized_tink_keyset_, &other->_impl_.serialized_tink_keyset_, arena);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace sync_pb
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
