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

#include "components/optimization_guide/proto/features/model_prototyping.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 optimization_guide {
namespace proto {
class ModelPrototypingRequest_PrototypingPrompt_ModelInformation::_Internal {
 public:
  using HasBits = decltype(::std::declval<ModelPrototypingRequest_PrototypingPrompt_ModelInformation>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_._has_bits_);
};

constexpr ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ParseTableT_ ModelPrototypingRequest_PrototypingPrompt_ModelInformation::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _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<::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt_ModelInformation>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool skip_model = 2 [features = {
      {::_pbi::TcParser::FastV8S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_.skip_model_)}},
      // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation.ModelEnum model_enum = 1 [features = {
      {::_pbi::TcParser::FastV32S1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_.model_enum_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation.ModelEnum model_enum = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_.model_enum_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // bool skip_model = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_.skip_model_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ModelPrototypingRequest_PrototypingPrompt_ModelInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        model_enum_{static_cast< ::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum >(0)},
        skip_model_{false} {}

template <typename>
constexpr ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ModelPrototypingRequest_PrototypingPrompt_ModelInformation(::_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 ModelPrototypingRequest_PrototypingPrompt_ModelInformation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingRequest_PrototypingPrompt_ModelInformation(arena);
}
constexpr auto ModelPrototypingRequest_PrototypingPrompt_ModelInformation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ModelPrototypingRequest_PrototypingPrompt_ModelInformation), alignof(ModelPrototypingRequest_PrototypingPrompt_ModelInformation));
}
constexpr auto ModelPrototypingRequest_PrototypingPrompt_ModelInformation::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
          &ModelPrototypingRequest_PrototypingPrompt_ModelInformation::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingRequest_PrototypingPrompt_ModelInformation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingRequest_PrototypingPrompt_ModelInformation::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingRequest_PrototypingPrompt_ModelInformation>(), &ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ByteSizeLong,
              &ModelPrototypingRequest_PrototypingPrompt_ModelInformation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformation, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation",
  };
}
struct ModelPrototypingRequest_PrototypingPrompt_ModelInformationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingRequest_PrototypingPrompt_ModelInformationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingRequest_PrototypingPrompt_ModelInformation_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingRequest_PrototypingPrompt_ModelInformation::InternalGenerateClassData_(
            _default, &ModelPrototypingRequest_PrototypingPrompt_ModelInformation_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_PrototypingPrompt_ModelInformation>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingRequest_PrototypingPrompt_ModelInformationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingRequest_PrototypingPrompt_ModelInformation _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_PrototypingPrompt_ModelInformation>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt_ModelInformationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FeatureDataCollectionSpecifier::ParseTableT_ FeatureDataCollectionSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // 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<::optimization_guide::proto::FeatureDataCollectionSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool collect_forms_request = 1 [features = {
      {::_pbi::TcParser::FastV8S1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_forms_request_)}},
      // bool collect_compose_request = 2 [features = {
      {::_pbi::TcParser::FastV8S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_compose_request_)}},
      // bool collect_tab_organization_request = 3 [features = {
      {::_pbi::TcParser::FastV8S1,
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_tab_organization_request_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool collect_forms_request = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_forms_request_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool collect_compose_request = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_compose_request_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool collect_tab_organization_request = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_.collect_tab_organization_request_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr FeatureDataCollectionSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        collect_forms_request_{false},
        collect_compose_request_{false},
        collect_tab_organization_request_{false} {}

template <typename>
constexpr FeatureDataCollectionSpecifier::FeatureDataCollectionSpecifier(::_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 FeatureDataCollectionSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FeatureDataCollectionSpecifier(arena);
}
constexpr auto FeatureDataCollectionSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FeatureDataCollectionSpecifier), alignof(FeatureDataCollectionSpecifier));
}
constexpr auto FeatureDataCollectionSpecifier::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
          &FeatureDataCollectionSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<FeatureDataCollectionSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FeatureDataCollectionSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<FeatureDataCollectionSpecifier>(), &FeatureDataCollectionSpecifier::ByteSizeLong,
              &FeatureDataCollectionSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.FeatureDataCollectionSpecifier",
  };
}
struct FeatureDataCollectionSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FeatureDataCollectionSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FeatureDataCollectionSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FeatureDataCollectionSpecifier::InternalGenerateClassData_(
            _default, &FeatureDataCollectionSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FeatureDataCollectionSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FeatureDataCollectionSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FeatureDataCollectionSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FeatureDataCollectionSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FeatureDataCollectionSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtensionAddedInformation::ParseTableT_ ExtensionAddedInformation::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtensionAddedInformation, _impl_._has_bits_),
      0, // no _extensions_
      5, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967278,  // 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<::optimization_guide::proto::ExtensionAddedInformation>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string free_form_data = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExtensionAddedInformation, _impl_.free_form_data_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string free_form_data = 1;
      {PROTOBUF_FIELD_OFFSET(ExtensionAddedInformation, _impl_.free_form_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // bytes mhtml = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(ExtensionAddedInformation, _impl_.mhtml_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\62\16\0\0\0\0\0\0"
      "optimization_guide.proto.ExtensionAddedInformation"
      "free_form_data"
    }},
  };
}


inline constexpr ExtensionAddedInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        free_form_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ExtensionAddedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ExtensionAddedInformation, _impl_.free_form_data_)>()
         }
        ,
        mhtml_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ExtensionAddedInformation::ExtensionAddedInformation(::_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 ExtensionAddedInformation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtensionAddedInformation(arena);
}
constexpr auto ExtensionAddedInformation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExtensionAddedInformation), alignof(ExtensionAddedInformation));
}
constexpr auto ExtensionAddedInformation::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
          &ExtensionAddedInformation::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ExtensionAddedInformation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtensionAddedInformation::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ExtensionAddedInformation>(), &ExtensionAddedInformation::ByteSizeLong,
              &ExtensionAddedInformation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtensionAddedInformation, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ExtensionAddedInformation",
  };
}
struct ExtensionAddedInformationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtensionAddedInformationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtensionAddedInformation_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtensionAddedInformation::InternalGenerateClassData_(
            _default, &ExtensionAddedInformation_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtensionAddedInformation>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtensionAddedInformationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtensionAddedInformation _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtensionAddedInformation>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtensionAddedInformationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ConversationTurn::ParseTableT_ ConversationTurn::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // 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<::optimization_guide::proto::ConversationTurn>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string conversation_text = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.conversation_text_)}},
      // string role = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.role_)}},
      // string mime_type = 3 [features = {
      {::_pbi::TcParser::FastUS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.mime_type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string conversation_text = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.conversation_text_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string role = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.role_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string mime_type = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_.mime_type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\51\21\4\11\0\0\0\0"
      "optimization_guide.proto.ConversationTurn"
      "conversation_text"
      "role"
      "mime_type"
    }},
  };
}


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

template <typename>
constexpr ConversationTurn::ConversationTurn(::_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 ConversationTurn::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ConversationTurn(arena);
}
constexpr auto ConversationTurn::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ConversationTurn), alignof(ConversationTurn));
}
constexpr auto ConversationTurn::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
          &ConversationTurn::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ConversationTurn>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ConversationTurn::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ConversationTurn>(), &ConversationTurn::ByteSizeLong,
              &ConversationTurn::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ConversationTurn, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ConversationTurn",
  };
}
struct ConversationTurnGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConversationTurnGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ConversationTurn_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ConversationTurn::InternalGenerateClassData_(
            _default, &ConversationTurn_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ConversationTurn>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConversationTurnGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ConversationTurn _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ConversationTurn>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConversationTurnGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AutofillFieldGlobalId::ParseTableT_ AutofillFieldGlobalId::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _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<::optimization_guide::proto::AutofillFieldGlobalId>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint64 renderer_id = 2 [features = {
      {::_pbi::TcParser::FastV64S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _impl_.renderer_id_)}},
      // string frame_token = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _impl_.frame_token_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string frame_token = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _impl_.frame_token_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint64 renderer_id = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _impl_.renderer_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    }},
    // no aux_entries
    {{
      "\56\13\0\0\0\0\0\0"
      "optimization_guide.proto.AutofillFieldGlobalId"
      "frame_token"
    }},
  };
}


inline constexpr AutofillFieldGlobalId::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        frame_token_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        renderer_id_{::uint64_t{0u}} {}

template <typename>
constexpr AutofillFieldGlobalId::AutofillFieldGlobalId(::_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 AutofillFieldGlobalId::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AutofillFieldGlobalId(arena);
}
constexpr auto AutofillFieldGlobalId::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AutofillFieldGlobalId), alignof(AutofillFieldGlobalId));
}
constexpr auto AutofillFieldGlobalId::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
          &AutofillFieldGlobalId::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<AutofillFieldGlobalId>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AutofillFieldGlobalId::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<AutofillFieldGlobalId>(), &AutofillFieldGlobalId::ByteSizeLong,
              &AutofillFieldGlobalId::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalId, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.AutofillFieldGlobalId",
  };
}
struct AutofillFieldGlobalIdGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AutofillFieldGlobalIdGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AutofillFieldGlobalId_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AutofillFieldGlobalId::InternalGenerateClassData_(
            _default, &AutofillFieldGlobalId_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AutofillFieldGlobalId>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AutofillFieldGlobalIdGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AutofillFieldGlobalId _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AutofillFieldGlobalId>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AutofillFieldGlobalIdGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PageContextSpecifier::ParseTableT_ PageContextSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_._has_bits_),
      0, // no _extensions_
      9, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966848,  // 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<::optimization_guide::proto::PageContextSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool default_data = 1 [features = {
      {::_pbi::TcParser::FastV8S1,
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.default_data_)}},
      // bool inner_text = 2 [features = {
      {::_pbi::TcParser::FastV8S1,
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.inner_text_)}},
      // int64 inner_text_dom_node_id = 3 [features = {
      {::_pbi::TcParser::FastV64S1,
       {24, 1, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.inner_text_dom_node_id_)}},
      // bool tab_screenshot = 4 [features = {
      {::_pbi::TcParser::FastV8S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.tab_screenshot_)}},
      // bool ax_tree = 5 [features = {
      {::_pbi::TcParser::FastV8S1,
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.ax_tree_)}},
      // bool pdf_data = 6 [features = {
      {::_pbi::TcParser::FastV8S1,
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.pdf_data_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // bool annotated_page_content = 8 [features = {
      {::_pbi::TcParser::FastV8S1,
       {64, 7, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.annotated_page_content_)}},
      // .optimization_guide.proto.AutofillFieldGlobalId field_global_id = 9 [features = {
      {::_pbi::TcParser::FastMtS1,
       {74, 0, 0,
        PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.field_global_id_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // bool default_data = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.default_data_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool inner_text = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.inner_text_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // int64 inner_text_dom_node_id = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.inner_text_dom_node_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // bool tab_screenshot = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.tab_screenshot_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool ax_tree = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.ax_tree_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool pdf_data = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.pdf_data_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool annotated_page_content = 8 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.annotated_page_content_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // .optimization_guide.proto.AutofillFieldGlobalId field_global_id = 9 [features = {
      {PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_.field_global_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillFieldGlobalId>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillFieldGlobalId_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PageContextSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        field_global_id_{nullptr},
        inner_text_dom_node_id_{::int64_t{0}},
        default_data_{false},
        inner_text_{false},
        tab_screenshot_{false},
        ax_tree_{false},
        pdf_data_{false},
        annotated_page_content_{false} {}

template <typename>
constexpr PageContextSpecifier::PageContextSpecifier(::_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 PageContextSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PageContextSpecifier(arena);
}
constexpr auto PageContextSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PageContextSpecifier), alignof(PageContextSpecifier));
}
constexpr auto PageContextSpecifier::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
          &PageContextSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PageContextSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PageContextSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PageContextSpecifier>(), &PageContextSpecifier::ByteSizeLong,
              &PageContextSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PageContextSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.PageContextSpecifier",
  };
}
struct PageContextSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PageContextSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PageContextSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PageContextSpecifier::InternalGenerateClassData_(
            _default, &PageContextSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PageContextSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PageContextSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PageContextSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PageContextSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PageContextSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingMetadata::ParseTableT_ ModelPrototypingMetadata::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // 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<::optimization_guide::proto::ModelPrototypingMetadata>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string task_completion_failure_reason = 8 [features = {
      {::_pbi::TcParser::FastUS1,
       {66, 5, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.task_completion_failure_reason_)}},
      // string logging_tag = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.logging_tag_)}},
      // string logging_description = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.logging_description_)}},
      // string user_email = 3 [features = {
      {::_pbi::TcParser::FastUS1,
       {26, 3, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.user_email_)}},
      // string session_id = 4 [features = {
      {::_pbi::TcParser::FastUS1,
       {34, 4, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.session_id_)}},
      // .optimization_guide.proto.Timestamp collection_time = 5 [features = {
      {::_pbi::TcParser::FastMtS1,
       {42, 6, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.collection_time_)}},
      // repeated .optimization_guide.proto.ModelPrototypingMetadata.PageAnnotation page_annotation = 6;
      {::_pbi::TcParser::FastV32P1,
       {50, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.page_annotation_)}},
      // .optimization_guide.proto.ModelPrototypingMetadata.TaskCompletionStatus task_completion_status = 7 [features = {
      {::_pbi::TcParser::FastV32S1,
       {56, 7, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.task_completion_status_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string logging_tag = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.logging_tag_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string logging_description = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.logging_description_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string user_email = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.user_email_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string session_id = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.session_id_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.Timestamp collection_time = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.collection_time_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.ModelPrototypingMetadata.PageAnnotation page_annotation = 6;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.page_annotation_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedOpenEnum)},
      // .optimization_guide.proto.ModelPrototypingMetadata.TaskCompletionStatus task_completion_status = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.task_completion_status_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // string task_completion_failure_reason = 8 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.task_completion_failure_reason_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Timestamp_globals_},
        #endif
    }},
    {{
      "\61\13\23\12\12\0\0\0\36\0\0\0\0\0\0\0"
      "optimization_guide.proto.ModelPrototypingMetadata"
      "logging_tag"
      "logging_description"
      "user_email"
      "session_id"
      "task_completion_failure_reason"
    }},
  };
}


inline constexpr ModelPrototypingMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        page_annotation_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingMetadata,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingMetadata, _impl_.page_annotation_)>()
         }
        ,
        _page_annotation_cached_byte_size_{0},
        logging_tag_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        logging_description_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        user_email_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        session_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        task_completion_failure_reason_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        collection_time_{nullptr},
        task_completion_status_{static_cast< ::optimization_guide::proto::ModelPrototypingMetadata_TaskCompletionStatus >(0)} {}

template <typename>
constexpr ModelPrototypingMetadata::ModelPrototypingMetadata(::_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 ModelPrototypingMetadata::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingMetadata(arena);
}
constexpr auto ModelPrototypingMetadata::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ModelPrototypingMetadata), alignof(ModelPrototypingMetadata));
}
constexpr auto ModelPrototypingMetadata::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
          &ModelPrototypingMetadata::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingMetadata>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingMetadata::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingMetadata>(), &ModelPrototypingMetadata::ByteSizeLong,
              &ModelPrototypingMetadata::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingMetadata",
  };
}
struct ModelPrototypingMetadataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingMetadataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingMetadata_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingMetadata::InternalGenerateClassData_(
            _default, &ModelPrototypingMetadata_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingMetadata>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingMetadataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingMetadata _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingMetadata>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HistoryVisitItem::ParseTableT_ HistoryVisitItem::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // 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<::optimization_guide::proto::HistoryVisitItem>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string passages = 4;
      {::_pbi::TcParser::FastUR1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.passages_)}},
      // string page_title = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.page_title_)}},
      // string page_url = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.page_url_)}},
      // .optimization_guide.proto.Timestamp visit_time = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 3, 0,
        PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.visit_time_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string page_title = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.page_title_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string page_url = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.page_url_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.Timestamp visit_time = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.visit_time_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated string passages = 4;
      {PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_.passages_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Timestamp_globals_},
        #endif
    }},
    {{
      "\51\12\10\0\10\0\0\0"
      "optimization_guide.proto.HistoryVisitItem"
      "page_title"
      "page_url"
      "passages"
    }},
  };
}


inline constexpr HistoryVisitItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        passages_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryVisitItem,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryVisitItem, _impl_.passages_)>()
         }
        ,
        page_title_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        page_url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        visit_time_{nullptr} {}

template <typename>
constexpr HistoryVisitItem::HistoryVisitItem(::_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 HistoryVisitItem::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistoryVisitItem(arena);
}
constexpr auto HistoryVisitItem::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HistoryVisitItem), alignof(HistoryVisitItem));
}
constexpr auto HistoryVisitItem::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
          &HistoryVisitItem::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HistoryVisitItem>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistoryVisitItem::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HistoryVisitItem>(), &HistoryVisitItem::ByteSizeLong,
              &HistoryVisitItem::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistoryVisitItem, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HistoryVisitItem",
  };
}
struct HistoryVisitItemGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistoryVisitItemGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistoryVisitItem_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistoryVisitItem::InternalGenerateClassData_(
            _default, &HistoryVisitItem_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistoryVisitItem>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistoryVisitItemGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistoryVisitItem _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistoryVisitItem>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistoryVisitItemGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr DateTimeRange::ParseTableT_ DateTimeRange::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(DateTimeRange, _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
      2,  // 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<::optimization_guide::proto::DateTimeRange>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.Timestamp end_time = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(DateTimeRange, _impl_.end_time_)}},
      // .optimization_guide.proto.Timestamp start_time = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(DateTimeRange, _impl_.start_time_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.Timestamp start_time = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(DateTimeRange, _impl_.start_time_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.Timestamp end_time = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(DateTimeRange, _impl_.end_time_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Timestamp_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Timestamp_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr DateTimeRange::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        start_time_{nullptr},
        end_time_{nullptr} {}

template <typename>
constexpr DateTimeRange::DateTimeRange(::_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 DateTimeRange::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DateTimeRange(arena);
}
constexpr auto DateTimeRange::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(DateTimeRange), alignof(DateTimeRange));
}
constexpr auto DateTimeRange::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
          &DateTimeRange::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<DateTimeRange>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DateTimeRange::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<DateTimeRange>(), &DateTimeRange::ByteSizeLong,
              &DateTimeRange::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DateTimeRange, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.DateTimeRange",
  };
}
struct DateTimeRangeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr DateTimeRangeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 DateTimeRange_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(DateTimeRange::InternalGenerateClassData_(
            _default, &DateTimeRange_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<DateTimeRange>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~DateTimeRangeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) DateTimeRange _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<DateTimeRange>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(DateTimeRangeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Conversation::ParseTableT_ Conversation::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Conversation, _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
      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<::optimization_guide::proto::Conversation>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .optimization_guide.proto.ConversationTurn conversation_turns = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Conversation, _impl_.conversation_turns_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.ConversationTurn conversation_turns = 1;
      {PROTOBUF_FIELD_OFFSET(Conversation, _impl_.conversation_turns_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ConversationTurn>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ConversationTurn_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Conversation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        conversation_turns_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Conversation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Conversation, _impl_.conversation_turns_)>()
         }
     {}

template <typename>
constexpr Conversation::Conversation(::_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 Conversation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Conversation(arena);
}
constexpr auto Conversation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Conversation), alignof(Conversation));
}
constexpr auto Conversation::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
          &Conversation::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Conversation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Conversation::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Conversation>(), &Conversation::ByteSizeLong,
              &Conversation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Conversation, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.Conversation",
  };
}
struct ConversationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConversationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Conversation_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Conversation::InternalGenerateClassData_(
            _default, &Conversation_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Conversation>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConversationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Conversation _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Conversation>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConversationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PerTabSpecifier::ParseTableT_ PerTabSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _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
      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<::optimization_guide::proto::PerTabSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _impl_.page_context_specifier_)}},
      // int64 tab_id = 1 [features = {
      {::_pbi::TcParser::FastV64S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _impl_.tab_id_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int64 tab_id = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _impl_.tab_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _impl_.page_context_specifier_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageContextSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageContextSpecifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PerTabSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        page_context_specifier_{nullptr},
        tab_id_{::int64_t{0}} {}

template <typename>
constexpr PerTabSpecifier::PerTabSpecifier(::_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 PerTabSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PerTabSpecifier(arena);
}
constexpr auto PerTabSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PerTabSpecifier), alignof(PerTabSpecifier));
}
constexpr auto PerTabSpecifier::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
          &PerTabSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PerTabSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PerTabSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PerTabSpecifier>(), &PerTabSpecifier::ByteSizeLong,
              &PerTabSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PerTabSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.PerTabSpecifier",
  };
}
struct PerTabSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PerTabSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PerTabSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PerTabSpecifier::InternalGenerateClassData_(
            _default, &PerTabSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PerTabSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PerTabSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PerTabSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PerTabSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PerTabSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingResponse::ParseTableT_ ModelPrototypingResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // 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<::optimization_guide::proto::ModelPrototypingResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated string model_prompts = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.model_prompts_)}},
      // repeated string model_responses = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.model_responses_)}},
      // repeated .optimization_guide.proto.Conversation conversations = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.conversations_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string model_prompts = 1;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.model_prompts_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // repeated string model_responses = 2;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.model_responses_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // repeated .optimization_guide.proto.Conversation conversations = 3;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_.conversations_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Conversation>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Conversation_globals_},
        #endif
    }},
    {{
      "\61\15\17\0\0\0\0\0"
      "optimization_guide.proto.ModelPrototypingResponse"
      "model_prompts"
      "model_responses"
    }},
  };
}


inline constexpr ModelPrototypingResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        model_prompts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.model_prompts_)>()
         }
        ,
        model_responses_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.model_responses_)>()
         }
        ,
        conversations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.conversations_)>()
         }
     {}

template <typename>
constexpr ModelPrototypingResponse::ModelPrototypingResponse(::_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 ModelPrototypingResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingResponse(arena);
}
constexpr auto ModelPrototypingResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ModelPrototypingResponse), alignof(ModelPrototypingResponse));
}
constexpr auto ModelPrototypingResponse::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
          &ModelPrototypingResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingResponse>(), &ModelPrototypingResponse::ByteSizeLong,
              &ModelPrototypingResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingResponse, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingResponse",
  };
}
struct ModelPrototypingResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingResponse::InternalGenerateClassData_(
            _default, &ModelPrototypingResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingRequest_PrototypingPrompt::ParseTableT_ ModelPrototypingRequest_PrototypingPrompt::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      2,  // 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<::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string prompt_variables = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.prompt_variables_)}},
      // string system_instructions_template = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.system_instructions_template_)}},
      // string context_area_template = 3 [features = {
      {::_pbi::TcParser::FastUS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.context_area_template_)}},
      // string user_input_template = 4 [features = {
      {::_pbi::TcParser::FastUS1,
       {34, 3, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.user_input_template_)}},
      // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation model_information = 5 [features = {
      {::_pbi::TcParser::FastMtS1,
       {42, 5, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.model_information_)}},
      // string image_template = 6 [features = {
      {::_pbi::TcParser::FastUS1,
       {50, 4, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.image_template_)}},
      // .optimization_guide.proto.Conversation conversation = 7 [features = {
      {::_pbi::TcParser::FastMtS1,
       {58, 6, 1,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.conversation_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string prompt_variables = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.prompt_variables_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string system_instructions_template = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.system_instructions_template_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string context_area_template = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.context_area_template_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string user_input_template = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.user_input_template_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation model_information = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.model_information_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string image_template = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.image_template_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.Conversation conversation = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.conversation_), _Internal::kHasBitsOffset + 6, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt_ModelInformation>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt_ModelInformation_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Conversation>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Conversation_globals_},
        #endif
    }},
    {{
      "\102\20\34\25\23\0\16\0"
      "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt"
      "prompt_variables"
      "system_instructions_template"
      "context_area_template"
      "user_input_template"
      "image_template"
    }},
  };
}


inline constexpr ModelPrototypingRequest_PrototypingPrompt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prompt_variables_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        system_instructions_template_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        context_area_template_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        user_input_template_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        image_template_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        model_information_{nullptr},
        conversation_{nullptr} {}

template <typename>
constexpr ModelPrototypingRequest_PrototypingPrompt::ModelPrototypingRequest_PrototypingPrompt(::_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 ModelPrototypingRequest_PrototypingPrompt::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingRequest_PrototypingPrompt(arena);
}
constexpr auto ModelPrototypingRequest_PrototypingPrompt::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ModelPrototypingRequest_PrototypingPrompt), alignof(ModelPrototypingRequest_PrototypingPrompt));
}
constexpr auto ModelPrototypingRequest_PrototypingPrompt::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
          &ModelPrototypingRequest_PrototypingPrompt::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingRequest_PrototypingPrompt>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingRequest_PrototypingPrompt::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingRequest_PrototypingPrompt>(), &ModelPrototypingRequest_PrototypingPrompt::ByteSizeLong,
              &ModelPrototypingRequest_PrototypingPrompt::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt",
  };
}
struct ModelPrototypingRequest_PrototypingPromptGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingRequest_PrototypingPromptGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingRequest_PrototypingPrompt_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingRequest_PrototypingPrompt::InternalGenerateClassData_(
            _default, &ModelPrototypingRequest_PrototypingPrompt_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_PrototypingPrompt>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingRequest_PrototypingPromptGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingRequest_PrototypingPrompt _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_PrototypingPrompt>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPromptGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HistoryVisitData::ParseTableT_ HistoryVisitData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistoryVisitData, _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
      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<::optimization_guide::proto::HistoryVisitData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .optimization_guide.proto.HistoryVisitItem visit_item = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistoryVisitData, _impl_.visit_item_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.HistoryVisitItem visit_item = 1;
      {PROTOBUF_FIELD_OFFSET(HistoryVisitData, _impl_.visit_item_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryVisitItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryVisitItem_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr HistoryVisitData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        visit_item_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryVisitData,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryVisitData, _impl_.visit_item_)>()
         }
     {}

template <typename>
constexpr HistoryVisitData::HistoryVisitData(::_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 HistoryVisitData::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistoryVisitData(arena);
}
constexpr auto HistoryVisitData::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HistoryVisitData), alignof(HistoryVisitData));
}
constexpr auto HistoryVisitData::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
          &HistoryVisitData::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HistoryVisitData>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistoryVisitData::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HistoryVisitData>(), &HistoryVisitData::ByteSizeLong,
              &HistoryVisitData::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistoryVisitData, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HistoryVisitData",
  };
}
struct HistoryVisitDataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistoryVisitDataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistoryVisitData_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistoryVisitData::InternalGenerateClassData_(
            _default, &HistoryVisitData_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistoryVisitData>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistoryVisitDataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistoryVisitData _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistoryVisitData>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistoryVisitDataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HistoryQuery::ParseTableT_ HistoryQuery::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // 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<::optimization_guide::proto::HistoryQuery>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string query = 1 [features = {
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.query_)}},
      // int32 num_history_visits = 2 [features = {
      {::_pbi::TcParser::FastV32S1,
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.num_history_visits_)}},
      // .optimization_guide.proto.DateTimeRange history_search_time_range = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.history_search_time_range_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string query = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.query_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // int32 num_history_visits = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.num_history_visits_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .optimization_guide.proto.DateTimeRange history_search_time_range = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.history_search_time_range_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::DateTimeRange>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::DateTimeRange_globals_},
        #endif
    }},
    {{
      "\45\5\0\0\0\0\0\0"
      "optimization_guide.proto.HistoryQuery"
      "query"
    }},
  };
}


inline constexpr HistoryQuery::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        query_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        history_search_time_range_{nullptr},
        num_history_visits_{0} {}

template <typename>
constexpr HistoryQuery::HistoryQuery(::_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 HistoryQuery::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistoryQuery(arena);
}
constexpr auto HistoryQuery::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HistoryQuery), alignof(HistoryQuery));
}
constexpr auto HistoryQuery::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
          &HistoryQuery::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HistoryQuery>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistoryQuery::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HistoryQuery>(), &HistoryQuery::ByteSizeLong,
              &HistoryQuery::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HistoryQuery",
  };
}
struct HistoryQueryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistoryQueryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistoryQuery_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistoryQuery::InternalGenerateClassData_(
            _default, &HistoryQuery_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistoryQuery>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistoryQueryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistoryQuery _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistoryQuery>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistoryQueryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr GeneralTabSpecifier::ParseTableT_ GeneralTabSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _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
      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<::optimization_guide::proto::GeneralTabSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // int64 tab_limit = 2 [features = {
      {::_pbi::TcParser::FastV64S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _impl_.tab_limit_)}},
      // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _impl_.page_context_specifier_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _impl_.page_context_specifier_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // int64 tab_limit = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _impl_.tab_limit_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageContextSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageContextSpecifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr GeneralTabSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        page_context_specifier_{nullptr},
        tab_limit_{::int64_t{0}} {}

template <typename>
constexpr GeneralTabSpecifier::GeneralTabSpecifier(::_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 GeneralTabSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) GeneralTabSpecifier(arena);
}
constexpr auto GeneralTabSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(GeneralTabSpecifier), alignof(GeneralTabSpecifier));
}
constexpr auto GeneralTabSpecifier::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
          &GeneralTabSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<GeneralTabSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &GeneralTabSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<GeneralTabSpecifier>(), &GeneralTabSpecifier::ByteSizeLong,
              &GeneralTabSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(GeneralTabSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.GeneralTabSpecifier",
  };
}
struct GeneralTabSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GeneralTabSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 GeneralTabSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(GeneralTabSpecifier::InternalGenerateClassData_(
            _default, &GeneralTabSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<GeneralTabSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GeneralTabSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) GeneralTabSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<GeneralTabSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GeneralTabSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PerTabSpecifiers::ParseTableT_ PerTabSpecifiers::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PerTabSpecifiers, _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
      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<::optimization_guide::proto::PerTabSpecifiers>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .optimization_guide.proto.PerTabSpecifier per_tab_specifier = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(PerTabSpecifiers, _impl_.per_tab_specifier_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.PerTabSpecifier per_tab_specifier = 1;
      {PROTOBUF_FIELD_OFFSET(PerTabSpecifiers, _impl_.per_tab_specifier_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PerTabSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PerTabSpecifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PerTabSpecifiers::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        per_tab_specifier_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::PerTabSpecifiers,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::PerTabSpecifiers, _impl_.per_tab_specifier_)>()
         }
     {}

template <typename>
constexpr PerTabSpecifiers::PerTabSpecifiers(::_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 PerTabSpecifiers::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PerTabSpecifiers(arena);
}
constexpr auto PerTabSpecifiers::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PerTabSpecifiers), alignof(PerTabSpecifiers));
}
constexpr auto PerTabSpecifiers::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
          &PerTabSpecifiers::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PerTabSpecifiers>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PerTabSpecifiers::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PerTabSpecifiers>(), &PerTabSpecifiers::ByteSizeLong,
              &PerTabSpecifiers::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PerTabSpecifiers, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.PerTabSpecifiers",
  };
}
struct PerTabSpecifiersGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PerTabSpecifiersGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PerTabSpecifiers_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PerTabSpecifiers::InternalGenerateClassData_(
            _default, &PerTabSpecifiers_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PerTabSpecifiers>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PerTabSpecifiersGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PerTabSpecifiers _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PerTabSpecifiers>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PerTabSpecifiersGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HistoryQuerySpecifiers::ParseTableT_ HistoryQuerySpecifiers::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistoryQuerySpecifiers, _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
      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<::optimization_guide::proto::HistoryQuerySpecifiers>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .optimization_guide.proto.HistoryQuery history_queries = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistoryQuerySpecifiers, _impl_.history_queries_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.HistoryQuery history_queries = 1;
      {PROTOBUF_FIELD_OFFSET(HistoryQuerySpecifiers, _impl_.history_queries_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryQuery>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryQuery_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr HistoryQuerySpecifiers::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        history_queries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryQuerySpecifiers,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryQuerySpecifiers, _impl_.history_queries_)>()
         }
     {}

template <typename>
constexpr HistoryQuerySpecifiers::HistoryQuerySpecifiers(::_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 HistoryQuerySpecifiers::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistoryQuerySpecifiers(arena);
}
constexpr auto HistoryQuerySpecifiers::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HistoryQuerySpecifiers), alignof(HistoryQuerySpecifiers));
}
constexpr auto HistoryQuerySpecifiers::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
          &HistoryQuerySpecifiers::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HistoryQuerySpecifiers>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistoryQuerySpecifiers::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HistoryQuerySpecifiers>(), &HistoryQuerySpecifiers::ByteSizeLong,
              &HistoryQuerySpecifiers::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistoryQuerySpecifiers, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HistoryQuerySpecifiers",
  };
}
struct HistoryQuerySpecifiersGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistoryQuerySpecifiersGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistoryQuerySpecifiers_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistoryQuerySpecifiers::InternalGenerateClassData_(
            _default, &HistoryQuerySpecifiers_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistoryQuerySpecifiers>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistoryQuerySpecifiersGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistoryQuerySpecifiers _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistoryQuerySpecifiers>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistoryQuerySpecifiersGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HistoryQueryResult::ParseTableT_ HistoryQueryResult::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _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
      2,  // 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<::optimization_guide::proto::HistoryQueryResult>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.HistoryQuery query = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _impl_.query_)}},
      // .optimization_guide.proto.HistoryVisitData history_data = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _impl_.history_data_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.HistoryVisitData history_data = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _impl_.history_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.HistoryQuery query = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _impl_.query_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryVisitData>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryVisitData_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryQuery>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryQuery_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr HistoryQueryResult::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        history_data_{nullptr},
        query_{nullptr} {}

template <typename>
constexpr HistoryQueryResult::HistoryQueryResult(::_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 HistoryQueryResult::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistoryQueryResult(arena);
}
constexpr auto HistoryQueryResult::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(HistoryQueryResult), alignof(HistoryQueryResult));
}
constexpr auto HistoryQueryResult::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
          &HistoryQueryResult::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HistoryQueryResult>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistoryQueryResult::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HistoryQueryResult>(), &HistoryQueryResult::ByteSizeLong,
              &HistoryQueryResult::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistoryQueryResult, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HistoryQueryResult",
  };
}
struct HistoryQueryResultGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistoryQueryResultGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistoryQueryResult_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistoryQueryResult::InternalGenerateClassData_(
            _default, &HistoryQueryResult_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistoryQueryResult>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistoryQueryResultGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistoryQueryResult _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistoryQueryResult>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistoryQueryResultGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST HistoryQueryResultGlobalsTypeInternal HistoryQueryResult_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* HistoryQueryResult_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return HistoryQueryResult_globals_.GetClassData();
#else
  return HistoryQueryResult_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class TabsContextSpecifier::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::TabsContextSpecifier, _impl_._oneof_case_);
};

constexpr TabsContextSpecifier::ParseTableT_ TabsContextSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TabsContextSpecifier,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      2, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // 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<::optimization_guide::proto::TabsContextSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.PerTabSpecifiers per_tab_specifiers = 1;
      {PROTOBUF_FIELD_OFFSET(TabsContextSpecifier, _impl_.specifier_.per_tab_specifiers_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.GeneralTabSpecifier general_tab_specifier = 2;
      {PROTOBUF_FIELD_OFFSET(TabsContextSpecifier, _impl_.specifier_.general_tab_specifier_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PerTabSpecifiers>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PerTabSpecifiers_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::GeneralTabSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::GeneralTabSpecifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr TabsContextSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : specifier_{},
        _cached_size_{0},
        _oneof_case_{} {}

template <typename>
constexpr TabsContextSpecifier::TabsContextSpecifier(::_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 TabsContextSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TabsContextSpecifier(arena);
}
constexpr auto TabsContextSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TabsContextSpecifier), alignof(TabsContextSpecifier));
}
constexpr auto TabsContextSpecifier::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
          &TabsContextSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<TabsContextSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TabsContextSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<TabsContextSpecifier>(), &TabsContextSpecifier::ByteSizeLong,
              &TabsContextSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TabsContextSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.TabsContextSpecifier",
  };
}
struct TabsContextSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TabsContextSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TabsContextSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TabsContextSpecifier::InternalGenerateClassData_(
            _default, &TabsContextSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TabsContextSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TabsContextSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TabsContextSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TabsContextSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TabsContextSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr BrowserDataCollectionSpecifier::ParseTableT_ BrowserDataCollectionSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _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
      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<::optimization_guide::proto::BrowserDataCollectionSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.PageContextSpecifier foreground_tab_page_context_specifier = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.foreground_tab_page_context_specifier_)}},
      // .optimization_guide.proto.TabsContextSpecifier tabs_context_specifier = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.tabs_context_specifier_)}},
      // bool site_engagement = 3 [features = {
      {::_pbi::TcParser::FastV8S1,
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.site_engagement_)}},
      // bool tab_groups = 4 [features = {
      {::_pbi::TcParser::FastV8S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.tab_groups_)}},
      // bool user_annotations = 5 [features = {
      {::_pbi::TcParser::FastV8S1,
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.user_annotations_)}},
      // .optimization_guide.proto.HistoryQuerySpecifiers history_query_specifiers = 6 [features = {
      {::_pbi::TcParser::FastMtS1,
       {50, 2, 2,
        PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.history_query_specifiers_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.PageContextSpecifier foreground_tab_page_context_specifier = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.foreground_tab_page_context_specifier_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.TabsContextSpecifier tabs_context_specifier = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.tabs_context_specifier_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bool site_engagement = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.site_engagement_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool tab_groups = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.tab_groups_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool user_annotations = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.user_annotations_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // .optimization_guide.proto.HistoryQuerySpecifiers history_query_specifiers = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_.history_query_specifiers_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageContextSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageContextSpecifier_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::TabsContextSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::TabsContextSpecifier_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryQuerySpecifiers>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryQuerySpecifiers_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr BrowserDataCollectionSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        foreground_tab_page_context_specifier_{nullptr},
        tabs_context_specifier_{nullptr},
        history_query_specifiers_{nullptr},
        site_engagement_{false},
        tab_groups_{false},
        user_annotations_{false} {}

template <typename>
constexpr BrowserDataCollectionSpecifier::BrowserDataCollectionSpecifier(::_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 BrowserDataCollectionSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BrowserDataCollectionSpecifier(arena);
}
constexpr auto BrowserDataCollectionSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(BrowserDataCollectionSpecifier), alignof(BrowserDataCollectionSpecifier));
}
constexpr auto BrowserDataCollectionSpecifier::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
          &BrowserDataCollectionSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<BrowserDataCollectionSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BrowserDataCollectionSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<BrowserDataCollectionSpecifier>(), &BrowserDataCollectionSpecifier::ByteSizeLong,
              &BrowserDataCollectionSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.BrowserDataCollectionSpecifier",
  };
}
struct BrowserDataCollectionSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr BrowserDataCollectionSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 BrowserDataCollectionSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(BrowserDataCollectionSpecifier::InternalGenerateClassData_(
            _default, &BrowserDataCollectionSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<BrowserDataCollectionSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~BrowserDataCollectionSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) BrowserDataCollectionSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<BrowserDataCollectionSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(BrowserDataCollectionSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingCollectionSpecifier::ParseTableT_ ModelPrototypingCollectionSpecifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _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
      2,  // 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<::optimization_guide::proto::ModelPrototypingCollectionSpecifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.BrowserDataCollectionSpecifier browser_data_collection_specifier = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _impl_.browser_data_collection_specifier_)}},
      // .optimization_guide.proto.FeatureDataCollectionSpecifier feature_data_collection_specifier = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _impl_.feature_data_collection_specifier_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.FeatureDataCollectionSpecifier feature_data_collection_specifier = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _impl_.feature_data_collection_specifier_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.BrowserDataCollectionSpecifier browser_data_collection_specifier = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _impl_.browser_data_collection_specifier_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::FeatureDataCollectionSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::FeatureDataCollectionSpecifier_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::BrowserDataCollectionSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::BrowserDataCollectionSpecifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ModelPrototypingCollectionSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        feature_data_collection_specifier_{nullptr},
        browser_data_collection_specifier_{nullptr} {}

template <typename>
constexpr ModelPrototypingCollectionSpecifier::ModelPrototypingCollectionSpecifier(::_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 ModelPrototypingCollectionSpecifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingCollectionSpecifier(arena);
}
constexpr auto ModelPrototypingCollectionSpecifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ModelPrototypingCollectionSpecifier), alignof(ModelPrototypingCollectionSpecifier));
}
constexpr auto ModelPrototypingCollectionSpecifier::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
          &ModelPrototypingCollectionSpecifier::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingCollectionSpecifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingCollectionSpecifier::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingCollectionSpecifier>(), &ModelPrototypingCollectionSpecifier::ByteSizeLong,
              &ModelPrototypingCollectionSpecifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifier, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingCollectionSpecifier",
  };
}
struct ModelPrototypingCollectionSpecifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingCollectionSpecifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingCollectionSpecifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingCollectionSpecifier::InternalGenerateClassData_(
            _default, &ModelPrototypingCollectionSpecifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingCollectionSpecifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingCollectionSpecifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingCollectionSpecifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingCollectionSpecifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingCollectionSpecifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr BrowserCollectedInformation::ParseTableT_ BrowserCollectedInformation::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_._has_bits_),
      0, // no _extensions_
      19, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294449184,  // skipmap
      offsetof(ParseTableT_, field_entries),
      16,  // num_field_entries
      11,  // 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<::optimization_guide::proto::BrowserCollectedInformation>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.PageContext page_context = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 6, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.page_context_)}},
      // string inner_text = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 4, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.inner_text_)}},
      // uint64 inner_text_offset = 3 [features = {
      {::_pbi::TcParser::FastV64S1,
       {24, 14, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.inner_text_offset_)}},
      // repeated string custom_data = 4;
      {::_pbi::TcParser::FastUR1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.custom_data_)}},
      // .optimization_guide.proto.FormData form_data = 5 [features = {
      {::_pbi::TcParser::FastMtS1,
       {42, 7, 1,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.form_data_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .optimization_guide.proto.Tab tabs = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 1, 2,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.tabs_)}},
      // int64 active_tab_id = 8 [features = {
      {::_pbi::TcParser::FastV64S1,
       {64, 15, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.active_tab_id_)}},
      // repeated .optimization_guide.proto.TabGroup pre_existing_tab_groups = 9;
      {::_pbi::TcParser::FastMtR1,
       {74, 2, 3,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.pre_existing_tab_groups_)}},
      // .optimization_guide.proto.SiteEngagement site_engagement = 10 [features = {
      {::_pbi::TcParser::FastMtS1,
       {82, 8, 4,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.site_engagement_)}},
      // repeated .optimization_guide.proto.HistoryQueryResult history_query_result = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 3, 5,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.history_query_result_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.ModelPrototypingCollectionSpecifier collection_specifier = 14 [features = {
      {::_pbi::TcParser::FastMtS1,
       {114, 9, 6,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.collection_specifier_)}},
      // .optimization_guide.proto.AutofillAiTypeRequest autofill_ai_type_request = 15 [features = {
      {::_pbi::TcParser::FastMtS1,
       {122, 10, 7,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.autofill_ai_type_request_)}},
      // .optimization_guide.proto.AutofillAiTypeResponse autofill_ai_type_response = 16 [features = {
      {::_pbi::TcParser::FastMtS2,
       {386, 11, 8,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.autofill_ai_type_response_)}},
      // .optimization_guide.proto.AnnotatedPageContent action_annotated_page_content = 17 [features = {
      {::_pbi::TcParser::FastMtS2,
       {394, 12, 9,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.action_annotated_page_content_)}},
      // bytes actor_framework_screenshot = 18 [features = {
      {::_pbi::TcParser::FastBS2,
       {402, 5, 0,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.actor_framework_screenshot_)}},
      // .optimization_guide.proto.BoundingRect viewport_rect_in_actor_framework_screenshot = 19 [features = {
      {::_pbi::TcParser::FastMtS2,
       {410, 13, 10,
        PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.viewport_rect_in_actor_framework_screenshot_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_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
    }}, {{
      // .optimization_guide.proto.PageContext page_context = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.page_context_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string inner_text = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.inner_text_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint64 inner_text_offset = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.inner_text_offset_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // repeated string custom_data = 4;
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.custom_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // .optimization_guide.proto.FormData form_data = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.form_data_), _Internal::kHasBitsOffset + 7, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.Tab tabs = 7;
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.tabs_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // int64 active_tab_id = 8 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.active_tab_id_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // repeated .optimization_guide.proto.TabGroup pre_existing_tab_groups = 9;
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.pre_existing_tab_groups_), _Internal::kHasBitsOffset + 2, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.SiteEngagement site_engagement = 10 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.site_engagement_), _Internal::kHasBitsOffset + 8, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.HistoryQueryResult history_query_result = 11;
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.history_query_result_), _Internal::kHasBitsOffset + 3, 5, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.ModelPrototypingCollectionSpecifier collection_specifier = 14 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.collection_specifier_), _Internal::kHasBitsOffset + 9, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AutofillAiTypeRequest autofill_ai_type_request = 15 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.autofill_ai_type_request_), _Internal::kHasBitsOffset + 10, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AutofillAiTypeResponse autofill_ai_type_response = 16 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.autofill_ai_type_response_), _Internal::kHasBitsOffset + 11, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AnnotatedPageContent action_annotated_page_content = 17 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.action_annotated_page_content_), _Internal::kHasBitsOffset + 12, 9, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bytes actor_framework_screenshot = 18 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.actor_framework_screenshot_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .optimization_guide.proto.BoundingRect viewport_rect_in_actor_framework_screenshot = 19 [features = {
      {PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.viewport_rect_in_actor_framework_screenshot_), _Internal::kHasBitsOffset + 13, 10, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageContext>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageContext_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::FormData>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::FormData_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Tab>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Tab_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::TabGroup>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::TabGroup_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::SiteEngagement>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::SiteEngagement_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HistoryQueryResult>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HistoryQueryResult_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingCollectionSpecifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingCollectionSpecifier_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillAiTypeRequest>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillAiTypeRequest_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillAiTypeResponse>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillAiTypeResponse_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AnnotatedPageContent>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AnnotatedPageContent_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::BoundingRect>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::BoundingRect_globals_},
        #endif
    }},
    {{
      "\64\0\12\0\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
      "optimization_guide.proto.BrowserCollectedInformation"
      "inner_text"
      "custom_data"
    }},
  };
}


inline constexpr BrowserCollectedInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        custom_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.custom_data_)>()
         }
        ,
        tabs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.tabs_)>()
         }
        ,
        pre_existing_tab_groups_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.pre_existing_tab_groups_)>()
         }
        ,
        history_query_result_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.history_query_result_)>()
         }
        ,
        inner_text_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        actor_framework_screenshot_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        page_context_{nullptr},
        form_data_{nullptr},
        site_engagement_{nullptr},
        collection_specifier_{nullptr},
        autofill_ai_type_request_{nullptr},
        autofill_ai_type_response_{nullptr},
        action_annotated_page_content_{nullptr},
        viewport_rect_in_actor_framework_screenshot_{nullptr},
        inner_text_offset_{::uint64_t{0u}},
        active_tab_id_{::int64_t{0}} {}

template <typename>
constexpr BrowserCollectedInformation::BrowserCollectedInformation(::_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 BrowserCollectedInformation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BrowserCollectedInformation(arena);
}
constexpr auto BrowserCollectedInformation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(BrowserCollectedInformation), alignof(BrowserCollectedInformation));
}
constexpr auto BrowserCollectedInformation::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
          &BrowserCollectedInformation::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<BrowserCollectedInformation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BrowserCollectedInformation::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<BrowserCollectedInformation>(), &BrowserCollectedInformation::ByteSizeLong,
              &BrowserCollectedInformation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.BrowserCollectedInformation",
  };
}
struct BrowserCollectedInformationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr BrowserCollectedInformationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 BrowserCollectedInformation_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(BrowserCollectedInformation::InternalGenerateClassData_(
            _default, &BrowserCollectedInformation_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<BrowserCollectedInformation>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~BrowserCollectedInformationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) BrowserCollectedInformation _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<BrowserCollectedInformation>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(BrowserCollectedInformationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingRequest_ModelingInputs::ParseTableT_ ModelPrototypingRequest_ModelingInputs::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // 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<::optimization_guide::proto::ModelPrototypingRequest_ModelingInputs>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.BrowserCollectedInformation browser_collected_information = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.browser_collected_information_)}},
      // string user_input = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.user_input_)}},
      // .optimization_guide.proto.ExtensionAddedInformation extension_added_information = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 1,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.extension_added_information_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.BrowserCollectedInformation browser_collected_information = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.browser_collected_information_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string user_input = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.user_input_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.ExtensionAddedInformation extension_added_information = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.extension_added_information_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::BrowserCollectedInformation>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::BrowserCollectedInformation_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ExtensionAddedInformation>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ExtensionAddedInformation_globals_},
        #endif
    }},
    {{
      "\77\0\12\0\0\0\0\0"
      "optimization_guide.proto.ModelPrototypingRequest.ModelingInputs"
      "user_input"
    }},
  };
}


inline constexpr ModelPrototypingRequest_ModelingInputs::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        user_input_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        browser_collected_information_{nullptr},
        extension_added_information_{nullptr} {}

template <typename>
constexpr ModelPrototypingRequest_ModelingInputs::ModelPrototypingRequest_ModelingInputs(::_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 ModelPrototypingRequest_ModelingInputs::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingRequest_ModelingInputs(arena);
}
constexpr auto ModelPrototypingRequest_ModelingInputs::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ModelPrototypingRequest_ModelingInputs), alignof(ModelPrototypingRequest_ModelingInputs));
}
constexpr auto ModelPrototypingRequest_ModelingInputs::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
          &ModelPrototypingRequest_ModelingInputs::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingRequest_ModelingInputs>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingRequest_ModelingInputs::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingRequest_ModelingInputs>(), &ModelPrototypingRequest_ModelingInputs::ByteSizeLong,
              &ModelPrototypingRequest_ModelingInputs::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingRequest.ModelingInputs",
  };
}
struct ModelPrototypingRequest_ModelingInputsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingRequest_ModelingInputsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingRequest_ModelingInputs_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingRequest_ModelingInputs::InternalGenerateClassData_(
            _default, &ModelPrototypingRequest_ModelingInputs_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_ModelingInputs>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingRequest_ModelingInputsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingRequest_ModelingInputs _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest_ModelingInputs>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingRequest::ParseTableT_ ModelPrototypingRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // 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<::optimization_guide::proto::ModelPrototypingRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.ModelPrototypingRequest.ModelingInputs modeling_inputs = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.modeling_inputs_)}},
      // repeated .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt prototyping_prompts = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.prototyping_prompts_)}},
      // repeated string model_responses = 3;
      {::_pbi::TcParser::FastUR1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.model_responses_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.ModelPrototypingRequest.ModelingInputs modeling_inputs = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.modeling_inputs_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt prototyping_prompts = 2;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.prototyping_prompts_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated string model_responses = 3;
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_.model_responses_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingRequest_ModelingInputs>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingRequest_ModelingInputs_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt_globals_},
        #endif
    }},
    {{
      "\60\0\0\17\0\0\0\0"
      "optimization_guide.proto.ModelPrototypingRequest"
      "model_responses"
    }},
  };
}


inline constexpr ModelPrototypingRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prototyping_prompts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingRequest, _impl_.prototyping_prompts_)>()
         }
        ,
        model_responses_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingRequest, _impl_.model_responses_)>()
         }
        ,
        modeling_inputs_{nullptr} {}

template <typename>
constexpr ModelPrototypingRequest::ModelPrototypingRequest(::_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 ModelPrototypingRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingRequest(arena);
}
constexpr auto ModelPrototypingRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ModelPrototypingRequest), alignof(ModelPrototypingRequest));
}
constexpr auto ModelPrototypingRequest::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
          &ModelPrototypingRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingRequest>(), &ModelPrototypingRequest::ByteSizeLong,
              &ModelPrototypingRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingRequest",
  };
}
struct ModelPrototypingRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingRequest::InternalGenerateClassData_(
            _default, &ModelPrototypingRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ModelPrototypingLoggingData::ParseTableT_ ModelPrototypingLoggingData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967256,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // 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<::optimization_guide::proto::ModelPrototypingLoggingData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.ModelPrototypingRequest request = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.request_)}},
      // .optimization_guide.proto.ModelPrototypingResponse response = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.response_)}},
      // .optimization_guide.proto.ModelPrototypingMetadata metadata = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.metadata_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 6 [features = {
      {::_pbi::TcParser::FastMtS1,
       {50, 3, 3,
        PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.model_execution_info_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.ModelPrototypingRequest request = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.request_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.ModelPrototypingResponse response = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.response_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.ModelPrototypingMetadata metadata = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.metadata_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_.model_execution_info_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingRequest>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingRequest_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingResponse>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingResponse_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelPrototypingMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelPrototypingMetadata_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelExecutionInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelExecutionInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ModelPrototypingLoggingData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        request_{nullptr},
        response_{nullptr},
        metadata_{nullptr},
        model_execution_info_{nullptr} {}

template <typename>
constexpr ModelPrototypingLoggingData::ModelPrototypingLoggingData(::_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 ModelPrototypingLoggingData::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ModelPrototypingLoggingData(arena);
}
constexpr auto ModelPrototypingLoggingData::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ModelPrototypingLoggingData), alignof(ModelPrototypingLoggingData));
}
constexpr auto ModelPrototypingLoggingData::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
          &ModelPrototypingLoggingData::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ModelPrototypingLoggingData>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ModelPrototypingLoggingData::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ModelPrototypingLoggingData>(), &ModelPrototypingLoggingData::ByteSizeLong,
              &ModelPrototypingLoggingData::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingData, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.ModelPrototypingLoggingData",
  };
}
struct ModelPrototypingLoggingDataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ModelPrototypingLoggingDataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ModelPrototypingLoggingData_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ModelPrototypingLoggingData::InternalGenerateClassData_(
            _default, &ModelPrototypingLoggingData_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingLoggingData>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ModelPrototypingLoggingDataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ModelPrototypingLoggingData _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ModelPrototypingLoggingData>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ModelPrototypingLoggingDataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ModelPrototypingLoggingDataGlobalsTypeInternal ModelPrototypingLoggingData_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ModelPrototypingLoggingData_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ModelPrototypingLoggingData_globals_.GetClassData();
#else
  return ModelPrototypingLoggingData_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace proto
}  // namespace optimization_guide
namespace optimization_guide {
namespace proto {
PROTOBUF_CONSTINIT const uint32_t ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_internal_data_[] = {
    65536u, 32u, 1008u, };
static const char ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[] = {
    "MODEL_ENUM_EVERGREEN_GEMINI_NANO_V2_MULTI_MODAL"
    "MODEL_ENUM_EVERGREEN_GEMINI_V3"
    "MODEL_ENUM_EVERGREEN_GEMINI_V3P1_S"
    "MODEL_ENUM_EVERGREEN_GEMINI_V3_XS"
    "MODEL_ENUM_EVERGREEN_GEMINI_V4_S"
    "MODEL_ENUM_EVERGREEN_GEMINI_V4_XS"
    "MODEL_ENUM_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries[] = {
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[0], 47}, 6},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[47], 30}, 5},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[77], 34}, 10},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[111], 33}, 7},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[144], 32}, 8},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[176], 33}, 9},
    {{&ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_names[209], 22}, 0},
};

static const int ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries_by_number[] = {
    6,  // 0 -> MODEL_ENUM_UNSPECIFIED
    1,  // 5 -> MODEL_ENUM_EVERGREEN_GEMINI_V3
    0,  // 6 -> MODEL_ENUM_EVERGREEN_GEMINI_NANO_V2_MULTI_MODAL
    3,  // 7 -> MODEL_ENUM_EVERGREEN_GEMINI_V3_XS
    4,  // 8 -> MODEL_ENUM_EVERGREEN_GEMINI_V4_S
    5,  // 9 -> MODEL_ENUM_EVERGREEN_GEMINI_V4_XS
    2,  // 10 -> MODEL_ENUM_EVERGREEN_GEMINI_V3P1_S
};

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

const ::std::string& ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_Name(ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries, ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries_by_number, 7,
      ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries,
                                  ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_entries_by_number,
                                  7, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ModelPrototypingRequest_PrototypingPrompt_ModelInformation_ModelEnum_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ModelPrototypingMetadata_PageAnnotation_internal_data_[] = {
    262144u, 0u, };
static const char ModelPrototypingMetadata_PageAnnotation_names[] = {
    "PAGE_ANNOTATION_SHOPPING_CART"
    "PAGE_ANNOTATION_SHOPPING_CHECKOUT"
    "PAGE_ANNOTATION_SHOPPING_SUCCESS"
    "PAGE_ANNOTATION_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ModelPrototypingMetadata_PageAnnotation_entries[] = {
    {{&ModelPrototypingMetadata_PageAnnotation_names[0], 29}, 1},
    {{&ModelPrototypingMetadata_PageAnnotation_names[29], 33}, 2},
    {{&ModelPrototypingMetadata_PageAnnotation_names[62], 32}, 3},
    {{&ModelPrototypingMetadata_PageAnnotation_names[94], 27}, 0},
};

static const int ModelPrototypingMetadata_PageAnnotation_entries_by_number[] = {
    3,  // 0 -> PAGE_ANNOTATION_UNSPECIFIED
    0,  // 1 -> PAGE_ANNOTATION_SHOPPING_CART
    1,  // 2 -> PAGE_ANNOTATION_SHOPPING_CHECKOUT
    2,  // 3 -> PAGE_ANNOTATION_SHOPPING_SUCCESS
};

bool ModelPrototypingMetadata_PageAnnotation_Parse(::absl::string_view name,
                                  ModelPrototypingMetadata_PageAnnotation* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ModelPrototypingMetadata_PageAnnotation_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<ModelPrototypingMetadata_PageAnnotation>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ModelPrototypingMetadata_PageAnnotation_strings[4] = {};

const ::std::string& ModelPrototypingMetadata_PageAnnotation_Name(ModelPrototypingMetadata_PageAnnotation value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ModelPrototypingMetadata_PageAnnotation_entries, ModelPrototypingMetadata_PageAnnotation_entries_by_number, 4,
      ModelPrototypingMetadata_PageAnnotation_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ModelPrototypingMetadata_PageAnnotation_entries,
                                  ModelPrototypingMetadata_PageAnnotation_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ModelPrototypingMetadata_PageAnnotation_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ModelPrototypingMetadata_TaskCompletionStatus_internal_data_[] = {
    393216u, 0u, };
static const char ModelPrototypingMetadata_TaskCompletionStatus_names[] = {
    "TASK_COMPLETION_STATUS_FAILURE_AMBIGUOUS_TASK"
    "TASK_COMPLETION_STATUS_FAILURE_INFEASIBLE_TASK"
    "TASK_COMPLETION_STATUS_FAILURE_SHOPPING_OUT_OF_STOCK"
    "TASK_COMPLETION_STATUS_FAILURE_UNCATEGORIZED"
    "TASK_COMPLETION_STATUS_SUCCESS"
    "TASK_COMPLETION_STATUS_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ModelPrototypingMetadata_TaskCompletionStatus_entries[] = {
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[0], 45}, 4},
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[45], 46}, 3},
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[91], 52}, 5},
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[143], 44}, 2},
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[187], 30}, 1},
    {{&ModelPrototypingMetadata_TaskCompletionStatus_names[217], 34}, 0},
};

static const int ModelPrototypingMetadata_TaskCompletionStatus_entries_by_number[] = {
    5,  // 0 -> TASK_COMPLETION_STATUS_UNSPECIFIED
    4,  // 1 -> TASK_COMPLETION_STATUS_SUCCESS
    3,  // 2 -> TASK_COMPLETION_STATUS_FAILURE_UNCATEGORIZED
    1,  // 3 -> TASK_COMPLETION_STATUS_FAILURE_INFEASIBLE_TASK
    0,  // 4 -> TASK_COMPLETION_STATUS_FAILURE_AMBIGUOUS_TASK
    2,  // 5 -> TASK_COMPLETION_STATUS_FAILURE_SHOPPING_OUT_OF_STOCK
};

bool ModelPrototypingMetadata_TaskCompletionStatus_Parse(::absl::string_view name,
                                  ModelPrototypingMetadata_TaskCompletionStatus* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ModelPrototypingMetadata_TaskCompletionStatus_entries, 6, name, &int_value);
  if (success) {
    *value = static_cast<ModelPrototypingMetadata_TaskCompletionStatus>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ModelPrototypingMetadata_TaskCompletionStatus_strings[6] = {};

const ::std::string& ModelPrototypingMetadata_TaskCompletionStatus_Name(ModelPrototypingMetadata_TaskCompletionStatus value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ModelPrototypingMetadata_TaskCompletionStatus_entries, ModelPrototypingMetadata_TaskCompletionStatus_entries_by_number, 6,
      ModelPrototypingMetadata_TaskCompletionStatus_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ModelPrototypingMetadata_TaskCompletionStatus_entries,
                                  ModelPrototypingMetadata_TaskCompletionStatus_entries_by_number,
                                  6, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ModelPrototypingMetadata_TaskCompletionStatus_strings[idx].get();
}
// ===================================================================

void ModelPrototypingLoggingData::clear_model_execution_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.model_execution_info_ != nullptr) _impl_.model_execution_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
ModelPrototypingLoggingData::ModelPrototypingLoggingData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingLoggingData_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ModelPrototypingLoggingData)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingLoggingData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::ModelPrototypingLoggingData& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingLoggingData* 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_.request_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.request_)
                : nullptr;
  _impl_.response_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.response_)
                : nullptr;
  _impl_.metadata_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_)
                : nullptr;
  _impl_.model_execution_info_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.model_execution_info_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingLoggingData_class_data_ =
    ModelPrototypingLoggingData::InternalGenerateClassData_(ModelPrototypingLoggingData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingLoggingData::GetClassData() const {
  return ModelPrototypingLoggingData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingLoggingData::GetClassData() const {
  return ModelPrototypingLoggingData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingLoggingData::ParseTableT_
    ModelPrototypingLoggingData::_table_ =
        ModelPrototypingLoggingData::InternalGenerateParseTable_(ModelPrototypingLoggingData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingLoggingData::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingLoggingData)
  ::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)) {
      ABSL_DCHECK(_impl_.request_ != nullptr);
      _impl_.request_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.response_ != nullptr);
      _impl_.response_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.metadata_ != nullptr);
      _impl_.metadata_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.model_execution_info_ != nullptr);
      _impl_.model_execution_info_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.ModelPrototypingRequest request = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.request_, this_._impl_.request_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.ModelPrototypingResponse response = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.response_, this_._impl_.response_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.ModelPrototypingMetadata metadata = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.metadata_, this_._impl_.metadata_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.model_execution_info_, this_._impl_.model_execution_info_->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:optimization_guide.proto.ModelPrototypingLoggingData)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingLoggingData::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingLoggingData& this_ = static_cast<const ModelPrototypingLoggingData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingLoggingData::ByteSizeLong() const {
  const ModelPrototypingLoggingData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingLoggingData)
  ::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, 0x0000000fU)) {
    // .optimization_guide.proto.ModelPrototypingRequest request = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.request_);
    }
    // .optimization_guide.proto.ModelPrototypingResponse response = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.response_);
    }
    // .optimization_guide.proto.ModelPrototypingMetadata metadata = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.metadata_);
    }
    // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.model_execution_info_);
    }
  }
  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 ModelPrototypingLoggingData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingLoggingData*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingLoggingData&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingLoggingData)
  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, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.request_ != nullptr);
      if (_this->_impl_.request_ == nullptr) {
        _this->_impl_.request_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.request_);
      } else {
        _this->_impl_.request_->MergeFrom(*from._impl_.request_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.response_ != nullptr);
      if (_this->_impl_.response_ == nullptr) {
        _this->_impl_.response_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.response_);
      } else {
        _this->_impl_.response_->MergeFrom(*from._impl_.response_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.metadata_ != nullptr);
      if (_this->_impl_.metadata_ == nullptr) {
        _this->_impl_.metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_);
      } else {
        _this->_impl_.metadata_->MergeFrom(*from._impl_.metadata_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.model_execution_info_ != nullptr);
      if (_this->_impl_.model_execution_info_ == nullptr) {
        _this->_impl_.model_execution_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.model_execution_info_);
      } else {
        _this->_impl_.model_execution_info_->MergeFrom(*from._impl_.model_execution_info_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ModelPrototypingRequest_PrototypingPrompt_ModelInformation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingRequest_PrototypingPrompt_ModelInformation_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
}
ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ModelPrototypingRequest_PrototypingPrompt_ModelInformation(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ModelPrototypingRequest_PrototypingPrompt_ModelInformation& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingRequest_PrototypingPrompt_ModelInformation_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingRequest_PrototypingPrompt_ModelInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ModelPrototypingRequest_PrototypingPrompt_ModelInformation::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, model_enum_),
           0,
           offsetof(Impl_, skip_model_) -
               offsetof(Impl_, model_enum_) +
               sizeof(Impl_::skip_model_));
}
ModelPrototypingRequest_PrototypingPrompt_ModelInformation::~ModelPrototypingRequest_PrototypingPrompt_ModelInformation() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  SharedDtor(*this);
}
inline void ModelPrototypingRequest_PrototypingPrompt_ModelInformation::SharedDtor(MessageLite& self) {
  ModelPrototypingRequest_PrototypingPrompt_ModelInformation& this_ = static_cast<ModelPrototypingRequest_PrototypingPrompt_ModelInformation&>(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 ModelPrototypingRequest_PrototypingPrompt_ModelInformation_class_data_ =
    ModelPrototypingRequest_PrototypingPrompt_ModelInformation::InternalGenerateClassData_(ModelPrototypingRequest_PrototypingPrompt_ModelInformation_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_PrototypingPrompt_ModelInformation::GetClassData() const {
  return ModelPrototypingRequest_PrototypingPrompt_ModelInformation_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_PrototypingPrompt_ModelInformation::GetClassData() const {
  return ModelPrototypingRequest_PrototypingPrompt_ModelInformation_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ParseTableT_
    ModelPrototypingRequest_PrototypingPrompt_ModelInformation::_table_ =
        ModelPrototypingRequest_PrototypingPrompt_ModelInformation::InternalGenerateParseTable_(ModelPrototypingRequest_PrototypingPrompt_ModelInformation_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingRequest_PrototypingPrompt_ModelInformation::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  ::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)) {
    ::memset(&_impl_.model_enum_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.skip_model_) -
        reinterpret_cast<char*>(&_impl_.model_enum_)) + sizeof(_impl_.skip_model_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation.ModelEnum model_enum = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_model_enum() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_model_enum(), target);
    }
  }

  // bool skip_model = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_skip_model() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_skip_model(), 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:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingRequest_PrototypingPrompt_ModelInformation& this_ = static_cast<const ModelPrototypingRequest_PrototypingPrompt_ModelInformation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingRequest_PrototypingPrompt_ModelInformation::ByteSizeLong() const {
  const ModelPrototypingRequest_PrototypingPrompt_ModelInformation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  ::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)) {
    // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation.ModelEnum model_enum = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_model_enum() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_model_enum());
      }
    }
    // bool skip_model = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_skip_model() != 0) {
        total_size += 2;
      }
    }
  }
  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 ModelPrototypingRequest_PrototypingPrompt_ModelInformation::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingRequest_PrototypingPrompt_ModelInformation*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingRequest_PrototypingPrompt_ModelInformation&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  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)) {
      if (from._internal_model_enum() != 0) {
        _this->_impl_.model_enum_ = from._impl_.model_enum_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_skip_model() != 0) {
        _this->_impl_.skip_model_ = from._impl_.skip_model_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ModelPrototypingRequest_PrototypingPrompt_ModelInformation::CopyFrom(const ModelPrototypingRequest_PrototypingPrompt_ModelInformation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

ModelPrototypingRequest_PrototypingPrompt::ModelPrototypingRequest_PrototypingPrompt(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingRequest_PrototypingPrompt_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingRequest_PrototypingPrompt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::ModelPrototypingRequest_PrototypingPrompt& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prompt_variables_(arena, from.prompt_variables_),
        system_instructions_template_(arena, from.system_instructions_template_),
        context_area_template_(arena, from.context_area_template_),
        user_input_template_(arena, from.user_input_template_),
        image_template_(arena, from.image_template_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingRequest_PrototypingPrompt* 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_.model_information_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.model_information_)
                : nullptr;
  _impl_.conversation_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.conversation_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingRequest_PrototypingPrompt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        prompt_variables_(arena),
        system_instructions_template_(arena),
        context_area_template_(arena),
        user_input_template_(arena),
        image_template_(arena) {}

inline void ModelPrototypingRequest_PrototypingPrompt::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, model_information_),
           0,
           offsetof(Impl_, conversation_) -
               offsetof(Impl_, model_information_) +
               sizeof(Impl_::conversation_));
}
ModelPrototypingRequest_PrototypingPrompt::~ModelPrototypingRequest_PrototypingPrompt() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  SharedDtor(*this);
}
inline void ModelPrototypingRequest_PrototypingPrompt::SharedDtor(MessageLite& self) {
  ModelPrototypingRequest_PrototypingPrompt& this_ = static_cast<ModelPrototypingRequest_PrototypingPrompt&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prompt_variables_.Destroy();
  this_._impl_.system_instructions_template_.Destroy();
  this_._impl_.context_area_template_.Destroy();
  this_._impl_.user_input_template_.Destroy();
  this_._impl_.image_template_.Destroy();
  delete this_._impl_.model_information_;
  delete this_._impl_.conversation_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingRequest_PrototypingPrompt_class_data_ =
    ModelPrototypingRequest_PrototypingPrompt::InternalGenerateClassData_(ModelPrototypingRequest_PrototypingPrompt_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_PrototypingPrompt::GetClassData() const {
  return ModelPrototypingRequest_PrototypingPrompt_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_PrototypingPrompt::GetClassData() const {
  return ModelPrototypingRequest_PrototypingPrompt_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingRequest_PrototypingPrompt::ParseTableT_
    ModelPrototypingRequest_PrototypingPrompt::_table_ =
        ModelPrototypingRequest_PrototypingPrompt::InternalGenerateParseTable_(ModelPrototypingRequest_PrototypingPrompt_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingRequest_PrototypingPrompt::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  ::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, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.prompt_variables_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.system_instructions_template_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.context_area_template_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.user_input_template_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.image_template_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.model_information_ != nullptr);
      _impl_.model_information_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.conversation_ != nullptr);
      _impl_.conversation_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string prompt_variables = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_prompt_variables().empty()) {
      const ::std::string& _s = this_._internal_prompt_variables();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.prompt_variables");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string system_instructions_template = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_system_instructions_template().empty()) {
      const ::std::string& _s = this_._internal_system_instructions_template();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.system_instructions_template");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // string context_area_template = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_context_area_template().empty()) {
      const ::std::string& _s = this_._internal_context_area_template();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.context_area_template");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // string user_input_template = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_user_input_template().empty()) {
      const ::std::string& _s = this_._internal_user_input_template();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.user_input_template");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation model_information = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.model_information_, this_._impl_.model_information_->GetCachedSize(), target,
        stream);
  }

  // string image_template = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (!this_._internal_image_template().empty()) {
      const ::std::string& _s = this_._internal_image_template();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.image_template");
      target = stream->WriteStringMaybeAliased(6, _s, target);
    }
  }

  // .optimization_guide.proto.Conversation conversation = 7 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.conversation_, this_._impl_.conversation_->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:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingRequest_PrototypingPrompt::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingRequest_PrototypingPrompt& this_ = static_cast<const ModelPrototypingRequest_PrototypingPrompt&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingRequest_PrototypingPrompt::ByteSizeLong() const {
  const ModelPrototypingRequest_PrototypingPrompt& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  ::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, 0x0000007fU)) {
    // string prompt_variables = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_prompt_variables().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prompt_variables());
      }
    }
    // string system_instructions_template = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_system_instructions_template().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_system_instructions_template());
      }
    }
    // string context_area_template = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_context_area_template().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_context_area_template());
      }
    }
    // string user_input_template = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!this_._internal_user_input_template().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_user_input_template());
      }
    }
    // string image_template = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!this_._internal_image_template().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_image_template());
      }
    }
    // .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt.ModelInformation model_information = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.model_information_);
    }
    // .optimization_guide.proto.Conversation conversation = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.conversation_);
    }
  }
  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 ModelPrototypingRequest_PrototypingPrompt::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingRequest_PrototypingPrompt*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingRequest_PrototypingPrompt&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  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)) {
      if (!from._internal_prompt_variables().empty()) {
        _this->_internal_set_prompt_variables(from._internal_prompt_variables());
      } else {
        if (_this->_impl_.prompt_variables_.IsDefault()) {
          _this->_internal_set_prompt_variables("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_system_instructions_template().empty()) {
        _this->_internal_set_system_instructions_template(from._internal_system_instructions_template());
      } else {
        if (_this->_impl_.system_instructions_template_.IsDefault()) {
          _this->_internal_set_system_instructions_template("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_context_area_template().empty()) {
        _this->_internal_set_context_area_template(from._internal_context_area_template());
      } else {
        if (_this->_impl_.context_area_template_.IsDefault()) {
          _this->_internal_set_context_area_template("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!from._internal_user_input_template().empty()) {
        _this->_internal_set_user_input_template(from._internal_user_input_template());
      } else {
        if (_this->_impl_.user_input_template_.IsDefault()) {
          _this->_internal_set_user_input_template("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!from._internal_image_template().empty()) {
        _this->_internal_set_image_template(from._internal_image_template());
      } else {
        if (_this->_impl_.image_template_.IsDefault()) {
          _this->_internal_set_image_template("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.model_information_ != nullptr);
      if (_this->_impl_.model_information_ == nullptr) {
        _this->_impl_.model_information_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.model_information_);
      } else {
        _this->_impl_.model_information_->MergeFrom(*from._impl_.model_information_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.conversation_ != nullptr);
      if (_this->_impl_.conversation_ == nullptr) {
        _this->_impl_.conversation_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.conversation_);
      } else {
        _this->_impl_.conversation_->MergeFrom(*from._impl_.conversation_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ModelPrototypingRequest_PrototypingPrompt::CopyFrom(const ModelPrototypingRequest_PrototypingPrompt& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ModelPrototypingRequest_PrototypingPrompt::InternalSwap(ModelPrototypingRequest_PrototypingPrompt* 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_.prompt_variables_, &other->_impl_.prompt_variables_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.system_instructions_template_, &other->_impl_.system_instructions_template_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.context_area_template_, &other->_impl_.context_area_template_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.user_input_template_, &other->_impl_.user_input_template_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.image_template_, &other->_impl_.image_template_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.conversation_)
      + sizeof(ModelPrototypingRequest_PrototypingPrompt::_impl_.conversation_)
      - PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_PrototypingPrompt, _impl_.model_information_)>(
          reinterpret_cast<char*>(&_impl_.model_information_),
          reinterpret_cast<char*>(&other->_impl_.model_information_));
}

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

ModelPrototypingRequest_ModelingInputs::ModelPrototypingRequest_ModelingInputs(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingRequest_ModelingInputs_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingRequest_ModelingInputs::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::ModelPrototypingRequest_ModelingInputs& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        user_input_(arena, from.user_input_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingRequest_ModelingInputs* 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_.browser_collected_information_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.browser_collected_information_)
                : nullptr;
  _impl_.extension_added_information_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.extension_added_information_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingRequest_ModelingInputs::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        user_input_(arena) {}

inline void ModelPrototypingRequest_ModelingInputs::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, browser_collected_information_),
           0,
           offsetof(Impl_, extension_added_information_) -
               offsetof(Impl_, browser_collected_information_) +
               sizeof(Impl_::extension_added_information_));
}
ModelPrototypingRequest_ModelingInputs::~ModelPrototypingRequest_ModelingInputs() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  SharedDtor(*this);
}
inline void ModelPrototypingRequest_ModelingInputs::SharedDtor(MessageLite& self) {
  ModelPrototypingRequest_ModelingInputs& this_ = static_cast<ModelPrototypingRequest_ModelingInputs&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.user_input_.Destroy();
  delete this_._impl_.browser_collected_information_;
  delete this_._impl_.extension_added_information_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingRequest_ModelingInputs_class_data_ =
    ModelPrototypingRequest_ModelingInputs::InternalGenerateClassData_(ModelPrototypingRequest_ModelingInputs_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_ModelingInputs::GetClassData() const {
  return ModelPrototypingRequest_ModelingInputs_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest_ModelingInputs::GetClassData() const {
  return ModelPrototypingRequest_ModelingInputs_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingRequest_ModelingInputs::ParseTableT_
    ModelPrototypingRequest_ModelingInputs::_table_ =
        ModelPrototypingRequest_ModelingInputs::InternalGenerateParseTable_(ModelPrototypingRequest_ModelingInputs_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingRequest_ModelingInputs::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  ::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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.user_input_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.browser_collected_information_ != nullptr);
      _impl_.browser_collected_information_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.extension_added_information_ != nullptr);
      _impl_.extension_added_information_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.BrowserCollectedInformation browser_collected_information = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.browser_collected_information_, this_._impl_.browser_collected_information_->GetCachedSize(), target,
        stream);
  }

  // string user_input = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_user_input().empty()) {
      const ::std::string& _s = this_._internal_user_input();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.ModelingInputs.user_input");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // .optimization_guide.proto.ExtensionAddedInformation extension_added_information = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.extension_added_information_, this_._impl_.extension_added_information_->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:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingRequest_ModelingInputs::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingRequest_ModelingInputs& this_ = static_cast<const ModelPrototypingRequest_ModelingInputs&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingRequest_ModelingInputs::ByteSizeLong() const {
  const ModelPrototypingRequest_ModelingInputs& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  ::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, 0x00000007U)) {
    // string user_input = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_user_input().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_user_input());
      }
    }
    // .optimization_guide.proto.BrowserCollectedInformation browser_collected_information = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.browser_collected_information_);
    }
    // .optimization_guide.proto.ExtensionAddedInformation extension_added_information = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.extension_added_information_);
    }
  }
  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 ModelPrototypingRequest_ModelingInputs::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingRequest_ModelingInputs*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingRequest_ModelingInputs&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_user_input().empty()) {
        _this->_internal_set_user_input(from._internal_user_input());
      } else {
        if (_this->_impl_.user_input_.IsDefault()) {
          _this->_internal_set_user_input("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.browser_collected_information_ != nullptr);
      if (_this->_impl_.browser_collected_information_ == nullptr) {
        _this->_impl_.browser_collected_information_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.browser_collected_information_);
      } else {
        _this->_impl_.browser_collected_information_->MergeFrom(*from._impl_.browser_collected_information_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.extension_added_information_ != nullptr);
      if (_this->_impl_.extension_added_information_ == nullptr) {
        _this->_impl_.extension_added_information_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.extension_added_information_);
      } else {
        _this->_impl_.extension_added_information_->MergeFrom(*from._impl_.extension_added_information_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ModelPrototypingRequest_ModelingInputs::CopyFrom(const ModelPrototypingRequest_ModelingInputs& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:optimization_guide.proto.ModelPrototypingRequest.ModelingInputs)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ModelPrototypingRequest_ModelingInputs::InternalSwap(ModelPrototypingRequest_ModelingInputs* 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_.user_input_, &other->_impl_.user_input_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.extension_added_information_)
      + sizeof(ModelPrototypingRequest_ModelingInputs::_impl_.extension_added_information_)
      - PROTOBUF_FIELD_OFFSET(ModelPrototypingRequest_ModelingInputs, _impl_.browser_collected_information_)>(
          reinterpret_cast<char*>(&_impl_.browser_collected_information_),
          reinterpret_cast<char*>(&other->_impl_.browser_collected_information_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingRequest* 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_.modeling_inputs_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.modeling_inputs_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingRequest_class_data_ =
    ModelPrototypingRequest::InternalGenerateClassData_(ModelPrototypingRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest::GetClassData() const {
  return ModelPrototypingRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingRequest::GetClassData() const {
  return ModelPrototypingRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingRequest::ParseTableT_
    ModelPrototypingRequest::_table_ =
        ModelPrototypingRequest::InternalGenerateParseTable_(ModelPrototypingRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingRequest)
  ::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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.prototyping_prompts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.model_responses_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.modeling_inputs_ != nullptr);
      _impl_.modeling_inputs_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.ModelPrototypingRequest.ModelingInputs modeling_inputs = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.modeling_inputs_, this_._impl_.modeling_inputs_->GetCachedSize(), target,
        stream);
  }

  // repeated .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt prototyping_prompts = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_prototyping_prompts_size());
         i < n; i++) {
      const auto& repfield = this_._internal_prototyping_prompts().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated string model_responses = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_model_responses_size(); i < n; ++i) {
      const auto& s = this_._internal_model_responses().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingRequest.model_responses");
      target = stream->WriteString(3, 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:optimization_guide.proto.ModelPrototypingRequest)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingRequest::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingRequest& this_ = static_cast<const ModelPrototypingRequest&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingRequest::ByteSizeLong() const {
  const ModelPrototypingRequest& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingRequest)
  ::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, 0x00000007U)) {
    // repeated .optimization_guide.proto.ModelPrototypingRequest.PrototypingPrompt prototyping_prompts = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_prototyping_prompts_size();
      for (const auto& msg : this_._internal_prototyping_prompts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated string model_responses = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_model_responses().size());
      for (int i = 0, n = this_._internal_model_responses().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_model_responses().Get(i));
      }
    }
    // .optimization_guide.proto.ModelPrototypingRequest.ModelingInputs modeling_inputs = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.modeling_inputs_);
    }
  }
  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 ModelPrototypingRequest::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingRequest*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingRequest&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingRequest)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_prototyping_prompts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_prototyping_prompts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_model_responses()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_model_responses());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.modeling_inputs_ != nullptr);
      if (_this->_impl_.modeling_inputs_ == nullptr) {
        _this->_impl_.modeling_inputs_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.modeling_inputs_);
      } else {
        _this->_impl_.modeling_inputs_->MergeFrom(*from._impl_.modeling_inputs_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ModelPrototypingRequest::InternalSwap(ModelPrototypingRequest* 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_.prototyping_prompts_.InternalSwap(&other->_impl_.prototyping_prompts_);
  _impl_.model_responses_.InternalSwap(&other->_impl_.model_responses_);
  swap(_impl_.modeling_inputs_, other->_impl_.modeling_inputs_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Conversation* 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:optimization_guide.proto.Conversation)
}
PROTOBUF_NDEBUG_INLINE Conversation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        conversation_turns_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Conversation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Conversation, _impl_.conversation_turns_)>()
         }
     {}

inline void Conversation::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Conversation::~Conversation() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.Conversation)
  SharedDtor(*this);
}
inline void Conversation::SharedDtor(MessageLite& self) {
  Conversation& this_ = static_cast<Conversation&>(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 Conversation_class_data_ =
    Conversation::InternalGenerateClassData_(Conversation_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Conversation::GetClassData() const {
  return Conversation_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Conversation::GetClassData() const {
  return Conversation_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Conversation::ParseTableT_
    Conversation::_table_ =
        Conversation::InternalGenerateParseTable_(Conversation_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Conversation::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.Conversation)
  ::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_.conversation_turns_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .optimization_guide.proto.ConversationTurn conversation_turns = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_conversation_turns_size());
         i < n; i++) {
      const auto& repfield = this_._internal_conversation_turns().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.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:optimization_guide.proto.Conversation)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Conversation::ByteSizeLong(const MessageLite& base) {
  const Conversation& this_ = static_cast<const Conversation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Conversation::ByteSizeLong() const {
  const Conversation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.Conversation)
  ::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_);
   {
    // repeated .optimization_guide.proto.ConversationTurn conversation_turns = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_conversation_turns_size();
      for (const auto& msg : this_._internal_conversation_turns()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  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 Conversation::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Conversation*>(&to_msg);
  auto& from = static_cast<const Conversation&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.Conversation)
  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_mutable_conversation_turns()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_conversation_turns());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void Conversation::InternalSwap(Conversation* 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_.conversation_turns_.InternalSwap(&other->_impl_.conversation_turns_);
}

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

ConversationTurn::ConversationTurn(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ConversationTurn_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ConversationTurn)
}
PROTOBUF_NDEBUG_INLINE ConversationTurn::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::ConversationTurn& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        conversation_text_(arena, from.conversation_text_),
        role_(arena, from.role_),
        mime_type_(arena, from.mime_type_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ConversationTurn* 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:optimization_guide.proto.ConversationTurn)
}
PROTOBUF_NDEBUG_INLINE ConversationTurn::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        conversation_text_(arena),
        role_(arena),
        mime_type_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ConversationTurn_class_data_ =
    ConversationTurn::InternalGenerateClassData_(ConversationTurn_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConversationTurn::GetClassData() const {
  return ConversationTurn_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConversationTurn::GetClassData() const {
  return ConversationTurn_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ConversationTurn::ParseTableT_
    ConversationTurn::_table_ =
        ConversationTurn::InternalGenerateParseTable_(ConversationTurn_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ConversationTurn::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ConversationTurn)
  ::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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.conversation_text_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.role_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.mime_type_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string conversation_text = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_conversation_text().empty()) {
      const ::std::string& _s = this_._internal_conversation_text();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ConversationTurn.conversation_text");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string role = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_role().empty()) {
      const ::std::string& _s = this_._internal_role();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ConversationTurn.role");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // string mime_type = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_mime_type().empty()) {
      const ::std::string& _s = this_._internal_mime_type();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ConversationTurn.mime_type");
      target = stream->WriteStringMaybeAliased(3, _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:optimization_guide.proto.ConversationTurn)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ConversationTurn::ByteSizeLong(const MessageLite& base) {
  const ConversationTurn& this_ = static_cast<const ConversationTurn&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ConversationTurn::ByteSizeLong() const {
  const ConversationTurn& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ConversationTurn)
  ::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, 0x00000007U)) {
    // string conversation_text = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_conversation_text().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_conversation_text());
      }
    }
    // string role = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_role().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_role());
      }
    }
    // string mime_type = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_mime_type().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_mime_type());
      }
    }
  }
  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 ConversationTurn::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ConversationTurn*>(&to_msg);
  auto& from = static_cast<const ConversationTurn&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ConversationTurn)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_conversation_text().empty()) {
        _this->_internal_set_conversation_text(from._internal_conversation_text());
      } else {
        if (_this->_impl_.conversation_text_.IsDefault()) {
          _this->_internal_set_conversation_text("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_role().empty()) {
        _this->_internal_set_role(from._internal_role());
      } else {
        if (_this->_impl_.role_.IsDefault()) {
          _this->_internal_set_role("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_mime_type().empty()) {
        _this->_internal_set_mime_type(from._internal_mime_type());
      } else {
        if (_this->_impl_.mime_type_.IsDefault()) {
          _this->_internal_set_mime_type("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ConversationTurn::InternalSwap(ConversationTurn* 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_.conversation_text_, &other->_impl_.conversation_text_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.role_, &other->_impl_.role_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mime_type_, &other->_impl_.mime_type_, arena);
}

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

void BrowserCollectedInformation::clear_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.page_context_ != nullptr) _impl_.page_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
void BrowserCollectedInformation::clear_form_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.form_data_ != nullptr) _impl_.form_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
void BrowserCollectedInformation::clear_tabs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tabs_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void BrowserCollectedInformation::clear_pre_existing_tab_groups() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pre_existing_tab_groups_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
void BrowserCollectedInformation::clear_site_engagement() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.site_engagement_ != nullptr) _impl_.site_engagement_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
void BrowserCollectedInformation::clear_autofill_ai_type_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.autofill_ai_type_request_ != nullptr) _impl_.autofill_ai_type_request_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
void BrowserCollectedInformation::clear_autofill_ai_type_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.autofill_ai_type_response_ != nullptr) _impl_.autofill_ai_type_response_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
void BrowserCollectedInformation::clear_action_annotated_page_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.action_annotated_page_content_ != nullptr) _impl_.action_annotated_page_content_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
void BrowserCollectedInformation::clear_viewport_rect_in_actor_framework_screenshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.viewport_rect_in_actor_framework_screenshot_ != nullptr) _impl_.viewport_rect_in_actor_framework_screenshot_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
BrowserCollectedInformation::BrowserCollectedInformation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, BrowserCollectedInformation_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.BrowserCollectedInformation)
}
PROTOBUF_NDEBUG_INLINE BrowserCollectedInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::BrowserCollectedInformation& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        custom_data_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::BrowserCollectedInformation,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.custom_data_)>()
          , from.custom_data_
        }
        ,
        tabs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::BrowserCollectedInformation,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.tabs_)>()
          , from.tabs_
        }
        ,
        pre_existing_tab_groups_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::BrowserCollectedInformation,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.pre_existing_tab_groups_)>()
          , from.pre_existing_tab_groups_
        }
        ,
        history_query_result_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::BrowserCollectedInformation,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.history_query_result_)>()
          , from.history_query_result_
        }
        ,
        inner_text_(arena, from.inner_text_),
        actor_framework_screenshot_(arena, from.actor_framework_screenshot_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BrowserCollectedInformation* 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_.page_context_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_)
                : nullptr;
  _impl_.form_data_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.form_data_)
                : nullptr;
  _impl_.site_engagement_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.site_engagement_)
                : nullptr;
  _impl_.collection_specifier_ = (CheckHasBit(cached_has_bits, 0x00000200U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.collection_specifier_)
                : nullptr;
  _impl_.autofill_ai_type_request_ = (CheckHasBit(cached_has_bits, 0x00000400U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.autofill_ai_type_request_)
                : nullptr;
  _impl_.autofill_ai_type_response_ = (CheckHasBit(cached_has_bits, 0x00000800U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.autofill_ai_type_response_)
                : nullptr;
  _impl_.action_annotated_page_content_ = (CheckHasBit(cached_has_bits, 0x00001000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.action_annotated_page_content_)
                : nullptr;
  _impl_.viewport_rect_in_actor_framework_screenshot_ = (CheckHasBit(cached_has_bits, 0x00002000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.viewport_rect_in_actor_framework_screenshot_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, inner_text_offset_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, inner_text_offset_),
           offsetof(Impl_, active_tab_id_) -
               offsetof(Impl_, inner_text_offset_) +
               sizeof(Impl_::active_tab_id_));

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.BrowserCollectedInformation)
}
PROTOBUF_NDEBUG_INLINE BrowserCollectedInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        custom_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.custom_data_)>()
         }
        ,
        tabs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.tabs_)>()
         }
        ,
        pre_existing_tab_groups_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.pre_existing_tab_groups_)>()
         }
        ,
        history_query_result_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::BrowserCollectedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::BrowserCollectedInformation, _impl_.history_query_result_)>()
         }
        ,
        inner_text_(arena),
        actor_framework_screenshot_(arena) {}

inline void BrowserCollectedInformation::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, page_context_),
           0,
           offsetof(Impl_, active_tab_id_) -
               offsetof(Impl_, page_context_) +
               sizeof(Impl_::active_tab_id_));
}
BrowserCollectedInformation::~BrowserCollectedInformation() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.BrowserCollectedInformation)
  SharedDtor(*this);
}
inline void BrowserCollectedInformation::SharedDtor(MessageLite& self) {
  BrowserCollectedInformation& this_ = static_cast<BrowserCollectedInformation&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.inner_text_.Destroy();
  this_._impl_.actor_framework_screenshot_.Destroy();
  delete this_._impl_.page_context_;
  delete this_._impl_.form_data_;
  delete this_._impl_.site_engagement_;
  delete this_._impl_.collection_specifier_;
  delete this_._impl_.autofill_ai_type_request_;
  delete this_._impl_.autofill_ai_type_response_;
  delete this_._impl_.action_annotated_page_content_;
  delete this_._impl_.viewport_rect_in_actor_framework_screenshot_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite BrowserCollectedInformation_class_data_ =
    BrowserCollectedInformation::InternalGenerateClassData_(BrowserCollectedInformation_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BrowserCollectedInformation::GetClassData() const {
  return BrowserCollectedInformation_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BrowserCollectedInformation::GetClassData() const {
  return BrowserCollectedInformation_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const BrowserCollectedInformation::ParseTableT_
    BrowserCollectedInformation::_table_ =
        BrowserCollectedInformation::InternalGenerateParseTable_(BrowserCollectedInformation_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void BrowserCollectedInformation::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.BrowserCollectedInformation)
  ::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_.custom_data_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.tabs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.pre_existing_tab_groups_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.history_query_result_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.inner_text_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.actor_framework_screenshot_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.page_context_ != nullptr);
      _impl_.page_context_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.form_data_ != nullptr);
      _impl_.form_data_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(_impl_.site_engagement_ != nullptr);
      _impl_.site_engagement_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(_impl_.collection_specifier_ != nullptr);
      _impl_.collection_specifier_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(_impl_.autofill_ai_type_request_ != nullptr);
      _impl_.autofill_ai_type_request_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(_impl_.autofill_ai_type_response_ != nullptr);
      _impl_.autofill_ai_type_response_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(_impl_.action_annotated_page_content_ != nullptr);
      _impl_.action_annotated_page_content_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(_impl_.viewport_rect_in_actor_framework_screenshot_ != nullptr);
      _impl_.viewport_rect_in_actor_framework_screenshot_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000c000U)) {
    ::memset(&_impl_.inner_text_offset_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.active_tab_id_) -
        reinterpret_cast<char*>(&_impl_.inner_text_offset_)) + sizeof(_impl_.active_tab_id_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.PageContext page_context = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.page_context_, this_._impl_.page_context_->GetCachedSize(), target,
        stream);
  }

  // string inner_text = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (!this_._internal_inner_text().empty()) {
      const ::std::string& _s = this_._internal_inner_text();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.BrowserCollectedInformation.inner_text");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // uint64 inner_text_offset = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    if (this_._internal_inner_text_offset() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          3, this_._internal_inner_text_offset(), target);
    }
  }

  // repeated string custom_data = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_custom_data_size(); i < n; ++i) {
      const auto& s = this_._internal_custom_data().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.BrowserCollectedInformation.custom_data");
      target = stream->WriteString(4, s, target);
    }
  }

  // .optimization_guide.proto.FormData form_data = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.form_data_, this_._impl_.form_data_->GetCachedSize(), target,
        stream);
  }

  // repeated .optimization_guide.proto.Tab tabs = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_tabs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_tabs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // int64 active_tab_id = 8 [features = {
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    if (this_._internal_active_tab_id() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<8>(
              stream, this_._internal_active_tab_id(), target);
    }
  }

  // repeated .optimization_guide.proto.TabGroup pre_existing_tab_groups = 9;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_pre_existing_tab_groups_size());
         i < n; i++) {
      const auto& repfield = this_._internal_pre_existing_tab_groups().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              9, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .optimization_guide.proto.SiteEngagement site_engagement = 10 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.site_engagement_, this_._impl_.site_engagement_->GetCachedSize(), target,
        stream);
  }

  // repeated .optimization_guide.proto.HistoryQueryResult history_query_result = 11;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_history_query_result_size());
         i < n; i++) {
      const auto& repfield = this_._internal_history_query_result().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .optimization_guide.proto.ModelPrototypingCollectionSpecifier collection_specifier = 14 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        14, *this_._impl_.collection_specifier_, this_._impl_.collection_specifier_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.AutofillAiTypeRequest autofill_ai_type_request = 15 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        15, *this_._impl_.autofill_ai_type_request_, this_._impl_.autofill_ai_type_request_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.AutofillAiTypeResponse autofill_ai_type_response = 16 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        16, *this_._impl_.autofill_ai_type_response_, this_._impl_.autofill_ai_type_response_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.AnnotatedPageContent action_annotated_page_content = 17 [features = {
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        17, *this_._impl_.action_annotated_page_content_, this_._impl_.action_annotated_page_content_->GetCachedSize(), target,
        stream);
  }

  // bytes actor_framework_screenshot = 18 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (!this_._internal_actor_framework_screenshot().empty()) {
      const ::std::string& _s = this_._internal_actor_framework_screenshot();
      target = stream->WriteBytesMaybeAliased(18, _s, target);
    }
  }

  // .optimization_guide.proto.BoundingRect viewport_rect_in_actor_framework_screenshot = 19 [features = {
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        19, *this_._impl_.viewport_rect_in_actor_framework_screenshot_, this_._impl_.viewport_rect_in_actor_framework_screenshot_->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:optimization_guide.proto.BrowserCollectedInformation)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BrowserCollectedInformation::ByteSizeLong(const MessageLite& base) {
  const BrowserCollectedInformation& this_ = static_cast<const BrowserCollectedInformation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BrowserCollectedInformation::ByteSizeLong() const {
  const BrowserCollectedInformation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.BrowserCollectedInformation)
  ::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 string custom_data = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_custom_data().size());
      for (int i = 0, n = this_._internal_custom_data().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_custom_data().Get(i));
      }
    }
    // repeated .optimization_guide.proto.Tab tabs = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_tabs_size();
      for (const auto& msg : this_._internal_tabs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.TabGroup pre_existing_tab_groups = 9;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_pre_existing_tab_groups_size();
      for (const auto& msg : this_._internal_pre_existing_tab_groups()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.HistoryQueryResult history_query_result = 11;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_history_query_result_size();
      for (const auto& msg : this_._internal_history_query_result()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // string inner_text = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!this_._internal_inner_text().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_inner_text());
      }
    }
    // bytes actor_framework_screenshot = 18 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!this_._internal_actor_framework_screenshot().empty()) {
        total_size += 2 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_actor_framework_screenshot());
      }
    }
    // .optimization_guide.proto.PageContext page_context = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.page_context_);
    }
    // .optimization_guide.proto.FormData form_data = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.form_data_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // .optimization_guide.proto.SiteEngagement site_engagement = 10 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.site_engagement_);
    }
    // .optimization_guide.proto.ModelPrototypingCollectionSpecifier collection_specifier = 14 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.collection_specifier_);
    }
    // .optimization_guide.proto.AutofillAiTypeRequest autofill_ai_type_request = 15 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.autofill_ai_type_request_);
    }
    // .optimization_guide.proto.AutofillAiTypeResponse autofill_ai_type_response = 16 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.autofill_ai_type_response_);
    }
    // .optimization_guide.proto.AnnotatedPageContent action_annotated_page_content = 17 [features = {
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.action_annotated_page_content_);
    }
    // .optimization_guide.proto.BoundingRect viewport_rect_in_actor_framework_screenshot = 19 [features = {
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.viewport_rect_in_actor_framework_screenshot_);
    }
    // uint64 inner_text_offset = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      if (this_._internal_inner_text_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_inner_text_offset());
      }
    }
    // int64 active_tab_id = 8 [features = {
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      if (this_._internal_active_tab_id() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_active_tab_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 BrowserCollectedInformation::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<BrowserCollectedInformation*>(&to_msg);
  auto& from = static_cast<const BrowserCollectedInformation&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.BrowserCollectedInformation)
  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_custom_data()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_custom_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_tabs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_tabs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_pre_existing_tab_groups()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_pre_existing_tab_groups());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_history_query_result()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_history_query_result());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!from._internal_inner_text().empty()) {
        _this->_internal_set_inner_text(from._internal_inner_text());
      } else {
        if (_this->_impl_.inner_text_.IsDefault()) {
          _this->_internal_set_inner_text("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!from._internal_actor_framework_screenshot().empty()) {
        _this->_internal_set_actor_framework_screenshot(from._internal_actor_framework_screenshot());
      } else {
        if (_this->_impl_.actor_framework_screenshot_.IsDefault()) {
          _this->_internal_set_actor_framework_screenshot("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.page_context_ != nullptr);
      if (_this->_impl_.page_context_ == nullptr) {
        _this->_impl_.page_context_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_);
      } else {
        _this->_impl_.page_context_->MergeFrom(*from._impl_.page_context_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.form_data_ != nullptr);
      if (_this->_impl_.form_data_ == nullptr) {
        _this->_impl_.form_data_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.form_data_);
      } else {
        _this->_impl_.form_data_->MergeFrom(*from._impl_.form_data_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(from._impl_.site_engagement_ != nullptr);
      if (_this->_impl_.site_engagement_ == nullptr) {
        _this->_impl_.site_engagement_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.site_engagement_);
      } else {
        _this->_impl_.site_engagement_->MergeFrom(*from._impl_.site_engagement_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(from._impl_.collection_specifier_ != nullptr);
      if (_this->_impl_.collection_specifier_ == nullptr) {
        _this->_impl_.collection_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.collection_specifier_);
      } else {
        _this->_impl_.collection_specifier_->MergeFrom(*from._impl_.collection_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(from._impl_.autofill_ai_type_request_ != nullptr);
      if (_this->_impl_.autofill_ai_type_request_ == nullptr) {
        _this->_impl_.autofill_ai_type_request_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.autofill_ai_type_request_);
      } else {
        _this->_impl_.autofill_ai_type_request_->MergeFrom(*from._impl_.autofill_ai_type_request_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(from._impl_.autofill_ai_type_response_ != nullptr);
      if (_this->_impl_.autofill_ai_type_response_ == nullptr) {
        _this->_impl_.autofill_ai_type_response_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.autofill_ai_type_response_);
      } else {
        _this->_impl_.autofill_ai_type_response_->MergeFrom(*from._impl_.autofill_ai_type_response_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(from._impl_.action_annotated_page_content_ != nullptr);
      if (_this->_impl_.action_annotated_page_content_ == nullptr) {
        _this->_impl_.action_annotated_page_content_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.action_annotated_page_content_);
      } else {
        _this->_impl_.action_annotated_page_content_->MergeFrom(*from._impl_.action_annotated_page_content_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(from._impl_.viewport_rect_in_actor_framework_screenshot_ != nullptr);
      if (_this->_impl_.viewport_rect_in_actor_framework_screenshot_ == nullptr) {
        _this->_impl_.viewport_rect_in_actor_framework_screenshot_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.viewport_rect_in_actor_framework_screenshot_);
      } else {
        _this->_impl_.viewport_rect_in_actor_framework_screenshot_->MergeFrom(*from._impl_.viewport_rect_in_actor_framework_screenshot_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      if (from._internal_inner_text_offset() != 0) {
        _this->_impl_.inner_text_offset_ = from._impl_.inner_text_offset_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      if (from._internal_active_tab_id() != 0) {
        _this->_impl_.active_tab_id_ = from._impl_.active_tab_id_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void BrowserCollectedInformation::InternalSwap(BrowserCollectedInformation* 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_.custom_data_.InternalSwap(&other->_impl_.custom_data_);
  _impl_.tabs_.InternalSwap(&other->_impl_.tabs_);
  _impl_.pre_existing_tab_groups_.InternalSwap(&other->_impl_.pre_existing_tab_groups_);
  _impl_.history_query_result_.InternalSwap(&other->_impl_.history_query_result_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.inner_text_, &other->_impl_.inner_text_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.actor_framework_screenshot_, &other->_impl_.actor_framework_screenshot_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.active_tab_id_)
      + sizeof(BrowserCollectedInformation::_impl_.active_tab_id_)
      - PROTOBUF_FIELD_OFFSET(BrowserCollectedInformation, _impl_.page_context_)>(
          reinterpret_cast<char*>(&_impl_.page_context_),
          reinterpret_cast<char*>(&other->_impl_.page_context_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistoryQueryResult* 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_.history_data_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_data_)
                : nullptr;
  _impl_.query_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.query_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite HistoryQueryResult_class_data_ =
    HistoryQueryResult::InternalGenerateClassData_(HistoryQueryResult_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQueryResult::GetClassData() const {
  return HistoryQueryResult_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQueryResult::GetClassData() const {
  return HistoryQueryResult_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistoryQueryResult::ParseTableT_
    HistoryQueryResult::_table_ =
        HistoryQueryResult::InternalGenerateParseTable_(HistoryQueryResult_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistoryQueryResult::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HistoryQueryResult)
  ::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)) {
      ABSL_DCHECK(_impl_.history_data_ != nullptr);
      _impl_.history_data_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.query_ != nullptr);
      _impl_.query_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.HistoryVisitData history_data = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.history_data_, this_._impl_.history_data_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.HistoryQuery query = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.query_, this_._impl_.query_->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:optimization_guide.proto.HistoryQueryResult)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistoryQueryResult::ByteSizeLong(const MessageLite& base) {
  const HistoryQueryResult& this_ = static_cast<const HistoryQueryResult&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistoryQueryResult::ByteSizeLong() const {
  const HistoryQueryResult& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HistoryQueryResult)
  ::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)) {
    // .optimization_guide.proto.HistoryVisitData history_data = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.history_data_);
    }
    // .optimization_guide.proto.HistoryQuery query = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.query_);
    }
  }
  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 HistoryQueryResult::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistoryQueryResult*>(&to_msg);
  auto& from = static_cast<const HistoryQueryResult&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HistoryQueryResult)
  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)) {
      ABSL_DCHECK(from._impl_.history_data_ != nullptr);
      if (_this->_impl_.history_data_ == nullptr) {
        _this->_impl_.history_data_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_data_);
      } else {
        _this->_impl_.history_data_->MergeFrom(*from._impl_.history_data_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.query_ != nullptr);
      if (_this->_impl_.query_ == nullptr) {
        _this->_impl_.query_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.query_);
      } else {
        _this->_impl_.query_->MergeFrom(*from._impl_.query_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistoryVisitData* 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:optimization_guide.proto.HistoryVisitData)
}
PROTOBUF_NDEBUG_INLINE HistoryVisitData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        visit_item_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryVisitData,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryVisitData, _impl_.visit_item_)>()
         }
     {}

inline void HistoryVisitData::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
HistoryVisitData::~HistoryVisitData() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.HistoryVisitData)
  SharedDtor(*this);
}
inline void HistoryVisitData::SharedDtor(MessageLite& self) {
  HistoryVisitData& this_ = static_cast<HistoryVisitData&>(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 HistoryVisitData_class_data_ =
    HistoryVisitData::InternalGenerateClassData_(HistoryVisitData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryVisitData::GetClassData() const {
  return HistoryVisitData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryVisitData::GetClassData() const {
  return HistoryVisitData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistoryVisitData::ParseTableT_
    HistoryVisitData::_table_ =
        HistoryVisitData::InternalGenerateParseTable_(HistoryVisitData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistoryVisitData::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HistoryVisitData)
  ::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_.visit_item_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .optimization_guide.proto.HistoryVisitItem visit_item = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_visit_item_size());
         i < n; i++) {
      const auto& repfield = this_._internal_visit_item().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.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:optimization_guide.proto.HistoryVisitData)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistoryVisitData::ByteSizeLong(const MessageLite& base) {
  const HistoryVisitData& this_ = static_cast<const HistoryVisitData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistoryVisitData::ByteSizeLong() const {
  const HistoryVisitData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HistoryVisitData)
  ::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_);
   {
    // repeated .optimization_guide.proto.HistoryVisitItem visit_item = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_visit_item_size();
      for (const auto& msg : this_._internal_visit_item()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  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 HistoryVisitData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistoryVisitData*>(&to_msg);
  auto& from = static_cast<const HistoryVisitData&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HistoryVisitData)
  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_mutable_visit_item()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_visit_item());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void HistoryVisitData::InternalSwap(HistoryVisitData* 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_.visit_item_.InternalSwap(&other->_impl_.visit_item_);
}

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

void HistoryVisitItem::clear_visit_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.visit_time_ != nullptr) _impl_.visit_time_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
HistoryVisitItem::HistoryVisitItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, HistoryVisitItem_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.HistoryVisitItem)
}
PROTOBUF_NDEBUG_INLINE HistoryVisitItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::HistoryVisitItem& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        passages_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::HistoryVisitItem,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryVisitItem, _impl_.passages_)>()
          , from.passages_
        }
        ,
        page_title_(arena, from.page_title_),
        page_url_(arena, from.page_url_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistoryVisitItem* 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_.visit_time_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.visit_time_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.HistoryVisitItem)
}
PROTOBUF_NDEBUG_INLINE HistoryVisitItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        passages_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryVisitItem,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryVisitItem, _impl_.passages_)>()
         }
        ,
        page_title_(arena),
        page_url_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite HistoryVisitItem_class_data_ =
    HistoryVisitItem::InternalGenerateClassData_(HistoryVisitItem_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryVisitItem::GetClassData() const {
  return HistoryVisitItem_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryVisitItem::GetClassData() const {
  return HistoryVisitItem_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistoryVisitItem::ParseTableT_
    HistoryVisitItem::_table_ =
        HistoryVisitItem::InternalGenerateParseTable_(HistoryVisitItem_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistoryVisitItem::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HistoryVisitItem)
  ::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_.passages_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.page_title_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.page_url_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.visit_time_ != nullptr);
      _impl_.visit_time_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string page_title = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_page_title().empty()) {
      const ::std::string& _s = this_._internal_page_title();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.HistoryVisitItem.page_title");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string page_url = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_page_url().empty()) {
      const ::std::string& _s = this_._internal_page_url();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.HistoryVisitItem.page_url");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // .optimization_guide.proto.Timestamp visit_time = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.visit_time_, this_._impl_.visit_time_->GetCachedSize(), target,
        stream);
  }

  // repeated string passages = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_passages_size(); i < n; ++i) {
      const auto& s = this_._internal_passages().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.HistoryVisitItem.passages");
      target = stream->WriteString(4, 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:optimization_guide.proto.HistoryVisitItem)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistoryVisitItem::ByteSizeLong(const MessageLite& base) {
  const HistoryVisitItem& this_ = static_cast<const HistoryVisitItem&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistoryVisitItem::ByteSizeLong() const {
  const HistoryVisitItem& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HistoryVisitItem)
  ::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, 0x0000000fU)) {
    // repeated string passages = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_passages().size());
      for (int i = 0, n = this_._internal_passages().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_passages().Get(i));
      }
    }
    // string page_title = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_page_title().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_page_title());
      }
    }
    // string page_url = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_page_url().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_page_url());
      }
    }
    // .optimization_guide.proto.Timestamp visit_time = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.visit_time_);
    }
  }
  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 HistoryVisitItem::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistoryVisitItem*>(&to_msg);
  auto& from = static_cast<const HistoryVisitItem&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HistoryVisitItem)
  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, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_passages()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_passages());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_page_title().empty()) {
        _this->_internal_set_page_title(from._internal_page_title());
      } else {
        if (_this->_impl_.page_title_.IsDefault()) {
          _this->_internal_set_page_title("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_page_url().empty()) {
        _this->_internal_set_page_url(from._internal_page_url());
      } else {
        if (_this->_impl_.page_url_.IsDefault()) {
          _this->_internal_set_page_url("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.visit_time_ != nullptr);
      if (_this->_impl_.visit_time_ == nullptr) {
        _this->_impl_.visit_time_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.visit_time_);
      } else {
        _this->_impl_.visit_time_->MergeFrom(*from._impl_.visit_time_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void HistoryVisitItem::InternalSwap(HistoryVisitItem* 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_.passages_.InternalSwap(&other->_impl_.passages_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.page_title_, &other->_impl_.page_title_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.page_url_, &other->_impl_.page_url_, arena);
  swap(_impl_.visit_time_, other->_impl_.visit_time_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistoryQuery* 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_.history_search_time_range_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_search_time_range_)
                : nullptr;
  _impl_.num_history_visits_ = from._impl_.num_history_visits_;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.HistoryQuery)
}
PROTOBUF_NDEBUG_INLINE HistoryQuery::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        query_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite HistoryQuery_class_data_ =
    HistoryQuery::InternalGenerateClassData_(HistoryQuery_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQuery::GetClassData() const {
  return HistoryQuery_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQuery::GetClassData() const {
  return HistoryQuery_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistoryQuery::ParseTableT_
    HistoryQuery::_table_ =
        HistoryQuery::InternalGenerateParseTable_(HistoryQuery_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistoryQuery::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HistoryQuery)
  ::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_.query_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.history_search_time_range_ != nullptr);
      _impl_.history_search_time_range_->Clear();
    }
  }
  _impl_.num_history_visits_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string query = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_query().empty()) {
      const ::std::string& _s = this_._internal_query();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.HistoryQuery.query");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // int32 num_history_visits = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_num_history_visits() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
              stream, this_._internal_num_history_visits(), target);
    }
  }

  // .optimization_guide.proto.DateTimeRange history_search_time_range = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.history_search_time_range_, this_._impl_.history_search_time_range_->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:optimization_guide.proto.HistoryQuery)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistoryQuery::ByteSizeLong(const MessageLite& base) {
  const HistoryQuery& this_ = static_cast<const HistoryQuery&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistoryQuery::ByteSizeLong() const {
  const HistoryQuery& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HistoryQuery)
  ::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, 0x00000007U)) {
    // string query = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_query().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_query());
      }
    }
    // .optimization_guide.proto.DateTimeRange history_search_time_range = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.history_search_time_range_);
    }
    // int32 num_history_visits = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_num_history_visits() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_num_history_visits());
      }
    }
  }
  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 HistoryQuery::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistoryQuery*>(&to_msg);
  auto& from = static_cast<const HistoryQuery&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HistoryQuery)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_query().empty()) {
        _this->_internal_set_query(from._internal_query());
      } else {
        if (_this->_impl_.query_.IsDefault()) {
          _this->_internal_set_query("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.history_search_time_range_ != nullptr);
      if (_this->_impl_.history_search_time_range_ == nullptr) {
        _this->_impl_.history_search_time_range_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_search_time_range_);
      } else {
        _this->_impl_.history_search_time_range_->MergeFrom(*from._impl_.history_search_time_range_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_num_history_visits() != 0) {
        _this->_impl_.num_history_visits_ = from._impl_.num_history_visits_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void HistoryQuery::InternalSwap(HistoryQuery* 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_.query_, &other->_impl_.query_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.num_history_visits_)
      + sizeof(HistoryQuery::_impl_.num_history_visits_)
      - PROTOBUF_FIELD_OFFSET(HistoryQuery, _impl_.history_search_time_range_)>(
          reinterpret_cast<char*>(&_impl_.history_search_time_range_),
          reinterpret_cast<char*>(&other->_impl_.history_search_time_range_));
}

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

void DateTimeRange::clear_start_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.start_time_ != nullptr) _impl_.start_time_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void DateTimeRange::clear_end_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.end_time_ != nullptr) _impl_.end_time_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
DateTimeRange::DateTimeRange(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, DateTimeRange_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.DateTimeRange)
}
PROTOBUF_NDEBUG_INLINE DateTimeRange::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::DateTimeRange& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DateTimeRange* 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_.start_time_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.start_time_)
                : nullptr;
  _impl_.end_time_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.end_time_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite DateTimeRange_class_data_ =
    DateTimeRange::InternalGenerateClassData_(DateTimeRange_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DateTimeRange::GetClassData() const {
  return DateTimeRange_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DateTimeRange::GetClassData() const {
  return DateTimeRange_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const DateTimeRange::ParseTableT_
    DateTimeRange::_table_ =
        DateTimeRange::InternalGenerateParseTable_(DateTimeRange_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void DateTimeRange::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.DateTimeRange)
  ::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)) {
      ABSL_DCHECK(_impl_.start_time_ != nullptr);
      _impl_.start_time_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.end_time_ != nullptr);
      _impl_.end_time_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.Timestamp start_time = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.start_time_, this_._impl_.start_time_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.Timestamp end_time = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.end_time_, this_._impl_.end_time_->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:optimization_guide.proto.DateTimeRange)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DateTimeRange::ByteSizeLong(const MessageLite& base) {
  const DateTimeRange& this_ = static_cast<const DateTimeRange&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DateTimeRange::ByteSizeLong() const {
  const DateTimeRange& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.DateTimeRange)
  ::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)) {
    // .optimization_guide.proto.Timestamp start_time = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.start_time_);
    }
    // .optimization_guide.proto.Timestamp end_time = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.end_time_);
    }
  }
  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 DateTimeRange::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<DateTimeRange*>(&to_msg);
  auto& from = static_cast<const DateTimeRange&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.DateTimeRange)
  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)) {
      ABSL_DCHECK(from._impl_.start_time_ != nullptr);
      if (_this->_impl_.start_time_ == nullptr) {
        _this->_impl_.start_time_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.start_time_);
      } else {
        _this->_impl_.start_time_->MergeFrom(*from._impl_.start_time_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.end_time_ != nullptr);
      if (_this->_impl_.end_time_ == nullptr) {
        _this->_impl_.end_time_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.end_time_);
      } else {
        _this->_impl_.end_time_->MergeFrom(*from._impl_.end_time_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingCollectionSpecifier* 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_data_collection_specifier_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.feature_data_collection_specifier_)
                : nullptr;
  _impl_.browser_data_collection_specifier_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.browser_data_collection_specifier_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingCollectionSpecifier_class_data_ =
    ModelPrototypingCollectionSpecifier::InternalGenerateClassData_(ModelPrototypingCollectionSpecifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingCollectionSpecifier::GetClassData() const {
  return ModelPrototypingCollectionSpecifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingCollectionSpecifier::GetClassData() const {
  return ModelPrototypingCollectionSpecifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingCollectionSpecifier::ParseTableT_
    ModelPrototypingCollectionSpecifier::_table_ =
        ModelPrototypingCollectionSpecifier::InternalGenerateParseTable_(ModelPrototypingCollectionSpecifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingCollectionSpecifier::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingCollectionSpecifier)
  ::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)) {
      ABSL_DCHECK(_impl_.feature_data_collection_specifier_ != nullptr);
      _impl_.feature_data_collection_specifier_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.browser_data_collection_specifier_ != nullptr);
      _impl_.browser_data_collection_specifier_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.FeatureDataCollectionSpecifier feature_data_collection_specifier = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.feature_data_collection_specifier_, this_._impl_.feature_data_collection_specifier_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.BrowserDataCollectionSpecifier browser_data_collection_specifier = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.browser_data_collection_specifier_, this_._impl_.browser_data_collection_specifier_->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:optimization_guide.proto.ModelPrototypingCollectionSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingCollectionSpecifier::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingCollectionSpecifier& this_ = static_cast<const ModelPrototypingCollectionSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingCollectionSpecifier::ByteSizeLong() const {
  const ModelPrototypingCollectionSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingCollectionSpecifier)
  ::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)) {
    // .optimization_guide.proto.FeatureDataCollectionSpecifier feature_data_collection_specifier = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.feature_data_collection_specifier_);
    }
    // .optimization_guide.proto.BrowserDataCollectionSpecifier browser_data_collection_specifier = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.browser_data_collection_specifier_);
    }
  }
  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 ModelPrototypingCollectionSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingCollectionSpecifier*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingCollectionSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingCollectionSpecifier)
  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)) {
      ABSL_DCHECK(from._impl_.feature_data_collection_specifier_ != nullptr);
      if (_this->_impl_.feature_data_collection_specifier_ == nullptr) {
        _this->_impl_.feature_data_collection_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.feature_data_collection_specifier_);
      } else {
        _this->_impl_.feature_data_collection_specifier_->MergeFrom(*from._impl_.feature_data_collection_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.browser_data_collection_specifier_ != nullptr);
      if (_this->_impl_.browser_data_collection_specifier_ == nullptr) {
        _this->_impl_.browser_data_collection_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.browser_data_collection_specifier_);
      } else {
        _this->_impl_.browser_data_collection_specifier_->MergeFrom(*from._impl_.browser_data_collection_specifier_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FeatureDataCollectionSpecifier::FeatureDataCollectionSpecifier(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FeatureDataCollectionSpecifier_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.FeatureDataCollectionSpecifier)
}
FeatureDataCollectionSpecifier::FeatureDataCollectionSpecifier(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FeatureDataCollectionSpecifier& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FeatureDataCollectionSpecifier_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE FeatureDataCollectionSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void FeatureDataCollectionSpecifier::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, collect_forms_request_),
           0,
           offsetof(Impl_, collect_tab_organization_request_) -
               offsetof(Impl_, collect_forms_request_) +
               sizeof(Impl_::collect_tab_organization_request_));
}
FeatureDataCollectionSpecifier::~FeatureDataCollectionSpecifier() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.FeatureDataCollectionSpecifier)
  SharedDtor(*this);
}
inline void FeatureDataCollectionSpecifier::SharedDtor(MessageLite& self) {
  FeatureDataCollectionSpecifier& this_ = static_cast<FeatureDataCollectionSpecifier&>(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 FeatureDataCollectionSpecifier_class_data_ =
    FeatureDataCollectionSpecifier::InternalGenerateClassData_(FeatureDataCollectionSpecifier_globals_._default);

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

  ::memset(&_impl_.collect_forms_request_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.collect_tab_organization_request_) -
      reinterpret_cast<char*>(&_impl_.collect_forms_request_)) + sizeof(_impl_.collect_tab_organization_request_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool collect_forms_request = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_collect_forms_request() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_collect_forms_request(), target);
    }
  }

  // bool collect_compose_request = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_collect_compose_request() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_collect_compose_request(), target);
    }
  }

  // bool collect_tab_organization_request = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_collect_tab_organization_request() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_collect_tab_organization_request(), 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:optimization_guide.proto.FeatureDataCollectionSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FeatureDataCollectionSpecifier::ByteSizeLong(const MessageLite& base) {
  const FeatureDataCollectionSpecifier& this_ = static_cast<const FeatureDataCollectionSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FeatureDataCollectionSpecifier::ByteSizeLong() const {
  const FeatureDataCollectionSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.FeatureDataCollectionSpecifier)
  ::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, 0x00000007U)) {
    // bool collect_forms_request = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_collect_forms_request() != 0) {
        total_size += 2;
      }
    }
    // bool collect_compose_request = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_collect_compose_request() != 0) {
        total_size += 2;
      }
    }
    // bool collect_tab_organization_request = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_collect_tab_organization_request() != 0) {
        total_size += 2;
      }
    }
  }
  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 FeatureDataCollectionSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FeatureDataCollectionSpecifier*>(&to_msg);
  auto& from = static_cast<const FeatureDataCollectionSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.FeatureDataCollectionSpecifier)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_collect_forms_request() != 0) {
        _this->_impl_.collect_forms_request_ = from._impl_.collect_forms_request_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_collect_compose_request() != 0) {
        _this->_impl_.collect_compose_request_ = from._impl_.collect_compose_request_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_collect_tab_organization_request() != 0) {
        _this->_impl_.collect_tab_organization_request_ = from._impl_.collect_tab_organization_request_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BrowserDataCollectionSpecifier* 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_.foreground_tab_page_context_specifier_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.foreground_tab_page_context_specifier_)
                : nullptr;
  _impl_.tabs_context_specifier_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.tabs_context_specifier_)
                : nullptr;
  _impl_.history_query_specifiers_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_query_specifiers_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, site_engagement_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, site_engagement_),
           offsetof(Impl_, user_annotations_) -
               offsetof(Impl_, site_engagement_) +
               sizeof(Impl_::user_annotations_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite BrowserDataCollectionSpecifier_class_data_ =
    BrowserDataCollectionSpecifier::InternalGenerateClassData_(BrowserDataCollectionSpecifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BrowserDataCollectionSpecifier::GetClassData() const {
  return BrowserDataCollectionSpecifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BrowserDataCollectionSpecifier::GetClassData() const {
  return BrowserDataCollectionSpecifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const BrowserDataCollectionSpecifier::ParseTableT_
    BrowserDataCollectionSpecifier::_table_ =
        BrowserDataCollectionSpecifier::InternalGenerateParseTable_(BrowserDataCollectionSpecifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void BrowserDataCollectionSpecifier::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.BrowserDataCollectionSpecifier)
  ::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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.foreground_tab_page_context_specifier_ != nullptr);
      _impl_.foreground_tab_page_context_specifier_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.tabs_context_specifier_ != nullptr);
      _impl_.tabs_context_specifier_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.history_query_specifiers_ != nullptr);
      _impl_.history_query_specifiers_->Clear();
    }
  }
  ::memset(&_impl_.site_engagement_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.user_annotations_) -
      reinterpret_cast<char*>(&_impl_.site_engagement_)) + sizeof(_impl_.user_annotations_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.PageContextSpecifier foreground_tab_page_context_specifier = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.foreground_tab_page_context_specifier_, this_._impl_.foreground_tab_page_context_specifier_->GetCachedSize(), target,
        stream);
  }

  // .optimization_guide.proto.TabsContextSpecifier tabs_context_specifier = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.tabs_context_specifier_, this_._impl_.tabs_context_specifier_->GetCachedSize(), target,
        stream);
  }

  // bool site_engagement = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_site_engagement() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_site_engagement(), target);
    }
  }

  // bool tab_groups = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_tab_groups() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_tab_groups(), target);
    }
  }

  // bool user_annotations = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_user_annotations() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          5, this_._internal_user_annotations(), target);
    }
  }

  // .optimization_guide.proto.HistoryQuerySpecifiers history_query_specifiers = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.history_query_specifiers_, this_._impl_.history_query_specifiers_->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:optimization_guide.proto.BrowserDataCollectionSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BrowserDataCollectionSpecifier::ByteSizeLong(const MessageLite& base) {
  const BrowserDataCollectionSpecifier& this_ = static_cast<const BrowserDataCollectionSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BrowserDataCollectionSpecifier::ByteSizeLong() const {
  const BrowserDataCollectionSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.BrowserDataCollectionSpecifier)
  ::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, 0x0000003fU)) {
    // .optimization_guide.proto.PageContextSpecifier foreground_tab_page_context_specifier = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.foreground_tab_page_context_specifier_);
    }
    // .optimization_guide.proto.TabsContextSpecifier tabs_context_specifier = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.tabs_context_specifier_);
    }
    // .optimization_guide.proto.HistoryQuerySpecifiers history_query_specifiers = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.history_query_specifiers_);
    }
    // bool site_engagement = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_site_engagement() != 0) {
        total_size += 2;
      }
    }
    // bool tab_groups = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_tab_groups() != 0) {
        total_size += 2;
      }
    }
    // bool user_annotations = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_user_annotations() != 0) {
        total_size += 2;
      }
    }
  }
  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 BrowserDataCollectionSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<BrowserDataCollectionSpecifier*>(&to_msg);
  auto& from = static_cast<const BrowserDataCollectionSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.BrowserDataCollectionSpecifier)
  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)) {
      ABSL_DCHECK(from._impl_.foreground_tab_page_context_specifier_ != nullptr);
      if (_this->_impl_.foreground_tab_page_context_specifier_ == nullptr) {
        _this->_impl_.foreground_tab_page_context_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.foreground_tab_page_context_specifier_);
      } else {
        _this->_impl_.foreground_tab_page_context_specifier_->MergeFrom(*from._impl_.foreground_tab_page_context_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.tabs_context_specifier_ != nullptr);
      if (_this->_impl_.tabs_context_specifier_ == nullptr) {
        _this->_impl_.tabs_context_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.tabs_context_specifier_);
      } else {
        _this->_impl_.tabs_context_specifier_->MergeFrom(*from._impl_.tabs_context_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.history_query_specifiers_ != nullptr);
      if (_this->_impl_.history_query_specifiers_ == nullptr) {
        _this->_impl_.history_query_specifiers_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.history_query_specifiers_);
      } else {
        _this->_impl_.history_query_specifiers_->MergeFrom(*from._impl_.history_query_specifiers_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_site_engagement() != 0) {
        _this->_impl_.site_engagement_ = from._impl_.site_engagement_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_tab_groups() != 0) {
        _this->_impl_.tab_groups_ = from._impl_.tab_groups_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_user_annotations() != 0) {
        _this->_impl_.user_annotations_ = from._impl_.user_annotations_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PageContextSpecifier* 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_.field_global_id_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.field_global_id_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, inner_text_dom_node_id_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, inner_text_dom_node_id_),
           offsetof(Impl_, annotated_page_content_) -
               offsetof(Impl_, inner_text_dom_node_id_) +
               sizeof(Impl_::annotated_page_content_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PageContextSpecifier_class_data_ =
    PageContextSpecifier::InternalGenerateClassData_(PageContextSpecifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PageContextSpecifier::GetClassData() const {
  return PageContextSpecifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PageContextSpecifier::GetClassData() const {
  return PageContextSpecifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PageContextSpecifier::ParseTableT_
    PageContextSpecifier::_table_ =
        PageContextSpecifier::InternalGenerateParseTable_(PageContextSpecifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PageContextSpecifier::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.PageContextSpecifier)
  ::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)) {
    ABSL_DCHECK(_impl_.field_global_id_ != nullptr);
    _impl_.field_global_id_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000feU)) {
    ::memset(&_impl_.inner_text_dom_node_id_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.annotated_page_content_) -
        reinterpret_cast<char*>(&_impl_.inner_text_dom_node_id_)) + sizeof(_impl_.annotated_page_content_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

  // bool inner_text = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_inner_text() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_inner_text(), target);
    }
  }

  // int64 inner_text_dom_node_id = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_inner_text_dom_node_id() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<3>(
              stream, this_._internal_inner_text_dom_node_id(), target);
    }
  }

  // bool tab_screenshot = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_tab_screenshot() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_tab_screenshot(), target);
    }
  }

  // bool ax_tree = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_ax_tree() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          5, this_._internal_ax_tree(), target);
    }
  }

  // bool pdf_data = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_pdf_data() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          6, this_._internal_pdf_data(), target);
    }
  }

  // bool annotated_page_content = 8 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (this_._internal_annotated_page_content() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          8, this_._internal_annotated_page_content(), target);
    }
  }

  // .optimization_guide.proto.AutofillFieldGlobalId field_global_id = 9 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.field_global_id_, this_._impl_.field_global_id_->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:optimization_guide.proto.PageContextSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PageContextSpecifier::ByteSizeLong(const MessageLite& base) {
  const PageContextSpecifier& this_ = static_cast<const PageContextSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PageContextSpecifier::ByteSizeLong() const {
  const PageContextSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.PageContextSpecifier)
  ::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)) {
    // .optimization_guide.proto.AutofillFieldGlobalId field_global_id = 9 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.field_global_id_);
    }
    // int64 inner_text_dom_node_id = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_inner_text_dom_node_id() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_inner_text_dom_node_id());
      }
    }
    // bool default_data = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_default_data() != 0) {
        total_size += 2;
      }
    }
    // bool inner_text = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_inner_text() != 0) {
        total_size += 2;
      }
    }
    // bool tab_screenshot = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_tab_screenshot() != 0) {
        total_size += 2;
      }
    }
    // bool ax_tree = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_ax_tree() != 0) {
        total_size += 2;
      }
    }
    // bool pdf_data = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_pdf_data() != 0) {
        total_size += 2;
      }
    }
    // bool annotated_page_content = 8 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (this_._internal_annotated_page_content() != 0) {
        total_size += 2;
      }
    }
  }
  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 PageContextSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PageContextSpecifier*>(&to_msg);
  auto& from = static_cast<const PageContextSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.PageContextSpecifier)
  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)) {
      ABSL_DCHECK(from._impl_.field_global_id_ != nullptr);
      if (_this->_impl_.field_global_id_ == nullptr) {
        _this->_impl_.field_global_id_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.field_global_id_);
      } else {
        _this->_impl_.field_global_id_->MergeFrom(*from._impl_.field_global_id_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_inner_text_dom_node_id() != 0) {
        _this->_impl_.inner_text_dom_node_id_ = from._impl_.inner_text_dom_node_id_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_default_data() != 0) {
        _this->_impl_.default_data_ = from._impl_.default_data_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_inner_text() != 0) {
        _this->_impl_.inner_text_ = from._impl_.inner_text_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_tab_screenshot() != 0) {
        _this->_impl_.tab_screenshot_ = from._impl_.tab_screenshot_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_ax_tree() != 0) {
        _this->_impl_.ax_tree_ = from._impl_.ax_tree_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_pdf_data() != 0) {
        _this->_impl_.pdf_data_ = from._impl_.pdf_data_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (from._internal_annotated_page_content() != 0) {
        _this->_impl_.annotated_page_content_ = from._impl_.annotated_page_content_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

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

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.AutofillFieldGlobalId)
}
PROTOBUF_NDEBUG_INLINE AutofillFieldGlobalId::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        frame_token_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite AutofillFieldGlobalId_class_data_ =
    AutofillFieldGlobalId::InternalGenerateClassData_(AutofillFieldGlobalId_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillFieldGlobalId::GetClassData() const {
  return AutofillFieldGlobalId_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillFieldGlobalId::GetClassData() const {
  return AutofillFieldGlobalId_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AutofillFieldGlobalId::ParseTableT_
    AutofillFieldGlobalId::_table_ =
        AutofillFieldGlobalId::InternalGenerateParseTable_(AutofillFieldGlobalId_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AutofillFieldGlobalId::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.AutofillFieldGlobalId)
  ::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_.frame_token_.ClearNonDefaultToEmpty();
  }
  _impl_.renderer_id_ = ::uint64_t{0u};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string frame_token = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_frame_token().empty()) {
      const ::std::string& _s = this_._internal_frame_token();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.AutofillFieldGlobalId.frame_token");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // uint64 renderer_id = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_renderer_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          2, this_._internal_renderer_id(), 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:optimization_guide.proto.AutofillFieldGlobalId)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AutofillFieldGlobalId::ByteSizeLong(const MessageLite& base) {
  const AutofillFieldGlobalId& this_ = static_cast<const AutofillFieldGlobalId&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AutofillFieldGlobalId::ByteSizeLong() const {
  const AutofillFieldGlobalId& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.AutofillFieldGlobalId)
  ::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)) {
    // string frame_token = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_frame_token().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_frame_token());
      }
    }
    // uint64 renderer_id = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_renderer_id() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_renderer_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 AutofillFieldGlobalId::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillFieldGlobalId*>(&to_msg);
  auto& from = static_cast<const AutofillFieldGlobalId&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.AutofillFieldGlobalId)
  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)) {
      if (!from._internal_frame_token().empty()) {
        _this->_internal_set_frame_token(from._internal_frame_token());
      } else {
        if (_this->_impl_.frame_token_.IsDefault()) {
          _this->_internal_set_frame_token("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_renderer_id() != 0) {
        _this->_impl_.renderer_id_ = from._impl_.renderer_id_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void AutofillFieldGlobalId::InternalSwap(AutofillFieldGlobalId* 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_.frame_token_, &other->_impl_.frame_token_, arena);
  swap(_impl_.renderer_id_, other->_impl_.renderer_id_);
}

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

void TabsContextSpecifier::set_allocated_per_tab_specifiers(::optimization_guide::proto::PerTabSpecifiers* PROTOBUF_NULLABLE per_tab_specifiers) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_specifier();
  if (per_tab_specifiers) {
    ::google::protobuf::Arena* submessage_arena = per_tab_specifiers->GetArena();
    if (message_arena != submessage_arena) {
      per_tab_specifiers = ::google::protobuf::internal::GetOwnedMessage(message_arena, per_tab_specifiers, submessage_arena);
    }
    set_has_per_tab_specifiers();
    _impl_.specifier_.per_tab_specifiers_ = per_tab_specifiers;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.TabsContextSpecifier.per_tab_specifiers)
}
void TabsContextSpecifier::set_allocated_general_tab_specifier(::optimization_guide::proto::GeneralTabSpecifier* PROTOBUF_NULLABLE general_tab_specifier) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_specifier();
  if (general_tab_specifier) {
    ::google::protobuf::Arena* submessage_arena = general_tab_specifier->GetArena();
    if (message_arena != submessage_arena) {
      general_tab_specifier = ::google::protobuf::internal::GetOwnedMessage(message_arena, general_tab_specifier, submessage_arena);
    }
    set_has_general_tab_specifier();
    _impl_.specifier_.general_tab_specifier_ = general_tab_specifier;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.TabsContextSpecifier.general_tab_specifier)
}
TabsContextSpecifier::TabsContextSpecifier(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, TabsContextSpecifier_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.TabsContextSpecifier)
}
PROTOBUF_NDEBUG_INLINE TabsContextSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::TabsContextSpecifier& from_msg)
      : specifier_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TabsContextSpecifier* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (specifier_case()) {
    case SPECIFIER_NOT_SET:
      break;
      case kPerTabSpecifiers:
        _impl_.specifier_.per_tab_specifiers_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.specifier_.per_tab_specifiers_);
        break;
      case kGeneralTabSpecifier:
        _impl_.specifier_.general_tab_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.specifier_.general_tab_specifier_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.TabsContextSpecifier)
}
PROTOBUF_NDEBUG_INLINE TabsContextSpecifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : specifier_{},
        _cached_size_{0},
        _oneof_case_{} {}

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

void TabsContextSpecifier::clear_specifier() {
// @@protoc_insertion_point(one_of_clear_start:optimization_guide.proto.TabsContextSpecifier)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (specifier_case()) {
    case kPerTabSpecifiers: {
      if (GetArena() == nullptr) {
        delete _impl_.specifier_.per_tab_specifiers_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.specifier_.per_tab_specifiers_ != nullptr) {
          _impl_.specifier_.per_tab_specifiers_->Clear();
        }
      }
      break;
    }
    case kGeneralTabSpecifier: {
      if (GetArena() == nullptr) {
        delete _impl_.specifier_.general_tab_specifier_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.specifier_.general_tab_specifier_ != nullptr) {
          _impl_.specifier_.general_tab_specifier_->Clear();
        }
      }
      break;
    }
    case SPECIFIER_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = SPECIFIER_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite TabsContextSpecifier_class_data_ =
    TabsContextSpecifier::InternalGenerateClassData_(TabsContextSpecifier_globals_._default);

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

  clear_specifier();
  _internal_metadata_.Clear<::std::string>();
}

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

  switch (this_.specifier_case()) {
    case kPerTabSpecifiers: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.specifier_.per_tab_specifiers_, this_._impl_.specifier_.per_tab_specifiers_->GetCachedSize(), target,
          stream);
      break;
    }
    case kGeneralTabSpecifier: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.specifier_.general_tab_specifier_, this_._impl_.specifier_.general_tab_specifier_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  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:optimization_guide.proto.TabsContextSpecifier)
  return target;
}

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

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

  switch (this_.specifier_case()) {
    // .optimization_guide.proto.PerTabSpecifiers per_tab_specifiers = 1;
    case kPerTabSpecifiers: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.specifier_.per_tab_specifiers_);
      break;
    }
    // .optimization_guide.proto.GeneralTabSpecifier general_tab_specifier = 2;
    case kGeneralTabSpecifier: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.specifier_.general_tab_specifier_);
      break;
    }
    case SPECIFIER_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 TabsContextSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<TabsContextSpecifier*>(&to_msg);
  auto& from = static_cast<const TabsContextSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.TabsContextSpecifier)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)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_specifier();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kPerTabSpecifiers: {
        if (oneof_needs_init) {
          _this->_impl_.specifier_.per_tab_specifiers_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.specifier_.per_tab_specifiers_);
        } else {
          _this->_impl_.specifier_.per_tab_specifiers_->MergeFrom(*from._impl_.specifier_.per_tab_specifiers_);
        }
        break;
      }
      case kGeneralTabSpecifier: {
        if (oneof_needs_init) {
          _this->_impl_.specifier_.general_tab_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.specifier_.general_tab_specifier_);
        } else {
          _this->_impl_.specifier_.general_tab_specifier_->MergeFrom(*from._impl_.specifier_.general_tab_specifier_);
        }
        break;
      }
      case SPECIFIER_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void TabsContextSpecifier::InternalSwap(TabsContextSpecifier* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_.specifier_, other->_impl_.specifier_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PerTabSpecifiers* 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:optimization_guide.proto.PerTabSpecifiers)
}
PROTOBUF_NDEBUG_INLINE PerTabSpecifiers::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        per_tab_specifier_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::PerTabSpecifiers,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::PerTabSpecifiers, _impl_.per_tab_specifier_)>()
         }
     {}

inline void PerTabSpecifiers::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
PerTabSpecifiers::~PerTabSpecifiers() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.PerTabSpecifiers)
  SharedDtor(*this);
}
inline void PerTabSpecifiers::SharedDtor(MessageLite& self) {
  PerTabSpecifiers& this_ = static_cast<PerTabSpecifiers&>(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 PerTabSpecifiers_class_data_ =
    PerTabSpecifiers::InternalGenerateClassData_(PerTabSpecifiers_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PerTabSpecifiers::GetClassData() const {
  return PerTabSpecifiers_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PerTabSpecifiers::GetClassData() const {
  return PerTabSpecifiers_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PerTabSpecifiers::ParseTableT_
    PerTabSpecifiers::_table_ =
        PerTabSpecifiers::InternalGenerateParseTable_(PerTabSpecifiers_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PerTabSpecifiers::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.PerTabSpecifiers)
  ::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_.per_tab_specifier_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .optimization_guide.proto.PerTabSpecifier per_tab_specifier = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_per_tab_specifier_size());
         i < n; i++) {
      const auto& repfield = this_._internal_per_tab_specifier().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.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:optimization_guide.proto.PerTabSpecifiers)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PerTabSpecifiers::ByteSizeLong(const MessageLite& base) {
  const PerTabSpecifiers& this_ = static_cast<const PerTabSpecifiers&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PerTabSpecifiers::ByteSizeLong() const {
  const PerTabSpecifiers& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.PerTabSpecifiers)
  ::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_);
   {
    // repeated .optimization_guide.proto.PerTabSpecifier per_tab_specifier = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_per_tab_specifier_size();
      for (const auto& msg : this_._internal_per_tab_specifier()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  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 PerTabSpecifiers::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PerTabSpecifiers*>(&to_msg);
  auto& from = static_cast<const PerTabSpecifiers&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.PerTabSpecifiers)
  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_mutable_per_tab_specifier()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_per_tab_specifier());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void PerTabSpecifiers::InternalSwap(PerTabSpecifiers* 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_.per_tab_specifier_.InternalSwap(&other->_impl_.per_tab_specifier_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PerTabSpecifier* 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_.page_context_specifier_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_specifier_)
                : nullptr;
  _impl_.tab_id_ = from._impl_.tab_id_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PerTabSpecifier_class_data_ =
    PerTabSpecifier::InternalGenerateClassData_(PerTabSpecifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PerTabSpecifier::GetClassData() const {
  return PerTabSpecifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PerTabSpecifier::GetClassData() const {
  return PerTabSpecifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PerTabSpecifier::ParseTableT_
    PerTabSpecifier::_table_ =
        PerTabSpecifier::InternalGenerateParseTable_(PerTabSpecifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PerTabSpecifier::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.PerTabSpecifier)
  ::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)) {
    ABSL_DCHECK(_impl_.page_context_specifier_ != nullptr);
    _impl_.page_context_specifier_->Clear();
  }
  _impl_.tab_id_ = ::int64_t{0};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int64 tab_id = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_tab_id() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<1>(
              stream, this_._internal_tab_id(), target);
    }
  }

  // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.page_context_specifier_, this_._impl_.page_context_specifier_->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:optimization_guide.proto.PerTabSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PerTabSpecifier::ByteSizeLong(const MessageLite& base) {
  const PerTabSpecifier& this_ = static_cast<const PerTabSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PerTabSpecifier::ByteSizeLong() const {
  const PerTabSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.PerTabSpecifier)
  ::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)) {
    // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.page_context_specifier_);
    }
    // int64 tab_id = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_tab_id() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_tab_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 PerTabSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PerTabSpecifier*>(&to_msg);
  auto& from = static_cast<const PerTabSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.PerTabSpecifier)
  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)) {
      ABSL_DCHECK(from._impl_.page_context_specifier_ != nullptr);
      if (_this->_impl_.page_context_specifier_ == nullptr) {
        _this->_impl_.page_context_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_specifier_);
      } else {
        _this->_impl_.page_context_specifier_->MergeFrom(*from._impl_.page_context_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_tab_id() != 0) {
        _this->_impl_.tab_id_ = from._impl_.tab_id_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GeneralTabSpecifier* 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_.page_context_specifier_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_specifier_)
                : nullptr;
  _impl_.tab_limit_ = from._impl_.tab_limit_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite GeneralTabSpecifier_class_data_ =
    GeneralTabSpecifier::InternalGenerateClassData_(GeneralTabSpecifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GeneralTabSpecifier::GetClassData() const {
  return GeneralTabSpecifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GeneralTabSpecifier::GetClassData() const {
  return GeneralTabSpecifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const GeneralTabSpecifier::ParseTableT_
    GeneralTabSpecifier::_table_ =
        GeneralTabSpecifier::InternalGenerateParseTable_(GeneralTabSpecifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void GeneralTabSpecifier::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.GeneralTabSpecifier)
  ::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)) {
    ABSL_DCHECK(_impl_.page_context_specifier_ != nullptr);
    _impl_.page_context_specifier_->Clear();
  }
  _impl_.tab_limit_ = ::int64_t{0};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.page_context_specifier_, this_._impl_.page_context_specifier_->GetCachedSize(), target,
        stream);
  }

  // int64 tab_limit = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_tab_limit() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<2>(
              stream, this_._internal_tab_limit(), 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:optimization_guide.proto.GeneralTabSpecifier)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t GeneralTabSpecifier::ByteSizeLong(const MessageLite& base) {
  const GeneralTabSpecifier& this_ = static_cast<const GeneralTabSpecifier&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t GeneralTabSpecifier::ByteSizeLong() const {
  const GeneralTabSpecifier& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.GeneralTabSpecifier)
  ::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)) {
    // .optimization_guide.proto.PageContextSpecifier page_context_specifier = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.page_context_specifier_);
    }
    // int64 tab_limit = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_tab_limit() != 0) {
        total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
            this_._internal_tab_limit());
      }
    }
  }
  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 GeneralTabSpecifier::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<GeneralTabSpecifier*>(&to_msg);
  auto& from = static_cast<const GeneralTabSpecifier&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.GeneralTabSpecifier)
  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)) {
      ABSL_DCHECK(from._impl_.page_context_specifier_ != nullptr);
      if (_this->_impl_.page_context_specifier_ == nullptr) {
        _this->_impl_.page_context_specifier_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_specifier_);
      } else {
        _this->_impl_.page_context_specifier_->MergeFrom(*from._impl_.page_context_specifier_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_tab_limit() != 0) {
        _this->_impl_.tab_limit_ = from._impl_.tab_limit_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistoryQuerySpecifiers* 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:optimization_guide.proto.HistoryQuerySpecifiers)
}
PROTOBUF_NDEBUG_INLINE HistoryQuerySpecifiers::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        history_queries_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HistoryQuerySpecifiers,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HistoryQuerySpecifiers, _impl_.history_queries_)>()
         }
     {}

inline void HistoryQuerySpecifiers::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
HistoryQuerySpecifiers::~HistoryQuerySpecifiers() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.HistoryQuerySpecifiers)
  SharedDtor(*this);
}
inline void HistoryQuerySpecifiers::SharedDtor(MessageLite& self) {
  HistoryQuerySpecifiers& this_ = static_cast<HistoryQuerySpecifiers&>(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 HistoryQuerySpecifiers_class_data_ =
    HistoryQuerySpecifiers::InternalGenerateClassData_(HistoryQuerySpecifiers_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQuerySpecifiers::GetClassData() const {
  return HistoryQuerySpecifiers_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistoryQuerySpecifiers::GetClassData() const {
  return HistoryQuerySpecifiers_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistoryQuerySpecifiers::ParseTableT_
    HistoryQuerySpecifiers::_table_ =
        HistoryQuerySpecifiers::InternalGenerateParseTable_(HistoryQuerySpecifiers_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistoryQuerySpecifiers::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HistoryQuerySpecifiers)
  ::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_.history_queries_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .optimization_guide.proto.HistoryQuery history_queries = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_history_queries_size());
         i < n; i++) {
      const auto& repfield = this_._internal_history_queries().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.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:optimization_guide.proto.HistoryQuerySpecifiers)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistoryQuerySpecifiers::ByteSizeLong(const MessageLite& base) {
  const HistoryQuerySpecifiers& this_ = static_cast<const HistoryQuerySpecifiers&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistoryQuerySpecifiers::ByteSizeLong() const {
  const HistoryQuerySpecifiers& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HistoryQuerySpecifiers)
  ::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_);
   {
    // repeated .optimization_guide.proto.HistoryQuery history_queries = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_history_queries_size();
      for (const auto& msg : this_._internal_history_queries()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  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 HistoryQuerySpecifiers::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistoryQuerySpecifiers*>(&to_msg);
  auto& from = static_cast<const HistoryQuerySpecifiers&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HistoryQuerySpecifiers)
  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_mutable_history_queries()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_history_queries());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void HistoryQuerySpecifiers::InternalSwap(HistoryQuerySpecifiers* 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_.history_queries_.InternalSwap(&other->_impl_.history_queries_);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtensionAddedInformation* 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:optimization_guide.proto.ExtensionAddedInformation)
}
PROTOBUF_NDEBUG_INLINE ExtensionAddedInformation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        free_form_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ExtensionAddedInformation,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ExtensionAddedInformation, _impl_.free_form_data_)>()
         }
        ,
        mhtml_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ExtensionAddedInformation_class_data_ =
    ExtensionAddedInformation::InternalGenerateClassData_(ExtensionAddedInformation_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionAddedInformation::GetClassData() const {
  return ExtensionAddedInformation_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtensionAddedInformation::GetClassData() const {
  return ExtensionAddedInformation_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtensionAddedInformation::ParseTableT_
    ExtensionAddedInformation::_table_ =
        ExtensionAddedInformation::InternalGenerateParseTable_(ExtensionAddedInformation_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtensionAddedInformation::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ExtensionAddedInformation)
  ::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_.free_form_data_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.mhtml_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated string free_form_data = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_free_form_data_size(); i < n; ++i) {
      const auto& s = this_._internal_free_form_data().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ExtensionAddedInformation.free_form_data");
      target = stream->WriteString(1, s, target);
    }
  }

  // bytes mhtml = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_mhtml().empty()) {
      const ::std::string& _s = this_._internal_mhtml();
      target = stream->WriteBytesMaybeAliased(5, _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:optimization_guide.proto.ExtensionAddedInformation)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExtensionAddedInformation::ByteSizeLong(const MessageLite& base) {
  const ExtensionAddedInformation& this_ = static_cast<const ExtensionAddedInformation&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExtensionAddedInformation::ByteSizeLong() const {
  const ExtensionAddedInformation& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ExtensionAddedInformation)
  ::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 string free_form_data = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_free_form_data().size());
      for (int i = 0, n = this_._internal_free_form_data().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_free_form_data().Get(i));
      }
    }
    // bytes mhtml = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_mhtml().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_mhtml());
      }
    }
  }
  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 ExtensionAddedInformation::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExtensionAddedInformation*>(&to_msg);
  auto& from = static_cast<const ExtensionAddedInformation&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ExtensionAddedInformation)
  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_free_form_data()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_free_form_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_mhtml().empty()) {
        _this->_internal_set_mhtml(from._internal_mhtml());
      } else {
        if (_this->_impl_.mhtml_.IsDefault()) {
          _this->_internal_set_mhtml("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ExtensionAddedInformation::InternalSwap(ExtensionAddedInformation* 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_.free_form_data_.InternalSwap(&other->_impl_.free_form_data_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mhtml_, &other->_impl_.mhtml_, arena);
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingResponse* 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:optimization_guide.proto.ModelPrototypingResponse)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        model_prompts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.model_prompts_)>()
         }
        ,
        model_responses_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.model_responses_)>()
         }
        ,
        conversations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingResponse, _impl_.conversations_)>()
         }
     {}

inline void ModelPrototypingResponse::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ModelPrototypingResponse::~ModelPrototypingResponse() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.ModelPrototypingResponse)
  SharedDtor(*this);
}
inline void ModelPrototypingResponse::SharedDtor(MessageLite& self) {
  ModelPrototypingResponse& this_ = static_cast<ModelPrototypingResponse&>(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 ModelPrototypingResponse_class_data_ =
    ModelPrototypingResponse::InternalGenerateClassData_(ModelPrototypingResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingResponse::GetClassData() const {
  return ModelPrototypingResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingResponse::GetClassData() const {
  return ModelPrototypingResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingResponse::ParseTableT_
    ModelPrototypingResponse::_table_ =
        ModelPrototypingResponse::InternalGenerateParseTable_(ModelPrototypingResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingResponse)
  ::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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.model_prompts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.model_responses_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.conversations_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated string model_prompts = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_model_prompts_size(); i < n; ++i) {
      const auto& s = this_._internal_model_prompts().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingResponse.model_prompts");
      target = stream->WriteString(1, s, target);
    }
  }

  // repeated string model_responses = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_model_responses_size(); i < n; ++i) {
      const auto& s = this_._internal_model_responses().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingResponse.model_responses");
      target = stream->WriteString(2, s, target);
    }
  }

  // repeated .optimization_guide.proto.Conversation conversations = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_conversations_size());
         i < n; i++) {
      const auto& repfield = this_._internal_conversations().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.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:optimization_guide.proto.ModelPrototypingResponse)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingResponse::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingResponse& this_ = static_cast<const ModelPrototypingResponse&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingResponse::ByteSizeLong() const {
  const ModelPrototypingResponse& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingResponse)
  ::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, 0x00000007U)) {
    // repeated string model_prompts = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_model_prompts().size());
      for (int i = 0, n = this_._internal_model_prompts().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_model_prompts().Get(i));
      }
    }
    // repeated string model_responses = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_model_responses().size());
      for (int i = 0, n = this_._internal_model_responses().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_model_responses().Get(i));
      }
    }
    // repeated .optimization_guide.proto.Conversation conversations = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_conversations_size();
      for (const auto& msg : this_._internal_conversations()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  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 ModelPrototypingResponse::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingResponse*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingResponse&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingResponse)
  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, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_model_prompts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_model_prompts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_model_responses()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_model_responses());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_conversations()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_conversations());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ModelPrototypingResponse::InternalSwap(ModelPrototypingResponse* 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_.model_prompts_.InternalSwap(&other->_impl_.model_prompts_);
  _impl_.model_responses_.InternalSwap(&other->_impl_.model_responses_);
  _impl_.conversations_.InternalSwap(&other->_impl_.conversations_);
}

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

void ModelPrototypingMetadata::clear_collection_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.collection_time_ != nullptr) _impl_.collection_time_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
ModelPrototypingMetadata::ModelPrototypingMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ModelPrototypingMetadata_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.ModelPrototypingMetadata)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::ModelPrototypingMetadata& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        page_annotation_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::ModelPrototypingMetadata,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingMetadata, _impl_.page_annotation_)>()
          , from.page_annotation_
        }
        ,
        _page_annotation_cached_byte_size_{0},
        logging_tag_(arena, from.logging_tag_),
        logging_description_(arena, from.logging_description_),
        user_email_(arena, from.user_email_),
        session_id_(arena, from.session_id_),
        task_completion_failure_reason_(arena, from.task_completion_failure_reason_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ModelPrototypingMetadata* 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_.collection_time_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.collection_time_)
                : nullptr;
  _impl_.task_completion_status_ = from._impl_.task_completion_status_;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.ModelPrototypingMetadata)
}
PROTOBUF_NDEBUG_INLINE ModelPrototypingMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        page_annotation_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::ModelPrototypingMetadata,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::ModelPrototypingMetadata, _impl_.page_annotation_)>()
         }
        ,
        _page_annotation_cached_byte_size_{0},
        logging_tag_(arena),
        logging_description_(arena),
        user_email_(arena),
        session_id_(arena),
        task_completion_failure_reason_(arena) {}

inline void ModelPrototypingMetadata::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, collection_time_),
           0,
           offsetof(Impl_, task_completion_status_) -
               offsetof(Impl_, collection_time_) +
               sizeof(Impl_::task_completion_status_));
}
ModelPrototypingMetadata::~ModelPrototypingMetadata() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.ModelPrototypingMetadata)
  SharedDtor(*this);
}
inline void ModelPrototypingMetadata::SharedDtor(MessageLite& self) {
  ModelPrototypingMetadata& this_ = static_cast<ModelPrototypingMetadata&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.logging_tag_.Destroy();
  this_._impl_.logging_description_.Destroy();
  this_._impl_.user_email_.Destroy();
  this_._impl_.session_id_.Destroy();
  this_._impl_.task_completion_failure_reason_.Destroy();
  delete this_._impl_.collection_time_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ModelPrototypingMetadata_class_data_ =
    ModelPrototypingMetadata::InternalGenerateClassData_(ModelPrototypingMetadata_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingMetadata::GetClassData() const {
  return ModelPrototypingMetadata_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ModelPrototypingMetadata::GetClassData() const {
  return ModelPrototypingMetadata_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ModelPrototypingMetadata::ParseTableT_
    ModelPrototypingMetadata::_table_ =
        ModelPrototypingMetadata::InternalGenerateParseTable_(ModelPrototypingMetadata_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ModelPrototypingMetadata::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.ModelPrototypingMetadata)
  ::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, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.page_annotation_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.logging_tag_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.logging_description_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.user_email_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.session_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.task_completion_failure_reason_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.collection_time_ != nullptr);
      _impl_.collection_time_->Clear();
    }
  }
  _impl_.task_completion_status_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string logging_tag = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_logging_tag().empty()) {
      const ::std::string& _s = this_._internal_logging_tag();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingMetadata.logging_tag");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string logging_description = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_logging_description().empty()) {
      const ::std::string& _s = this_._internal_logging_description();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingMetadata.logging_description");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // string user_email = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_user_email().empty()) {
      const ::std::string& _s = this_._internal_user_email();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingMetadata.user_email");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // string session_id = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (!this_._internal_session_id().empty()) {
      const ::std::string& _s = this_._internal_session_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingMetadata.session_id");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // .optimization_guide.proto.Timestamp collection_time = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.collection_time_, this_._impl_.collection_time_->GetCachedSize(), target,
        stream);
  }

  // repeated .optimization_guide.proto.ModelPrototypingMetadata.PageAnnotation page_annotation = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      ::size_t byte_size = this_._impl_._page_annotation_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteEnumPacked(
            6, this_._internal_page_annotation(), byte_size, target);
      }
    }
  }

  // .optimization_guide.proto.ModelPrototypingMetadata.TaskCompletionStatus task_completion_status = 7 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (this_._internal_task_completion_status() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          7, this_._internal_task_completion_status(), target);
    }
  }

  // string task_completion_failure_reason = 8 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (!this_._internal_task_completion_failure_reason().empty()) {
      const ::std::string& _s = this_._internal_task_completion_failure_reason();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "optimization_guide.proto.ModelPrototypingMetadata.task_completion_failure_reason");
      target = stream->WriteStringMaybeAliased(8, _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:optimization_guide.proto.ModelPrototypingMetadata)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ModelPrototypingMetadata::ByteSizeLong(const MessageLite& base) {
  const ModelPrototypingMetadata& this_ = static_cast<const ModelPrototypingMetadata&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ModelPrototypingMetadata::ByteSizeLong() const {
  const ModelPrototypingMetadata& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.ModelPrototypingMetadata)
  ::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 .optimization_guide.proto.ModelPrototypingMetadata.PageAnnotation page_annotation = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::EnumSizeWithPackedTagSize(
          this_._internal_page_annotation(), 1, this_._impl_._page_annotation_cached_byte_size_);
    }
    // string logging_tag = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_logging_tag().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_logging_tag());
      }
    }
    // string logging_description = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_logging_description().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_logging_description());
      }
    }
    // string user_email = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!this_._internal_user_email().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_user_email());
      }
    }
    // string session_id = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!this_._internal_session_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_session_id());
      }
    }
    // string task_completion_failure_reason = 8 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!this_._internal_task_completion_failure_reason().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_task_completion_failure_reason());
      }
    }
    // .optimization_guide.proto.Timestamp collection_time = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.collection_time_);
    }
    // .optimization_guide.proto.ModelPrototypingMetadata.TaskCompletionStatus task_completion_status = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (this_._internal_task_completion_status() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_task_completion_status());
      }
    }
  }
  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 ModelPrototypingMetadata::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ModelPrototypingMetadata*>(&to_msg);
  auto& from = static_cast<const ModelPrototypingMetadata&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.ModelPrototypingMetadata)
  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_page_annotation()->MergeFrom(from._internal_page_annotation());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_logging_tag().empty()) {
        _this->_internal_set_logging_tag(from._internal_logging_tag());
      } else {
        if (_this->_impl_.logging_tag_.IsDefault()) {
          _this->_internal_set_logging_tag("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_logging_description().empty()) {
        _this->_internal_set_logging_description(from._internal_logging_description());
      } else {
        if (_this->_impl_.logging_description_.IsDefault()) {
          _this->_internal_set_logging_description("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!from._internal_user_email().empty()) {
        _this->_internal_set_user_email(from._internal_user_email());
      } else {
        if (_this->_impl_.user_email_.IsDefault()) {
          _this->_internal_set_user_email("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!from._internal_session_id().empty()) {
        _this->_internal_set_session_id(from._internal_session_id());
      } else {
        if (_this->_impl_.session_id_.IsDefault()) {
          _this->_internal_set_session_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!from._internal_task_completion_failure_reason().empty()) {
        _this->_internal_set_task_completion_failure_reason(from._internal_task_completion_failure_reason());
      } else {
        if (_this->_impl_.task_completion_failure_reason_.IsDefault()) {
          _this->_internal_set_task_completion_failure_reason("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.collection_time_ != nullptr);
      if (_this->_impl_.collection_time_ == nullptr) {
        _this->_impl_.collection_time_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.collection_time_);
      } else {
        _this->_impl_.collection_time_->MergeFrom(*from._impl_.collection_time_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (from._internal_task_completion_status() != 0) {
        _this->_impl_.task_completion_status_ = from._impl_.task_completion_status_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ModelPrototypingMetadata::InternalSwap(ModelPrototypingMetadata* 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_.page_annotation_.InternalSwap(&other->_impl_.page_annotation_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.logging_tag_, &other->_impl_.logging_tag_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.logging_description_, &other->_impl_.logging_description_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.user_email_, &other->_impl_.user_email_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.session_id_, &other->_impl_.session_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.task_completion_failure_reason_, &other->_impl_.task_completion_failure_reason_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.task_completion_status_)
      + sizeof(ModelPrototypingMetadata::_impl_.task_completion_status_)
      - PROTOBUF_FIELD_OFFSET(ModelPrototypingMetadata, _impl_.collection_time_)>(
          reinterpret_cast<char*>(&_impl_.collection_time_),
          reinterpret_cast<char*>(&other->_impl_.collection_time_));
}

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