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

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

constexpr FormMedia::ParseTableT_ FormMedia::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FormMedia, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::FormMedia>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated bytes screenshots = 1;
      {::_pbi::TcParser::FastBR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FormMedia, _impl_.screenshots_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated bytes screenshots = 1;
      {PROTOBUF_FIELD_OFFSET(FormMedia, _impl_.screenshots_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

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

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

constexpr FieldTypeResponse::ParseTableT_ FieldTypeResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967073,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::FieldTypeResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string internal_predicted_types = 8;
      {::_pbi::TcParser::FastUR1,
       {66, 1, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.internal_predicted_types_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // int32 field_type = 2 [features = {
      {::_pbi::TcParser::FastV32S1,
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_type_)}},
      // string formatting_meta = 3 [features = {
      {::_pbi::TcParser::FastUS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.formatting_meta_)}},
      // float confidence = 4 [features = {
      {::_pbi::TcParser::FastF32S1,
       {37, 4, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.confidence_)}},
      // int32 field_index = 5 [features = {
      {::_pbi::TcParser::FastV32S1,
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_index_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated int32 all_field_types = 7;
      {::_pbi::TcParser::FastV32P1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.all_field_types_)}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 field_type = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_type_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // string formatting_meta = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.formatting_meta_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // float confidence = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.confidence_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // int32 field_index = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_index_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // repeated int32 all_field_types = 7;
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.all_field_types_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
      // repeated string internal_predicted_types = 8;
      {PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.internal_predicted_types_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
      "\52\0\17\0\0\0\30\0"
      "optimization_guide.proto.FieldTypeResponse"
      "formatting_meta"
      "internal_predicted_types"
    }},
  };
}


inline constexpr FieldTypeResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        all_field_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::FieldTypeResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::FieldTypeResponse, _impl_.all_field_types_)>()
         }
        ,
        _all_field_types_cached_byte_size_{0},
        internal_predicted_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::FieldTypeResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::FieldTypeResponse, _impl_.internal_predicted_types_)>()
         }
        ,
        formatting_meta_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        field_type_{0},
        confidence_{0},
        field_index_{0} {}

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

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

constexpr AutofillAiUserPromptMetrics::ParseTableT_ AutofillAiUserPromptMetrics::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _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
      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::AutofillAiUserPromptMetrics>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint64 form_session_identifier = 1 [features = {
      {::_pbi::TcParser::FastV64S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.form_session_identifier_)}},
      // string domain = 2 [features = {
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.domain_)}},
      // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 3 [features = {
      {::_pbi::TcParser::FastV32S1,
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.storage_type_)}},
      // .optimization_guide.proto.AutofillAiPromptType prompt_type = 4 [features = {
      {::_pbi::TcParser::FastV32S1,
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.prompt_type_)}},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 5 [features = {
      {::_pbi::TcParser::FastV32S1,
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.entity_type_)}},
      // .optimization_guide.proto.AutofillAiPromptUserDecision result = 6 [features = {
      {::_pbi::TcParser::FastV32S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.result_)}},
      // uint64 form_signature = 7 [features = {
      {::_pbi::TcParser::FastV64S1,
       {56, 6, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.form_signature_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint64 form_session_identifier = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.form_session_identifier_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // string domain = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.domain_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.storage_type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .optimization_guide.proto.AutofillAiPromptType prompt_type = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.prompt_type_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.entity_type_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .optimization_guide.proto.AutofillAiPromptUserDecision result = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.result_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // uint64 form_signature = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiUserPromptMetrics, _impl_.form_signature_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    }},
    // no aux_entries
    {{
      "\64\0\6\0\0\0\0\0"
      "optimization_guide.proto.AutofillAiUserPromptMetrics"
      "domain"
    }},
  };
}


inline constexpr AutofillAiUserPromptMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        domain_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        form_session_identifier_{::uint64_t{0u}},
        storage_type_{static_cast< ::optimization_guide::proto::AutofillAiEntityStorageType >(0)},
        prompt_type_{static_cast< ::optimization_guide::proto::AutofillAiPromptType >(0)},
        entity_type_{static_cast< ::optimization_guide::proto::AutofillAiEntityType >(0)},
        result_{static_cast< ::optimization_guide::proto::AutofillAiPromptUserDecision >(0)},
        form_signature_{::uint64_t{0u}} {}

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

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

constexpr AutofillAiKeyMetrics::ParseTableT_ AutofillAiKeyMetrics::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_._has_bits_),
      0, // no _extensions_
      11, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965248,  // skipmap
      offsetof(ParseTableT_, field_entries),
      11,  // 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::AutofillAiKeyMetrics>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool filling_acceptance = 1 [features = {
      {::_pbi::TcParser::FastV8S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_acceptance_)}},
      // bool filling_assistance = 2 [features = {
      {::_pbi::TcParser::FastV8S1,
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_assistance_)}},
      // bool filling_correctness = 3 [features = {
      {::_pbi::TcParser::FastV8S1,
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_correctness_)}},
      // bool filling_readiness = 4 [features = {
      {::_pbi::TcParser::FastV8S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_readiness_)}},
      // uint64 form_session_identifier = 5 [features = {
      {::_pbi::TcParser::FastV64S1,
       {40, 6, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.form_session_identifier_)}},
      // uint64 form_signature = 6 [features = {
      {::_pbi::TcParser::FastV64S1,
       {48, 7, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.form_signature_)}},
      // string domain = 7 [features = {
      {::_pbi::TcParser::FastUS1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.domain_)}},
      // int32 autofill_filled_field_count = 8 [features = {
      {::_pbi::TcParser::FastV32S1,
       {64, 5, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.autofill_filled_field_count_)}},
      // int32 autofill_ai_filled_field_count = 9 [features = {
      {::_pbi::TcParser::FastV32S1,
       {72, 8, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.autofill_ai_filled_field_count_)}},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 10 [features = {
      {::_pbi::TcParser::FastV32S1,
       {80, 9, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.entity_type_)}},
      // bool perfect_filling = 11 [features = {
      {::_pbi::TcParser::FastV8S1,
       {88, 10, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.perfect_filling_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // bool filling_acceptance = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_acceptance_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool filling_assistance = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_assistance_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool filling_correctness = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_correctness_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool filling_readiness = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.filling_readiness_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint64 form_session_identifier = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.form_session_identifier_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint64 form_signature = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.form_signature_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // string domain = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.domain_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // int32 autofill_filled_field_count = 8 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.autofill_filled_field_count_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // int32 autofill_ai_filled_field_count = 9 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.autofill_ai_filled_field_count_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 10 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.entity_type_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // bool perfect_filling = 11 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiKeyMetrics, _impl_.perfect_filling_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
      "\55\0\0\0\0\0\0\6\0\0\0\0\0\0\0\0"
      "optimization_guide.proto.AutofillAiKeyMetrics"
      "domain"
    }},
  };
}


inline constexpr AutofillAiKeyMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        domain_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        filling_acceptance_{false},
        filling_assistance_{false},
        filling_correctness_{false},
        filling_readiness_{false},
        autofill_filled_field_count_{0},
        form_session_identifier_{::uint64_t{0u}},
        form_signature_{::uint64_t{0u}},
        autofill_ai_filled_field_count_{0},
        entity_type_{static_cast< ::optimization_guide::proto::AutofillAiEntityType >(0)},
        perfect_filling_{false} {}

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

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

constexpr AutofillAiFieldEvent::ParseTableT_ AutofillAiFieldEvent::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_._has_bits_),
      0, // no _extensions_
      17, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294836224,  // skipmap
      offsetof(ParseTableT_, field_entries),
      17,  // 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::AutofillAiFieldEvent>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // int32 ai_field_type = 1 [features = {
      {::_pbi::TcParser::FastV32S1,
       {8, 3, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.ai_field_type_)}},
      // .optimization_guide.proto.AutofillAiFieldEventType event_type = 2 [features = {
      {::_pbi::TcParser::FastV32S1,
       {16, 4, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.event_type_)}},
      // uint64 field_session_identifier = 3 [features = {
      {::_pbi::TcParser::FastV64S1,
       {24, 5, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_session_identifier_)}},
      // uint64 field_signature = 4 [features = {
      {::_pbi::TcParser::FastV64S1,
       {32, 6, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_signature_)}},
      // int32 field_type = 5 [features = {
      {::_pbi::TcParser::FastV32S1,
       {40, 7, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_type_)}},
      // .optimization_guide.proto.FormatStringSource format_string_source = 6 [features = {
      {::_pbi::TcParser::FastV32S1,
       {48, 8, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.format_string_source_)}},
      // int32 form_session_event_order = 7 [features = {
      {::_pbi::TcParser::FastV32S1,
       {56, 10, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_session_event_order_)}},
      // uint64 form_session_identifier = 8 [features = {
      {::_pbi::TcParser::FastV64S1,
       {64, 9, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_session_identifier_)}},
      // uint64 form_signature = 9 [features = {
      {::_pbi::TcParser::FastV64S1,
       {72, 12, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_signature_)}},
      // uint32 field_rank = 10 [features = {
      {::_pbi::TcParser::FastV32S1,
       {80, 11, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_rank_)}},
      // uint32 field_rank_in_signature_group = 11 [features = {
      {::_pbi::TcParser::FastV32S1,
       {88, 13, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_rank_in_signature_group_)}},
      // .optimization_guide.proto.FormControlType form_control_type = 12 [features = {
      {::_pbi::TcParser::FastV32S1,
       {96, 14, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_control_type_)}},
      // string domain = 13 [features = {
      {::_pbi::TcParser::FastUS1,
       {106, 2, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.domain_)}},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 14 [features = {
      {::_pbi::TcParser::FastV32S1,
       {112, 15, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.entity_type_)}},
      // repeated int32 field_types = 15;
      {::_pbi::TcParser::FastV32P1,
       {122, 0, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_types_)}},
      // repeated int32 ai_field_types = 16;
      {::_pbi::TcParser::FastV32P2,
       {386, 1, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.ai_field_types_)}},
      // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 17 [features = {
      {::_pbi::TcParser::FastV32S2,
       {392, 16, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.storage_type_)}},
      {::_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, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // int32 ai_field_type = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.ai_field_type_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .optimization_guide.proto.AutofillAiFieldEventType event_type = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.event_type_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // uint64 field_session_identifier = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_session_identifier_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint64 field_signature = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_signature_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // int32 field_type = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_type_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .optimization_guide.proto.FormatStringSource format_string_source = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.format_string_source_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // int32 form_session_event_order = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_session_event_order_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // uint64 form_session_identifier = 8 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_session_identifier_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint64 form_signature = 9 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_signature_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint32 field_rank = 10 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_rank_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 field_rank_in_signature_group = 11 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_rank_in_signature_group_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .optimization_guide.proto.FormControlType form_control_type = 12 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.form_control_type_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // string domain = 13 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.domain_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .optimization_guide.proto.AutofillAiEntityType entity_type = 14 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.entity_type_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated int32 field_types = 15;
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.field_types_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
      // repeated int32 ai_field_types = 16;
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.ai_field_types_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt32)},
      // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 17 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.storage_type_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
      "\55\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\0\0\0\0\0\0\0"
      "optimization_guide.proto.AutofillAiFieldEvent"
      "domain"
    }},
  };
}


inline constexpr AutofillAiFieldEvent::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        field_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::AutofillAiFieldEvent,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::AutofillAiFieldEvent, _impl_.field_types_)>()
         }
        ,
        _field_types_cached_byte_size_{0},
        ai_field_types_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::AutofillAiFieldEvent,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::AutofillAiFieldEvent, _impl_.ai_field_types_)>()
         }
        ,
        _ai_field_types_cached_byte_size_{0},
        domain_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        ai_field_type_{0},
        event_type_{static_cast< ::optimization_guide::proto::AutofillAiFieldEventType >(0)},
        field_session_identifier_{::uint64_t{0u}},
        field_signature_{::uint64_t{0u}},
        field_type_{0},
        format_string_source_{static_cast< ::optimization_guide::proto::FormatStringSource >(0)},
        form_session_identifier_{::uint64_t{0u}},
        form_session_event_order_{0},
        field_rank_{0u},
        form_signature_{::uint64_t{0u}},
        field_rank_in_signature_group_{0u},
        form_control_type_{static_cast< ::optimization_guide::proto::FormControlType >(0)},
        entity_type_{static_cast< ::optimization_guide::proto::AutofillAiEntityType >(0)},
        storage_type_{static_cast< ::optimization_guide::proto::AutofillAiEntityStorageType >(0)} {}

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

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

constexpr FormTypeQuality::ParseTableT_ FormTypeQuality::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FormTypeQuality, _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
      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::FormTypeQuality>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.AutofillAiUserPromptMetrics user_prompt_metrics = 4 [features = {
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.user_prompt_metrics_)}},
      // .optimization_guide.proto.UserFeedback user_feedback = 1 [features = {
      {::_pbi::TcParser::FastV32S1,
       {8, 3, 0,
        PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.user_feedback_)}},
      // .optimization_guide.proto.AutofillAiFieldEvent field_event = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.field_event_)}},
      // .optimization_guide.proto.AutofillAiKeyMetrics key_metrics = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.key_metrics_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.UserFeedback user_feedback = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.user_feedback_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .optimization_guide.proto.AutofillAiFieldEvent field_event = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.field_event_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AutofillAiKeyMetrics key_metrics = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.key_metrics_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AutofillAiUserPromptMetrics user_prompt_metrics = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.user_prompt_metrics_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillAiFieldEvent>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillAiFieldEvent_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillAiKeyMetrics>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillAiKeyMetrics_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AutofillAiUserPromptMetrics>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AutofillAiUserPromptMetrics_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FormTypeQuality::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        field_event_{nullptr},
        key_metrics_{nullptr},
        user_prompt_metrics_{nullptr},
        user_feedback_{static_cast< ::optimization_guide::proto::UserFeedback >(0)} {}

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

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

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


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

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

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

constexpr AutofillAiTypeRequest::ParseTableT_ AutofillAiTypeRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967176,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // 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::AutofillAiTypeRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.PageContext page_context = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.page_context_)}},
      // .optimization_guide.proto.FormData form_data = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.form_data_)}},
      // .optimization_guide.proto.FormMedia media = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 3, 2,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.media_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // .optimization_guide.proto.AnnotatedPageContent annotated_page_content = 5 [features = {
      {::_pbi::TcParser::FastMtS1,
       {42, 4, 3,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.annotated_page_content_)}},
      // bool include_reasoning = 6 [features = {
      {::_pbi::TcParser::FastV8S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.include_reasoning_)}},
      // string url = 7 [features = {
      {::_pbi::TcParser::FastUS1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.url_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.PageContext page_context = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.page_context_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.FormData form_data = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.form_data_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.FormMedia media = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.media_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AnnotatedPageContent annotated_page_content = 5 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.annotated_page_content_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bool include_reasoning = 6 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.include_reasoning_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // string url = 7 [features = {
      {PROTOBUF_FIELD_OFFSET(AutofillAiTypeRequest, _impl_.url_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #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::FormMedia>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::FormMedia_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::AnnotatedPageContent>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::AnnotatedPageContent_globals_},
        #endif
    }},
    {{
      "\56\0\0\0\0\0\3\0"
      "optimization_guide.proto.AutofillAiTypeRequest"
      "url"
    }},
  };
}


inline constexpr AutofillAiTypeRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        page_context_{nullptr},
        form_data_{nullptr},
        media_{nullptr},
        annotated_page_content_{nullptr},
        include_reasoning_{false} {}

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

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

constexpr FormsClassificationsLoggingData::ParseTableT_ FormsClassificationsLoggingData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _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
      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::FormsClassificationsLoggingData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 4 [features = {
      {::_pbi::TcParser::FastMtS1,
       {34, 3, 3,
        PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.model_execution_info_)}},
      // .optimization_guide.proto.AutofillAiTypeRequest request = 1 [features = {
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.request_)}},
      // .optimization_guide.proto.AutofillAiTypeResponse response = 2 [features = {
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.response_)}},
      // .optimization_guide.proto.FormTypeQuality quality = 3 [features = {
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.quality_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.AutofillAiTypeRequest request = 1 [features = {
      {PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.request_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.AutofillAiTypeResponse response = 2 [features = {
      {PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.response_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.FormTypeQuality quality = 3 [features = {
      {PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.quality_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 4 [features = {
      {PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _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::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::FormTypeQuality>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::FormTypeQuality_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::ModelExecutionInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::ModelExecutionInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FormsClassificationsLoggingDataGlobalsTypeInternal FormsClassificationsLoggingData_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FormsClassificationsLoggingData_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FormsClassificationsLoggingData_globals_.GetClassData();
#else
  return FormsClassificationsLoggingData_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 AutofillAiFieldEventType_internal_data_[] = {
    262144u, 0u, };
static const char AutofillAiFieldEventType_names[] = {
    "AUTOFILL_AI_FIELD_EVENT_TYPE_EDITED_AUTOFILLED_FIELD"
    "AUTOFILL_AI_FIELD_EVENT_TYPE_FIELD_FILLED"
    "AUTOFILL_AI_FIELD_EVENT_TYPE_SUGGESTION_FILLED"
    "AUTOFILL_AI_FIELD_EVENT_TYPE_SUGGESTION_SHOWN"
};

static const ::google::protobuf::internal::EnumEntry AutofillAiFieldEventType_entries[] = {
    {{&AutofillAiFieldEventType_names[0], 52}, 2},
    {{&AutofillAiFieldEventType_names[52], 41}, 3},
    {{&AutofillAiFieldEventType_names[93], 46}, 1},
    {{&AutofillAiFieldEventType_names[139], 45}, 0},
};

static const int AutofillAiFieldEventType_entries_by_number[] = {
    3,  // 0 -> AUTOFILL_AI_FIELD_EVENT_TYPE_SUGGESTION_SHOWN
    2,  // 1 -> AUTOFILL_AI_FIELD_EVENT_TYPE_SUGGESTION_FILLED
    0,  // 2 -> AUTOFILL_AI_FIELD_EVENT_TYPE_EDITED_AUTOFILLED_FIELD
    1,  // 3 -> AUTOFILL_AI_FIELD_EVENT_TYPE_FIELD_FILLED
};

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

const ::std::string& AutofillAiFieldEventType_Name(AutofillAiFieldEventType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AutofillAiFieldEventType_entries, AutofillAiFieldEventType_entries_by_number, 4,
      AutofillAiFieldEventType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AutofillAiFieldEventType_entries,
                                  AutofillAiFieldEventType_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AutofillAiFieldEventType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t FormatStringSource_internal_data_[] = {
    262144u, 0u, };
static const char FormatStringSource_names[] = {
    "FORMAT_STRING_SOURCE_HEURISTICS"
    "FORMAT_STRING_SOURCE_ML_MODEL"
    "FORMAT_STRING_SOURCE_SERVER"
    "FORMAT_STRING_SOURCE_UNSET"
};

static const ::google::protobuf::internal::EnumEntry FormatStringSource_entries[] = {
    {{&FormatStringSource_names[0], 31}, 1},
    {{&FormatStringSource_names[31], 29}, 2},
    {{&FormatStringSource_names[60], 27}, 3},
    {{&FormatStringSource_names[87], 26}, 0},
};

static const int FormatStringSource_entries_by_number[] = {
    3,  // 0 -> FORMAT_STRING_SOURCE_UNSET
    0,  // 1 -> FORMAT_STRING_SOURCE_HEURISTICS
    1,  // 2 -> FORMAT_STRING_SOURCE_ML_MODEL
    2,  // 3 -> FORMAT_STRING_SOURCE_SERVER
};

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

const ::std::string& FormatStringSource_Name(FormatStringSource value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      FormatStringSource_entries, FormatStringSource_entries_by_number, 4,
      FormatStringSource_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(FormatStringSource_entries,
                                  FormatStringSource_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : FormatStringSource_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t AutofillAiEntityType_internal_data_[] = {
    655360u, 0u, };
static const char AutofillAiEntityType_names[] = {
    "AUTOFILL_AI_ENTITY_TYPE_DRIVERS_LICENSE"
    "AUTOFILL_AI_ENTITY_TYPE_FLIGHT_RESERVATION"
    "AUTOFILL_AI_ENTITY_TYPE_KNOWN_TRAVELER_NUMBER"
    "AUTOFILL_AI_ENTITY_TYPE_NATIONAL_ID_CARD"
    "AUTOFILL_AI_ENTITY_TYPE_ORDER"
    "AUTOFILL_AI_ENTITY_TYPE_PASSPORT"
    "AUTOFILL_AI_ENTITY_TYPE_REDRESS_NUMBER"
    "AUTOFILL_AI_ENTITY_TYPE_SHIPMENT"
    "AUTOFILL_AI_ENTITY_TYPE_UNKNOWN"
    "AUTOFILL_AI_ENTITY_TYPE_VEHICLE"
};

static const ::google::protobuf::internal::EnumEntry AutofillAiEntityType_entries[] = {
    {{&AutofillAiEntityType_names[0], 39}, 2},
    {{&AutofillAiEntityType_names[39], 42}, 7},
    {{&AutofillAiEntityType_names[81], 45}, 5},
    {{&AutofillAiEntityType_names[126], 40}, 4},
    {{&AutofillAiEntityType_names[166], 29}, 8},
    {{&AutofillAiEntityType_names[195], 32}, 1},
    {{&AutofillAiEntityType_names[227], 38}, 6},
    {{&AutofillAiEntityType_names[265], 32}, 9},
    {{&AutofillAiEntityType_names[297], 31}, 0},
    {{&AutofillAiEntityType_names[328], 31}, 3},
};

static const int AutofillAiEntityType_entries_by_number[] = {
    8,  // 0 -> AUTOFILL_AI_ENTITY_TYPE_UNKNOWN
    5,  // 1 -> AUTOFILL_AI_ENTITY_TYPE_PASSPORT
    0,  // 2 -> AUTOFILL_AI_ENTITY_TYPE_DRIVERS_LICENSE
    9,  // 3 -> AUTOFILL_AI_ENTITY_TYPE_VEHICLE
    3,  // 4 -> AUTOFILL_AI_ENTITY_TYPE_NATIONAL_ID_CARD
    2,  // 5 -> AUTOFILL_AI_ENTITY_TYPE_KNOWN_TRAVELER_NUMBER
    6,  // 6 -> AUTOFILL_AI_ENTITY_TYPE_REDRESS_NUMBER
    1,  // 7 -> AUTOFILL_AI_ENTITY_TYPE_FLIGHT_RESERVATION
    4,  // 8 -> AUTOFILL_AI_ENTITY_TYPE_ORDER
    7,  // 9 -> AUTOFILL_AI_ENTITY_TYPE_SHIPMENT
};

bool AutofillAiEntityType_Parse(::absl::string_view name,
                                  AutofillAiEntityType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      AutofillAiEntityType_entries, 10, name, &int_value);
  if (success) {
    *value = static_cast<AutofillAiEntityType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    AutofillAiEntityType_strings[10] = {};

const ::std::string& AutofillAiEntityType_Name(AutofillAiEntityType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AutofillAiEntityType_entries, AutofillAiEntityType_entries_by_number, 10,
      AutofillAiEntityType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AutofillAiEntityType_entries,
                                  AutofillAiEntityType_entries_by_number,
                                  10, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AutofillAiEntityType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t AutofillAiEntityStorageType_internal_data_[] = {
    196608u, 0u, };
static const char AutofillAiEntityStorageType_names[] = {
    "AUTOFILL_AI_ENTITY_STORAGE_TYPE_LOCAL"
    "AUTOFILL_AI_ENTITY_STORAGE_TYPE_UNKNOWN"
    "AUTOFILL_AI_ENTITY_STORAGE_TYPE_WALLET"
};

static const ::google::protobuf::internal::EnumEntry AutofillAiEntityStorageType_entries[] = {
    {{&AutofillAiEntityStorageType_names[0], 37}, 2},
    {{&AutofillAiEntityStorageType_names[37], 39}, 0},
    {{&AutofillAiEntityStorageType_names[76], 38}, 1},
};

static const int AutofillAiEntityStorageType_entries_by_number[] = {
    1,  // 0 -> AUTOFILL_AI_ENTITY_STORAGE_TYPE_UNKNOWN
    2,  // 1 -> AUTOFILL_AI_ENTITY_STORAGE_TYPE_WALLET
    0,  // 2 -> AUTOFILL_AI_ENTITY_STORAGE_TYPE_LOCAL
};

bool AutofillAiEntityStorageType_Parse(::absl::string_view name,
                                  AutofillAiEntityStorageType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      AutofillAiEntityStorageType_entries, 3, name, &int_value);
  if (success) {
    *value = static_cast<AutofillAiEntityStorageType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    AutofillAiEntityStorageType_strings[3] = {};

const ::std::string& AutofillAiEntityStorageType_Name(AutofillAiEntityStorageType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AutofillAiEntityStorageType_entries, AutofillAiEntityStorageType_entries_by_number, 3,
      AutofillAiEntityStorageType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AutofillAiEntityStorageType_entries,
                                  AutofillAiEntityStorageType_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AutofillAiEntityStorageType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t AutofillAiPromptType_internal_data_[] = {
    327680u, 0u, };
static const char AutofillAiPromptType_names[] = {
    "AUTOFILL_AI_PROMPT_TYPE_MIGRATE_ON_SAVE"
    "AUTOFILL_AI_PROMPT_TYPE_MIGRATE_ON_UPDATE"
    "AUTOFILL_AI_PROMPT_TYPE_SAVE_ENTITY"
    "AUTOFILL_AI_PROMPT_TYPE_UNKNOWN"
    "AUTOFILL_AI_PROMPT_TYPE_UPDATE_ENTITY"
};

static const ::google::protobuf::internal::EnumEntry AutofillAiPromptType_entries[] = {
    {{&AutofillAiPromptType_names[0], 39}, 3},
    {{&AutofillAiPromptType_names[39], 41}, 4},
    {{&AutofillAiPromptType_names[80], 35}, 1},
    {{&AutofillAiPromptType_names[115], 31}, 0},
    {{&AutofillAiPromptType_names[146], 37}, 2},
};

static const int AutofillAiPromptType_entries_by_number[] = {
    3,  // 0 -> AUTOFILL_AI_PROMPT_TYPE_UNKNOWN
    2,  // 1 -> AUTOFILL_AI_PROMPT_TYPE_SAVE_ENTITY
    4,  // 2 -> AUTOFILL_AI_PROMPT_TYPE_UPDATE_ENTITY
    0,  // 3 -> AUTOFILL_AI_PROMPT_TYPE_MIGRATE_ON_SAVE
    1,  // 4 -> AUTOFILL_AI_PROMPT_TYPE_MIGRATE_ON_UPDATE
};

bool AutofillAiPromptType_Parse(::absl::string_view name,
                                  AutofillAiPromptType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      AutofillAiPromptType_entries, 5, name, &int_value);
  if (success) {
    *value = static_cast<AutofillAiPromptType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    AutofillAiPromptType_strings[5] = {};

const ::std::string& AutofillAiPromptType_Name(AutofillAiPromptType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AutofillAiPromptType_entries, AutofillAiPromptType_entries_by_number, 5,
      AutofillAiPromptType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AutofillAiPromptType_entries,
                                  AutofillAiPromptType_entries_by_number,
                                  5, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AutofillAiPromptType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t AutofillAiPromptUserDecision_internal_data_[] = {
    262144u, 0u, };
static const char AutofillAiPromptUserDecision_names[] = {
    "AUTOFILL_AI_PROMPT_USER_DECISION_ACCEPTED"
    "AUTOFILL_AI_PROMPT_USER_DECISION_DECLINED"
    "AUTOFILL_AI_PROMPT_USER_DECISION_IGNORED"
    "AUTOFILL_AI_PROMPT_USER_DECISION_UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry AutofillAiPromptUserDecision_entries[] = {
    {{&AutofillAiPromptUserDecision_names[0], 41}, 1},
    {{&AutofillAiPromptUserDecision_names[41], 41}, 2},
    {{&AutofillAiPromptUserDecision_names[82], 40}, 3},
    {{&AutofillAiPromptUserDecision_names[122], 40}, 0},
};

static const int AutofillAiPromptUserDecision_entries_by_number[] = {
    3,  // 0 -> AUTOFILL_AI_PROMPT_USER_DECISION_UNKNOWN
    0,  // 1 -> AUTOFILL_AI_PROMPT_USER_DECISION_ACCEPTED
    1,  // 2 -> AUTOFILL_AI_PROMPT_USER_DECISION_DECLINED
    2,  // 3 -> AUTOFILL_AI_PROMPT_USER_DECISION_IGNORED
};

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

const ::std::string& AutofillAiPromptUserDecision_Name(AutofillAiPromptUserDecision value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AutofillAiPromptUserDecision_entries, AutofillAiPromptUserDecision_entries_by_number, 4,
      AutofillAiPromptUserDecision_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AutofillAiPromptUserDecision_entries,
                                  AutofillAiPromptUserDecision_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AutofillAiPromptUserDecision_strings[idx].get();
}
// ===================================================================

void FormsClassificationsLoggingData::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);
}
FormsClassificationsLoggingData::FormsClassificationsLoggingData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FormsClassificationsLoggingData_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.FormsClassificationsLoggingData)
}
PROTOBUF_NDEBUG_INLINE FormsClassificationsLoggingData::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::FormsClassificationsLoggingData& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FormsClassificationsLoggingData* 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_.quality_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.quality_)
                : 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.FormsClassificationsLoggingData)
}
PROTOBUF_NDEBUG_INLINE FormsClassificationsLoggingData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void FormsClassificationsLoggingData::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_));
}
FormsClassificationsLoggingData::~FormsClassificationsLoggingData() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.FormsClassificationsLoggingData)
  SharedDtor(*this);
}
inline void FormsClassificationsLoggingData::SharedDtor(MessageLite& self) {
  FormsClassificationsLoggingData& this_ = static_cast<FormsClassificationsLoggingData&>(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_.quality_;
  delete this_._impl_.model_execution_info_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FormsClassificationsLoggingData_class_data_ =
    FormsClassificationsLoggingData::InternalGenerateClassData_(FormsClassificationsLoggingData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FormsClassificationsLoggingData::GetClassData() const {
  return FormsClassificationsLoggingData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FormsClassificationsLoggingData::GetClassData() const {
  return FormsClassificationsLoggingData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FormsClassificationsLoggingData::ParseTableT_
    FormsClassificationsLoggingData::_table_ =
        FormsClassificationsLoggingData::InternalGenerateParseTable_(FormsClassificationsLoggingData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FormsClassificationsLoggingData::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.FormsClassificationsLoggingData)
  ::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_.quality_ != nullptr);
      _impl_.quality_->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 FormsClassificationsLoggingData::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const FormsClassificationsLoggingData& this_ = static_cast<const FormsClassificationsLoggingData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL FormsClassificationsLoggingData::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const FormsClassificationsLoggingData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:optimization_guide.proto.FormsClassificationsLoggingData)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.AutofillAiTypeRequest 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.AutofillAiTypeResponse 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.FormTypeQuality quality = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.quality_, this_._impl_.quality_->GetCachedSize(), target,
        stream);
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FormsClassificationsLoggingData::ByteSizeLong(const MessageLite& base) {
  const FormsClassificationsLoggingData& this_ = static_cast<const FormsClassificationsLoggingData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FormsClassificationsLoggingData::ByteSizeLong() const {
  const FormsClassificationsLoggingData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.FormsClassificationsLoggingData)
  ::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.AutofillAiTypeRequest request = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.request_);
    }
    // .optimization_guide.proto.AutofillAiTypeResponse response = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.response_);
    }
    // .optimization_guide.proto.FormTypeQuality quality = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.quality_);
    }
    // .optimization_guide.proto.ModelExecutionInfo model_execution_info = 4 [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 FormsClassificationsLoggingData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FormsClassificationsLoggingData*>(&to_msg);
  auto& from = static_cast<const FormsClassificationsLoggingData&>(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.FormsClassificationsLoggingData)
  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_.quality_ != nullptr);
      if (_this->_impl_.quality_ == nullptr) {
        _this->_impl_.quality_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.quality_);
      } else {
        _this->_impl_.quality_->MergeFrom(*from._impl_.quality_);
      }
    }
    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 FormsClassificationsLoggingData::CopyFrom(const FormsClassificationsLoggingData& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:optimization_guide.proto.FormsClassificationsLoggingData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FormsClassificationsLoggingData::InternalSwap(FormsClassificationsLoggingData* 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(FormsClassificationsLoggingData, _impl_.model_execution_info_)
      + sizeof(FormsClassificationsLoggingData::_impl_.model_execution_info_)
      - PROTOBUF_FIELD_OFFSET(FormsClassificationsLoggingData, _impl_.request_)>(
          reinterpret_cast<char*>(&_impl_.request_),
          reinterpret_cast<char*>(&other->_impl_.request_));
}

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

void AutofillAiTypeRequest::clear_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.page_context_ != nullptr) _impl_.page_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void AutofillAiTypeRequest::clear_form_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.form_data_ != nullptr) _impl_.form_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
void AutofillAiTypeRequest::clear_annotated_page_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.annotated_page_content_ != nullptr) _impl_.annotated_page_content_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
AutofillAiTypeRequest::AutofillAiTypeRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, AutofillAiTypeRequest_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.AutofillAiTypeRequest)
}
PROTOBUF_NDEBUG_INLINE AutofillAiTypeRequest::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::AutofillAiTypeRequest& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        url_(arena, from.url_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AutofillAiTypeRequest* 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, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.page_context_)
                : nullptr;
  _impl_.form_data_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.form_data_)
                : nullptr;
  _impl_.media_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.media_)
                : nullptr;
  _impl_.annotated_page_content_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.annotated_page_content_)
                : nullptr;
  _impl_.include_reasoning_ = from._impl_.include_reasoning_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite AutofillAiTypeRequest_class_data_ =
    AutofillAiTypeRequest::InternalGenerateClassData_(AutofillAiTypeRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiTypeRequest::GetClassData() const {
  return AutofillAiTypeRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiTypeRequest::GetClassData() const {
  return AutofillAiTypeRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AutofillAiTypeRequest::ParseTableT_
    AutofillAiTypeRequest::_table_ =
        AutofillAiTypeRequest::InternalGenerateParseTable_(AutofillAiTypeRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AutofillAiTypeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.AutofillAiTypeRequest)
  ::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, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.url_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.page_context_ != nullptr);
      _impl_.page_context_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.form_data_ != nullptr);
      _impl_.form_data_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.media_ != nullptr);
      _impl_.media_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.annotated_page_content_ != nullptr);
      _impl_.annotated_page_content_->Clear();
    }
  }
  _impl_.include_reasoning_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL AutofillAiTypeRequest::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const AutofillAiTypeRequest& this_ = static_cast<const AutofillAiTypeRequest&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL AutofillAiTypeRequest::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const AutofillAiTypeRequest& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:optimization_guide.proto.AutofillAiTypeRequest)
  ::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, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.page_context_, this_._impl_.page_context_->GetCachedSize(), target,
        stream);
  }

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

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

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

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

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AutofillAiTypeRequest::ByteSizeLong(const MessageLite& base) {
  const AutofillAiTypeRequest& this_ = static_cast<const AutofillAiTypeRequest&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AutofillAiTypeRequest::ByteSizeLong() const {
  const AutofillAiTypeRequest& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.AutofillAiTypeRequest)
  ::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)) {
    // string url = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_url().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_url());
      }
    }
    // .optimization_guide.proto.PageContext page_context = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.page_context_);
    }
    // .optimization_guide.proto.FormData form_data = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.form_data_);
    }
    // .optimization_guide.proto.FormMedia media = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.media_);
    }
    // .optimization_guide.proto.AnnotatedPageContent annotated_page_content = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.annotated_page_content_);
    }
    // bool include_reasoning = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_include_reasoning() != 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 AutofillAiTypeRequest::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillAiTypeRequest*>(&to_msg);
  auto& from = static_cast<const AutofillAiTypeRequest&>(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.AutofillAiTypeRequest)
  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)) {
      if (!from._internal_url().empty()) {
        _this->_internal_set_url(from._internal_url());
      } else {
        if (_this->_impl_.url_.IsDefault()) {
          _this->_internal_set_url("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      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, 0x00000004U)) {
      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 (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.media_ != nullptr);
      if (_this->_impl_.media_ == nullptr) {
        _this->_impl_.media_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.media_);
      } else {
        _this->_impl_.media_->MergeFrom(*from._impl_.media_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.annotated_page_content_ != nullptr);
      if (_this->_impl_.annotated_page_content_ == nullptr) {
        _this->_impl_.annotated_page_content_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.annotated_page_content_);
      } else {
        _this->_impl_.annotated_page_content_->MergeFrom(*from._impl_.annotated_page_content_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_include_reasoning() != 0) {
        _this->_impl_.include_reasoning_ = from._impl_.include_reasoning_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FormMedia::FormMedia(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FormMedia_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.FormMedia)
}
PROTOBUF_NDEBUG_INLINE FormMedia::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::FormMedia& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        screenshots_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::FormMedia,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::FormMedia, _impl_.screenshots_)>()
          , from.screenshots_
        }
     {}

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

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

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

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

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated bytes screenshots = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_screenshots_size(); i < n; ++i) {
      const auto& s = this_._internal_screenshots().Get(i);
      target = stream->WriteBytes(1, s, target);
    }
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FormMedia::ByteSizeLong(const MessageLite& base) {
  const FormMedia& this_ = static_cast<const FormMedia&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FormMedia::ByteSizeLong() const {
  const FormMedia& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.FormMedia)
  ::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 bytes screenshots = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_screenshots().size());
      for (int i = 0, n = this_._internal_screenshots().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
            this_._internal_screenshots().Get(i));
      }
    }
  }
  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 FormMedia::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FormMedia*>(&to_msg);
  auto& from = static_cast<const FormMedia&>(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.FormMedia)
  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_screenshots()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_screenshots());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

AutofillAiTypeResponse::AutofillAiTypeResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, AutofillAiTypeResponse_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.AutofillAiTypeResponse)
}
PROTOBUF_NDEBUG_INLINE AutofillAiTypeResponse::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::AutofillAiTypeResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        field_responses_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::AutofillAiTypeResponse,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::AutofillAiTypeResponse, _impl_.field_responses_)>()
          , from.field_responses_
        }
     {}

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

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

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

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

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .optimization_guide.proto.FieldTypeResponse field_responses = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_field_responses_size());
         i < n; i++) {
      const auto& repfield = this_._internal_field_responses().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.AutofillAiTypeResponse)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AutofillAiTypeResponse::ByteSizeLong(const MessageLite& base) {
  const AutofillAiTypeResponse& this_ = static_cast<const AutofillAiTypeResponse&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AutofillAiTypeResponse::ByteSizeLong() const {
  const AutofillAiTypeResponse& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.AutofillAiTypeResponse)
  ::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.FieldTypeResponse field_responses = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_field_responses_size();
      for (const auto& msg : this_._internal_field_responses()) {
        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 AutofillAiTypeResponse::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillAiTypeResponse*>(&to_msg);
  auto& from = static_cast<const AutofillAiTypeResponse&>(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.AutofillAiTypeResponse)
  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_field_responses()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_field_responses());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

FieldTypeResponse::FieldTypeResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FieldTypeResponse_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.FieldTypeResponse)
}
PROTOBUF_NDEBUG_INLINE FieldTypeResponse::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::FieldTypeResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        all_field_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::FieldTypeResponse,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::FieldTypeResponse, _impl_.all_field_types_)>()
          , from.all_field_types_
        }
        ,
        _all_field_types_cached_byte_size_{0},
        internal_predicted_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::FieldTypeResponse,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::FieldTypeResponse, _impl_.internal_predicted_types_)>()
          , from.internal_predicted_types_
        }
        ,
        formatting_meta_(arena, from.formatting_meta_) {}

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

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FieldTypeResponse_class_data_ =
    FieldTypeResponse::InternalGenerateClassData_(FieldTypeResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FieldTypeResponse::GetClassData() const {
  return FieldTypeResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FieldTypeResponse::GetClassData() const {
  return FieldTypeResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FieldTypeResponse::ParseTableT_
    FieldTypeResponse::_table_ =
        FieldTypeResponse::InternalGenerateParseTable_(FieldTypeResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FieldTypeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.FieldTypeResponse)
  ::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_.all_field_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.internal_predicted_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.formatting_meta_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000038U)) {
    ::memset(&_impl_.field_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.field_index_) -
        reinterpret_cast<char*>(&_impl_.field_type_)) + sizeof(_impl_.field_index_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 field_type = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_field_type(), target);
  }

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

  // float confidence = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_confidence()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          4, this_._internal_confidence(), target);
    }
  }

  // int32 field_index = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_field_index(), target);
  }

  // repeated int32 all_field_types = 7;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._all_field_types_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteInt32Packed(
            7, this_._internal_all_field_types(), byte_size, target);
      }
    }
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FieldTypeResponse::ByteSizeLong(const MessageLite& base) {
  const FieldTypeResponse& this_ = static_cast<const FieldTypeResponse&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FieldTypeResponse::ByteSizeLong() const {
  const FieldTypeResponse& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.FieldTypeResponse)
  ::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)) {
    // repeated int32 all_field_types = 7;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
              this_._internal_all_field_types(), 1,
              this_._impl_._all_field_types_cached_byte_size_);
    }
    // repeated string internal_predicted_types = 8;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_internal_predicted_types().size());
      for (int i = 0, n = this_._internal_internal_predicted_types().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_internal_predicted_types().Get(i));
      }
    }
    // string formatting_meta = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_formatting_meta());
    }
    // int32 field_type = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_field_type());
    }
    // float confidence = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_confidence()) != 0) {
        total_size += 5;
      }
    }
    // int32 field_index = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_field_index());
    }
  }
  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 FieldTypeResponse::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FieldTypeResponse*>(&to_msg);
  auto& from = static_cast<const FieldTypeResponse&>(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.FieldTypeResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_all_field_types()->MergeFrom(from._internal_all_field_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_internal_predicted_types()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_internal_predicted_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_formatting_meta(from._internal_formatting_meta());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.field_type_ = from._impl_.field_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_confidence()) != 0) {
        _this->_impl_.confidence_ = from._impl_.confidence_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.field_index_ = from._impl_.field_index_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void FieldTypeResponse::InternalSwap(FieldTypeResponse* 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_.all_field_types_.InternalSwap(&other->_impl_.all_field_types_);
  _impl_.internal_predicted_types_.InternalSwap(&other->_impl_.internal_predicted_types_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.formatting_meta_, &other->_impl_.formatting_meta_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_index_)
      + sizeof(FieldTypeResponse::_impl_.field_index_)
      - PROTOBUF_FIELD_OFFSET(FieldTypeResponse, _impl_.field_type_)>(
          reinterpret_cast<char*>(&_impl_.field_type_),
          reinterpret_cast<char*>(&other->_impl_.field_type_));
}

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

FormTypeQuality::FormTypeQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FormTypeQuality_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.FormTypeQuality)
}
PROTOBUF_NDEBUG_INLINE FormTypeQuality::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::FormTypeQuality& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FormTypeQuality* 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_event_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.field_event_)
                : nullptr;
  _impl_.key_metrics_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.key_metrics_)
                : nullptr;
  _impl_.user_prompt_metrics_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_prompt_metrics_)
                : nullptr;
  _impl_.user_feedback_ = from._impl_.user_feedback_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FormTypeQuality_class_data_ =
    FormTypeQuality::InternalGenerateClassData_(FormTypeQuality_globals_._default);

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

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .optimization_guide.proto.UserFeedback user_feedback = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_user_feedback() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_user_feedback(), target);
    }
  }

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

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

  // .optimization_guide.proto.AutofillAiUserPromptMetrics user_prompt_metrics = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.user_prompt_metrics_, this_._impl_.user_prompt_metrics_->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.FormTypeQuality)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FormTypeQuality::ByteSizeLong(const MessageLite& base) {
  const FormTypeQuality& this_ = static_cast<const FormTypeQuality&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FormTypeQuality::ByteSizeLong() const {
  const FormTypeQuality& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.FormTypeQuality)
  ::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.AutofillAiFieldEvent field_event = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.field_event_);
    }
    // .optimization_guide.proto.AutofillAiKeyMetrics key_metrics = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.key_metrics_);
    }
    // .optimization_guide.proto.AutofillAiUserPromptMetrics user_prompt_metrics = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.user_prompt_metrics_);
    }
    // .optimization_guide.proto.UserFeedback user_feedback = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_user_feedback() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_user_feedback());
      }
    }
  }
  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 FormTypeQuality::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FormTypeQuality*>(&to_msg);
  auto& from = static_cast<const FormTypeQuality&>(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.FormTypeQuality)
  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_.field_event_ != nullptr);
      if (_this->_impl_.field_event_ == nullptr) {
        _this->_impl_.field_event_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.field_event_);
      } else {
        _this->_impl_.field_event_->MergeFrom(*from._impl_.field_event_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.key_metrics_ != nullptr);
      if (_this->_impl_.key_metrics_ == nullptr) {
        _this->_impl_.key_metrics_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.key_metrics_);
      } else {
        _this->_impl_.key_metrics_->MergeFrom(*from._impl_.key_metrics_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.user_prompt_metrics_ != nullptr);
      if (_this->_impl_.user_prompt_metrics_ == nullptr) {
        _this->_impl_.user_prompt_metrics_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_prompt_metrics_);
      } else {
        _this->_impl_.user_prompt_metrics_->MergeFrom(*from._impl_.user_prompt_metrics_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_user_feedback() != 0) {
        _this->_impl_.user_feedback_ = from._impl_.user_feedback_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void FormTypeQuality::InternalSwap(FormTypeQuality* 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(FormTypeQuality, _impl_.user_feedback_)
      + sizeof(FormTypeQuality::_impl_.user_feedback_)
      - PROTOBUF_FIELD_OFFSET(FormTypeQuality, _impl_.field_event_)>(
          reinterpret_cast<char*>(&_impl_.field_event_),
          reinterpret_cast<char*>(&other->_impl_.field_event_));
}

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

AutofillAiFieldEvent::AutofillAiFieldEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, AutofillAiFieldEvent_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.AutofillAiFieldEvent)
}
PROTOBUF_NDEBUG_INLINE AutofillAiFieldEvent::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::AutofillAiFieldEvent& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        field_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::AutofillAiFieldEvent,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::AutofillAiFieldEvent, _impl_.field_types_)>()
          , from.field_types_
        }
        ,
        _field_types_cached_byte_size_{0},
        ai_field_types_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::AutofillAiFieldEvent,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::AutofillAiFieldEvent, _impl_.ai_field_types_)>()
          , from.ai_field_types_
        }
        ,
        _ai_field_types_cached_byte_size_{0},
        domain_(arena, from.domain_) {}

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

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite AutofillAiFieldEvent_class_data_ =
    AutofillAiFieldEvent::InternalGenerateClassData_(AutofillAiFieldEvent_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiFieldEvent::GetClassData() const {
  return AutofillAiFieldEvent_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiFieldEvent::GetClassData() const {
  return AutofillAiFieldEvent_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AutofillAiFieldEvent::ParseTableT_
    AutofillAiFieldEvent::_table_ =
        AutofillAiFieldEvent::InternalGenerateParseTable_(AutofillAiFieldEvent_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AutofillAiFieldEvent::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.AutofillAiFieldEvent)
  ::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_.field_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.ai_field_types_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.domain_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f8U)) {
    ::memset(&_impl_.ai_field_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.field_type_) -
        reinterpret_cast<char*>(&_impl_.ai_field_type_)) + sizeof(_impl_.field_type_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    ::memset(&_impl_.format_string_source_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.entity_type_) -
        reinterpret_cast<char*>(&_impl_.format_string_source_)) + sizeof(_impl_.entity_type_));
  }
  _impl_.storage_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // int32 ai_field_type = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_ai_field_type(), target);
  }

  // .optimization_guide.proto.AutofillAiFieldEventType event_type = 2 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_event_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_event_type(), target);
    }
  }

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

  // uint64 field_signature = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_field_signature() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          4, this_._internal_field_signature(), target);
    }
  }

  // int32 field_type = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_field_type(), target);
  }

  // .optimization_guide.proto.FormatStringSource format_string_source = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_format_string_source() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_format_string_source(), target);
    }
  }

  // int32 form_session_event_order = 7 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    if (this_._internal_form_session_event_order() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
              stream, this_._internal_form_session_event_order(), target);
    }
  }

  // uint64 form_session_identifier = 8 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    if (this_._internal_form_session_identifier() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          8, this_._internal_form_session_identifier(), target);
    }
  }

  // uint64 form_signature = 9 [features = {
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    if (this_._internal_form_signature() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          9, this_._internal_form_signature(), target);
    }
  }

  // uint32 field_rank = 10 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    if (this_._internal_field_rank() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          10, this_._internal_field_rank(), target);
    }
  }

  // uint32 field_rank_in_signature_group = 11 [features = {
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    if (this_._internal_field_rank_in_signature_group() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          11, this_._internal_field_rank_in_signature_group(), target);
    }
  }

  // .optimization_guide.proto.FormControlType form_control_type = 12 [features = {
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    if (this_._internal_form_control_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          12, this_._internal_form_control_type(), target);
    }
  }

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

  // .optimization_guide.proto.AutofillAiEntityType entity_type = 14 [features = {
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    if (this_._internal_entity_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          14, this_._internal_entity_type(), target);
    }
  }

  // repeated int32 field_types = 15;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._field_types_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteInt32Packed(
            15, this_._internal_field_types(), byte_size, target);
      }
    }
  }

  // repeated int32 ai_field_types = 16;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    {
      int byte_size = this_._impl_._ai_field_types_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteInt32Packed(
            16, this_._internal_ai_field_types(), byte_size, target);
      }
    }
  }

  // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 17 [features = {
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    if (this_._internal_storage_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          17, this_._internal_storage_type(), 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.AutofillAiFieldEvent)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AutofillAiFieldEvent::ByteSizeLong(const MessageLite& base) {
  const AutofillAiFieldEvent& this_ = static_cast<const AutofillAiFieldEvent&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AutofillAiFieldEvent::ByteSizeLong() const {
  const AutofillAiFieldEvent& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.AutofillAiFieldEvent)
  ::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 int32 field_types = 15;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
              this_._internal_field_types(), 1,
              this_._impl_._field_types_cached_byte_size_);
    }
    // repeated int32 ai_field_types = 16;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          ::_pbi::WireFormatLite::Int32SizeWithPackedTagSize(
              this_._internal_ai_field_types(), 2,
              this_._impl_._ai_field_types_cached_byte_size_);
    }
    // string domain = 13 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_domain().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_domain());
      }
    }
    // int32 ai_field_type = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_ai_field_type());
    }
    // .optimization_guide.proto.AutofillAiFieldEventType event_type = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_event_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_event_type());
      }
    }
    // uint64 field_session_identifier = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_field_session_identifier() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_field_session_identifier());
      }
    }
    // uint64 field_signature = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_field_signature() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_field_signature());
      }
    }
    // int32 field_type = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_field_type());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // .optimization_guide.proto.FormatStringSource format_string_source = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_format_string_source() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_format_string_source());
      }
    }
    // uint64 form_session_identifier = 8 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (this_._internal_form_session_identifier() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_session_identifier());
      }
    }
    // int32 form_session_event_order = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (this_._internal_form_session_event_order() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_form_session_event_order());
      }
    }
    // uint32 field_rank = 10 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (this_._internal_field_rank() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_field_rank());
      }
    }
    // uint64 form_signature = 9 [features = {
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      if (this_._internal_form_signature() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_signature());
      }
    }
    // uint32 field_rank_in_signature_group = 11 [features = {
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (this_._internal_field_rank_in_signature_group() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_field_rank_in_signature_group());
      }
    }
    // .optimization_guide.proto.FormControlType form_control_type = 12 [features = {
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      if (this_._internal_form_control_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_form_control_type());
      }
    }
    // .optimization_guide.proto.AutofillAiEntityType entity_type = 14 [features = {
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      if (this_._internal_entity_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_entity_type());
      }
    }
  }
   {
    // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 17 [features = {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      if (this_._internal_storage_type() != 0) {
        total_size += 2 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_storage_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 AutofillAiFieldEvent::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillAiFieldEvent*>(&to_msg);
  auto& from = static_cast<const AutofillAiFieldEvent&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.AutofillAiFieldEvent)
  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_field_types()->MergeFrom(from._internal_field_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_ai_field_types()->MergeFrom(from._internal_ai_field_types());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_domain().empty()) {
        _this->_internal_set_domain(from._internal_domain());
      } else {
        if (_this->_impl_.domain_.IsDefault()) {
          _this->_internal_set_domain("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.ai_field_type_ = from._impl_.ai_field_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_event_type() != 0) {
        _this->_impl_.event_type_ = from._impl_.event_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_field_session_identifier() != 0) {
        _this->_impl_.field_session_identifier_ = from._impl_.field_session_identifier_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_field_signature() != 0) {
        _this->_impl_.field_signature_ = from._impl_.field_signature_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.field_type_ = from._impl_.field_type_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (from._internal_format_string_source() != 0) {
        _this->_impl_.format_string_source_ = from._impl_.format_string_source_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (from._internal_form_session_identifier() != 0) {
        _this->_impl_.form_session_identifier_ = from._impl_.form_session_identifier_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (from._internal_form_session_event_order() != 0) {
        _this->_impl_.form_session_event_order_ = from._impl_.form_session_event_order_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (from._internal_field_rank() != 0) {
        _this->_impl_.field_rank_ = from._impl_.field_rank_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      if (from._internal_form_signature() != 0) {
        _this->_impl_.form_signature_ = from._impl_.form_signature_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (from._internal_field_rank_in_signature_group() != 0) {
        _this->_impl_.field_rank_in_signature_group_ = from._impl_.field_rank_in_signature_group_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      if (from._internal_form_control_type() != 0) {
        _this->_impl_.form_control_type_ = from._impl_.form_control_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      if (from._internal_entity_type() != 0) {
        _this->_impl_.entity_type_ = from._impl_.entity_type_;
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    if (from._internal_storage_type() != 0) {
      _this->_impl_.storage_type_ = from._impl_.storage_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void AutofillAiFieldEvent::InternalSwap(AutofillAiFieldEvent* 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_.field_types_.InternalSwap(&other->_impl_.field_types_);
  _impl_.ai_field_types_.InternalSwap(&other->_impl_.ai_field_types_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.domain_, &other->_impl_.domain_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.storage_type_)
      + sizeof(AutofillAiFieldEvent::_impl_.storage_type_)
      - PROTOBUF_FIELD_OFFSET(AutofillAiFieldEvent, _impl_.ai_field_type_)>(
          reinterpret_cast<char*>(&_impl_.ai_field_type_),
          reinterpret_cast<char*>(&other->_impl_.ai_field_type_));
}

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

AutofillAiKeyMetrics::AutofillAiKeyMetrics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, AutofillAiKeyMetrics_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.AutofillAiKeyMetrics)
}
PROTOBUF_NDEBUG_INLINE AutofillAiKeyMetrics::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::AutofillAiKeyMetrics& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        domain_(arena, from.domain_) {}

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

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite AutofillAiKeyMetrics_class_data_ =
    AutofillAiKeyMetrics::InternalGenerateClassData_(AutofillAiKeyMetrics_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiKeyMetrics::GetClassData() const {
  return AutofillAiKeyMetrics_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiKeyMetrics::GetClassData() const {
  return AutofillAiKeyMetrics_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AutofillAiKeyMetrics::ParseTableT_
    AutofillAiKeyMetrics::_table_ =
        AutofillAiKeyMetrics::InternalGenerateParseTable_(AutofillAiKeyMetrics_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AutofillAiKeyMetrics::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.AutofillAiKeyMetrics)
  ::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_.domain_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000feU)) {
    ::memset(&_impl_.filling_acceptance_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.form_signature_) -
        reinterpret_cast<char*>(&_impl_.filling_acceptance_)) + sizeof(_impl_.form_signature_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    ::memset(&_impl_.autofill_ai_filled_field_count_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.perfect_filling_) -
        reinterpret_cast<char*>(&_impl_.autofill_ai_filled_field_count_)) + sizeof(_impl_.perfect_filling_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

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

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

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

  // uint64 form_session_identifier = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_form_session_identifier() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          5, this_._internal_form_session_identifier(), target);
    }
  }

  // uint64 form_signature = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (this_._internal_form_signature() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          6, this_._internal_form_signature(), target);
    }
  }

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

  // int32 autofill_filled_field_count = 8 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_autofill_filled_field_count() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
              stream, this_._internal_autofill_filled_field_count(), target);
    }
  }

  // int32 autofill_ai_filled_field_count = 9 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_autofill_ai_filled_field_count() != 0) {
      target =
          ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
              stream, this_._internal_autofill_ai_filled_field_count(), target);
    }
  }

  // .optimization_guide.proto.AutofillAiEntityType entity_type = 10 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    if (this_._internal_entity_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          10, this_._internal_entity_type(), target);
    }
  }

  // bool perfect_filling = 11 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_perfect_filling(), 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.AutofillAiKeyMetrics)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000040aU & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000f5U)) {
    // string domain = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_domain().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_domain());
      }
    }
    // bool filling_assistance = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_filling_assistance() != 0) {
        total_size += 2;
      }
    }
    // bool filling_readiness = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_filling_readiness() != 0) {
        total_size += 2;
      }
    }
    // int32 autofill_filled_field_count = 8 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_autofill_filled_field_count() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_autofill_filled_field_count());
      }
    }
    // uint64 form_session_identifier = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_form_session_identifier() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_session_identifier());
      }
    }
    // uint64 form_signature = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (this_._internal_form_signature() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_signature());
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    // int32 autofill_ai_filled_field_count = 9 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_autofill_ai_filled_field_count() != 0) {
        total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
            this_._internal_autofill_ai_filled_field_count());
      }
    }
    // .optimization_guide.proto.AutofillAiEntityType entity_type = 10 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (this_._internal_entity_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_entity_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 AutofillAiKeyMetrics::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillAiKeyMetrics*>(&to_msg);
  auto& from = static_cast<const AutofillAiKeyMetrics&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.AutofillAiKeyMetrics)
  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)) {
      if (!from._internal_domain().empty()) {
        _this->_internal_set_domain(from._internal_domain());
      } else {
        if (_this->_impl_.domain_.IsDefault()) {
          _this->_internal_set_domain("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.filling_acceptance_ = from._impl_.filling_acceptance_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_filling_assistance() != 0) {
        _this->_impl_.filling_assistance_ = from._impl_.filling_assistance_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.filling_correctness_ = from._impl_.filling_correctness_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_filling_readiness() != 0) {
        _this->_impl_.filling_readiness_ = from._impl_.filling_readiness_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_autofill_filled_field_count() != 0) {
        _this->_impl_.autofill_filled_field_count_ = from._impl_.autofill_filled_field_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_form_session_identifier() != 0) {
        _this->_impl_.form_session_identifier_ = from._impl_.form_session_identifier_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (from._internal_form_signature() != 0) {
        _this->_impl_.form_signature_ = from._impl_.form_signature_;
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (from._internal_autofill_ai_filled_field_count() != 0) {
        _this->_impl_.autofill_ai_filled_field_count_ = from._impl_.autofill_ai_filled_field_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (from._internal_entity_type() != 0) {
        _this->_impl_.entity_type_ = from._impl_.entity_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.perfect_filling_ = from._impl_.perfect_filling_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

AutofillAiUserPromptMetrics::AutofillAiUserPromptMetrics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, AutofillAiUserPromptMetrics_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.AutofillAiUserPromptMetrics)
}
PROTOBUF_NDEBUG_INLINE AutofillAiUserPromptMetrics::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::AutofillAiUserPromptMetrics& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        domain_(arena, from.domain_) {}

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

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite AutofillAiUserPromptMetrics_class_data_ =
    AutofillAiUserPromptMetrics::InternalGenerateClassData_(AutofillAiUserPromptMetrics_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiUserPromptMetrics::GetClassData() const {
  return AutofillAiUserPromptMetrics_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AutofillAiUserPromptMetrics::GetClassData() const {
  return AutofillAiUserPromptMetrics_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AutofillAiUserPromptMetrics::ParseTableT_
    AutofillAiUserPromptMetrics::_table_ =
        AutofillAiUserPromptMetrics::InternalGenerateParseTable_(AutofillAiUserPromptMetrics_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AutofillAiUserPromptMetrics::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.AutofillAiUserPromptMetrics)
  ::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_.domain_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007eU)) {
    ::memset(&_impl_.form_session_identifier_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.form_signature_) -
        reinterpret_cast<char*>(&_impl_.form_session_identifier_)) + sizeof(_impl_.form_signature_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint64 form_session_identifier = 1 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_form_session_identifier() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          1, this_._internal_form_session_identifier(), target);
    }
  }

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

  // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 3 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_storage_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          3, this_._internal_storage_type(), target);
    }
  }

  // .optimization_guide.proto.AutofillAiPromptType prompt_type = 4 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_prompt_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_prompt_type(), target);
    }
  }

  // .optimization_guide.proto.AutofillAiEntityType entity_type = 5 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_entity_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          5, this_._internal_entity_type(), target);
    }
  }

  // .optimization_guide.proto.AutofillAiPromptUserDecision result = 6 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_result() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          6, this_._internal_result(), target);
    }
  }

  // uint64 form_signature = 7 [features = {
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_form_signature() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          7, this_._internal_form_signature(), 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.AutofillAiUserPromptMetrics)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AutofillAiUserPromptMetrics::ByteSizeLong(const MessageLite& base) {
  const AutofillAiUserPromptMetrics& this_ = static_cast<const AutofillAiUserPromptMetrics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AutofillAiUserPromptMetrics::ByteSizeLong() const {
  const AutofillAiUserPromptMetrics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.AutofillAiUserPromptMetrics)
  ::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 domain = 2 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_domain().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_domain());
      }
    }
    // uint64 form_session_identifier = 1 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_form_session_identifier() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_session_identifier());
      }
    }
    // .optimization_guide.proto.AutofillAiEntityStorageType storage_type = 3 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_storage_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_storage_type());
      }
    }
    // .optimization_guide.proto.AutofillAiPromptType prompt_type = 4 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_prompt_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_prompt_type());
      }
    }
    // .optimization_guide.proto.AutofillAiEntityType entity_type = 5 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_entity_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_entity_type());
      }
    }
    // .optimization_guide.proto.AutofillAiPromptUserDecision result = 6 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_result() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_result());
      }
    }
    // uint64 form_signature = 7 [features = {
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_form_signature() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_form_signature());
      }
    }
  }
  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 AutofillAiUserPromptMetrics::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<AutofillAiUserPromptMetrics*>(&to_msg);
  auto& from = static_cast<const AutofillAiUserPromptMetrics&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.AutofillAiUserPromptMetrics)
  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_domain().empty()) {
        _this->_internal_set_domain(from._internal_domain());
      } else {
        if (_this->_impl_.domain_.IsDefault()) {
          _this->_internal_set_domain("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_form_session_identifier() != 0) {
        _this->_impl_.form_session_identifier_ = from._impl_.form_session_identifier_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_storage_type() != 0) {
        _this->_impl_.storage_type_ = from._impl_.storage_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_prompt_type() != 0) {
        _this->_impl_.prompt_type_ = from._impl_.prompt_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_entity_type() != 0) {
        _this->_impl_.entity_type_ = from._impl_.entity_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_result() != 0) {
        _this->_impl_.result_ = from._impl_.result_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_form_signature() != 0) {
        _this->_impl_.form_signature_ = from._impl_.form_signature_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

// @@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"
