// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/anys.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/unknown_field_set.h>
#include <google/protobuf/any.pb.h>
#include <google/protobuf/struct.pb.h>
#include <google/protobuf/timestamp.pb.h>
#include <google/protobuf/duration.pb.h>
#include <google/protobuf/wrappers.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[8];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto
namespace google {
namespace protobuf {
namespace testing {
class AnyIn;
class AnyInDefaultTypeInternal;
extern AnyInDefaultTypeInternal _AnyIn_default_instance_;
class AnyM;
class AnyMDefaultTypeInternal;
extern AnyMDefaultTypeInternal _AnyM_default_instance_;
class AnyOut;
class AnyOutDefaultTypeInternal;
extern AnyOutDefaultTypeInternal _AnyOut_default_instance_;
class AnyTestCases;
class AnyTestCasesDefaultTypeInternal;
extern AnyTestCasesDefaultTypeInternal _AnyTestCases_default_instance_;
class AnyWrapper;
class AnyWrapperDefaultTypeInternal;
extern AnyWrapperDefaultTypeInternal _AnyWrapper_default_instance_;
class Data;
class DataDefaultTypeInternal;
extern DataDefaultTypeInternal _Data_default_instance_;
class Data_MapDataEntry_DoNotUse;
class Data_MapDataEntry_DoNotUseDefaultTypeInternal;
extern Data_MapDataEntry_DoNotUseDefaultTypeInternal _Data_MapDataEntry_DoNotUse_default_instance_;
class Imports;
class ImportsDefaultTypeInternal;
extern ImportsDefaultTypeInternal _Imports_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::AnyIn* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyIn>(Arena*);
template<> ::google::protobuf::testing::AnyM* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyM>(Arena*);
template<> ::google::protobuf::testing::AnyOut* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyOut>(Arena*);
template<> ::google::protobuf::testing::AnyTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyTestCases>(Arena*);
template<> ::google::protobuf::testing::AnyWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(Arena*);
template<> ::google::protobuf::testing::Data* Arena::CreateMaybeMessage<::google::protobuf::testing::Data>(Arena*);
template<> ::google::protobuf::testing::Data_MapDataEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::Data_MapDataEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::Imports* Arena::CreateMaybeMessage<::google::protobuf::testing::Imports>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

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

class AnyTestCases : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyTestCases) */ {
 public:
  AnyTestCases();
  virtual ~AnyTestCases();

  AnyTestCases(const AnyTestCases& from);

  inline AnyTestCases& operator=(const AnyTestCases& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AnyTestCases(AnyTestCases&& from) noexcept
    : AnyTestCases() {
    *this = ::std::move(from);
  }

  inline AnyTestCases& operator=(AnyTestCases&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyTestCases& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AnyTestCases* internal_default_instance() {
    return reinterpret_cast<const AnyTestCases*>(
               &_AnyTestCases_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(AnyTestCases* other);
  friend void swap(AnyTestCases& a, AnyTestCases& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AnyTestCases* New() const final {
    return CreateMaybeMessage<AnyTestCases>(NULL);
  }

  AnyTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyTestCases& from);
  void MergeFrom(const AnyTestCases& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyTestCases* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.testing.AnyWrapper empty_any = 1;
  bool has_empty_any() const;
  void clear_empty_any();
  static const int kEmptyAnyFieldNumber = 1;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_empty_any() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& empty_any() const;
  ::google::protobuf::testing::AnyWrapper* release_empty_any();
  ::google::protobuf::testing::AnyWrapper* mutable_empty_any();
  void set_allocated_empty_any(::google::protobuf::testing::AnyWrapper* empty_any);

  // .google.protobuf.testing.AnyWrapper type_only_any = 2;
  bool has_type_only_any() const;
  void clear_type_only_any();
  static const int kTypeOnlyAnyFieldNumber = 2;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_type_only_any() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& type_only_any() const;
  ::google::protobuf::testing::AnyWrapper* release_type_only_any();
  ::google::protobuf::testing::AnyWrapper* mutable_type_only_any();
  void set_allocated_type_only_any(::google::protobuf::testing::AnyWrapper* type_only_any);

  // .google.protobuf.testing.AnyWrapper wrapper_any = 3;
  bool has_wrapper_any() const;
  void clear_wrapper_any();
  static const int kWrapperAnyFieldNumber = 3;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_wrapper_any() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& wrapper_any() const;
  ::google::protobuf::testing::AnyWrapper* release_wrapper_any();
  ::google::protobuf::testing::AnyWrapper* mutable_wrapper_any();
  void set_allocated_wrapper_any(::google::protobuf::testing::AnyWrapper* wrapper_any);

  // .google.protobuf.testing.AnyWrapper any_with_timestamp_value = 4;
  bool has_any_with_timestamp_value() const;
  void clear_any_with_timestamp_value();
  static const int kAnyWithTimestampValueFieldNumber = 4;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_timestamp_value() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_timestamp_value() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_timestamp_value();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_timestamp_value();
  void set_allocated_any_with_timestamp_value(::google::protobuf::testing::AnyWrapper* any_with_timestamp_value);

  // .google.protobuf.testing.AnyWrapper any_with_duration_value = 5;
  bool has_any_with_duration_value() const;
  void clear_any_with_duration_value();
  static const int kAnyWithDurationValueFieldNumber = 5;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_duration_value() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_duration_value() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_duration_value();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_duration_value();
  void set_allocated_any_with_duration_value(::google::protobuf::testing::AnyWrapper* any_with_duration_value);

  // .google.protobuf.testing.AnyWrapper any_with_struct_value = 6;
  bool has_any_with_struct_value() const;
  void clear_any_with_struct_value();
  static const int kAnyWithStructValueFieldNumber = 6;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_struct_value() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_struct_value() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_struct_value();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_struct_value();
  void set_allocated_any_with_struct_value(::google::protobuf::testing::AnyWrapper* any_with_struct_value);

  // .google.protobuf.testing.AnyWrapper recursive_any = 7;
  bool has_recursive_any() const;
  void clear_recursive_any();
  static const int kRecursiveAnyFieldNumber = 7;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_recursive_any() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& recursive_any() const;
  ::google::protobuf::testing::AnyWrapper* release_recursive_any();
  ::google::protobuf::testing::AnyWrapper* mutable_recursive_any();
  void set_allocated_recursive_any(::google::protobuf::testing::AnyWrapper* recursive_any);

  // .google.protobuf.testing.AnyWrapper any_with_message_value = 8;
  bool has_any_with_message_value() const;
  void clear_any_with_message_value();
  static const int kAnyWithMessageValueFieldNumber = 8;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_value() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_value() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_value();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_value();
  void set_allocated_any_with_message_value(::google::protobuf::testing::AnyWrapper* any_with_message_value);

  // .google.protobuf.testing.AnyWrapper any_with_nested_message = 9;
  bool has_any_with_nested_message() const;
  void clear_any_with_nested_message();
  static const int kAnyWithNestedMessageFieldNumber = 9;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_nested_message() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_nested_message() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_nested_message();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_nested_message();
  void set_allocated_any_with_nested_message(::google::protobuf::testing::AnyWrapper* any_with_nested_message);

  // .google.protobuf.testing.AnyWrapper any_with_message_with_wrapper_type = 10;
  bool has_any_with_message_with_wrapper_type() const;
  void clear_any_with_message_with_wrapper_type();
  static const int kAnyWithMessageWithWrapperTypeFieldNumber = 10;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_with_wrapper_type() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_with_wrapper_type() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_with_wrapper_type();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_with_wrapper_type();
  void set_allocated_any_with_message_with_wrapper_type(::google::protobuf::testing::AnyWrapper* any_with_message_with_wrapper_type);

  // .google.protobuf.testing.AnyWrapper any_with_message_with_timestamp = 11;
  bool has_any_with_message_with_timestamp() const;
  void clear_any_with_message_with_timestamp();
  static const int kAnyWithMessageWithTimestampFieldNumber = 11;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_with_timestamp() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_with_timestamp() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_with_timestamp();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_with_timestamp();
  void set_allocated_any_with_message_with_timestamp(::google::protobuf::testing::AnyWrapper* any_with_message_with_timestamp);

  // .google.protobuf.testing.AnyWrapper any_with_message_containing_map = 12;
  bool has_any_with_message_containing_map() const;
  void clear_any_with_message_containing_map();
  static const int kAnyWithMessageContainingMapFieldNumber = 12;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_containing_map() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_containing_map() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_containing_map();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_containing_map();
  void set_allocated_any_with_message_containing_map(::google::protobuf::testing::AnyWrapper* any_with_message_containing_map);

  // .google.protobuf.testing.AnyWrapper any_with_message_containing_struct = 13;
  bool has_any_with_message_containing_struct() const;
  void clear_any_with_message_containing_struct();
  static const int kAnyWithMessageContainingStructFieldNumber = 13;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_containing_struct() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_containing_struct() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_containing_struct();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_containing_struct();
  void set_allocated_any_with_message_containing_struct(::google::protobuf::testing::AnyWrapper* any_with_message_containing_struct);

  // .google.protobuf.testing.AnyWrapper any_with_message_containing_repeated_message = 14;
  bool has_any_with_message_containing_repeated_message() const;
  void clear_any_with_message_containing_repeated_message();
  static const int kAnyWithMessageContainingRepeatedMessageFieldNumber = 14;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_any_with_message_containing_repeated_message() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& any_with_message_containing_repeated_message() const;
  ::google::protobuf::testing::AnyWrapper* release_any_with_message_containing_repeated_message();
  ::google::protobuf::testing::AnyWrapper* mutable_any_with_message_containing_repeated_message();
  void set_allocated_any_with_message_containing_repeated_message(::google::protobuf::testing::AnyWrapper* any_with_message_containing_repeated_message);

  // .google.protobuf.testing.AnyWrapper recursive_any_with_type_field_at_end = 15;
  bool has_recursive_any_with_type_field_at_end() const;
  void clear_recursive_any_with_type_field_at_end();
  static const int kRecursiveAnyWithTypeFieldAtEndFieldNumber = 15;
  private:
  const ::google::protobuf::testing::AnyWrapper& _internal_recursive_any_with_type_field_at_end() const;
  public:
  const ::google::protobuf::testing::AnyWrapper& recursive_any_with_type_field_at_end() const;
  ::google::protobuf::testing::AnyWrapper* release_recursive_any_with_type_field_at_end();
  ::google::protobuf::testing::AnyWrapper* mutable_recursive_any_with_type_field_at_end();
  void set_allocated_recursive_any_with_type_field_at_end(::google::protobuf::testing::AnyWrapper* recursive_any_with_type_field_at_end);

  // .google.protobuf.Any top_level_any = 50;
  bool has_top_level_any() const;
  void clear_top_level_any();
  static const int kTopLevelAnyFieldNumber = 50;
  private:
  const ::google::protobuf::Any& _internal_top_level_any() const;
  public:
  const ::google::protobuf::Any& top_level_any() const;
  ::google::protobuf::Any* release_top_level_any();
  ::google::protobuf::Any* mutable_top_level_any();
  void set_allocated_top_level_any(::google::protobuf::Any* top_level_any);

  // .google.protobuf.Any top_level_any_with_type_field_at_end = 51;
  bool has_top_level_any_with_type_field_at_end() const;
  void clear_top_level_any_with_type_field_at_end();
  static const int kTopLevelAnyWithTypeFieldAtEndFieldNumber = 51;
  private:
  const ::google::protobuf::Any& _internal_top_level_any_with_type_field_at_end() const;
  public:
  const ::google::protobuf::Any& top_level_any_with_type_field_at_end() const;
  ::google::protobuf::Any* release_top_level_any_with_type_field_at_end();
  ::google::protobuf::Any* mutable_top_level_any_with_type_field_at_end();
  void set_allocated_top_level_any_with_type_field_at_end(::google::protobuf::Any* top_level_any_with_type_field_at_end);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyTestCases)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::AnyWrapper* empty_any_;
  ::google::protobuf::testing::AnyWrapper* type_only_any_;
  ::google::protobuf::testing::AnyWrapper* wrapper_any_;
  ::google::protobuf::testing::AnyWrapper* any_with_timestamp_value_;
  ::google::protobuf::testing::AnyWrapper* any_with_duration_value_;
  ::google::protobuf::testing::AnyWrapper* any_with_struct_value_;
  ::google::protobuf::testing::AnyWrapper* recursive_any_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_value_;
  ::google::protobuf::testing::AnyWrapper* any_with_nested_message_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_with_wrapper_type_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_with_timestamp_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_containing_map_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_containing_struct_;
  ::google::protobuf::testing::AnyWrapper* any_with_message_containing_repeated_message_;
  ::google::protobuf::testing::AnyWrapper* recursive_any_with_type_field_at_end_;
  ::google::protobuf::Any* top_level_any_;
  ::google::protobuf::Any* top_level_any_with_type_field_at_end_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyWrapper : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyWrapper) */ {
 public:
  AnyWrapper();
  virtual ~AnyWrapper();

  AnyWrapper(const AnyWrapper& from);

  inline AnyWrapper& operator=(const AnyWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AnyWrapper(AnyWrapper&& from) noexcept
    : AnyWrapper() {
    *this = ::std::move(from);
  }

  inline AnyWrapper& operator=(AnyWrapper&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyWrapper& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AnyWrapper* internal_default_instance() {
    return reinterpret_cast<const AnyWrapper*>(
               &_AnyWrapper_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(AnyWrapper* other);
  friend void swap(AnyWrapper& a, AnyWrapper& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AnyWrapper* New() const final {
    return CreateMaybeMessage<AnyWrapper>(NULL);
  }

  AnyWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyWrapper& from);
  void MergeFrom(const AnyWrapper& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyWrapper* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Any any = 1;
  bool has_any() const;
  void clear_any();
  static const int kAnyFieldNumber = 1;
  private:
  const ::google::protobuf::Any& _internal_any() const;
  public:
  const ::google::protobuf::Any& any() const;
  ::google::protobuf::Any* release_any();
  ::google::protobuf::Any* mutable_any();
  void set_allocated_any(::google::protobuf::Any* any);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyWrapper)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Any* any_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Imports : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.Imports) */ {
 public:
  Imports();
  virtual ~Imports();

  Imports(const Imports& from);

  inline Imports& operator=(const Imports& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Imports(Imports&& from) noexcept
    : Imports() {
    *this = ::std::move(from);
  }

  inline Imports& operator=(Imports&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Imports& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Imports* internal_default_instance() {
    return reinterpret_cast<const Imports*>(
               &_Imports_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(Imports* other);
  friend void swap(Imports& a, Imports& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Imports* New() const final {
    return CreateMaybeMessage<Imports>(NULL);
  }

  Imports* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Imports>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Imports& from);
  void MergeFrom(const Imports& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Imports* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.DoubleValue dbl = 1;
  bool has_dbl() const;
  void clear_dbl();
  static const int kDblFieldNumber = 1;
  private:
  const ::google::protobuf::DoubleValue& _internal_dbl() const;
  public:
  const ::google::protobuf::DoubleValue& dbl() const;
  ::google::protobuf::DoubleValue* release_dbl();
  ::google::protobuf::DoubleValue* mutable_dbl();
  void set_allocated_dbl(::google::protobuf::DoubleValue* dbl);

  // .google.protobuf.Struct struct = 2;
  bool has_struct_() const;
  void clear_struct_();
  static const int kStructFieldNumber = 2;
  private:
  const ::google::protobuf::Struct& _internal_struct_() const;
  public:
  const ::google::protobuf::Struct& struct_() const;
  ::google::protobuf::Struct* release_struct_();
  ::google::protobuf::Struct* mutable_struct_();
  void set_allocated_struct_(::google::protobuf::Struct* struct_);

  // .google.protobuf.Timestamp timestamp = 3;
  bool has_timestamp() const;
  void clear_timestamp();
  static const int kTimestampFieldNumber = 3;
  private:
  const ::google::protobuf::Timestamp& _internal_timestamp() const;
  public:
  const ::google::protobuf::Timestamp& timestamp() const;
  ::google::protobuf::Timestamp* release_timestamp();
  ::google::protobuf::Timestamp* mutable_timestamp();
  void set_allocated_timestamp(::google::protobuf::Timestamp* timestamp);

  // .google.protobuf.Duration duration = 4;
  bool has_duration() const;
  void clear_duration();
  static const int kDurationFieldNumber = 4;
  private:
  const ::google::protobuf::Duration& _internal_duration() const;
  public:
  const ::google::protobuf::Duration& duration() const;
  ::google::protobuf::Duration* release_duration();
  ::google::protobuf::Duration* mutable_duration();
  void set_allocated_duration(::google::protobuf::Duration* duration);

  // .google.protobuf.Int32Value i32 = 5;
  bool has_i32() const;
  void clear_i32();
  static const int kI32FieldNumber = 5;
  private:
  const ::google::protobuf::Int32Value& _internal_i32() const;
  public:
  const ::google::protobuf::Int32Value& i32() const;
  ::google::protobuf::Int32Value* release_i32();
  ::google::protobuf::Int32Value* mutable_i32();
  void set_allocated_i32(::google::protobuf::Int32Value* i32);

  // .google.protobuf.testing.Data data = 100;
  bool has_data() const;
  void clear_data();
  static const int kDataFieldNumber = 100;
  private:
  const ::google::protobuf::testing::Data& _internal_data() const;
  public:
  const ::google::protobuf::testing::Data& data() const;
  ::google::protobuf::testing::Data* release_data();
  ::google::protobuf::testing::Data* mutable_data();
  void set_allocated_data(::google::protobuf::testing::Data* data);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.Imports)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::DoubleValue* dbl_;
  ::google::protobuf::Struct* struct__;
  ::google::protobuf::Timestamp* timestamp_;
  ::google::protobuf::Duration* duration_;
  ::google::protobuf::Int32Value* i32_;
  ::google::protobuf::testing::Data* data_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Data_MapDataEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<Data_MapDataEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<Data_MapDataEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  Data_MapDataEntry_DoNotUse();
  Data_MapDataEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const Data_MapDataEntry_DoNotUse& other);
  static const Data_MapDataEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Data_MapDataEntry_DoNotUse*>(&_Data_MapDataEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class Data : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.Data) */ {
 public:
  Data();
  virtual ~Data();

  Data(const Data& from);

  inline Data& operator=(const Data& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Data(Data&& from) noexcept
    : Data() {
    *this = ::std::move(from);
  }

  inline Data& operator=(Data&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Data& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Data* internal_default_instance() {
    return reinterpret_cast<const Data*>(
               &_Data_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(Data* other);
  friend void swap(Data& a, Data& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Data* New() const final {
    return CreateMaybeMessage<Data>(NULL);
  }

  Data* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Data>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Data& from);
  void MergeFrom(const Data& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Data* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // repeated string msgs = 3;
  int msgs_size() const;
  void clear_msgs();
  static const int kMsgsFieldNumber = 3;
  const ::std::string& msgs(int index) const;
  ::std::string* mutable_msgs(int index);
  void set_msgs(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_msgs(int index, ::std::string&& value);
  #endif
  void set_msgs(int index, const char* value);
  void set_msgs(int index, const char* value, size_t size);
  ::std::string* add_msgs();
  void add_msgs(const ::std::string& value);
  #if LANG_CXX11
  void add_msgs(::std::string&& value);
  #endif
  void add_msgs(const char* value);
  void add_msgs(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& msgs() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_msgs();

  // map<string, string> map_data = 7;
  int map_data_size() const;
  void clear_map_data();
  static const int kMapDataFieldNumber = 7;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      map_data() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_map_data();

  // repeated .google.protobuf.testing.Data repeated_data = 9;
  int repeated_data_size() const;
  void clear_repeated_data();
  static const int kRepeatedDataFieldNumber = 9;
  ::google::protobuf::testing::Data* mutable_repeated_data(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::Data >*
      mutable_repeated_data();
  const ::google::protobuf::testing::Data& repeated_data(int index) const;
  ::google::protobuf::testing::Data* add_repeated_data();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::Data >&
      repeated_data() const;

  // string str = 2;
  void clear_str();
  static const int kStrFieldNumber = 2;
  const ::std::string& str() const;
  void set_str(const ::std::string& value);
  #if LANG_CXX11
  void set_str(::std::string&& value);
  #endif
  void set_str(const char* value);
  void set_str(const char* value, size_t size);
  ::std::string* mutable_str();
  ::std::string* release_str();
  void set_allocated_str(::std::string* str);

  // .google.protobuf.testing.Data nested_data = 4;
  bool has_nested_data() const;
  void clear_nested_data();
  static const int kNestedDataFieldNumber = 4;
  private:
  const ::google::protobuf::testing::Data& _internal_nested_data() const;
  public:
  const ::google::protobuf::testing::Data& nested_data() const;
  ::google::protobuf::testing::Data* release_nested_data();
  ::google::protobuf::testing::Data* mutable_nested_data();
  void set_allocated_nested_data(::google::protobuf::testing::Data* nested_data);

  // .google.protobuf.Int32Value int_wrapper = 5;
  bool has_int_wrapper() const;
  void clear_int_wrapper();
  static const int kIntWrapperFieldNumber = 5;
  private:
  const ::google::protobuf::Int32Value& _internal_int_wrapper() const;
  public:
  const ::google::protobuf::Int32Value& int_wrapper() const;
  ::google::protobuf::Int32Value* release_int_wrapper();
  ::google::protobuf::Int32Value* mutable_int_wrapper();
  void set_allocated_int_wrapper(::google::protobuf::Int32Value* int_wrapper);

  // .google.protobuf.Timestamp time = 6;
  bool has_time() const;
  void clear_time();
  static const int kTimeFieldNumber = 6;
  private:
  const ::google::protobuf::Timestamp& _internal_time() const;
  public:
  const ::google::protobuf::Timestamp& time() const;
  ::google::protobuf::Timestamp* release_time();
  ::google::protobuf::Timestamp* mutable_time();
  void set_allocated_time(::google::protobuf::Timestamp* time);

  // .google.protobuf.Struct struct_data = 8;
  bool has_struct_data() const;
  void clear_struct_data();
  static const int kStructDataFieldNumber = 8;
  private:
  const ::google::protobuf::Struct& _internal_struct_data() const;
  public:
  const ::google::protobuf::Struct& struct_data() const;
  ::google::protobuf::Struct* release_struct_data();
  ::google::protobuf::Struct* mutable_struct_data();
  void set_allocated_struct_data(::google::protobuf::Struct* struct_data);

  // int32 attr = 1;
  void clear_attr();
  static const int kAttrFieldNumber = 1;
  ::google::protobuf::int32 attr() const;
  void set_attr(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.Data)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::std::string> msgs_;
  ::google::protobuf::internal::MapField<
      Data_MapDataEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > map_data_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::Data > repeated_data_;
  ::google::protobuf::internal::ArenaStringPtr str_;
  ::google::protobuf::testing::Data* nested_data_;
  ::google::protobuf::Int32Value* int_wrapper_;
  ::google::protobuf::Timestamp* time_;
  ::google::protobuf::Struct* struct_data_;
  ::google::protobuf::int32 attr_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyIn : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyIn) */ {
 public:
  AnyIn();
  virtual ~AnyIn();

  AnyIn(const AnyIn& from);

  inline AnyIn& operator=(const AnyIn& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AnyIn(AnyIn&& from) noexcept
    : AnyIn() {
    *this = ::std::move(from);
  }

  inline AnyIn& operator=(AnyIn&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyIn& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AnyIn* internal_default_instance() {
    return reinterpret_cast<const AnyIn*>(
               &_AnyIn_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  void Swap(AnyIn* other);
  friend void swap(AnyIn& a, AnyIn& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AnyIn* New() const final {
    return CreateMaybeMessage<AnyIn>(NULL);
  }

  AnyIn* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyIn>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyIn& from);
  void MergeFrom(const AnyIn& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyIn* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string something = 1;
  void clear_something();
  static const int kSomethingFieldNumber = 1;
  const ::std::string& something() const;
  void set_something(const ::std::string& value);
  #if LANG_CXX11
  void set_something(::std::string&& value);
  #endif
  void set_something(const char* value);
  void set_something(const char* value, size_t size);
  ::std::string* mutable_something();
  ::std::string* release_something();
  void set_allocated_something(::std::string* something);

  // .google.protobuf.Any any = 2;
  bool has_any() const;
  void clear_any();
  static const int kAnyFieldNumber = 2;
  private:
  const ::google::protobuf::Any& _internal_any() const;
  public:
  const ::google::protobuf::Any& any() const;
  ::google::protobuf::Any* release_any();
  ::google::protobuf::Any* mutable_any();
  void set_allocated_any(::google::protobuf::Any* any);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyIn)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr something_;
  ::google::protobuf::Any* any_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyOut : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyOut) */ {
 public:
  AnyOut();
  virtual ~AnyOut();

  AnyOut(const AnyOut& from);

  inline AnyOut& operator=(const AnyOut& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AnyOut(AnyOut&& from) noexcept
    : AnyOut() {
    *this = ::std::move(from);
  }

  inline AnyOut& operator=(AnyOut&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyOut& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AnyOut* internal_default_instance() {
    return reinterpret_cast<const AnyOut*>(
               &_AnyOut_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  void Swap(AnyOut* other);
  friend void swap(AnyOut& a, AnyOut& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AnyOut* New() const final {
    return CreateMaybeMessage<AnyOut>(NULL);
  }

  AnyOut* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyOut>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyOut& from);
  void MergeFrom(const AnyOut& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyOut* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.protobuf.Any any = 1;
  bool has_any() const;
  void clear_any();
  static const int kAnyFieldNumber = 1;
  private:
  const ::google::protobuf::Any& _internal_any() const;
  public:
  const ::google::protobuf::Any& any() const;
  ::google::protobuf::Any* release_any();
  ::google::protobuf::Any* mutable_any();
  void set_allocated_any(::google::protobuf::Any* any);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyOut)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Any* any_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyM : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyM) */ {
 public:
  AnyM();
  virtual ~AnyM();

  AnyM(const AnyM& from);

  inline AnyM& operator=(const AnyM& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AnyM(AnyM&& from) noexcept
    : AnyM() {
    *this = ::std::move(from);
  }

  inline AnyM& operator=(AnyM&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyM& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AnyM* internal_default_instance() {
    return reinterpret_cast<const AnyM*>(
               &_AnyM_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  void Swap(AnyM* other);
  friend void swap(AnyM& a, AnyM& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AnyM* New() const final {
    return CreateMaybeMessage<AnyM>(NULL);
  }

  AnyM* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyM>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyM& from);
  void MergeFrom(const AnyM& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyM* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string foo = 1;
  void clear_foo();
  static const int kFooFieldNumber = 1;
  const ::std::string& foo() const;
  void set_foo(const ::std::string& value);
  #if LANG_CXX11
  void set_foo(::std::string&& value);
  #endif
  void set_foo(const char* value);
  void set_foo(const char* value, size_t size);
  ::std::string* mutable_foo();
  ::std::string* release_foo();
  void set_allocated_foo(::std::string* foo);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyM)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr foo_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto::TableStruct;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// AnyTestCases

// .google.protobuf.testing.AnyWrapper empty_any = 1;
inline bool AnyTestCases::has_empty_any() const {
  return this != internal_default_instance() && empty_any_ != NULL;
}
inline void AnyTestCases::clear_empty_any() {
  if (GetArenaNoVirtual() == NULL && empty_any_ != NULL) {
    delete empty_any_;
  }
  empty_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_empty_any() const {
  return *empty_any_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::empty_any() const {
  const ::google::protobuf::testing::AnyWrapper* p = empty_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.empty_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_empty_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.empty_any)
  
  ::google::protobuf::testing::AnyWrapper* temp = empty_any_;
  empty_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_empty_any() {
  
  if (empty_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    empty_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.empty_any)
  return empty_any_;
}
inline void AnyTestCases::set_allocated_empty_any(::google::protobuf::testing::AnyWrapper* empty_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_any_;
  }
  if (empty_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_any, submessage_arena);
    }
    
  } else {
    
  }
  empty_any_ = empty_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.empty_any)
}

// .google.protobuf.testing.AnyWrapper type_only_any = 2;
inline bool AnyTestCases::has_type_only_any() const {
  return this != internal_default_instance() && type_only_any_ != NULL;
}
inline void AnyTestCases::clear_type_only_any() {
  if (GetArenaNoVirtual() == NULL && type_only_any_ != NULL) {
    delete type_only_any_;
  }
  type_only_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_type_only_any() const {
  return *type_only_any_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::type_only_any() const {
  const ::google::protobuf::testing::AnyWrapper* p = type_only_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.type_only_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_type_only_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.type_only_any)
  
  ::google::protobuf::testing::AnyWrapper* temp = type_only_any_;
  type_only_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_type_only_any() {
  
  if (type_only_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    type_only_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.type_only_any)
  return type_only_any_;
}
inline void AnyTestCases::set_allocated_type_only_any(::google::protobuf::testing::AnyWrapper* type_only_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete type_only_any_;
  }
  if (type_only_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      type_only_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, type_only_any, submessage_arena);
    }
    
  } else {
    
  }
  type_only_any_ = type_only_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.type_only_any)
}

// .google.protobuf.testing.AnyWrapper wrapper_any = 3;
inline bool AnyTestCases::has_wrapper_any() const {
  return this != internal_default_instance() && wrapper_any_ != NULL;
}
inline void AnyTestCases::clear_wrapper_any() {
  if (GetArenaNoVirtual() == NULL && wrapper_any_ != NULL) {
    delete wrapper_any_;
  }
  wrapper_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_wrapper_any() const {
  return *wrapper_any_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::wrapper_any() const {
  const ::google::protobuf::testing::AnyWrapper* p = wrapper_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.wrapper_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_wrapper_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.wrapper_any)
  
  ::google::protobuf::testing::AnyWrapper* temp = wrapper_any_;
  wrapper_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_wrapper_any() {
  
  if (wrapper_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    wrapper_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.wrapper_any)
  return wrapper_any_;
}
inline void AnyTestCases::set_allocated_wrapper_any(::google::protobuf::testing::AnyWrapper* wrapper_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete wrapper_any_;
  }
  if (wrapper_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      wrapper_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, wrapper_any, submessage_arena);
    }
    
  } else {
    
  }
  wrapper_any_ = wrapper_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.wrapper_any)
}

// .google.protobuf.testing.AnyWrapper any_with_timestamp_value = 4;
inline bool AnyTestCases::has_any_with_timestamp_value() const {
  return this != internal_default_instance() && any_with_timestamp_value_ != NULL;
}
inline void AnyTestCases::clear_any_with_timestamp_value() {
  if (GetArenaNoVirtual() == NULL && any_with_timestamp_value_ != NULL) {
    delete any_with_timestamp_value_;
  }
  any_with_timestamp_value_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_timestamp_value() const {
  return *any_with_timestamp_value_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_timestamp_value() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_timestamp_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_timestamp_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_timestamp_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_timestamp_value)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_timestamp_value_;
  any_with_timestamp_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_timestamp_value() {
  
  if (any_with_timestamp_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_timestamp_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_timestamp_value)
  return any_with_timestamp_value_;
}
inline void AnyTestCases::set_allocated_any_with_timestamp_value(::google::protobuf::testing::AnyWrapper* any_with_timestamp_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_timestamp_value_;
  }
  if (any_with_timestamp_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_timestamp_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_timestamp_value, submessage_arena);
    }
    
  } else {
    
  }
  any_with_timestamp_value_ = any_with_timestamp_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_timestamp_value)
}

// .google.protobuf.testing.AnyWrapper any_with_duration_value = 5;
inline bool AnyTestCases::has_any_with_duration_value() const {
  return this != internal_default_instance() && any_with_duration_value_ != NULL;
}
inline void AnyTestCases::clear_any_with_duration_value() {
  if (GetArenaNoVirtual() == NULL && any_with_duration_value_ != NULL) {
    delete any_with_duration_value_;
  }
  any_with_duration_value_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_duration_value() const {
  return *any_with_duration_value_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_duration_value() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_duration_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_duration_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_duration_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_duration_value)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_duration_value_;
  any_with_duration_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_duration_value() {
  
  if (any_with_duration_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_duration_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_duration_value)
  return any_with_duration_value_;
}
inline void AnyTestCases::set_allocated_any_with_duration_value(::google::protobuf::testing::AnyWrapper* any_with_duration_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_duration_value_;
  }
  if (any_with_duration_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_duration_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_duration_value, submessage_arena);
    }
    
  } else {
    
  }
  any_with_duration_value_ = any_with_duration_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_duration_value)
}

// .google.protobuf.testing.AnyWrapper any_with_struct_value = 6;
inline bool AnyTestCases::has_any_with_struct_value() const {
  return this != internal_default_instance() && any_with_struct_value_ != NULL;
}
inline void AnyTestCases::clear_any_with_struct_value() {
  if (GetArenaNoVirtual() == NULL && any_with_struct_value_ != NULL) {
    delete any_with_struct_value_;
  }
  any_with_struct_value_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_struct_value() const {
  return *any_with_struct_value_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_struct_value() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_struct_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_struct_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_struct_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_struct_value)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_struct_value_;
  any_with_struct_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_struct_value() {
  
  if (any_with_struct_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_struct_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_struct_value)
  return any_with_struct_value_;
}
inline void AnyTestCases::set_allocated_any_with_struct_value(::google::protobuf::testing::AnyWrapper* any_with_struct_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_struct_value_;
  }
  if (any_with_struct_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_struct_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_struct_value, submessage_arena);
    }
    
  } else {
    
  }
  any_with_struct_value_ = any_with_struct_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_struct_value)
}

// .google.protobuf.testing.AnyWrapper recursive_any = 7;
inline bool AnyTestCases::has_recursive_any() const {
  return this != internal_default_instance() && recursive_any_ != NULL;
}
inline void AnyTestCases::clear_recursive_any() {
  if (GetArenaNoVirtual() == NULL && recursive_any_ != NULL) {
    delete recursive_any_;
  }
  recursive_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_recursive_any() const {
  return *recursive_any_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::recursive_any() const {
  const ::google::protobuf::testing::AnyWrapper* p = recursive_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.recursive_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_recursive_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.recursive_any)
  
  ::google::protobuf::testing::AnyWrapper* temp = recursive_any_;
  recursive_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_recursive_any() {
  
  if (recursive_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    recursive_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.recursive_any)
  return recursive_any_;
}
inline void AnyTestCases::set_allocated_recursive_any(::google::protobuf::testing::AnyWrapper* recursive_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete recursive_any_;
  }
  if (recursive_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      recursive_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, recursive_any, submessage_arena);
    }
    
  } else {
    
  }
  recursive_any_ = recursive_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.recursive_any)
}

// .google.protobuf.testing.AnyWrapper any_with_message_value = 8;
inline bool AnyTestCases::has_any_with_message_value() const {
  return this != internal_default_instance() && any_with_message_value_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_value() {
  if (GetArenaNoVirtual() == NULL && any_with_message_value_ != NULL) {
    delete any_with_message_value_;
  }
  any_with_message_value_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_value() const {
  return *any_with_message_value_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_value() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_value)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_value_;
  any_with_message_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_value() {
  
  if (any_with_message_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_value)
  return any_with_message_value_;
}
inline void AnyTestCases::set_allocated_any_with_message_value(::google::protobuf::testing::AnyWrapper* any_with_message_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_value_;
  }
  if (any_with_message_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_value, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_value_ = any_with_message_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_value)
}

// .google.protobuf.testing.AnyWrapper any_with_nested_message = 9;
inline bool AnyTestCases::has_any_with_nested_message() const {
  return this != internal_default_instance() && any_with_nested_message_ != NULL;
}
inline void AnyTestCases::clear_any_with_nested_message() {
  if (GetArenaNoVirtual() == NULL && any_with_nested_message_ != NULL) {
    delete any_with_nested_message_;
  }
  any_with_nested_message_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_nested_message() const {
  return *any_with_nested_message_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_nested_message() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_nested_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_nested_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_nested_message)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_nested_message_;
  any_with_nested_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_nested_message() {
  
  if (any_with_nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_nested_message)
  return any_with_nested_message_;
}
inline void AnyTestCases::set_allocated_any_with_nested_message(::google::protobuf::testing::AnyWrapper* any_with_nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_nested_message_;
  }
  if (any_with_nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_nested_message, submessage_arena);
    }
    
  } else {
    
  }
  any_with_nested_message_ = any_with_nested_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_nested_message)
}

// .google.protobuf.testing.AnyWrapper any_with_message_with_wrapper_type = 10;
inline bool AnyTestCases::has_any_with_message_with_wrapper_type() const {
  return this != internal_default_instance() && any_with_message_with_wrapper_type_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_with_wrapper_type() {
  if (GetArenaNoVirtual() == NULL && any_with_message_with_wrapper_type_ != NULL) {
    delete any_with_message_with_wrapper_type_;
  }
  any_with_message_with_wrapper_type_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_with_wrapper_type() const {
  return *any_with_message_with_wrapper_type_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_with_wrapper_type() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_with_wrapper_type_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_with_wrapper_type)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_with_wrapper_type() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_with_wrapper_type)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_with_wrapper_type_;
  any_with_message_with_wrapper_type_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_with_wrapper_type() {
  
  if (any_with_message_with_wrapper_type_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_with_wrapper_type_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_with_wrapper_type)
  return any_with_message_with_wrapper_type_;
}
inline void AnyTestCases::set_allocated_any_with_message_with_wrapper_type(::google::protobuf::testing::AnyWrapper* any_with_message_with_wrapper_type) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_with_wrapper_type_;
  }
  if (any_with_message_with_wrapper_type) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_with_wrapper_type = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_with_wrapper_type, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_with_wrapper_type_ = any_with_message_with_wrapper_type;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_with_wrapper_type)
}

// .google.protobuf.testing.AnyWrapper any_with_message_with_timestamp = 11;
inline bool AnyTestCases::has_any_with_message_with_timestamp() const {
  return this != internal_default_instance() && any_with_message_with_timestamp_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_with_timestamp() {
  if (GetArenaNoVirtual() == NULL && any_with_message_with_timestamp_ != NULL) {
    delete any_with_message_with_timestamp_;
  }
  any_with_message_with_timestamp_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_with_timestamp() const {
  return *any_with_message_with_timestamp_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_with_timestamp() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_with_timestamp_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_with_timestamp)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_with_timestamp() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_with_timestamp)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_with_timestamp_;
  any_with_message_with_timestamp_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_with_timestamp() {
  
  if (any_with_message_with_timestamp_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_with_timestamp_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_with_timestamp)
  return any_with_message_with_timestamp_;
}
inline void AnyTestCases::set_allocated_any_with_message_with_timestamp(::google::protobuf::testing::AnyWrapper* any_with_message_with_timestamp) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_with_timestamp_;
  }
  if (any_with_message_with_timestamp) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_with_timestamp = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_with_timestamp, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_with_timestamp_ = any_with_message_with_timestamp;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_with_timestamp)
}

// .google.protobuf.testing.AnyWrapper any_with_message_containing_map = 12;
inline bool AnyTestCases::has_any_with_message_containing_map() const {
  return this != internal_default_instance() && any_with_message_containing_map_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_containing_map() {
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_map_ != NULL) {
    delete any_with_message_containing_map_;
  }
  any_with_message_containing_map_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_containing_map() const {
  return *any_with_message_containing_map_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_containing_map() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_containing_map_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_containing_map)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_containing_map() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_containing_map)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_containing_map_;
  any_with_message_containing_map_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_containing_map() {
  
  if (any_with_message_containing_map_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_containing_map_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_containing_map)
  return any_with_message_containing_map_;
}
inline void AnyTestCases::set_allocated_any_with_message_containing_map(::google::protobuf::testing::AnyWrapper* any_with_message_containing_map) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_containing_map_;
  }
  if (any_with_message_containing_map) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_containing_map = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_containing_map, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_containing_map_ = any_with_message_containing_map;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_containing_map)
}

// .google.protobuf.testing.AnyWrapper any_with_message_containing_struct = 13;
inline bool AnyTestCases::has_any_with_message_containing_struct() const {
  return this != internal_default_instance() && any_with_message_containing_struct_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_containing_struct() {
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_struct_ != NULL) {
    delete any_with_message_containing_struct_;
  }
  any_with_message_containing_struct_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_containing_struct() const {
  return *any_with_message_containing_struct_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_containing_struct() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_containing_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_containing_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_containing_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_containing_struct)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_containing_struct_;
  any_with_message_containing_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_containing_struct() {
  
  if (any_with_message_containing_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_containing_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_containing_struct)
  return any_with_message_containing_struct_;
}
inline void AnyTestCases::set_allocated_any_with_message_containing_struct(::google::protobuf::testing::AnyWrapper* any_with_message_containing_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_containing_struct_;
  }
  if (any_with_message_containing_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_containing_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_containing_struct, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_containing_struct_ = any_with_message_containing_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_containing_struct)
}

// .google.protobuf.testing.AnyWrapper any_with_message_containing_repeated_message = 14;
inline bool AnyTestCases::has_any_with_message_containing_repeated_message() const {
  return this != internal_default_instance() && any_with_message_containing_repeated_message_ != NULL;
}
inline void AnyTestCases::clear_any_with_message_containing_repeated_message() {
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_repeated_message_ != NULL) {
    delete any_with_message_containing_repeated_message_;
  }
  any_with_message_containing_repeated_message_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_any_with_message_containing_repeated_message() const {
  return *any_with_message_containing_repeated_message_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::any_with_message_containing_repeated_message() const {
  const ::google::protobuf::testing::AnyWrapper* p = any_with_message_containing_repeated_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.any_with_message_containing_repeated_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_any_with_message_containing_repeated_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.any_with_message_containing_repeated_message)
  
  ::google::protobuf::testing::AnyWrapper* temp = any_with_message_containing_repeated_message_;
  any_with_message_containing_repeated_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_any_with_message_containing_repeated_message() {
  
  if (any_with_message_containing_repeated_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    any_with_message_containing_repeated_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.any_with_message_containing_repeated_message)
  return any_with_message_containing_repeated_message_;
}
inline void AnyTestCases::set_allocated_any_with_message_containing_repeated_message(::google::protobuf::testing::AnyWrapper* any_with_message_containing_repeated_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_containing_repeated_message_;
  }
  if (any_with_message_containing_repeated_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_containing_repeated_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_containing_repeated_message, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_containing_repeated_message_ = any_with_message_containing_repeated_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.any_with_message_containing_repeated_message)
}

// .google.protobuf.testing.AnyWrapper recursive_any_with_type_field_at_end = 15;
inline bool AnyTestCases::has_recursive_any_with_type_field_at_end() const {
  return this != internal_default_instance() && recursive_any_with_type_field_at_end_ != NULL;
}
inline void AnyTestCases::clear_recursive_any_with_type_field_at_end() {
  if (GetArenaNoVirtual() == NULL && recursive_any_with_type_field_at_end_ != NULL) {
    delete recursive_any_with_type_field_at_end_;
  }
  recursive_any_with_type_field_at_end_ = NULL;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::_internal_recursive_any_with_type_field_at_end() const {
  return *recursive_any_with_type_field_at_end_;
}
inline const ::google::protobuf::testing::AnyWrapper& AnyTestCases::recursive_any_with_type_field_at_end() const {
  const ::google::protobuf::testing::AnyWrapper* p = recursive_any_with_type_field_at_end_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.recursive_any_with_type_field_at_end)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyWrapper*>(
      &::google::protobuf::testing::_AnyWrapper_default_instance_);
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::release_recursive_any_with_type_field_at_end() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.recursive_any_with_type_field_at_end)
  
  ::google::protobuf::testing::AnyWrapper* temp = recursive_any_with_type_field_at_end_;
  recursive_any_with_type_field_at_end_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyWrapper* AnyTestCases::mutable_recursive_any_with_type_field_at_end() {
  
  if (recursive_any_with_type_field_at_end_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyWrapper>(GetArenaNoVirtual());
    recursive_any_with_type_field_at_end_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.recursive_any_with_type_field_at_end)
  return recursive_any_with_type_field_at_end_;
}
inline void AnyTestCases::set_allocated_recursive_any_with_type_field_at_end(::google::protobuf::testing::AnyWrapper* recursive_any_with_type_field_at_end) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete recursive_any_with_type_field_at_end_;
  }
  if (recursive_any_with_type_field_at_end) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      recursive_any_with_type_field_at_end = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, recursive_any_with_type_field_at_end, submessage_arena);
    }
    
  } else {
    
  }
  recursive_any_with_type_field_at_end_ = recursive_any_with_type_field_at_end;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.recursive_any_with_type_field_at_end)
}

// .google.protobuf.Any top_level_any = 50;
inline bool AnyTestCases::has_top_level_any() const {
  return this != internal_default_instance() && top_level_any_ != NULL;
}
inline const ::google::protobuf::Any& AnyTestCases::_internal_top_level_any() const {
  return *top_level_any_;
}
inline const ::google::protobuf::Any& AnyTestCases::top_level_any() const {
  const ::google::protobuf::Any* p = top_level_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.top_level_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyTestCases::release_top_level_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.top_level_any)
  
  ::google::protobuf::Any* temp = top_level_any_;
  top_level_any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyTestCases::mutable_top_level_any() {
  
  if (top_level_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    top_level_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.top_level_any)
  return top_level_any_;
}
inline void AnyTestCases::set_allocated_top_level_any(::google::protobuf::Any* top_level_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_any_);
  }
  if (top_level_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      top_level_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_any, submessage_arena);
    }
    
  } else {
    
  }
  top_level_any_ = top_level_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.top_level_any)
}

// .google.protobuf.Any top_level_any_with_type_field_at_end = 51;
inline bool AnyTestCases::has_top_level_any_with_type_field_at_end() const {
  return this != internal_default_instance() && top_level_any_with_type_field_at_end_ != NULL;
}
inline const ::google::protobuf::Any& AnyTestCases::_internal_top_level_any_with_type_field_at_end() const {
  return *top_level_any_with_type_field_at_end_;
}
inline const ::google::protobuf::Any& AnyTestCases::top_level_any_with_type_field_at_end() const {
  const ::google::protobuf::Any* p = top_level_any_with_type_field_at_end_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyTestCases.top_level_any_with_type_field_at_end)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyTestCases::release_top_level_any_with_type_field_at_end() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyTestCases.top_level_any_with_type_field_at_end)
  
  ::google::protobuf::Any* temp = top_level_any_with_type_field_at_end_;
  top_level_any_with_type_field_at_end_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyTestCases::mutable_top_level_any_with_type_field_at_end() {
  
  if (top_level_any_with_type_field_at_end_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    top_level_any_with_type_field_at_end_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyTestCases.top_level_any_with_type_field_at_end)
  return top_level_any_with_type_field_at_end_;
}
inline void AnyTestCases::set_allocated_top_level_any_with_type_field_at_end(::google::protobuf::Any* top_level_any_with_type_field_at_end) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_any_with_type_field_at_end_);
  }
  if (top_level_any_with_type_field_at_end) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      top_level_any_with_type_field_at_end = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_any_with_type_field_at_end, submessage_arena);
    }
    
  } else {
    
  }
  top_level_any_with_type_field_at_end_ = top_level_any_with_type_field_at_end;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyTestCases.top_level_any_with_type_field_at_end)
}

// -------------------------------------------------------------------

// AnyWrapper

// .google.protobuf.Any any = 1;
inline bool AnyWrapper::has_any() const {
  return this != internal_default_instance() && any_ != NULL;
}
inline const ::google::protobuf::Any& AnyWrapper::_internal_any() const {
  return *any_;
}
inline const ::google::protobuf::Any& AnyWrapper::any() const {
  const ::google::protobuf::Any* p = any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyWrapper.any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyWrapper::release_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyWrapper.any)
  
  ::google::protobuf::Any* temp = any_;
  any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyWrapper::mutable_any() {
  
  if (any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyWrapper.any)
  return any_;
}
inline void AnyWrapper::set_allocated_any(::google::protobuf::Any* any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(any_);
  }
  if (any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any, submessage_arena);
    }
    
  } else {
    
  }
  any_ = any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyWrapper.any)
}

// -------------------------------------------------------------------

// Imports

// .google.protobuf.DoubleValue dbl = 1;
inline bool Imports::has_dbl() const {
  return this != internal_default_instance() && dbl_ != NULL;
}
inline const ::google::protobuf::DoubleValue& Imports::_internal_dbl() const {
  return *dbl_;
}
inline const ::google::protobuf::DoubleValue& Imports::dbl() const {
  const ::google::protobuf::DoubleValue* p = dbl_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.dbl)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::DoubleValue*>(
      &::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* Imports::release_dbl() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.dbl)
  
  ::google::protobuf::DoubleValue* temp = dbl_;
  dbl_ = NULL;
  return temp;
}
inline ::google::protobuf::DoubleValue* Imports::mutable_dbl() {
  
  if (dbl_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::DoubleValue>(GetArenaNoVirtual());
    dbl_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.dbl)
  return dbl_;
}
inline void Imports::set_allocated_dbl(::google::protobuf::DoubleValue* dbl) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(dbl_);
  }
  if (dbl) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(dbl)->GetArena();
    if (message_arena != submessage_arena) {
      dbl = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, dbl, submessage_arena);
    }
    
  } else {
    
  }
  dbl_ = dbl;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.dbl)
}

// .google.protobuf.Struct struct = 2;
inline bool Imports::has_struct_() const {
  return this != internal_default_instance() && struct__ != NULL;
}
inline const ::google::protobuf::Struct& Imports::_internal_struct_() const {
  return *struct__;
}
inline const ::google::protobuf::Struct& Imports::struct_() const {
  const ::google::protobuf::Struct* p = struct__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* Imports::release_struct_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.struct)
  
  ::google::protobuf::Struct* temp = struct__;
  struct__ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* Imports::mutable_struct_() {
  
  if (struct__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.struct)
  return struct__;
}
inline void Imports::set_allocated_struct_(::google::protobuf::Struct* struct_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct__);
  }
  if (struct_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_)->GetArena();
    if (message_arena != submessage_arena) {
      struct_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_, submessage_arena);
    }
    
  } else {
    
  }
  struct__ = struct_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.struct)
}

// .google.protobuf.Timestamp timestamp = 3;
inline bool Imports::has_timestamp() const {
  return this != internal_default_instance() && timestamp_ != NULL;
}
inline const ::google::protobuf::Timestamp& Imports::_internal_timestamp() const {
  return *timestamp_;
}
inline const ::google::protobuf::Timestamp& Imports::timestamp() const {
  const ::google::protobuf::Timestamp* p = timestamp_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.timestamp)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* Imports::release_timestamp() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.timestamp)
  
  ::google::protobuf::Timestamp* temp = timestamp_;
  timestamp_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* Imports::mutable_timestamp() {
  
  if (timestamp_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    timestamp_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.timestamp)
  return timestamp_;
}
inline void Imports::set_allocated_timestamp(::google::protobuf::Timestamp* timestamp) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(timestamp_);
  }
  if (timestamp) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(timestamp)->GetArena();
    if (message_arena != submessage_arena) {
      timestamp = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timestamp, submessage_arena);
    }
    
  } else {
    
  }
  timestamp_ = timestamp;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.timestamp)
}

// .google.protobuf.Duration duration = 4;
inline bool Imports::has_duration() const {
  return this != internal_default_instance() && duration_ != NULL;
}
inline const ::google::protobuf::Duration& Imports::_internal_duration() const {
  return *duration_;
}
inline const ::google::protobuf::Duration& Imports::duration() const {
  const ::google::protobuf::Duration* p = duration_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.duration)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Duration*>(
      &::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* Imports::release_duration() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.duration)
  
  ::google::protobuf::Duration* temp = duration_;
  duration_ = NULL;
  return temp;
}
inline ::google::protobuf::Duration* Imports::mutable_duration() {
  
  if (duration_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Duration>(GetArenaNoVirtual());
    duration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.duration)
  return duration_;
}
inline void Imports::set_allocated_duration(::google::protobuf::Duration* duration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(duration_);
  }
  if (duration) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(duration)->GetArena();
    if (message_arena != submessage_arena) {
      duration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration, submessage_arena);
    }
    
  } else {
    
  }
  duration_ = duration;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.duration)
}

// .google.protobuf.Int32Value i32 = 5;
inline bool Imports::has_i32() const {
  return this != internal_default_instance() && i32_ != NULL;
}
inline const ::google::protobuf::Int32Value& Imports::_internal_i32() const {
  return *i32_;
}
inline const ::google::protobuf::Int32Value& Imports::i32() const {
  const ::google::protobuf::Int32Value* p = i32_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.i32)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int32Value*>(
      &::google::protobuf::_Int32Value_default_instance_);
}
inline ::google::protobuf::Int32Value* Imports::release_i32() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.i32)
  
  ::google::protobuf::Int32Value* temp = i32_;
  i32_ = NULL;
  return temp;
}
inline ::google::protobuf::Int32Value* Imports::mutable_i32() {
  
  if (i32_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int32Value>(GetArenaNoVirtual());
    i32_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.i32)
  return i32_;
}
inline void Imports::set_allocated_i32(::google::protobuf::Int32Value* i32) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(i32_);
  }
  if (i32) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(i32)->GetArena();
    if (message_arena != submessage_arena) {
      i32 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, i32, submessage_arena);
    }
    
  } else {
    
  }
  i32_ = i32;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.i32)
}

// .google.protobuf.testing.Data data = 100;
inline bool Imports::has_data() const {
  return this != internal_default_instance() && data_ != NULL;
}
inline void Imports::clear_data() {
  if (GetArenaNoVirtual() == NULL && data_ != NULL) {
    delete data_;
  }
  data_ = NULL;
}
inline const ::google::protobuf::testing::Data& Imports::_internal_data() const {
  return *data_;
}
inline const ::google::protobuf::testing::Data& Imports::data() const {
  const ::google::protobuf::testing::Data* p = data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Imports.data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Data*>(
      &::google::protobuf::testing::_Data_default_instance_);
}
inline ::google::protobuf::testing::Data* Imports::release_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Imports.data)
  
  ::google::protobuf::testing::Data* temp = data_;
  data_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Data* Imports::mutable_data() {
  
  if (data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Data>(GetArenaNoVirtual());
    data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Imports.data)
  return data_;
}
inline void Imports::set_allocated_data(::google::protobuf::testing::Data* data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete data_;
  }
  if (data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, data, submessage_arena);
    }
    
  } else {
    
  }
  data_ = data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Imports.data)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Data

// int32 attr = 1;
inline void Data::clear_attr() {
  attr_ = 0;
}
inline ::google::protobuf::int32 Data::attr() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.attr)
  return attr_;
}
inline void Data::set_attr(::google::protobuf::int32 value) {
  
  attr_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.Data.attr)
}

// string str = 2;
inline void Data::clear_str() {
  str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Data::str() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.str)
  return str_.GetNoArena();
}
inline void Data::set_str(const ::std::string& value) {
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.Data.str)
}
#if LANG_CXX11
inline void Data::set_str(::std::string&& value) {
  
  str_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.Data.str)
}
#endif
inline void Data::set_str(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.Data.str)
}
inline void Data::set_str(const char* value, size_t size) {
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.Data.str)
}
inline ::std::string* Data::mutable_str() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.str)
  return str_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Data::release_str() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Data.str)
  
  return str_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Data::set_allocated_str(::std::string* str) {
  if (str != NULL) {
    
  } else {
    
  }
  str_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), str);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Data.str)
}

// repeated string msgs = 3;
inline int Data::msgs_size() const {
  return msgs_.size();
}
inline void Data::clear_msgs() {
  msgs_.Clear();
}
inline const ::std::string& Data::msgs(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.msgs)
  return msgs_.Get(index);
}
inline ::std::string* Data::mutable_msgs(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.msgs)
  return msgs_.Mutable(index);
}
inline void Data::set_msgs(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.Data.msgs)
  msgs_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void Data::set_msgs(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.Data.msgs)
  msgs_.Mutable(index)->assign(std::move(value));
}
#endif
inline void Data::set_msgs(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  msgs_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.Data.msgs)
}
inline void Data::set_msgs(int index, const char* value, size_t size) {
  msgs_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.Data.msgs)
}
inline ::std::string* Data::add_msgs() {
  // @@protoc_insertion_point(field_add_mutable:google.protobuf.testing.Data.msgs)
  return msgs_.Add();
}
inline void Data::add_msgs(const ::std::string& value) {
  msgs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:google.protobuf.testing.Data.msgs)
}
#if LANG_CXX11
inline void Data::add_msgs(::std::string&& value) {
  msgs_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:google.protobuf.testing.Data.msgs)
}
#endif
inline void Data::add_msgs(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  msgs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:google.protobuf.testing.Data.msgs)
}
inline void Data::add_msgs(const char* value, size_t size) {
  msgs_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:google.protobuf.testing.Data.msgs)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
Data::msgs() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.Data.msgs)
  return msgs_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
Data::mutable_msgs() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.Data.msgs)
  return &msgs_;
}

// .google.protobuf.testing.Data nested_data = 4;
inline bool Data::has_nested_data() const {
  return this != internal_default_instance() && nested_data_ != NULL;
}
inline void Data::clear_nested_data() {
  if (GetArenaNoVirtual() == NULL && nested_data_ != NULL) {
    delete nested_data_;
  }
  nested_data_ = NULL;
}
inline const ::google::protobuf::testing::Data& Data::_internal_nested_data() const {
  return *nested_data_;
}
inline const ::google::protobuf::testing::Data& Data::nested_data() const {
  const ::google::protobuf::testing::Data* p = nested_data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.nested_data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Data*>(
      &::google::protobuf::testing::_Data_default_instance_);
}
inline ::google::protobuf::testing::Data* Data::release_nested_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Data.nested_data)
  
  ::google::protobuf::testing::Data* temp = nested_data_;
  nested_data_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Data* Data::mutable_nested_data() {
  
  if (nested_data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Data>(GetArenaNoVirtual());
    nested_data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.nested_data)
  return nested_data_;
}
inline void Data::set_allocated_nested_data(::google::protobuf::testing::Data* nested_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete nested_data_;
  }
  if (nested_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      nested_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, nested_data, submessage_arena);
    }
    
  } else {
    
  }
  nested_data_ = nested_data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Data.nested_data)
}

// .google.protobuf.Int32Value int_wrapper = 5;
inline bool Data::has_int_wrapper() const {
  return this != internal_default_instance() && int_wrapper_ != NULL;
}
inline const ::google::protobuf::Int32Value& Data::_internal_int_wrapper() const {
  return *int_wrapper_;
}
inline const ::google::protobuf::Int32Value& Data::int_wrapper() const {
  const ::google::protobuf::Int32Value* p = int_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.int_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int32Value*>(
      &::google::protobuf::_Int32Value_default_instance_);
}
inline ::google::protobuf::Int32Value* Data::release_int_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Data.int_wrapper)
  
  ::google::protobuf::Int32Value* temp = int_wrapper_;
  int_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::Int32Value* Data::mutable_int_wrapper() {
  
  if (int_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int32Value>(GetArenaNoVirtual());
    int_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.int_wrapper)
  return int_wrapper_;
}
inline void Data::set_allocated_int_wrapper(::google::protobuf::Int32Value* int_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(int_wrapper_);
  }
  if (int_wrapper) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(int_wrapper)->GetArena();
    if (message_arena != submessage_arena) {
      int_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  int_wrapper_ = int_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Data.int_wrapper)
}

// .google.protobuf.Timestamp time = 6;
inline bool Data::has_time() const {
  return this != internal_default_instance() && time_ != NULL;
}
inline const ::google::protobuf::Timestamp& Data::_internal_time() const {
  return *time_;
}
inline const ::google::protobuf::Timestamp& Data::time() const {
  const ::google::protobuf::Timestamp* p = time_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.time)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* Data::release_time() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Data.time)
  
  ::google::protobuf::Timestamp* temp = time_;
  time_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* Data::mutable_time() {
  
  if (time_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    time_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.time)
  return time_;
}
inline void Data::set_allocated_time(::google::protobuf::Timestamp* time) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(time_);
  }
  if (time) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(time)->GetArena();
    if (message_arena != submessage_arena) {
      time = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, time, submessage_arena);
    }
    
  } else {
    
  }
  time_ = time;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Data.time)
}

// map<string, string> map_data = 7;
inline int Data::map_data_size() const {
  return map_data_.size();
}
inline void Data::clear_map_data() {
  map_data_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
Data::map_data() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.Data.map_data)
  return map_data_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
Data::mutable_map_data() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.Data.map_data)
  return map_data_.MutableMap();
}

// .google.protobuf.Struct struct_data = 8;
inline bool Data::has_struct_data() const {
  return this != internal_default_instance() && struct_data_ != NULL;
}
inline const ::google::protobuf::Struct& Data::_internal_struct_data() const {
  return *struct_data_;
}
inline const ::google::protobuf::Struct& Data::struct_data() const {
  const ::google::protobuf::Struct* p = struct_data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.struct_data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* Data::release_struct_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Data.struct_data)
  
  ::google::protobuf::Struct* temp = struct_data_;
  struct_data_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* Data::mutable_struct_data() {
  
  if (struct_data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct_data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.struct_data)
  return struct_data_;
}
inline void Data::set_allocated_struct_data(::google::protobuf::Struct* struct_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct_data_);
  }
  if (struct_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_data)->GetArena();
    if (message_arena != submessage_arena) {
      struct_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_data, submessage_arena);
    }
    
  } else {
    
  }
  struct_data_ = struct_data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Data.struct_data)
}

// repeated .google.protobuf.testing.Data repeated_data = 9;
inline int Data::repeated_data_size() const {
  return repeated_data_.size();
}
inline void Data::clear_repeated_data() {
  repeated_data_.Clear();
}
inline ::google::protobuf::testing::Data* Data::mutable_repeated_data(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Data.repeated_data)
  return repeated_data_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::Data >*
Data::mutable_repeated_data() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.Data.repeated_data)
  return &repeated_data_;
}
inline const ::google::protobuf::testing::Data& Data::repeated_data(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Data.repeated_data)
  return repeated_data_.Get(index);
}
inline ::google::protobuf::testing::Data* Data::add_repeated_data() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.Data.repeated_data)
  return repeated_data_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::Data >&
Data::repeated_data() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.Data.repeated_data)
  return repeated_data_;
}

// -------------------------------------------------------------------

// AnyIn

// string something = 1;
inline void AnyIn::clear_something() {
  something_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AnyIn::something() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyIn.something)
  return something_.GetNoArena();
}
inline void AnyIn::set_something(const ::std::string& value) {
  
  something_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyIn.something)
}
#if LANG_CXX11
inline void AnyIn::set_something(::std::string&& value) {
  
  something_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.AnyIn.something)
}
#endif
inline void AnyIn::set_something(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  something_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.AnyIn.something)
}
inline void AnyIn::set_something(const char* value, size_t size) {
  
  something_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.AnyIn.something)
}
inline ::std::string* AnyIn::mutable_something() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyIn.something)
  return something_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AnyIn::release_something() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyIn.something)
  
  return something_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AnyIn::set_allocated_something(::std::string* something) {
  if (something != NULL) {
    
  } else {
    
  }
  something_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), something);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyIn.something)
}

// .google.protobuf.Any any = 2;
inline bool AnyIn::has_any() const {
  return this != internal_default_instance() && any_ != NULL;
}
inline const ::google::protobuf::Any& AnyIn::_internal_any() const {
  return *any_;
}
inline const ::google::protobuf::Any& AnyIn::any() const {
  const ::google::protobuf::Any* p = any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyIn.any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyIn::release_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyIn.any)
  
  ::google::protobuf::Any* temp = any_;
  any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyIn::mutable_any() {
  
  if (any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyIn.any)
  return any_;
}
inline void AnyIn::set_allocated_any(::google::protobuf::Any* any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(any_);
  }
  if (any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any, submessage_arena);
    }
    
  } else {
    
  }
  any_ = any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyIn.any)
}

// -------------------------------------------------------------------

// AnyOut

// .google.protobuf.Any any = 1;
inline bool AnyOut::has_any() const {
  return this != internal_default_instance() && any_ != NULL;
}
inline const ::google::protobuf::Any& AnyOut::_internal_any() const {
  return *any_;
}
inline const ::google::protobuf::Any& AnyOut::any() const {
  const ::google::protobuf::Any* p = any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyOut.any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyOut::release_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyOut.any)
  
  ::google::protobuf::Any* temp = any_;
  any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyOut::mutable_any() {
  
  if (any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyOut.any)
  return any_;
}
inline void AnyOut::set_allocated_any(::google::protobuf::Any* any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(any_);
  }
  if (any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any, submessage_arena);
    }
    
  } else {
    
  }
  any_ = any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyOut.any)
}

// -------------------------------------------------------------------

// AnyM

// string foo = 1;
inline void AnyM::clear_foo() {
  foo_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AnyM::foo() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyM.foo)
  return foo_.GetNoArena();
}
inline void AnyM::set_foo(const ::std::string& value) {
  
  foo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyM.foo)
}
#if LANG_CXX11
inline void AnyM::set_foo(::std::string&& value) {
  
  foo_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.AnyM.foo)
}
#endif
inline void AnyM::set_foo(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  foo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.AnyM.foo)
}
inline void AnyM::set_foo(const char* value, size_t size) {
  
  foo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.AnyM.foo)
}
inline ::std::string* AnyM::mutable_foo() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyM.foo)
  return foo_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AnyM::release_foo() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyM.foo)
  
  return foo_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AnyM::set_allocated_foo(::std::string* foo) {
  if (foo != NULL) {
    
  } else {
    
  }
  foo_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), foo);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyM.foo)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace testing
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fanys_2eproto
