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

#include "third_party/metrics_proto/chrome_user_metrics_extension.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 metrics {
class ChromeUserMetricsExtension_RealLocalTime::_Internal {
 public:
  using HasBits = decltype(::std::declval<ChromeUserMetricsExtension_RealLocalTime>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_._has_bits_);
};

constexpr ChromeUserMetricsExtension_RealLocalTime::ParseTableT_ ChromeUserMetricsExtension_RealLocalTime::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::metrics::ChromeUserMetricsExtension_RealLocalTime>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .metrics.ChromeUserMetricsExtension.RealLocalTime.TimeSource time_source = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 1, 2,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_source_)}},
      // int64 time_sec = 2;
      {::_pbi::TcParser::FastV64S1,
       {16, 0, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_sec_)}},
      // int32 time_zone_offset_from_gmt_sec = 3;
      {::_pbi::TcParser::FastV32S1,
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_zone_offset_from_gmt_sec_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .metrics.ChromeUserMetricsExtension.RealLocalTime.TimeSource time_source = 1;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_source_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // int64 time_sec = 2;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_sec_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // int32 time_zone_offset_from_gmt_sec = 3;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension_RealLocalTime, _impl_.time_zone_offset_from_gmt_sec_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    {{
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr ChromeUserMetricsExtension_RealLocalTime::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        time_sec_{::int64_t{0}},
        time_source_{static_cast< ::metrics::ChromeUserMetricsExtension_RealLocalTime_TimeSource >(0)},
        time_zone_offset_from_gmt_sec_{0} {}

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

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

constexpr ChromeUserMetricsExtension::ParseTableT_ ChromeUserMetricsExtension::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_._has_bits_),
      0, // no _extensions_
      30, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      3223466432,  // skipmap
      offsetof(ParseTableT_, field_entries),
      23,  // num_field_entries
      17,  // 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<::metrics::ChromeUserMetricsExtension>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // fixed64 client_id = 1;
      {::_pbi::TcParser::FastF64S1,
       {9, 16, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.client_id_)}},
      // int32 session_id = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 17, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.session_id_)}},
      // .metrics.SystemProfileProto system_profile = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 8, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.system_profile_)}},
      // repeated .metrics.UserActionEventProto user_action_event = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 0, 1,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_action_event_)}},
      // repeated .metrics.OmniboxEventProto omnibox_event = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 1, 2,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.omnibox_event_)}},
      // repeated .metrics.HistogramEventProto histogram_event = 6;
      {::_pbi::TcParser::FastMtR1,
       {50, 2, 3,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.histogram_event_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // int32 product = 10 [default = 0];
      {::_pbi::TcParser::FastV32S1,
       {80, 18, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.product_)}},
      // repeated .metrics.SampledProfile sampled_profile = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 3, 4,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.sampled_profile_)}},
      // .metrics.CastLogsProto cast_logs = 12;
      {::_pbi::TcParser::FastMtS1,
       {98, 9, 5,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.cast_logs_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .metrics.TranslateEventProto translate_event = 15;
      {::_pbi::TcParser::FastMtR1,
       {122, 4, 6,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.translate_event_)}},
      // repeated .metrics.PrinterEventProto printer_event = 16;
      {::_pbi::TcParser::FastMtR2,
       {386, 5, 7,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.printer_event_)}},
      // .metrics.ReportingInfo reporting_info = 17;
      {::_pbi::TcParser::FastMtS2,
       {394, 10, 8,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.reporting_info_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .metrics.TraceLog trace_log = 19;
      {::_pbi::TcParser::FastMtR2,
       {410, 6, 9,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.trace_log_)}},
      // repeated .metrics.ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;
      {::_pbi::TcParser::FastMtR2,
       {418, 7, 10,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.chrome_os_app_list_launch_event_)}},
      // .metrics.UserDemographicsProto user_demographics = 21;
      {::_pbi::TcParser::FastMtS2,
       {426, 11, 11,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_demographics_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // .metrics.StructuredDataProto structured_data = 23;
      {::_pbi::TcParser::FastMtS2,
       {442, 12, 12,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.structured_data_)}},
      // fixed64 user_id = 24;
      {::_pbi::TcParser::FastF64S2,
       {449, 19, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_id_)}},
      // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_created = 25;
      {::_pbi::TcParser::FastMtS2,
       {458, 13, 13,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.time_log_created_)}},
      // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_closed = 26;
      {::_pbi::TcParser::FastMtS2,
       {466, 14, 14,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.time_log_closed_)}},
      // .metrics.CustomTabSessionProto custom_tab_session = 27;
      {::_pbi::TcParser::FastMtS2,
       {474, 15, 15,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.custom_tab_session_)}},
      // int64 record_id = 28;
      {::_pbi::TcParser::FastV64S2,
       {480, 20, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.record_id_)}},
      // int64 finalized_record_id = 29;
      {::_pbi::TcParser::FastV64S2,
       {488, 21, 0,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.finalized_record_id_)}},
      // .metrics.ChromeUserMetricsExtension.LogType log_type = 30;
      {::_pbi::TcParser::FastEr0S2,
       {496, 22, 1,
        PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.log_type_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // fixed64 client_id = 1;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.client_id_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // int32 session_id = 2;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.session_id_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // .metrics.SystemProfileProto system_profile = 3;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.system_profile_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.UserActionEventProto user_action_event = 4;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_action_event_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.OmniboxEventProto omnibox_event = 5;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.omnibox_event_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.HistogramEventProto histogram_event = 6;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.histogram_event_), _Internal::kHasBitsOffset + 2, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // int32 product = 10 [default = 0];
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.product_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // repeated .metrics.SampledProfile sampled_profile = 11;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.sampled_profile_), _Internal::kHasBitsOffset + 3, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.CastLogsProto cast_logs = 12;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.cast_logs_), _Internal::kHasBitsOffset + 9, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.TranslateEventProto translate_event = 15;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.translate_event_), _Internal::kHasBitsOffset + 4, 6, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.PrinterEventProto printer_event = 16;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.printer_event_), _Internal::kHasBitsOffset + 5, 7, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.ReportingInfo reporting_info = 17;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.reporting_info_), _Internal::kHasBitsOffset + 10, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.TraceLog trace_log = 19;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.trace_log_), _Internal::kHasBitsOffset + 6, 9, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .metrics.ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.chrome_os_app_list_launch_event_), _Internal::kHasBitsOffset + 7, 10, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.UserDemographicsProto user_demographics = 21;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_demographics_), _Internal::kHasBitsOffset + 11, 11, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.StructuredDataProto structured_data = 23;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.structured_data_), _Internal::kHasBitsOffset + 12, 12, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // fixed64 user_id = 24;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.user_id_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_created = 25;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.time_log_created_), _Internal::kHasBitsOffset + 13, 13, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_closed = 26;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.time_log_closed_), _Internal::kHasBitsOffset + 14, 14, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .metrics.CustomTabSessionProto custom_tab_session = 27;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.custom_tab_session_), _Internal::kHasBitsOffset + 15, 15, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // int64 record_id = 28;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.record_id_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // int64 finalized_record_id = 29;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.finalized_record_id_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // .metrics.ChromeUserMetricsExtension.LogType log_type = 30;
      {PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.log_type_), _Internal::kHasBitsOffset + 22, 16, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::SystemProfileProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::SystemProfileProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::UserActionEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::UserActionEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::OmniboxEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::OmniboxEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::HistogramEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::HistogramEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::SampledProfile>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::SampledProfile_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::CastLogsProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::CastLogsProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::TranslateEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::TranslateEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::PrinterEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::PrinterEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::ReportingInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::ReportingInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::TraceLog>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::TraceLog_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::ChromeOSAppListLaunchEventProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::ChromeOSAppListLaunchEventProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::UserDemographicsProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::UserDemographicsProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::StructuredDataProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::StructuredDataProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::ChromeUserMetricsExtension_RealLocalTime>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::ChromeUserMetricsExtension_RealLocalTime_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::ChromeUserMetricsExtension_RealLocalTime>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::ChromeUserMetricsExtension_RealLocalTime_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::metrics::CustomTabSessionProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::metrics::CustomTabSessionProto_globals_},
        #endif
        {0, 1},
    }},
    {{
    }},
  };
}


inline constexpr ChromeUserMetricsExtension::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        user_action_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.user_action_event_)>()
         }
        ,
        omnibox_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.omnibox_event_)>()
         }
        ,
        histogram_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.histogram_event_)>()
         }
        ,
        sampled_profile_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.sampled_profile_)>()
         }
        ,
        translate_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.translate_event_)>()
         }
        ,
        printer_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.printer_event_)>()
         }
        ,
        trace_log_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.trace_log_)>()
         }
        ,
        chrome_os_app_list_launch_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.chrome_os_app_list_launch_event_)>()
         }
        ,
        system_profile_{nullptr},
        cast_logs_{nullptr},
        reporting_info_{nullptr},
        user_demographics_{nullptr},
        structured_data_{nullptr},
        time_log_created_{nullptr},
        time_log_closed_{nullptr},
        custom_tab_session_{nullptr},
        client_id_{::uint64_t{0u}},
        session_id_{0},
        product_{0},
        user_id_{::uint64_t{0u}},
        record_id_{::int64_t{0}},
        finalized_record_id_{::int64_t{0}},
        log_type_{static_cast< ::metrics::ChromeUserMetricsExtension_LogType >(0)} {}

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ChromeUserMetricsExtensionGlobalsTypeInternal ChromeUserMetricsExtension_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ChromeUserMetricsExtension_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ChromeUserMetricsExtension_globals_.GetClassData();
#else
  return ChromeUserMetricsExtension_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace metrics
namespace metrics {
PROTOBUF_CONSTINIT const uint32_t ChromeUserMetricsExtension_RealLocalTime_TimeSource_internal_data_[] = {
    196608u, 0u, };
static const char ChromeUserMetricsExtension_RealLocalTime_TimeSource_names[] = {
    "CLIENT_CLOCK"
    "NETWORK_TIME_CLOCK"
    "UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries[] = {
    {{&ChromeUserMetricsExtension_RealLocalTime_TimeSource_names[0], 12}, 1},
    {{&ChromeUserMetricsExtension_RealLocalTime_TimeSource_names[12], 18}, 2},
    {{&ChromeUserMetricsExtension_RealLocalTime_TimeSource_names[30], 11}, 0},
};

static const int ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries_by_number[] = {
    2,  // 0 -> UNSPECIFIED
    0,  // 1 -> CLIENT_CLOCK
    1,  // 2 -> NETWORK_TIME_CLOCK
};

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

const ::std::string& ChromeUserMetricsExtension_RealLocalTime_TimeSource_Name(ChromeUserMetricsExtension_RealLocalTime_TimeSource value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries, ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries_by_number, 3,
      ChromeUserMetricsExtension_RealLocalTime_TimeSource_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries,
                                  ChromeUserMetricsExtension_RealLocalTime_TimeSource_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ChromeUserMetricsExtension_RealLocalTime_TimeSource_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ChromeUserMetricsExtension_Product_internal_data_[] = {
    65536u, 64u, 17301504u, 8388612u, };
static const char ChromeUserMetricsExtension_Product_names[] = {
    "ANDROID_WEBLAYER"
    "ANDROID_WEBVIEW"
    "CAST"
    "CAST_ASSISTANT"
    "CHROME"
};

static const ::google::protobuf::internal::EnumEntry ChromeUserMetricsExtension_Product_entries[] = {
    {{&ChromeUserMetricsExtension_Product_names[0], 16}, 56},
    {{&ChromeUserMetricsExtension_Product_names[16], 15}, 20},
    {{&ChromeUserMetricsExtension_Product_names[31], 4}, 35},
    {{&ChromeUserMetricsExtension_Product_names[35], 14}, 25},
    {{&ChromeUserMetricsExtension_Product_names[49], 6}, 0},
};

static const int ChromeUserMetricsExtension_Product_entries_by_number[] = {
    4,  // 0 -> CHROME
    1,  // 20 -> ANDROID_WEBVIEW
    3,  // 25 -> CAST_ASSISTANT
    2,  // 35 -> CAST
    0,  // 56 -> ANDROID_WEBLAYER
};

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

const ::std::string& ChromeUserMetricsExtension_Product_Name(ChromeUserMetricsExtension_Product value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ChromeUserMetricsExtension_Product_entries, ChromeUserMetricsExtension_Product_entries_by_number, 5,
      ChromeUserMetricsExtension_Product_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ChromeUserMetricsExtension_Product_entries,
                                  ChromeUserMetricsExtension_Product_entries_by_number,
                                  5, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ChromeUserMetricsExtension_Product_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ChromeUserMetricsExtension_LogType_internal_data_[] = {
    131072u, 0u, };
static const char ChromeUserMetricsExtension_LogType_names[] = {
    "OUT_OF_BAND"
    "UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry ChromeUserMetricsExtension_LogType_entries[] = {
    {{&ChromeUserMetricsExtension_LogType_names[0], 11}, 1},
    {{&ChromeUserMetricsExtension_LogType_names[11], 7}, 0},
};

static const int ChromeUserMetricsExtension_LogType_entries_by_number[] = {
    1,  // 0 -> UNKNOWN
    0,  // 1 -> OUT_OF_BAND
};

bool ChromeUserMetricsExtension_LogType_Parse(::absl::string_view name,
                                  ChromeUserMetricsExtension_LogType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ChromeUserMetricsExtension_LogType_entries, 2, name, &int_value);
  if (success) {
    *value = static_cast<ChromeUserMetricsExtension_LogType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ChromeUserMetricsExtension_LogType_strings[2] = {};

const ::std::string& ChromeUserMetricsExtension_LogType_Name(ChromeUserMetricsExtension_LogType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ChromeUserMetricsExtension_LogType_entries, ChromeUserMetricsExtension_LogType_entries_by_number, 2,
      ChromeUserMetricsExtension_LogType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ChromeUserMetricsExtension_LogType_entries,
                                  ChromeUserMetricsExtension_LogType_entries_by_number,
                                  2, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ChromeUserMetricsExtension_LogType_strings[idx].get();
}
// ===================================================================

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

inline void ChromeUserMetricsExtension_RealLocalTime::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, time_sec_),
           0,
           offsetof(Impl_, time_zone_offset_from_gmt_sec_) -
               offsetof(Impl_, time_sec_) +
               sizeof(Impl_::time_zone_offset_from_gmt_sec_));
}
ChromeUserMetricsExtension_RealLocalTime::~ChromeUserMetricsExtension_RealLocalTime() {
  // @@protoc_insertion_point(destructor:metrics.ChromeUserMetricsExtension.RealLocalTime)
  SharedDtor(*this);
}
inline void ChromeUserMetricsExtension_RealLocalTime::SharedDtor(MessageLite& self) {
  ChromeUserMetricsExtension_RealLocalTime& this_ = static_cast<ChromeUserMetricsExtension_RealLocalTime&>(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 ChromeUserMetricsExtension_RealLocalTime_class_data_ =
    ChromeUserMetricsExtension_RealLocalTime::InternalGenerateClassData_(ChromeUserMetricsExtension_RealLocalTime_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeUserMetricsExtension_RealLocalTime::GetClassData() const {
  return ChromeUserMetricsExtension_RealLocalTime_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ChromeUserMetricsExtension_RealLocalTime::GetClassData() const {
  return ChromeUserMetricsExtension_RealLocalTime_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ChromeUserMetricsExtension_RealLocalTime::ParseTableT_
    ChromeUserMetricsExtension_RealLocalTime::_table_ =
        ChromeUserMetricsExtension_RealLocalTime::InternalGenerateParseTable_(ChromeUserMetricsExtension_RealLocalTime_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ChromeUserMetricsExtension_RealLocalTime::Clear() {
// @@protoc_insertion_point(message_clear_start:metrics.ChromeUserMetricsExtension.RealLocalTime)
  ::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)) {
    ::memset(&_impl_.time_sec_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.time_zone_offset_from_gmt_sec_) -
        reinterpret_cast<char*>(&_impl_.time_sec_)) + sizeof(_impl_.time_zone_offset_from_gmt_sec_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .metrics.ChromeUserMetricsExtension.RealLocalTime.TimeSource time_source = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_time_source(), target);
  }

  // int64 time_sec = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<2>(
            stream, this_._internal_time_sec(), target);
  }

  // int32 time_zone_offset_from_gmt_sec = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_time_zone_offset_from_gmt_sec(), 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:metrics.ChromeUserMetricsExtension.RealLocalTime)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // int64 time_sec = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_time_sec());
    }
    // .metrics.ChromeUserMetricsExtension.RealLocalTime.TimeSource time_source = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_time_source());
    }
    // int32 time_zone_offset_from_gmt_sec = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_time_zone_offset_from_gmt_sec());
    }
  }
  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 ChromeUserMetricsExtension_RealLocalTime::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ChromeUserMetricsExtension_RealLocalTime*>(&to_msg);
  auto& from = static_cast<const ChromeUserMetricsExtension_RealLocalTime&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:metrics.ChromeUserMetricsExtension.RealLocalTime)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.time_sec_ = from._impl_.time_sec_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.time_source_ = from._impl_.time_source_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.time_zone_offset_from_gmt_sec_ = from._impl_.time_zone_offset_from_gmt_sec_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ChromeUserMetricsExtension_RealLocalTime::CopyFrom(const ChromeUserMetricsExtension_RealLocalTime& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:metrics.ChromeUserMetricsExtension.RealLocalTime)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


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

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

void ChromeUserMetricsExtension::clear_system_profile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.system_profile_ != nullptr) _impl_.system_profile_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
void ChromeUserMetricsExtension::clear_user_demographics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.user_demographics_ != nullptr) _impl_.user_demographics_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
void ChromeUserMetricsExtension::clear_user_action_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_action_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void ChromeUserMetricsExtension::clear_omnibox_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.omnibox_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void ChromeUserMetricsExtension::clear_histogram_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.histogram_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
void ChromeUserMetricsExtension::clear_translate_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.translate_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
void ChromeUserMetricsExtension::clear_printer_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.printer_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
void ChromeUserMetricsExtension::clear_chrome_os_app_list_launch_event() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.chrome_os_app_list_launch_event_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
void ChromeUserMetricsExtension::clear_structured_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.structured_data_ != nullptr) _impl_.structured_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
void ChromeUserMetricsExtension::clear_sampled_profile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sampled_profile_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
void ChromeUserMetricsExtension::clear_cast_logs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cast_logs_ != nullptr) _impl_.cast_logs_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
void ChromeUserMetricsExtension::clear_reporting_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.reporting_info_ != nullptr) _impl_.reporting_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
void ChromeUserMetricsExtension::clear_trace_log() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.trace_log_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
void ChromeUserMetricsExtension::clear_custom_tab_session() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.custom_tab_session_ != nullptr) _impl_.custom_tab_session_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
ChromeUserMetricsExtension::ChromeUserMetricsExtension(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ChromeUserMetricsExtension_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:metrics.ChromeUserMetricsExtension)
}
PROTOBUF_NDEBUG_INLINE ChromeUserMetricsExtension::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::metrics::ChromeUserMetricsExtension& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        user_action_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.user_action_event_)>()
          , from.user_action_event_
        }
        ,
        omnibox_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.omnibox_event_)>()
          , from.omnibox_event_
        }
        ,
        histogram_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.histogram_event_)>()
          , from.histogram_event_
        }
        ,
        sampled_profile_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.sampled_profile_)>()
          , from.sampled_profile_
        }
        ,
        translate_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.translate_event_)>()
          , from.translate_event_
        }
        ,
        printer_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.printer_event_)>()
          , from.printer_event_
        }
        ,
        trace_log_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.trace_log_)>()
          , from.trace_log_
        }
        ,
        chrome_os_app_list_launch_event_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::metrics::ChromeUserMetricsExtension,
              PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.chrome_os_app_list_launch_event_)>()
          , from.chrome_os_app_list_launch_event_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ChromeUserMetricsExtension* 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_.system_profile_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.system_profile_)
                : nullptr;
  _impl_.cast_logs_ = (CheckHasBit(cached_has_bits, 0x00000200U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cast_logs_)
                : nullptr;
  _impl_.reporting_info_ = (CheckHasBit(cached_has_bits, 0x00000400U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.reporting_info_)
                : nullptr;
  _impl_.user_demographics_ = (CheckHasBit(cached_has_bits, 0x00000800U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_demographics_)
                : nullptr;
  _impl_.structured_data_ = (CheckHasBit(cached_has_bits, 0x00001000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.structured_data_)
                : nullptr;
  _impl_.time_log_created_ = (CheckHasBit(cached_has_bits, 0x00002000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.time_log_created_)
                : nullptr;
  _impl_.time_log_closed_ = (CheckHasBit(cached_has_bits, 0x00004000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.time_log_closed_)
                : nullptr;
  _impl_.custom_tab_session_ = (CheckHasBit(cached_has_bits, 0x00008000U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.custom_tab_session_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, client_id_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, client_id_),
           offsetof(Impl_, log_type_) -
               offsetof(Impl_, client_id_) +
               sizeof(Impl_::log_type_));

  // @@protoc_insertion_point(copy_constructor:metrics.ChromeUserMetricsExtension)
}
PROTOBUF_NDEBUG_INLINE ChromeUserMetricsExtension::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        user_action_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.user_action_event_)>()
         }
        ,
        omnibox_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.omnibox_event_)>()
         }
        ,
        histogram_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.histogram_event_)>()
         }
        ,
        sampled_profile_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.sampled_profile_)>()
         }
        ,
        translate_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.translate_event_)>()
         }
        ,
        printer_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.printer_event_)>()
         }
        ,
        trace_log_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.trace_log_)>()
         }
        ,
        chrome_os_app_list_launch_event_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::metrics::ChromeUserMetricsExtension,
            PROTOBUF_FIELD_OFFSET(::metrics::ChromeUserMetricsExtension, _impl_.chrome_os_app_list_launch_event_)>()
         }
     {}

inline void ChromeUserMetricsExtension::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, system_profile_),
           0,
           offsetof(Impl_, log_type_) -
               offsetof(Impl_, system_profile_) +
               sizeof(Impl_::log_type_));
}
ChromeUserMetricsExtension::~ChromeUserMetricsExtension() {
  // @@protoc_insertion_point(destructor:metrics.ChromeUserMetricsExtension)
  SharedDtor(*this);
}
inline void ChromeUserMetricsExtension::SharedDtor(MessageLite& self) {
  ChromeUserMetricsExtension& this_ = static_cast<ChromeUserMetricsExtension&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.system_profile_;
  delete this_._impl_.cast_logs_;
  delete this_._impl_.reporting_info_;
  delete this_._impl_.user_demographics_;
  delete this_._impl_.structured_data_;
  delete this_._impl_.time_log_created_;
  delete this_._impl_.time_log_closed_;
  delete this_._impl_.custom_tab_session_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ChromeUserMetricsExtension_class_data_ =
    ChromeUserMetricsExtension::InternalGenerateClassData_(ChromeUserMetricsExtension_globals_._default);

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

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.user_action_event_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.omnibox_event_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.histogram_event_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.sampled_profile_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.translate_event_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.printer_event_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.trace_log_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.chrome_os_app_list_launch_event_.Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(_impl_.system_profile_ != nullptr);
      _impl_.system_profile_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(_impl_.cast_logs_ != nullptr);
      _impl_.cast_logs_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(_impl_.reporting_info_ != nullptr);
      _impl_.reporting_info_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(_impl_.user_demographics_ != nullptr);
      _impl_.user_demographics_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(_impl_.structured_data_ != nullptr);
      _impl_.structured_data_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(_impl_.time_log_created_ != nullptr);
      _impl_.time_log_created_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(_impl_.time_log_closed_ != nullptr);
      _impl_.time_log_closed_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(_impl_.custom_tab_session_ != nullptr);
      _impl_.custom_tab_session_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x007f0000U)) {
    ::memset(&_impl_.client_id_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.log_type_) -
        reinterpret_cast<char*>(&_impl_.client_id_)) + sizeof(_impl_.log_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // fixed64 client_id = 1;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
        1, this_._internal_client_id(), target);
  }

  // int32 session_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_session_id(), target);
  }

  // .metrics.SystemProfileProto system_profile = 3;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.system_profile_, this_._impl_.system_profile_->GetCachedSize(), target,
        stream);
  }

  // repeated .metrics.UserActionEventProto user_action_event = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_user_action_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_user_action_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .metrics.OmniboxEventProto omnibox_event = 5;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_omnibox_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_omnibox_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .metrics.HistogramEventProto histogram_event = 6;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_histogram_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_histogram_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              6, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // int32 product = 10 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
            stream, this_._internal_product(), target);
  }

  // repeated .metrics.SampledProfile sampled_profile = 11;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_sampled_profile_size());
         i < n; i++) {
      const auto& repfield = this_._internal_sampled_profile().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .metrics.CastLogsProto cast_logs = 12;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        12, *this_._impl_.cast_logs_, this_._impl_.cast_logs_->GetCachedSize(), target,
        stream);
  }

  // repeated .metrics.TranslateEventProto translate_event = 15;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_translate_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_translate_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              15, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .metrics.PrinterEventProto printer_event = 16;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_printer_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_printer_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              16, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .metrics.ReportingInfo reporting_info = 17;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        17, *this_._impl_.reporting_info_, this_._impl_.reporting_info_->GetCachedSize(), target,
        stream);
  }

  // repeated .metrics.TraceLog trace_log = 19;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_trace_log_size());
         i < n; i++) {
      const auto& repfield = this_._internal_trace_log().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              19, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .metrics.ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_chrome_os_app_list_launch_event_size());
         i < n; i++) {
      const auto& repfield = this_._internal_chrome_os_app_list_launch_event().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              20, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .metrics.UserDemographicsProto user_demographics = 21;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        21, *this_._impl_.user_demographics_, this_._impl_.user_demographics_->GetCachedSize(), target,
        stream);
  }

  // .metrics.StructuredDataProto structured_data = 23;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        23, *this_._impl_.structured_data_, this_._impl_.structured_data_->GetCachedSize(), target,
        stream);
  }

  // fixed64 user_id = 24;
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
        24, this_._internal_user_id(), target);
  }

  // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_created = 25;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        25, *this_._impl_.time_log_created_, this_._impl_.time_log_created_->GetCachedSize(), target,
        stream);
  }

  // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_closed = 26;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        26, *this_._impl_.time_log_closed_, this_._impl_.time_log_closed_->GetCachedSize(), target,
        stream);
  }

  // .metrics.CustomTabSessionProto custom_tab_session = 27;
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        27, *this_._impl_.custom_tab_session_, this_._impl_.custom_tab_session_->GetCachedSize(), target,
        stream);
  }

  // int64 record_id = 28;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        28, this_._internal_record_id(), target);
  }

  // int64 finalized_record_id = 29;
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        29, this_._internal_finalized_record_id(), target);
  }

  // .metrics.ChromeUserMetricsExtension.LogType log_type = 30;
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        30, this_._internal_log_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:metrics.ChromeUserMetricsExtension)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00080000U & cached_has_bits) * 10;
  total_size += static_cast<bool>(0x00010000U & cached_has_bits) * 9;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .metrics.UserActionEventProto user_action_event = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_user_action_event_size();
      for (const auto& msg : this_._internal_user_action_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.OmniboxEventProto omnibox_event = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_omnibox_event_size();
      for (const auto& msg : this_._internal_omnibox_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.HistogramEventProto histogram_event = 6;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_histogram_event_size();
      for (const auto& msg : this_._internal_histogram_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.SampledProfile sampled_profile = 11;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_sampled_profile_size();
      for (const auto& msg : this_._internal_sampled_profile()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.TranslateEventProto translate_event = 15;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1UL * this_._internal_translate_event_size();
      for (const auto& msg : this_._internal_translate_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.PrinterEventProto printer_event = 16;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 2UL * this_._internal_printer_event_size();
      for (const auto& msg : this_._internal_printer_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.TraceLog trace_log = 19;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 2UL * this_._internal_trace_log_size();
      for (const auto& msg : this_._internal_trace_log()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .metrics.ChromeOSAppListLaunchEventProto chrome_os_app_list_launch_event = 20;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2UL * this_._internal_chrome_os_app_list_launch_event_size();
      for (const auto& msg : this_._internal_chrome_os_app_list_launch_event()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // .metrics.SystemProfileProto system_profile = 3;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.system_profile_);
    }
    // .metrics.CastLogsProto cast_logs = 12;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.cast_logs_);
    }
    // .metrics.ReportingInfo reporting_info = 17;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reporting_info_);
    }
    // .metrics.UserDemographicsProto user_demographics = 21;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.user_demographics_);
    }
    // .metrics.StructuredDataProto structured_data = 23;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.structured_data_);
    }
    // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_created = 25;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.time_log_created_);
    }
    // .metrics.ChromeUserMetricsExtension.RealLocalTime time_log_closed = 26;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.time_log_closed_);
    }
    // .metrics.CustomTabSessionProto custom_tab_session = 27;
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.custom_tab_session_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00760000U)) {
    // int32 session_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_session_id());
    }
    // int32 product = 10 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_product());
    }
    // int64 record_id = 28;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_record_id());
    }
    // int64 finalized_record_id = 29;
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_finalized_record_id());
    }
    // .metrics.ChromeUserMetricsExtension.LogType log_type = 30;
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_log_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 ChromeUserMetricsExtension::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ChromeUserMetricsExtension*>(&to_msg);
  auto& from = static_cast<const ChromeUserMetricsExtension&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:metrics.ChromeUserMetricsExtension)
  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_user_action_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_user_action_event());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_omnibox_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_omnibox_event());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_histogram_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_histogram_event());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_sampled_profile()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_sampled_profile());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_mutable_translate_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_translate_event());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_mutable_printer_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_printer_event());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_mutable_trace_log()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_trace_log());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_mutable_chrome_os_app_list_launch_event()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_chrome_os_app_list_launch_event());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      ABSL_DCHECK(from._impl_.system_profile_ != nullptr);
      if (_this->_impl_.system_profile_ == nullptr) {
        _this->_impl_.system_profile_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.system_profile_);
      } else {
        _this->_impl_.system_profile_->MergeFrom(*from._impl_.system_profile_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      ABSL_DCHECK(from._impl_.cast_logs_ != nullptr);
      if (_this->_impl_.cast_logs_ == nullptr) {
        _this->_impl_.cast_logs_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.cast_logs_);
      } else {
        _this->_impl_.cast_logs_->MergeFrom(*from._impl_.cast_logs_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(from._impl_.reporting_info_ != nullptr);
      if (_this->_impl_.reporting_info_ == nullptr) {
        _this->_impl_.reporting_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.reporting_info_);
      } else {
        _this->_impl_.reporting_info_->MergeFrom(*from._impl_.reporting_info_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(from._impl_.user_demographics_ != nullptr);
      if (_this->_impl_.user_demographics_ == nullptr) {
        _this->_impl_.user_demographics_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.user_demographics_);
      } else {
        _this->_impl_.user_demographics_->MergeFrom(*from._impl_.user_demographics_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(from._impl_.structured_data_ != nullptr);
      if (_this->_impl_.structured_data_ == nullptr) {
        _this->_impl_.structured_data_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.structured_data_);
      } else {
        _this->_impl_.structured_data_->MergeFrom(*from._impl_.structured_data_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(from._impl_.time_log_created_ != nullptr);
      if (_this->_impl_.time_log_created_ == nullptr) {
        _this->_impl_.time_log_created_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.time_log_created_);
      } else {
        _this->_impl_.time_log_created_->MergeFrom(*from._impl_.time_log_created_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(from._impl_.time_log_closed_ != nullptr);
      if (_this->_impl_.time_log_closed_ == nullptr) {
        _this->_impl_.time_log_closed_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.time_log_closed_);
      } else {
        _this->_impl_.time_log_closed_->MergeFrom(*from._impl_.time_log_closed_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(from._impl_.custom_tab_session_ != nullptr);
      if (_this->_impl_.custom_tab_session_ == nullptr) {
        _this->_impl_.custom_tab_session_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.custom_tab_session_);
      } else {
        _this->_impl_.custom_tab_session_->MergeFrom(*from._impl_.custom_tab_session_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x007f0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.client_id_ = from._impl_.client_id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.session_id_ = from._impl_.session_id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.product_ = from._impl_.product_;
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_impl_.user_id_ = from._impl_.user_id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      _this->_impl_.record_id_ = from._impl_.record_id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      _this->_impl_.finalized_record_id_ = from._impl_.finalized_record_id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      _this->_impl_.log_type_ = from._impl_.log_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void ChromeUserMetricsExtension::InternalSwap(ChromeUserMetricsExtension* 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_.user_action_event_.InternalSwap(&other->_impl_.user_action_event_);
  _impl_.omnibox_event_.InternalSwap(&other->_impl_.omnibox_event_);
  _impl_.histogram_event_.InternalSwap(&other->_impl_.histogram_event_);
  _impl_.sampled_profile_.InternalSwap(&other->_impl_.sampled_profile_);
  _impl_.translate_event_.InternalSwap(&other->_impl_.translate_event_);
  _impl_.printer_event_.InternalSwap(&other->_impl_.printer_event_);
  _impl_.trace_log_.InternalSwap(&other->_impl_.trace_log_);
  _impl_.chrome_os_app_list_launch_event_.InternalSwap(&other->_impl_.chrome_os_app_list_launch_event_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.log_type_)
      + sizeof(ChromeUserMetricsExtension::_impl_.log_type_)
      - PROTOBUF_FIELD_OFFSET(ChromeUserMetricsExtension, _impl_.system_profile_)>(
          reinterpret_cast<char*>(&_impl_.system_profile_),
          reinterpret_cast<char*>(&other->_impl_.system_profile_));
}

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