text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: google/protobuf/util/internal/testdata/timestamp_duration.proto
  
  #include "google/protobuf/util/internal/testdata/timestamp_duration.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/extension_set.h>
  #include <google/protobuf/wire_format_lite.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/generated_message_reflection.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // @@protoc_insertion_point(includes)
  #include <google/protobuf/port_def.inc>
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Duration_google_2fprotobuf_2fduration_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2ftimestamp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto;
  namespace proto_util_converter {
  namespace testing {
  class TimestampDurationTestCasesDefaultTypeInternal {
   public:
    ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TimestampDurationTestCases> _instance;
  } _TimestampDurationTestCases_default_instance_;
  class TimeStampTypeDefaultTypeInternal {
   public:
    ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TimeStampType> _instance;
  } _TimeStampType_default_instance_;
  class DurationTypeDefaultTypeInternal {
   public:
    ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DurationType> _instance;
  } _DurationType_default_instance_;
  class TimestampDurationDefaultTypeInternal {
   public:
    ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TimestampDuration> _instance;
  } _TimestampDuration_default_instance_;
  }  // namespace testing
  }  // namespace proto_util_converter
  static void InitDefaultsscc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::proto_util_converter::testing::_DurationType_default_instance_;
      new (ptr) ::proto_util_converter::testing::DurationType();
      ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
    }
    ::proto_util_converter::testing::DurationType::InitAsDefaultInstance();
  }
  
  ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto =
      {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto}, {
        &scc_info_Duration_google_2fprotobuf_2fduration_2eproto.base,}};
  
  static void InitDefaultsscc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::proto_util_converter::testing::_TimeStampType_default_instance_;
      new (ptr) ::proto_util_converter::testing::TimeStampType();
      ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
    }
    ::proto_util_converter::testing::TimeStampType::InitAsDefaultInstance();
  }
  
  ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto =
      {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto}, {
        &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};
  
  static void InitDefaultsscc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::proto_util_converter::testing::_TimestampDuration_default_instance_;
      new (ptr) ::proto_util_converter::testing::TimestampDuration();
      ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
    }
    ::proto_util_converter::testing::TimestampDuration::InitAsDefaultInstance();
  }
  
  ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto =
      {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto}, {
        &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
        &scc_info_Duration_google_2fprotobuf_2fduration_2eproto.base,}};
  
  static void InitDefaultsscc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_;
      new (ptr) ::proto_util_converter::testing::TimestampDurationTestCases();
      ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
    }
    ::proto_util_converter::testing::TimestampDurationTestCases::InitAsDefaultInstance();
  }
  
  ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<4> scc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto =
      {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 4, 0, InitDefaultsscc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto}, {
        &scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
        &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
        &scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
        &scc_info_Duration_google_2fprotobuf_2fduration_2eproto.base,}};
  
  static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto[4];
  static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto = nullptr;
  static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto = nullptr;
  
  const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, epoch_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, epoch2_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, mintime_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, maxtime_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval1_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval2_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval3_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval4_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval5_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval6_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval7_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, timeval8_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, zero_duration_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, min_duration_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, max_duration_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, duration1_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, duration2_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, duration3_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, duration4_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDurationTestCases, duration5_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimeStampType, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimeStampType, timestamp_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::DurationType, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::DurationType, duration_),
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDuration, _internal_metadata_),
    ~0u,  // no _extensions_
    ~0u,  // no _oneof_case_
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDuration, ts_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDuration, dur_),
    PROTOBUF_FIELD_OFFSET(::proto_util_converter::testing::TimestampDuration, rep_ts_),
  };
  static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    { 0, -1, sizeof(::proto_util_converter::testing::TimestampDurationTestCases)},
    { 25, -1, sizeof(::proto_util_converter::testing::TimeStampType)},
    { 31, -1, sizeof(::proto_util_converter::testing::DurationType)},
    { 37, -1, sizeof(::proto_util_converter::testing::TimestampDuration)},
  };
  
  static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
    reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_),
    reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::proto_util_converter::testing::_TimeStampType_default_instance_),
    reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::proto_util_converter::testing::_DurationType_default_instance_),
    reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::proto_util_converter::testing::_TimestampDuration_default_instance_),
  };
  
  const char descriptor_table_protodef_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
    "\n\?google/protobuf/util/internal/testdata"
    "/timestamp_duration.proto\022\034proto_util_co"
    "nverter.testing\032\036google/protobuf/duratio"
    "n.proto\032\037google/protobuf/timestamp.proto"
    "\"\351\t\n\032TimestampDurationTestCases\022:\n\005epoch"
    "\030\001 \001(\0132+.proto_util_converter.testing.Ti"
    "meStampType\022;\n\006epoch2\030\002 \001(\0132+.proto_util"
    "_converter.testing.TimeStampType\022<\n\007mint"
    "ime\030\003 \001(\0132+.proto_util_converter.testing"
    ".TimeStampType\022<\n\007maxtime\030\004 \001(\0132+.proto_"
    "util_converter.testing.TimeStampType\022=\n\010"
    "timeval1\030\005 \001(\0132+.proto_util_converter.te"
    "sting.TimeStampType\022=\n\010timeval2\030\006 \001(\0132+."
    "proto_util_converter.testing.TimeStampTy"
    "pe\022=\n\010timeval3\030\007 \001(\0132+.proto_util_conver"
    "ter.testing.TimeStampType\022=\n\010timeval4\030\010 "
    "\001(\0132+.proto_util_converter.testing.TimeS"
    "tampType\022=\n\010timeval5\030\t \001(\0132+.proto_util_"
    "converter.testing.TimeStampType\022=\n\010timev"
    "al6\030\n \001(\0132+.proto_util_converter.testing"
    ".TimeStampType\022=\n\010timeval7\030\013 \001(\0132+.proto"
    "_util_converter.testing.TimeStampType\022,\n"
    "\010timeval8\030\014 \001(\0132\032.google.protobuf.Timest"
    "amp\022A\n\rzero_duration\030e \001(\0132*.proto_util_"
    "converter.testing.DurationType\022@\n\014min_du"
    "ration\030f \001(\0132*.proto_util_converter.test"
    "ing.DurationType\022@\n\014max_duration\030g \001(\0132*"
    ".proto_util_converter.testing.DurationTy"
    "pe\022=\n\tduration1\030h \001(\0132*.proto_util_conve"
    "rter.testing.DurationType\022=\n\tduration2\030i"
    " \001(\0132*.proto_util_converter.testing.Dura"
    "tionType\022=\n\tduration3\030j \001(\0132*.proto_util"
    "_converter.testing.DurationType\022=\n\tdurat"
    "ion4\030k \001(\0132*.proto_util_converter.testin"
    "g.DurationType\022,\n\tduration5\030l \001(\0132\031.goog"
    "le.protobuf.Duration\">\n\rTimeStampType\022-\n"
    "\ttimestamp\030\001 \001(\0132\032.google.protobuf.Times"
    "tamp\";\n\014DurationType\022+\n\010duration\030\001 \001(\0132\031"
    ".google.protobuf.Duration\"\217\001\n\021TimestampD"
    "uration\022&\n\002ts\030\001 \001(\0132\032.google.protobuf.Ti"
    "mestamp\022&\n\003dur\030\002 \001(\0132\031.google.protobuf.D"
    "uration\022*\n\006rep_ts\030\003 \003(\0132\032.google.protobu"
    "f.Timestamp2\232\001\n\034TimestampDurationTestSer"
    "vice\022z\n\004Call\0228.proto_util_converter.test"
    "ing.TimestampDurationTestCases\0328.proto_u"
    "til_converter.testing.TimestampDurationT"
    "estCasesb\006proto3"
    ;
  static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_deps[2] = {
    &::descriptor_table_google_2fprotobuf_2fduration_2eproto,
    &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto,
  };
  static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_sccs[4] = {
    &scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
    &scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
    &scc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
    &scc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base,
  };
  static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_once;
  static bool descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_initialized = false;
  const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto = {
    &descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_initialized, descriptor_table_protodef_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto, "google/protobuf/util/internal/testdata/timestamp_duration.proto", 1856,
    &descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_once, descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_sccs, descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto_deps, 4, 2,
    schemas, file_default_instances, TableStruct_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::offsets,
    file_level_metadata_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto, 4, file_level_enum_descriptors_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto, file_level_service_descriptors_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto,
  };
  
  // Force running AddDescriptors() at dynamic initialization time.
  static bool dynamic_init_dummy_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto), true);
  namespace proto_util_converter {
  namespace testing {
  
  // ===================================================================
  
  void TimestampDurationTestCases::InitAsDefaultInstance() {
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->epoch_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->epoch2_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->mintime_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->maxtime_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval1_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval2_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval3_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval4_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval5_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval6_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval7_ = const_cast< ::proto_util_converter::testing::TimeStampType*>(
        ::proto_util_converter::testing::TimeStampType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->timeval8_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
        PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->zero_duration_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->min_duration_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->max_duration_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->duration1_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->duration2_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->duration3_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->duration4_ = const_cast< ::proto_util_converter::testing::DurationType*>(
        ::proto_util_converter::testing::DurationType::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDurationTestCases_default_instance_._instance.get_mutable()->duration5_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>(
        PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
  }
  class TimestampDurationTestCases::_Internal {
   public:
    static const ::proto_util_converter::testing::TimeStampType& epoch(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& epoch2(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& mintime(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& maxtime(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval1(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval2(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval3(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval4(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval5(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval6(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::TimeStampType& timeval7(const TimestampDurationTestCases* msg);
    static const PROTOBUF_NAMESPACE_ID::Timestamp& timeval8(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& zero_duration(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& min_duration(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& max_duration(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& duration1(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& duration2(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& duration3(const TimestampDurationTestCases* msg);
    static const ::proto_util_converter::testing::DurationType& duration4(const TimestampDurationTestCases* msg);
    static const PROTOBUF_NAMESPACE_ID::Duration& duration5(const TimestampDurationTestCases* msg);
  };
  
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::epoch(const TimestampDurationTestCases* msg) {
    return *msg->epoch_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::epoch2(const TimestampDurationTestCases* msg) {
    return *msg->epoch2_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::mintime(const TimestampDurationTestCases* msg) {
    return *msg->mintime_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::maxtime(const TimestampDurationTestCases* msg) {
    return *msg->maxtime_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval1(const TimestampDurationTestCases* msg) {
    return *msg->timeval1_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval2(const TimestampDurationTestCases* msg) {
    return *msg->timeval2_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval3(const TimestampDurationTestCases* msg) {
    return *msg->timeval3_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval4(const TimestampDurationTestCases* msg) {
    return *msg->timeval4_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval5(const TimestampDurationTestCases* msg) {
    return *msg->timeval5_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval6(const TimestampDurationTestCases* msg) {
    return *msg->timeval6_;
  }
  const ::proto_util_converter::testing::TimeStampType&
  TimestampDurationTestCases::_Internal::timeval7(const TimestampDurationTestCases* msg) {
    return *msg->timeval7_;
  }
  const PROTOBUF_NAMESPACE_ID::Timestamp&
  TimestampDurationTestCases::_Internal::timeval8(const TimestampDurationTestCases* msg) {
    return *msg->timeval8_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::zero_duration(const TimestampDurationTestCases* msg) {
    return *msg->zero_duration_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::min_duration(const TimestampDurationTestCases* msg) {
    return *msg->min_duration_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::max_duration(const TimestampDurationTestCases* msg) {
    return *msg->max_duration_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::duration1(const TimestampDurationTestCases* msg) {
    return *msg->duration1_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::duration2(const TimestampDurationTestCases* msg) {
    return *msg->duration2_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::duration3(const TimestampDurationTestCases* msg) {
    return *msg->duration3_;
  }
  const ::proto_util_converter::testing::DurationType&
  TimestampDurationTestCases::_Internal::duration4(const TimestampDurationTestCases* msg) {
    return *msg->duration4_;
  }
  const PROTOBUF_NAMESPACE_ID::Duration&
  TimestampDurationTestCases::_Internal::duration5(const TimestampDurationTestCases* msg) {
    return *msg->duration5_;
  }
  void TimestampDurationTestCases::clear_timeval8() {
    if (GetArenaNoVirtual() == nullptr && timeval8_ != nullptr) {
      delete timeval8_;
    }
    timeval8_ = nullptr;
  }
  void TimestampDurationTestCases::clear_duration5() {
    if (GetArenaNoVirtual() == nullptr && duration5_ != nullptr) {
      delete duration5_;
    }
    duration5_ = nullptr;
  }
  TimestampDurationTestCases::TimestampDurationTestCases()
    : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:proto_util_converter.testing.TimestampDurationTestCases)
  }
  TimestampDurationTestCases::TimestampDurationTestCases(const TimestampDurationTestCases& from)
    : ::PROTOBUF_NAMESPACE_ID::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from._internal_has_epoch()) {
      epoch_ = new ::proto_util_converter::testing::TimeStampType(*from.epoch_);
    } else {
      epoch_ = nullptr;
    }
    if (from._internal_has_epoch2()) {
      epoch2_ = new ::proto_util_converter::testing::TimeStampType(*from.epoch2_);
    } else {
      epoch2_ = nullptr;
    }
    if (from._internal_has_mintime()) {
      mintime_ = new ::proto_util_converter::testing::TimeStampType(*from.mintime_);
    } else {
      mintime_ = nullptr;
    }
    if (from._internal_has_maxtime()) {
      maxtime_ = new ::proto_util_converter::testing::TimeStampType(*from.maxtime_);
    } else {
      maxtime_ = nullptr;
    }
    if (from._internal_has_timeval1()) {
      timeval1_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval1_);
    } else {
      timeval1_ = nullptr;
    }
    if (from._internal_has_timeval2()) {
      timeval2_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval2_);
    } else {
      timeval2_ = nullptr;
    }
    if (from._internal_has_timeval3()) {
      timeval3_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval3_);
    } else {
      timeval3_ = nullptr;
    }
    if (from._internal_has_timeval4()) {
      timeval4_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval4_);
    } else {
      timeval4_ = nullptr;
    }
    if (from._internal_has_timeval5()) {
      timeval5_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval5_);
    } else {
      timeval5_ = nullptr;
    }
    if (from._internal_has_timeval6()) {
      timeval6_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval6_);
    } else {
      timeval6_ = nullptr;
    }
    if (from._internal_has_timeval7()) {
      timeval7_ = new ::proto_util_converter::testing::TimeStampType(*from.timeval7_);
    } else {
      timeval7_ = nullptr;
    }
    if (from._internal_has_timeval8()) {
      timeval8_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.timeval8_);
    } else {
      timeval8_ = nullptr;
    }
    if (from._internal_has_zero_duration()) {
      zero_duration_ = new ::proto_util_converter::testing::DurationType(*from.zero_duration_);
    } else {
      zero_duration_ = nullptr;
    }
    if (from._internal_has_min_duration()) {
      min_duration_ = new ::proto_util_converter::testing::DurationType(*from.min_duration_);
    } else {
      min_duration_ = nullptr;
    }
    if (from._internal_has_max_duration()) {
      max_duration_ = new ::proto_util_converter::testing::DurationType(*from.max_duration_);
    } else {
      max_duration_ = nullptr;
    }
    if (from._internal_has_duration1()) {
      duration1_ = new ::proto_util_converter::testing::DurationType(*from.duration1_);
    } else {
      duration1_ = nullptr;
    }
    if (from._internal_has_duration2()) {
      duration2_ = new ::proto_util_converter::testing::DurationType(*from.duration2_);
    } else {
      duration2_ = nullptr;
    }
    if (from._internal_has_duration3()) {
      duration3_ = new ::proto_util_converter::testing::DurationType(*from.duration3_);
    } else {
      duration3_ = nullptr;
    }
    if (from._internal_has_duration4()) {
      duration4_ = new ::proto_util_converter::testing::DurationType(*from.duration4_);
    } else {
      duration4_ = nullptr;
    }
    if (from._internal_has_duration5()) {
      duration5_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.duration5_);
    } else {
      duration5_ = nullptr;
    }
    // @@protoc_insertion_point(copy_constructor:proto_util_converter.testing.TimestampDurationTestCases)
  }
  
  void TimestampDurationTestCases::SharedCtor() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    ::memset(&epoch_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&duration5_) -
        reinterpret_cast<char*>(&epoch_)) + sizeof(duration5_));
  }
  
  TimestampDurationTestCases::~TimestampDurationTestCases() {
    // @@protoc_insertion_point(destructor:proto_util_converter.testing.TimestampDurationTestCases)
    SharedDtor();
  }
  
  void TimestampDurationTestCases::SharedDtor() {
    if (this != internal_default_instance()) delete epoch_;
    if (this != internal_default_instance()) delete epoch2_;
    if (this != internal_default_instance()) delete mintime_;
    if (this != internal_default_instance()) delete maxtime_;
    if (this != internal_default_instance()) delete timeval1_;
    if (this != internal_default_instance()) delete timeval2_;
    if (this != internal_default_instance()) delete timeval3_;
    if (this != internal_default_instance()) delete timeval4_;
    if (this != internal_default_instance()) delete timeval5_;
    if (this != internal_default_instance()) delete timeval6_;
    if (this != internal_default_instance()) delete timeval7_;
    if (this != internal_default_instance()) delete timeval8_;
    if (this != internal_default_instance()) delete zero_duration_;
    if (this != internal_default_instance()) delete min_duration_;
    if (this != internal_default_instance()) delete max_duration_;
    if (this != internal_default_instance()) delete duration1_;
    if (this != internal_default_instance()) delete duration2_;
    if (this != internal_default_instance()) delete duration3_;
    if (this != internal_default_instance()) delete duration4_;
    if (this != internal_default_instance()) delete duration5_;
  }
  
  void TimestampDurationTestCases::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const TimestampDurationTestCases& TimestampDurationTestCases::default_instance() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TimestampDurationTestCases_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void TimestampDurationTestCases::Clear() {
  // @@protoc_insertion_point(message_clear_start:proto_util_converter.testing.TimestampDurationTestCases)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    if (GetArenaNoVirtual() == nullptr && epoch_ != nullptr) {
      delete epoch_;
    }
    epoch_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && epoch2_ != nullptr) {
      delete epoch2_;
    }
    epoch2_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && mintime_ != nullptr) {
      delete mintime_;
    }
    mintime_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && maxtime_ != nullptr) {
      delete maxtime_;
    }
    maxtime_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval1_ != nullptr) {
      delete timeval1_;
    }
    timeval1_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval2_ != nullptr) {
      delete timeval2_;
    }
    timeval2_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval3_ != nullptr) {
      delete timeval3_;
    }
    timeval3_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval4_ != nullptr) {
      delete timeval4_;
    }
    timeval4_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval5_ != nullptr) {
      delete timeval5_;
    }
    timeval5_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval6_ != nullptr) {
      delete timeval6_;
    }
    timeval6_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval7_ != nullptr) {
      delete timeval7_;
    }
    timeval7_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && timeval8_ != nullptr) {
      delete timeval8_;
    }
    timeval8_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && zero_duration_ != nullptr) {
      delete zero_duration_;
    }
    zero_duration_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && min_duration_ != nullptr) {
      delete min_duration_;
    }
    min_duration_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && max_duration_ != nullptr) {
      delete max_duration_;
    }
    max_duration_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && duration1_ != nullptr) {
      delete duration1_;
    }
    duration1_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && duration2_ != nullptr) {
      delete duration2_;
    }
    duration2_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && duration3_ != nullptr) {
      delete duration3_;
    }
    duration3_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && duration4_ != nullptr) {
      delete duration4_;
    }
    duration4_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && duration5_ != nullptr) {
      delete duration5_;
    }
    duration5_ = nullptr;
    _internal_metadata_.Clear();
  }
  
  const char* TimestampDurationTestCases::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
    while (!ctx->Done(&ptr)) {
      ::PROTOBUF_NAMESPACE_ID::uint32 tag;
      ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
      CHK_(ptr);
      switch (tag >> 3) {
        // .proto_util_converter.testing.TimeStampType epoch = 1;
        case 1:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
            ptr = ctx->ParseMessage(_internal_mutable_epoch(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType epoch2 = 2;
        case 2:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
            ptr = ctx->ParseMessage(_internal_mutable_epoch2(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType mintime = 3;
        case 3:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
            ptr = ctx->ParseMessage(_internal_mutable_mintime(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType maxtime = 4;
        case 4:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
            ptr = ctx->ParseMessage(_internal_mutable_maxtime(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval1 = 5;
        case 5:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval1(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval2 = 6;
        case 6:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval2(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval3 = 7;
        case 7:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval3(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval4 = 8;
        case 8:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval4(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval5 = 9;
        case 9:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval5(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval6 = 10;
        case 10:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval6(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.TimeStampType timeval7 = 11;
        case 11:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval7(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Timestamp timeval8 = 12;
        case 12:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
            ptr = ctx->ParseMessage(_internal_mutable_timeval8(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType zero_duration = 101;
        case 101:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
            ptr = ctx->ParseMessage(_internal_mutable_zero_duration(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType min_duration = 102;
        case 102:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
            ptr = ctx->ParseMessage(_internal_mutable_min_duration(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType max_duration = 103;
        case 103:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
            ptr = ctx->ParseMessage(_internal_mutable_max_duration(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType duration1 = 104;
        case 104:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration1(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType duration2 = 105;
        case 105:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration2(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType duration3 = 106;
        case 106:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration3(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .proto_util_converter.testing.DurationType duration4 = 107;
        case 107:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration4(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Duration duration5 = 108;
        case 108:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration5(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->SetLastTag(tag);
            goto success;
          }
          ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
          CHK_(ptr != nullptr);
          continue;
        }
      }  // switch
    }  // while
  success:
    return ptr;
  failure:
    ptr = nullptr;
    goto success;
  #undef CHK_
  }
  
  ::PROTOBUF_NAMESPACE_ID::uint8* TimestampDurationTestCases::_InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
    // @@protoc_insertion_point(serialize_to_array_start:proto_util_converter.testing.TimestampDurationTestCases)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .proto_util_converter.testing.TimeStampType epoch = 1;
    if (this->has_epoch()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          1, _Internal::epoch(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType epoch2 = 2;
    if (this->has_epoch2()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          2, _Internal::epoch2(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType mintime = 3;
    if (this->has_mintime()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          3, _Internal::mintime(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType maxtime = 4;
    if (this->has_maxtime()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          4, _Internal::maxtime(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval1 = 5;
    if (this->has_timeval1()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          5, _Internal::timeval1(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval2 = 6;
    if (this->has_timeval2()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          6, _Internal::timeval2(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval3 = 7;
    if (this->has_timeval3()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          7, _Internal::timeval3(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval4 = 8;
    if (this->has_timeval4()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          8, _Internal::timeval4(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval5 = 9;
    if (this->has_timeval5()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          9, _Internal::timeval5(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval6 = 10;
    if (this->has_timeval6()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          10, _Internal::timeval6(this), target, stream);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval7 = 11;
    if (this->has_timeval7()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          11, _Internal::timeval7(this), target, stream);
    }
  
    // .google.protobuf.Timestamp timeval8 = 12;
    if (this->has_timeval8()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          12, _Internal::timeval8(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType zero_duration = 101;
    if (this->has_zero_duration()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          101, _Internal::zero_duration(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType min_duration = 102;
    if (this->has_min_duration()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          102, _Internal::min_duration(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType max_duration = 103;
    if (this->has_max_duration()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          103, _Internal::max_duration(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType duration1 = 104;
    if (this->has_duration1()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          104, _Internal::duration1(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType duration2 = 105;
    if (this->has_duration2()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          105, _Internal::duration2(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType duration3 = 106;
    if (this->has_duration3()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          106, _Internal::duration3(this), target, stream);
    }
  
    // .proto_util_converter.testing.DurationType duration4 = 107;
    if (this->has_duration4()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          107, _Internal::duration4(this), target, stream);
    }
  
    // .google.protobuf.Duration duration5 = 108;
    if (this->has_duration5()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          108, _Internal::duration5(this), target, stream);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target, stream);
    }
    // @@protoc_insertion_point(serialize_to_array_end:proto_util_converter.testing.TimestampDurationTestCases)
    return target;
  }
  
  size_t TimestampDurationTestCases::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:proto_util_converter.testing.TimestampDurationTestCases)
    size_t total_size = 0;
  
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // .proto_util_converter.testing.TimeStampType epoch = 1;
    if (this->has_epoch()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *epoch_);
    }
  
    // .proto_util_converter.testing.TimeStampType epoch2 = 2;
    if (this->has_epoch2()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *epoch2_);
    }
  
    // .proto_util_converter.testing.TimeStampType mintime = 3;
    if (this->has_mintime()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *mintime_);
    }
  
    // .proto_util_converter.testing.TimeStampType maxtime = 4;
    if (this->has_maxtime()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *maxtime_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval1 = 5;
    if (this->has_timeval1()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval1_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval2 = 6;
    if (this->has_timeval2()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval2_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval3 = 7;
    if (this->has_timeval3()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval3_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval4 = 8;
    if (this->has_timeval4()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval4_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval5 = 9;
    if (this->has_timeval5()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval5_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval6 = 10;
    if (this->has_timeval6()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval6_);
    }
  
    // .proto_util_converter.testing.TimeStampType timeval7 = 11;
    if (this->has_timeval7()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval7_);
    }
  
    // .google.protobuf.Timestamp timeval8 = 12;
    if (this->has_timeval8()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timeval8_);
    }
  
    // .proto_util_converter.testing.DurationType zero_duration = 101;
    if (this->has_zero_duration()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *zero_duration_);
    }
  
    // .proto_util_converter.testing.DurationType min_duration = 102;
    if (this->has_min_duration()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *min_duration_);
    }
  
    // .proto_util_converter.testing.DurationType max_duration = 103;
    if (this->has_max_duration()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *max_duration_);
    }
  
    // .proto_util_converter.testing.DurationType duration1 = 104;
    if (this->has_duration1()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration1_);
    }
  
    // .proto_util_converter.testing.DurationType duration2 = 105;
    if (this->has_duration2()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration2_);
    }
  
    // .proto_util_converter.testing.DurationType duration3 = 106;
    if (this->has_duration3()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration3_);
    }
  
    // .proto_util_converter.testing.DurationType duration4 = 107;
    if (this->has_duration4()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration4_);
    }
  
    // .google.protobuf.Duration duration5 = 108;
    if (this->has_duration5()) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration5_);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
          _internal_metadata_, total_size, &_cached_size_);
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void TimestampDurationTestCases::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:proto_util_converter.testing.TimestampDurationTestCases)
    GOOGLE_DCHECK_NE(&from, this);
    const TimestampDurationTestCases* source =
        ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TimestampDurationTestCases>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:proto_util_converter.testing.TimestampDurationTestCases)
      ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:proto_util_converter.testing.TimestampDurationTestCases)
      MergeFrom(*source);
    }
  }
  
  void TimestampDurationTestCases::MergeFrom(const TimestampDurationTestCases& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:proto_util_converter.testing.TimestampDurationTestCases)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.has_epoch()) {
      _internal_mutable_epoch()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_epoch());
    }
    if (from.has_epoch2()) {
      _internal_mutable_epoch2()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_epoch2());
    }
    if (from.has_mintime()) {
      _internal_mutable_mintime()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_mintime());
    }
    if (from.has_maxtime()) {
      _internal_mutable_maxtime()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_maxtime());
    }
    if (from.has_timeval1()) {
      _internal_mutable_timeval1()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval1());
    }
    if (from.has_timeval2()) {
      _internal_mutable_timeval2()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval2());
    }
    if (from.has_timeval3()) {
      _internal_mutable_timeval3()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval3());
    }
    if (from.has_timeval4()) {
      _internal_mutable_timeval4()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval4());
    }
    if (from.has_timeval5()) {
      _internal_mutable_timeval5()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval5());
    }
    if (from.has_timeval6()) {
      _internal_mutable_timeval6()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval6());
    }
    if (from.has_timeval7()) {
      _internal_mutable_timeval7()->::proto_util_converter::testing::TimeStampType::MergeFrom(from._internal_timeval7());
    }
    if (from.has_timeval8()) {
      _internal_mutable_timeval8()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_timeval8());
    }
    if (from.has_zero_duration()) {
      _internal_mutable_zero_duration()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_zero_duration());
    }
    if (from.has_min_duration()) {
      _internal_mutable_min_duration()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_min_duration());
    }
    if (from.has_max_duration()) {
      _internal_mutable_max_duration()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_max_duration());
    }
    if (from.has_duration1()) {
      _internal_mutable_duration1()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_duration1());
    }
    if (from.has_duration2()) {
      _internal_mutable_duration2()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_duration2());
    }
    if (from.has_duration3()) {
      _internal_mutable_duration3()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_duration3());
    }
    if (from.has_duration4()) {
      _internal_mutable_duration4()->::proto_util_converter::testing::DurationType::MergeFrom(from._internal_duration4());
    }
    if (from.has_duration5()) {
      _internal_mutable_duration5()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_duration5());
    }
  }
  
  void TimestampDurationTestCases::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:proto_util_converter.testing.TimestampDurationTestCases)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void TimestampDurationTestCases::CopyFrom(const TimestampDurationTestCases& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:proto_util_converter.testing.TimestampDurationTestCases)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool TimestampDurationTestCases::IsInitialized() const {
    return true;
  }
  
  void TimestampDurationTestCases::InternalSwap(TimestampDurationTestCases* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(epoch_, other->epoch_);
    swap(epoch2_, other->epoch2_);
    swap(mintime_, other->mintime_);
    swap(maxtime_, other->maxtime_);
    swap(timeval1_, other->timeval1_);
    swap(timeval2_, other->timeval2_);
    swap(timeval3_, other->timeval3_);
    swap(timeval4_, other->timeval4_);
    swap(timeval5_, other->timeval5_);
    swap(timeval6_, other->timeval6_);
    swap(timeval7_, other->timeval7_);
    swap(timeval8_, other->timeval8_);
    swap(zero_duration_, other->zero_duration_);
    swap(min_duration_, other->min_duration_);
    swap(max_duration_, other->max_duration_);
    swap(duration1_, other->duration1_);
    swap(duration2_, other->duration2_);
    swap(duration3_, other->duration3_);
    swap(duration4_, other->duration4_);
    swap(duration5_, other->duration5_);
  }
  
  ::PROTOBUF_NAMESPACE_ID::Metadata TimestampDurationTestCases::GetMetadata() const {
    return GetMetadataStatic();
  }
  
  
  // ===================================================================
  
  void TimeStampType::InitAsDefaultInstance() {
    ::proto_util_converter::testing::_TimeStampType_default_instance_._instance.get_mutable()->timestamp_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
        PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
  }
  class TimeStampType::_Internal {
   public:
    static const PROTOBUF_NAMESPACE_ID::Timestamp& timestamp(const TimeStampType* msg);
  };
  
  const PROTOBUF_NAMESPACE_ID::Timestamp&
  TimeStampType::_Internal::timestamp(const TimeStampType* msg) {
    return *msg->timestamp_;
  }
  void TimeStampType::clear_timestamp() {
    if (GetArenaNoVirtual() == nullptr && timestamp_ != nullptr) {
      delete timestamp_;
    }
    timestamp_ = nullptr;
  }
  TimeStampType::TimeStampType()
    : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:proto_util_converter.testing.TimeStampType)
  }
  TimeStampType::TimeStampType(const TimeStampType& from)
    : ::PROTOBUF_NAMESPACE_ID::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from._internal_has_timestamp()) {
      timestamp_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.timestamp_);
    } else {
      timestamp_ = nullptr;
    }
    // @@protoc_insertion_point(copy_constructor:proto_util_converter.testing.TimeStampType)
  }
  
  void TimeStampType::SharedCtor() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    timestamp_ = nullptr;
  }
  
  TimeStampType::~TimeStampType() {
    // @@protoc_insertion_point(destructor:proto_util_converter.testing.TimeStampType)
    SharedDtor();
  }
  
  void TimeStampType::SharedDtor() {
    if (this != internal_default_instance()) delete timestamp_;
  }
  
  void TimeStampType::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const TimeStampType& TimeStampType::default_instance() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TimeStampType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void TimeStampType::Clear() {
  // @@protoc_insertion_point(message_clear_start:proto_util_converter.testing.TimeStampType)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    if (GetArenaNoVirtual() == nullptr && timestamp_ != nullptr) {
      delete timestamp_;
    }
    timestamp_ = nullptr;
    _internal_metadata_.Clear();
  }
  
  const char* TimeStampType::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
    while (!ctx->Done(&ptr)) {
      ::PROTOBUF_NAMESPACE_ID::uint32 tag;
      ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
      CHK_(ptr);
      switch (tag >> 3) {
        // .google.protobuf.Timestamp timestamp = 1;
        case 1:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
            ptr = ctx->ParseMessage(_internal_mutable_timestamp(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->SetLastTag(tag);
            goto success;
          }
          ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
          CHK_(ptr != nullptr);
          continue;
        }
      }  // switch
    }  // while
  success:
    return ptr;
  failure:
    ptr = nullptr;
    goto success;
  #undef CHK_
  }
  
  ::PROTOBUF_NAMESPACE_ID::uint8* TimeStampType::_InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
    // @@protoc_insertion_point(serialize_to_array_start:proto_util_converter.testing.TimeStampType)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .google.protobuf.Timestamp timestamp = 1;
    if (this->has_timestamp()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          1, _Internal::timestamp(this), target, stream);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target, stream);
    }
    // @@protoc_insertion_point(serialize_to_array_end:proto_util_converter.testing.TimeStampType)
    return target;
  }
  
  size_t TimeStampType::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:proto_util_converter.testing.TimeStampType)
    size_t total_size = 0;
  
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // .google.protobuf.Timestamp timestamp = 1;
    if (this->has_timestamp()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *timestamp_);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
          _internal_metadata_, total_size, &_cached_size_);
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void TimeStampType::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:proto_util_converter.testing.TimeStampType)
    GOOGLE_DCHECK_NE(&from, this);
    const TimeStampType* source =
        ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TimeStampType>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:proto_util_converter.testing.TimeStampType)
      ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:proto_util_converter.testing.TimeStampType)
      MergeFrom(*source);
    }
  }
  
  void TimeStampType::MergeFrom(const TimeStampType& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:proto_util_converter.testing.TimeStampType)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.has_timestamp()) {
      _internal_mutable_timestamp()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_timestamp());
    }
  }
  
  void TimeStampType::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:proto_util_converter.testing.TimeStampType)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void TimeStampType::CopyFrom(const TimeStampType& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:proto_util_converter.testing.TimeStampType)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool TimeStampType::IsInitialized() const {
    return true;
  }
  
  void TimeStampType::InternalSwap(TimeStampType* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(timestamp_, other->timestamp_);
  }
  
  ::PROTOBUF_NAMESPACE_ID::Metadata TimeStampType::GetMetadata() const {
    return GetMetadataStatic();
  }
  
  
  // ===================================================================
  
  void DurationType::InitAsDefaultInstance() {
    ::proto_util_converter::testing::_DurationType_default_instance_._instance.get_mutable()->duration_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>(
        PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
  }
  class DurationType::_Internal {
   public:
    static const PROTOBUF_NAMESPACE_ID::Duration& duration(const DurationType* msg);
  };
  
  const PROTOBUF_NAMESPACE_ID::Duration&
  DurationType::_Internal::duration(const DurationType* msg) {
    return *msg->duration_;
  }
  void DurationType::clear_duration() {
    if (GetArenaNoVirtual() == nullptr && duration_ != nullptr) {
      delete duration_;
    }
    duration_ = nullptr;
  }
  DurationType::DurationType()
    : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:proto_util_converter.testing.DurationType)
  }
  DurationType::DurationType(const DurationType& from)
    : ::PROTOBUF_NAMESPACE_ID::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from._internal_has_duration()) {
      duration_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.duration_);
    } else {
      duration_ = nullptr;
    }
    // @@protoc_insertion_point(copy_constructor:proto_util_converter.testing.DurationType)
  }
  
  void DurationType::SharedCtor() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    duration_ = nullptr;
  }
  
  DurationType::~DurationType() {
    // @@protoc_insertion_point(destructor:proto_util_converter.testing.DurationType)
    SharedDtor();
  }
  
  void DurationType::SharedDtor() {
    if (this != internal_default_instance()) delete duration_;
  }
  
  void DurationType::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const DurationType& DurationType::default_instance() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DurationType_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void DurationType::Clear() {
  // @@protoc_insertion_point(message_clear_start:proto_util_converter.testing.DurationType)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    if (GetArenaNoVirtual() == nullptr && duration_ != nullptr) {
      delete duration_;
    }
    duration_ = nullptr;
    _internal_metadata_.Clear();
  }
  
  const char* DurationType::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
    while (!ctx->Done(&ptr)) {
      ::PROTOBUF_NAMESPACE_ID::uint32 tag;
      ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
      CHK_(ptr);
      switch (tag >> 3) {
        // .google.protobuf.Duration duration = 1;
        case 1:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
            ptr = ctx->ParseMessage(_internal_mutable_duration(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->SetLastTag(tag);
            goto success;
          }
          ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
          CHK_(ptr != nullptr);
          continue;
        }
      }  // switch
    }  // while
  success:
    return ptr;
  failure:
    ptr = nullptr;
    goto success;
  #undef CHK_
  }
  
  ::PROTOBUF_NAMESPACE_ID::uint8* DurationType::_InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
    // @@protoc_insertion_point(serialize_to_array_start:proto_util_converter.testing.DurationType)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .google.protobuf.Duration duration = 1;
    if (this->has_duration()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          1, _Internal::duration(this), target, stream);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target, stream);
    }
    // @@protoc_insertion_point(serialize_to_array_end:proto_util_converter.testing.DurationType)
    return target;
  }
  
  size_t DurationType::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:proto_util_converter.testing.DurationType)
    size_t total_size = 0;
  
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // .google.protobuf.Duration duration = 1;
    if (this->has_duration()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *duration_);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
          _internal_metadata_, total_size, &_cached_size_);
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void DurationType::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:proto_util_converter.testing.DurationType)
    GOOGLE_DCHECK_NE(&from, this);
    const DurationType* source =
        ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DurationType>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:proto_util_converter.testing.DurationType)
      ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:proto_util_converter.testing.DurationType)
      MergeFrom(*source);
    }
  }
  
  void DurationType::MergeFrom(const DurationType& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:proto_util_converter.testing.DurationType)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.has_duration()) {
      _internal_mutable_duration()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_duration());
    }
  }
  
  void DurationType::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:proto_util_converter.testing.DurationType)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void DurationType::CopyFrom(const DurationType& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:proto_util_converter.testing.DurationType)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool DurationType::IsInitialized() const {
    return true;
  }
  
  void DurationType::InternalSwap(DurationType* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    swap(duration_, other->duration_);
  }
  
  ::PROTOBUF_NAMESPACE_ID::Metadata DurationType::GetMetadata() const {
    return GetMetadataStatic();
  }
  
  
  // ===================================================================
  
  void TimestampDuration::InitAsDefaultInstance() {
    ::proto_util_converter::testing::_TimestampDuration_default_instance_._instance.get_mutable()->ts_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
        PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
    ::proto_util_converter::testing::_TimestampDuration_default_instance_._instance.get_mutable()->dur_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>(
        PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance());
  }
  class TimestampDuration::_Internal {
   public:
    static const PROTOBUF_NAMESPACE_ID::Timestamp& ts(const TimestampDuration* msg);
    static const PROTOBUF_NAMESPACE_ID::Duration& dur(const TimestampDuration* msg);
  };
  
  const PROTOBUF_NAMESPACE_ID::Timestamp&
  TimestampDuration::_Internal::ts(const TimestampDuration* msg) {
    return *msg->ts_;
  }
  const PROTOBUF_NAMESPACE_ID::Duration&
  TimestampDuration::_Internal::dur(const TimestampDuration* msg) {
    return *msg->dur_;
  }
  void TimestampDuration::clear_ts() {
    if (GetArenaNoVirtual() == nullptr && ts_ != nullptr) {
      delete ts_;
    }
    ts_ = nullptr;
  }
  void TimestampDuration::clear_dur() {
    if (GetArenaNoVirtual() == nullptr && dur_ != nullptr) {
      delete dur_;
    }
    dur_ = nullptr;
  }
  void TimestampDuration::clear_rep_ts() {
    rep_ts_.Clear();
  }
  TimestampDuration::TimestampDuration()
    : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:proto_util_converter.testing.TimestampDuration)
  }
  TimestampDuration::TimestampDuration(const TimestampDuration& from)
    : ::PROTOBUF_NAMESPACE_ID::Message(),
        _internal_metadata_(nullptr),
        rep_ts_(from.rep_ts_) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    if (from._internal_has_ts()) {
      ts_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.ts_);
    } else {
      ts_ = nullptr;
    }
    if (from._internal_has_dur()) {
      dur_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.dur_);
    } else {
      dur_ = nullptr;
    }
    // @@protoc_insertion_point(copy_constructor:proto_util_converter.testing.TimestampDuration)
  }
  
  void TimestampDuration::SharedCtor() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    ::memset(&ts_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&dur_) -
        reinterpret_cast<char*>(&ts_)) + sizeof(dur_));
  }
  
  TimestampDuration::~TimestampDuration() {
    // @@protoc_insertion_point(destructor:proto_util_converter.testing.TimestampDuration)
    SharedDtor();
  }
  
  void TimestampDuration::SharedDtor() {
    if (this != internal_default_instance()) delete ts_;
    if (this != internal_default_instance()) delete dur_;
  }
  
  void TimestampDuration::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const TimestampDuration& TimestampDuration::default_instance() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TimestampDuration_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void TimestampDuration::Clear() {
  // @@protoc_insertion_point(message_clear_start:proto_util_converter.testing.TimestampDuration)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    rep_ts_.Clear();
    if (GetArenaNoVirtual() == nullptr && ts_ != nullptr) {
      delete ts_;
    }
    ts_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && dur_ != nullptr) {
      delete dur_;
    }
    dur_ = nullptr;
    _internal_metadata_.Clear();
  }
  
  const char* TimestampDuration::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
    while (!ctx->Done(&ptr)) {
      ::PROTOBUF_NAMESPACE_ID::uint32 tag;
      ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
      CHK_(ptr);
      switch (tag >> 3) {
        // .google.protobuf.Timestamp ts = 1;
        case 1:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
            ptr = ctx->ParseMessage(_internal_mutable_ts(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Duration dur = 2;
        case 2:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
            ptr = ctx->ParseMessage(_internal_mutable_dur(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // repeated .google.protobuf.Timestamp rep_ts = 3;
        case 3:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
            ptr -= 1;
            do {
              ptr += 1;
              ptr = ctx->ParseMessage(_internal_add_rep_ts(), ptr);
              CHK_(ptr);
              if (!ctx->DataAvailable(ptr)) break;
            } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
          } else goto handle_unusual;
          continue;
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->SetLastTag(tag);
            goto success;
          }
          ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
          CHK_(ptr != nullptr);
          continue;
        }
      }  // switch
    }  // while
  success:
    return ptr;
  failure:
    ptr = nullptr;
    goto success;
  #undef CHK_
  }
  
  ::PROTOBUF_NAMESPACE_ID::uint8* TimestampDuration::_InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
    // @@protoc_insertion_point(serialize_to_array_start:proto_util_converter.testing.TimestampDuration)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // .google.protobuf.Timestamp ts = 1;
    if (this->has_ts()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          1, _Internal::ts(this), target, stream);
    }
  
    // .google.protobuf.Duration dur = 2;
    if (this->has_dur()) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(
          2, _Internal::dur(this), target, stream);
    }
  
    // repeated .google.protobuf.Timestamp rep_ts = 3;
    for (unsigned int i = 0,
        n = static_cast<unsigned int>(this->_internal_rep_ts_size()); i < n; i++) {
      target = stream->EnsureSpace(target);
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, this->_internal_rep_ts(i), target, stream);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target, stream);
    }
    // @@protoc_insertion_point(serialize_to_array_end:proto_util_converter.testing.TimestampDuration)
    return target;
  }
  
  size_t TimestampDuration::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:proto_util_converter.testing.TimestampDuration)
    size_t total_size = 0;
  
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // repeated .google.protobuf.Timestamp rep_ts = 3;
    total_size += 1UL * this->_internal_rep_ts_size();
    for (const auto& msg : this->rep_ts_) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
    }
  
    // .google.protobuf.Timestamp ts = 1;
    if (this->has_ts()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *ts_);
    }
  
    // .google.protobuf.Duration dur = 2;
    if (this->has_dur()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *dur_);
    }
  
    if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
      return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
          _internal_metadata_, total_size, &_cached_size_);
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void TimestampDuration::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:proto_util_converter.testing.TimestampDuration)
    GOOGLE_DCHECK_NE(&from, this);
    const TimestampDuration* source =
        ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TimestampDuration>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:proto_util_converter.testing.TimestampDuration)
      ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:proto_util_converter.testing.TimestampDuration)
      MergeFrom(*source);
    }
  }
  
  void TimestampDuration::MergeFrom(const TimestampDuration& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:proto_util_converter.testing.TimestampDuration)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    rep_ts_.MergeFrom(from.rep_ts_);
    if (from.has_ts()) {
      _internal_mutable_ts()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from._internal_ts());
    }
    if (from.has_dur()) {
      _internal_mutable_dur()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_dur());
    }
  }
  
  void TimestampDuration::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:proto_util_converter.testing.TimestampDuration)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void TimestampDuration::CopyFrom(const TimestampDuration& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:proto_util_converter.testing.TimestampDuration)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool TimestampDuration::IsInitialized() const {
    return true;
  }
  
  void TimestampDuration::InternalSwap(TimestampDuration* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    rep_ts_.InternalSwap(&other->rep_ts_);
    swap(ts_, other->ts_);
    swap(dur_, other->dur_);
  }
  
  ::PROTOBUF_NAMESPACE_ID::Metadata TimestampDuration::GetMetadata() const {
    return GetMetadataStatic();
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  }  // namespace testing
  }  // namespace proto_util_converter
  PROTOBUF_NAMESPACE_OPEN
  template<> PROTOBUF_NOINLINE ::proto_util_converter::testing::TimestampDurationTestCases* Arena::CreateMaybeMessage< ::proto_util_converter::testing::TimestampDurationTestCases >(Arena* arena) {
    return Arena::CreateInternal< ::proto_util_converter::testing::TimestampDurationTestCases >(arena);
  }
  template<> PROTOBUF_NOINLINE ::proto_util_converter::testing::TimeStampType* Arena::CreateMaybeMessage< ::proto_util_converter::testing::TimeStampType >(Arena* arena) {
    return Arena::CreateInternal< ::proto_util_converter::testing::TimeStampType >(arena);
  }
  template<> PROTOBUF_NOINLINE ::proto_util_converter::testing::DurationType* Arena::CreateMaybeMessage< ::proto_util_converter::testing::DurationType >(Arena* arena) {
    return Arena::CreateInternal< ::proto_util_converter::testing::DurationType >(arena);
  }
  template<> PROTOBUF_NOINLINE ::proto_util_converter::testing::TimestampDuration* Arena::CreateMaybeMessage< ::proto_util_converter::testing::TimestampDuration >(Arena* arena) {
    return Arena::CreateInternal< ::proto_util_converter::testing::TimestampDuration >(arena);
  }
  PROTOBUF_NAMESPACE_CLOSE
  
  // @@protoc_insertion_point(global_scope)
  #include <google/protobuf/port_undef.inc>
  