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

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_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/unknown_field_set.h>
#include <google/protobuf/wrappers.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_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[10];
  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_2fwrappers_2eproto
namespace google {
namespace protobuf {
namespace testing {
class BoolWrapper;
class BoolWrapperDefaultTypeInternal;
extern BoolWrapperDefaultTypeInternal _BoolWrapper_default_instance_;
class BytesWrapper;
class BytesWrapperDefaultTypeInternal;
extern BytesWrapperDefaultTypeInternal _BytesWrapper_default_instance_;
class DoubleWrapper;
class DoubleWrapperDefaultTypeInternal;
extern DoubleWrapperDefaultTypeInternal _DoubleWrapper_default_instance_;
class FloatWrapper;
class FloatWrapperDefaultTypeInternal;
extern FloatWrapperDefaultTypeInternal _FloatWrapper_default_instance_;
class Int32Wrapper;
class Int32WrapperDefaultTypeInternal;
extern Int32WrapperDefaultTypeInternal _Int32Wrapper_default_instance_;
class Int64Wrapper;
class Int64WrapperDefaultTypeInternal;
extern Int64WrapperDefaultTypeInternal _Int64Wrapper_default_instance_;
class StringWrapper;
class StringWrapperDefaultTypeInternal;
extern StringWrapperDefaultTypeInternal _StringWrapper_default_instance_;
class UInt32Wrapper;
class UInt32WrapperDefaultTypeInternal;
extern UInt32WrapperDefaultTypeInternal _UInt32Wrapper_default_instance_;
class UInt64Wrapper;
class UInt64WrapperDefaultTypeInternal;
extern UInt64WrapperDefaultTypeInternal _UInt64Wrapper_default_instance_;
class WrappersTestCases;
class WrappersTestCasesDefaultTypeInternal;
extern WrappersTestCasesDefaultTypeInternal _WrappersTestCases_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::BoolWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::BoolWrapper>(Arena*);
template<> ::google::protobuf::testing::BytesWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::BytesWrapper>(Arena*);
template<> ::google::protobuf::testing::DoubleWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::DoubleWrapper>(Arena*);
template<> ::google::protobuf::testing::FloatWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::FloatWrapper>(Arena*);
template<> ::google::protobuf::testing::Int32Wrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::Int32Wrapper>(Arena*);
template<> ::google::protobuf::testing::Int64Wrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::Int64Wrapper>(Arena*);
template<> ::google::protobuf::testing::StringWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::StringWrapper>(Arena*);
template<> ::google::protobuf::testing::UInt32Wrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::UInt32Wrapper>(Arena*);
template<> ::google::protobuf::testing::UInt64Wrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::UInt64Wrapper>(Arena*);
template<> ::google::protobuf::testing::WrappersTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::WrappersTestCases>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

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

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

  WrappersTestCases(const WrappersTestCases& from);

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

  inline WrappersTestCases& operator=(WrappersTestCases&& 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 WrappersTestCases& default_instance();

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

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

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

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

  WrappersTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<WrappersTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const WrappersTestCases& from);
  void MergeFrom(const WrappersTestCases& 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(WrappersTestCases* 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.DoubleWrapper double_wrapper = 1;
  bool has_double_wrapper() const;
  void clear_double_wrapper();
  static const int kDoubleWrapperFieldNumber = 1;
  private:
  const ::google::protobuf::testing::DoubleWrapper& _internal_double_wrapper() const;
  public:
  const ::google::protobuf::testing::DoubleWrapper& double_wrapper() const;
  ::google::protobuf::testing::DoubleWrapper* release_double_wrapper();
  ::google::protobuf::testing::DoubleWrapper* mutable_double_wrapper();
  void set_allocated_double_wrapper(::google::protobuf::testing::DoubleWrapper* double_wrapper);

  // .google.protobuf.testing.FloatWrapper float_wrapper = 2;
  bool has_float_wrapper() const;
  void clear_float_wrapper();
  static const int kFloatWrapperFieldNumber = 2;
  private:
  const ::google::protobuf::testing::FloatWrapper& _internal_float_wrapper() const;
  public:
  const ::google::protobuf::testing::FloatWrapper& float_wrapper() const;
  ::google::protobuf::testing::FloatWrapper* release_float_wrapper();
  ::google::protobuf::testing::FloatWrapper* mutable_float_wrapper();
  void set_allocated_float_wrapper(::google::protobuf::testing::FloatWrapper* float_wrapper);

  // .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
  bool has_int64_wrapper() const;
  void clear_int64_wrapper();
  static const int kInt64WrapperFieldNumber = 3;
  private:
  const ::google::protobuf::testing::Int64Wrapper& _internal_int64_wrapper() const;
  public:
  const ::google::protobuf::testing::Int64Wrapper& int64_wrapper() const;
  ::google::protobuf::testing::Int64Wrapper* release_int64_wrapper();
  ::google::protobuf::testing::Int64Wrapper* mutable_int64_wrapper();
  void set_allocated_int64_wrapper(::google::protobuf::testing::Int64Wrapper* int64_wrapper);

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
  bool has_uint64_wrapper() const;
  void clear_uint64_wrapper();
  static const int kUint64WrapperFieldNumber = 4;
  private:
  const ::google::protobuf::testing::UInt64Wrapper& _internal_uint64_wrapper() const;
  public:
  const ::google::protobuf::testing::UInt64Wrapper& uint64_wrapper() const;
  ::google::protobuf::testing::UInt64Wrapper* release_uint64_wrapper();
  ::google::protobuf::testing::UInt64Wrapper* mutable_uint64_wrapper();
  void set_allocated_uint64_wrapper(::google::protobuf::testing::UInt64Wrapper* uint64_wrapper);

  // .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
  bool has_int32_wrapper() const;
  void clear_int32_wrapper();
  static const int kInt32WrapperFieldNumber = 5;
  private:
  const ::google::protobuf::testing::Int32Wrapper& _internal_int32_wrapper() const;
  public:
  const ::google::protobuf::testing::Int32Wrapper& int32_wrapper() const;
  ::google::protobuf::testing::Int32Wrapper* release_int32_wrapper();
  ::google::protobuf::testing::Int32Wrapper* mutable_int32_wrapper();
  void set_allocated_int32_wrapper(::google::protobuf::testing::Int32Wrapper* int32_wrapper);

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
  bool has_uint32_wrapper() const;
  void clear_uint32_wrapper();
  static const int kUint32WrapperFieldNumber = 6;
  private:
  const ::google::protobuf::testing::UInt32Wrapper& _internal_uint32_wrapper() const;
  public:
  const ::google::protobuf::testing::UInt32Wrapper& uint32_wrapper() const;
  ::google::protobuf::testing::UInt32Wrapper* release_uint32_wrapper();
  ::google::protobuf::testing::UInt32Wrapper* mutable_uint32_wrapper();
  void set_allocated_uint32_wrapper(::google::protobuf::testing::UInt32Wrapper* uint32_wrapper);

  // .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
  bool has_bool_wrapper() const;
  void clear_bool_wrapper();
  static const int kBoolWrapperFieldNumber = 7;
  private:
  const ::google::protobuf::testing::BoolWrapper& _internal_bool_wrapper() const;
  public:
  const ::google::protobuf::testing::BoolWrapper& bool_wrapper() const;
  ::google::protobuf::testing::BoolWrapper* release_bool_wrapper();
  ::google::protobuf::testing::BoolWrapper* mutable_bool_wrapper();
  void set_allocated_bool_wrapper(::google::protobuf::testing::BoolWrapper* bool_wrapper);

  // .google.protobuf.testing.StringWrapper string_wrapper = 8;
  bool has_string_wrapper() const;
  void clear_string_wrapper();
  static const int kStringWrapperFieldNumber = 8;
  private:
  const ::google::protobuf::testing::StringWrapper& _internal_string_wrapper() const;
  public:
  const ::google::protobuf::testing::StringWrapper& string_wrapper() const;
  ::google::protobuf::testing::StringWrapper* release_string_wrapper();
  ::google::protobuf::testing::StringWrapper* mutable_string_wrapper();
  void set_allocated_string_wrapper(::google::protobuf::testing::StringWrapper* string_wrapper);

  // .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
  bool has_bytes_wrapper() const;
  void clear_bytes_wrapper();
  static const int kBytesWrapperFieldNumber = 9;
  private:
  const ::google::protobuf::testing::BytesWrapper& _internal_bytes_wrapper() const;
  public:
  const ::google::protobuf::testing::BytesWrapper& bytes_wrapper() const;
  ::google::protobuf::testing::BytesWrapper* release_bytes_wrapper();
  ::google::protobuf::testing::BytesWrapper* mutable_bytes_wrapper();
  void set_allocated_bytes_wrapper(::google::protobuf::testing::BytesWrapper* bytes_wrapper);

  // .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
  bool has_double_wrapper_default() const;
  void clear_double_wrapper_default();
  static const int kDoubleWrapperDefaultFieldNumber = 10;
  private:
  const ::google::protobuf::testing::DoubleWrapper& _internal_double_wrapper_default() const;
  public:
  const ::google::protobuf::testing::DoubleWrapper& double_wrapper_default() const;
  ::google::protobuf::testing::DoubleWrapper* release_double_wrapper_default();
  ::google::protobuf::testing::DoubleWrapper* mutable_double_wrapper_default();
  void set_allocated_double_wrapper_default(::google::protobuf::testing::DoubleWrapper* double_wrapper_default);

  // .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
  bool has_float_wrapper_default() const;
  void clear_float_wrapper_default();
  static const int kFloatWrapperDefaultFieldNumber = 11;
  private:
  const ::google::protobuf::testing::FloatWrapper& _internal_float_wrapper_default() const;
  public:
  const ::google::protobuf::testing::FloatWrapper& float_wrapper_default() const;
  ::google::protobuf::testing::FloatWrapper* release_float_wrapper_default();
  ::google::protobuf::testing::FloatWrapper* mutable_float_wrapper_default();
  void set_allocated_float_wrapper_default(::google::protobuf::testing::FloatWrapper* float_wrapper_default);

  // .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
  bool has_int64_wrapper_default() const;
  void clear_int64_wrapper_default();
  static const int kInt64WrapperDefaultFieldNumber = 12;
  private:
  const ::google::protobuf::testing::Int64Wrapper& _internal_int64_wrapper_default() const;
  public:
  const ::google::protobuf::testing::Int64Wrapper& int64_wrapper_default() const;
  ::google::protobuf::testing::Int64Wrapper* release_int64_wrapper_default();
  ::google::protobuf::testing::Int64Wrapper* mutable_int64_wrapper_default();
  void set_allocated_int64_wrapper_default(::google::protobuf::testing::Int64Wrapper* int64_wrapper_default);

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
  bool has_uint64_wrapper_default() const;
  void clear_uint64_wrapper_default();
  static const int kUint64WrapperDefaultFieldNumber = 13;
  private:
  const ::google::protobuf::testing::UInt64Wrapper& _internal_uint64_wrapper_default() const;
  public:
  const ::google::protobuf::testing::UInt64Wrapper& uint64_wrapper_default() const;
  ::google::protobuf::testing::UInt64Wrapper* release_uint64_wrapper_default();
  ::google::protobuf::testing::UInt64Wrapper* mutable_uint64_wrapper_default();
  void set_allocated_uint64_wrapper_default(::google::protobuf::testing::UInt64Wrapper* uint64_wrapper_default);

  // .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
  bool has_int32_wrapper_default() const;
  void clear_int32_wrapper_default();
  static const int kInt32WrapperDefaultFieldNumber = 14;
  private:
  const ::google::protobuf::testing::Int32Wrapper& _internal_int32_wrapper_default() const;
  public:
  const ::google::protobuf::testing::Int32Wrapper& int32_wrapper_default() const;
  ::google::protobuf::testing::Int32Wrapper* release_int32_wrapper_default();
  ::google::protobuf::testing::Int32Wrapper* mutable_int32_wrapper_default();
  void set_allocated_int32_wrapper_default(::google::protobuf::testing::Int32Wrapper* int32_wrapper_default);

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
  bool has_uint32_wrapper_default() const;
  void clear_uint32_wrapper_default();
  static const int kUint32WrapperDefaultFieldNumber = 15;
  private:
  const ::google::protobuf::testing::UInt32Wrapper& _internal_uint32_wrapper_default() const;
  public:
  const ::google::protobuf::testing::UInt32Wrapper& uint32_wrapper_default() const;
  ::google::protobuf::testing::UInt32Wrapper* release_uint32_wrapper_default();
  ::google::protobuf::testing::UInt32Wrapper* mutable_uint32_wrapper_default();
  void set_allocated_uint32_wrapper_default(::google::protobuf::testing::UInt32Wrapper* uint32_wrapper_default);

  // .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
  bool has_bool_wrapper_default() const;
  void clear_bool_wrapper_default();
  static const int kBoolWrapperDefaultFieldNumber = 16;
  private:
  const ::google::protobuf::testing::BoolWrapper& _internal_bool_wrapper_default() const;
  public:
  const ::google::protobuf::testing::BoolWrapper& bool_wrapper_default() const;
  ::google::protobuf::testing::BoolWrapper* release_bool_wrapper_default();
  ::google::protobuf::testing::BoolWrapper* mutable_bool_wrapper_default();
  void set_allocated_bool_wrapper_default(::google::protobuf::testing::BoolWrapper* bool_wrapper_default);

  // .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
  bool has_string_wrapper_default() const;
  void clear_string_wrapper_default();
  static const int kStringWrapperDefaultFieldNumber = 17;
  private:
  const ::google::protobuf::testing::StringWrapper& _internal_string_wrapper_default() const;
  public:
  const ::google::protobuf::testing::StringWrapper& string_wrapper_default() const;
  ::google::protobuf::testing::StringWrapper* release_string_wrapper_default();
  ::google::protobuf::testing::StringWrapper* mutable_string_wrapper_default();
  void set_allocated_string_wrapper_default(::google::protobuf::testing::StringWrapper* string_wrapper_default);

  // .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
  bool has_bytes_wrapper_default() const;
  void clear_bytes_wrapper_default();
  static const int kBytesWrapperDefaultFieldNumber = 18;
  private:
  const ::google::protobuf::testing::BytesWrapper& _internal_bytes_wrapper_default() const;
  public:
  const ::google::protobuf::testing::BytesWrapper& bytes_wrapper_default() const;
  ::google::protobuf::testing::BytesWrapper* release_bytes_wrapper_default();
  ::google::protobuf::testing::BytesWrapper* mutable_bytes_wrapper_default();
  void set_allocated_bytes_wrapper_default(::google::protobuf::testing::BytesWrapper* bytes_wrapper_default);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::DoubleWrapper* double_wrapper_;
  ::google::protobuf::testing::FloatWrapper* float_wrapper_;
  ::google::protobuf::testing::Int64Wrapper* int64_wrapper_;
  ::google::protobuf::testing::UInt64Wrapper* uint64_wrapper_;
  ::google::protobuf::testing::Int32Wrapper* int32_wrapper_;
  ::google::protobuf::testing::UInt32Wrapper* uint32_wrapper_;
  ::google::protobuf::testing::BoolWrapper* bool_wrapper_;
  ::google::protobuf::testing::StringWrapper* string_wrapper_;
  ::google::protobuf::testing::BytesWrapper* bytes_wrapper_;
  ::google::protobuf::testing::DoubleWrapper* double_wrapper_default_;
  ::google::protobuf::testing::FloatWrapper* float_wrapper_default_;
  ::google::protobuf::testing::Int64Wrapper* int64_wrapper_default_;
  ::google::protobuf::testing::UInt64Wrapper* uint64_wrapper_default_;
  ::google::protobuf::testing::Int32Wrapper* int32_wrapper_default_;
  ::google::protobuf::testing::UInt32Wrapper* uint32_wrapper_default_;
  ::google::protobuf::testing::BoolWrapper* bool_wrapper_default_;
  ::google::protobuf::testing::StringWrapper* string_wrapper_default_;
  ::google::protobuf::testing::BytesWrapper* bytes_wrapper_default_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  DoubleWrapper(const DoubleWrapper& from);

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

  inline DoubleWrapper& operator=(DoubleWrapper&& 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 DoubleWrapper& default_instance();

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

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

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

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

  DoubleWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DoubleWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DoubleWrapper& from);
  void MergeFrom(const DoubleWrapper& 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(DoubleWrapper* 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 double = 1;
  bool has_double_() const;
  void clear_double_();
  static const int kDoubleFieldNumber = 1;
  private:
  const ::google::protobuf::DoubleValue& _internal_double_() const;
  public:
  const ::google::protobuf::DoubleValue& double_() const;
  ::google::protobuf::DoubleValue* release_double_();
  ::google::protobuf::DoubleValue* mutable_double_();
  void set_allocated_double_(::google::protobuf::DoubleValue* double_);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::DoubleValue* double__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  FloatWrapper(const FloatWrapper& from);

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

  inline FloatWrapper& operator=(FloatWrapper&& 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 FloatWrapper& default_instance();

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

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

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

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

  FloatWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FloatWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const FloatWrapper& from);
  void MergeFrom(const FloatWrapper& 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(FloatWrapper* 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.FloatValue float = 1;
  bool has_float_() const;
  void clear_float_();
  static const int kFloatFieldNumber = 1;
  private:
  const ::google::protobuf::FloatValue& _internal_float_() const;
  public:
  const ::google::protobuf::FloatValue& float_() const;
  ::google::protobuf::FloatValue* release_float_();
  ::google::protobuf::FloatValue* mutable_float_();
  void set_allocated_float_(::google::protobuf::FloatValue* float_);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::FloatValue* float__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  Int64Wrapper(const Int64Wrapper& from);

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

  inline Int64Wrapper& operator=(Int64Wrapper&& 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 Int64Wrapper& default_instance();

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

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

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

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

  Int64Wrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Int64Wrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Int64Wrapper& from);
  void MergeFrom(const Int64Wrapper& 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(Int64Wrapper* 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.Int64Value int64 = 1;
  bool has_int64() const;
  void clear_int64();
  static const int kInt64FieldNumber = 1;
  private:
  const ::google::protobuf::Int64Value& _internal_int64() const;
  public:
  const ::google::protobuf::Int64Value& int64() const;
  ::google::protobuf::Int64Value* release_int64();
  ::google::protobuf::Int64Value* mutable_int64();
  void set_allocated_int64(::google::protobuf::Int64Value* int64);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Int64Value* int64_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  UInt64Wrapper(const UInt64Wrapper& from);

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

  inline UInt64Wrapper& operator=(UInt64Wrapper&& 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 UInt64Wrapper& default_instance();

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

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

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

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

  UInt64Wrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<UInt64Wrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const UInt64Wrapper& from);
  void MergeFrom(const UInt64Wrapper& 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(UInt64Wrapper* 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.UInt64Value uint64 = 1;
  bool has_uint64() const;
  void clear_uint64();
  static const int kUint64FieldNumber = 1;
  private:
  const ::google::protobuf::UInt64Value& _internal_uint64() const;
  public:
  const ::google::protobuf::UInt64Value& uint64() const;
  ::google::protobuf::UInt64Value* release_uint64();
  ::google::protobuf::UInt64Value* mutable_uint64();
  void set_allocated_uint64(::google::protobuf::UInt64Value* uint64);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::UInt64Value* uint64_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  Int32Wrapper(const Int32Wrapper& from);

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

  inline Int32Wrapper& operator=(Int32Wrapper&& 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 Int32Wrapper& default_instance();

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

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

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

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

  Int32Wrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Int32Wrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Int32Wrapper& from);
  void MergeFrom(const Int32Wrapper& 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(Int32Wrapper* 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.Int32Value int32 = 1;
  bool has_int32() const;
  void clear_int32();
  static const int kInt32FieldNumber = 1;
  private:
  const ::google::protobuf::Int32Value& _internal_int32() const;
  public:
  const ::google::protobuf::Int32Value& int32() const;
  ::google::protobuf::Int32Value* release_int32();
  ::google::protobuf::Int32Value* mutable_int32();
  void set_allocated_int32(::google::protobuf::Int32Value* int32);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Int32Value* int32_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  UInt32Wrapper(const UInt32Wrapper& from);

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

  inline UInt32Wrapper& operator=(UInt32Wrapper&& 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 UInt32Wrapper& default_instance();

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

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

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

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

  UInt32Wrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<UInt32Wrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const UInt32Wrapper& from);
  void MergeFrom(const UInt32Wrapper& 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(UInt32Wrapper* 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.UInt32Value uint32 = 1;
  bool has_uint32() const;
  void clear_uint32();
  static const int kUint32FieldNumber = 1;
  private:
  const ::google::protobuf::UInt32Value& _internal_uint32() const;
  public:
  const ::google::protobuf::UInt32Value& uint32() const;
  ::google::protobuf::UInt32Value* release_uint32();
  ::google::protobuf::UInt32Value* mutable_uint32();
  void set_allocated_uint32(::google::protobuf::UInt32Value* uint32);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::UInt32Value* uint32_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  BoolWrapper(const BoolWrapper& from);

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

  inline BoolWrapper& operator=(BoolWrapper&& 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 BoolWrapper& default_instance();

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

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

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

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

  BoolWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BoolWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const BoolWrapper& from);
  void MergeFrom(const BoolWrapper& 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(BoolWrapper* 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.BoolValue bool = 1;
  bool has_bool_() const;
  void clear_bool_();
  static const int kBoolFieldNumber = 1;
  private:
  const ::google::protobuf::BoolValue& _internal_bool_() const;
  public:
  const ::google::protobuf::BoolValue& bool_() const;
  ::google::protobuf::BoolValue* release_bool_();
  ::google::protobuf::BoolValue* mutable_bool_();
  void set_allocated_bool_(::google::protobuf::BoolValue* bool_);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::BoolValue* bool__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  StringWrapper(const StringWrapper& from);

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

  inline StringWrapper& operator=(StringWrapper&& 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 StringWrapper& default_instance();

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

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

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

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

  StringWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StringWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StringWrapper& from);
  void MergeFrom(const StringWrapper& 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(StringWrapper* 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.StringValue string = 1;
  bool has_string() const;
  void clear_string();
  static const int kStringFieldNumber = 1;
  private:
  const ::google::protobuf::StringValue& _internal_string() const;
  public:
  const ::google::protobuf::StringValue& string() const;
  ::google::protobuf::StringValue* release_string();
  ::google::protobuf::StringValue* mutable_string();
  void set_allocated_string(::google::protobuf::StringValue* string);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::StringValue* string_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  BytesWrapper(const BytesWrapper& from);

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

  inline BytesWrapper& operator=(BytesWrapper&& 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 BytesWrapper& default_instance();

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

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

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

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

  BytesWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<BytesWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const BytesWrapper& from);
  void MergeFrom(const BytesWrapper& 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(BytesWrapper* 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.BytesValue bytes = 1;
  bool has_bytes() const;
  void clear_bytes();
  static const int kBytesFieldNumber = 1;
  private:
  const ::google::protobuf::BytesValue& _internal_bytes() const;
  public:
  const ::google::protobuf::BytesValue& bytes() const;
  ::google::protobuf::BytesValue* release_bytes();
  ::google::protobuf::BytesValue* mutable_bytes();
  void set_allocated_bytes(::google::protobuf::BytesValue* bytes);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::BytesValue* bytes_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::TableStruct;
};
// ===================================================================


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

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

// .google.protobuf.testing.DoubleWrapper double_wrapper = 1;
inline bool WrappersTestCases::has_double_wrapper() const {
  return this != internal_default_instance() && double_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_double_wrapper() {
  if (GetArenaNoVirtual() == NULL && double_wrapper_ != NULL) {
    delete double_wrapper_;
  }
  double_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::DoubleWrapper& WrappersTestCases::_internal_double_wrapper() const {
  return *double_wrapper_;
}
inline const ::google::protobuf::testing::DoubleWrapper& WrappersTestCases::double_wrapper() const {
  const ::google::protobuf::testing::DoubleWrapper* p = double_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.double_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleWrapper*>(
      &::google::protobuf::testing::_DoubleWrapper_default_instance_);
}
inline ::google::protobuf::testing::DoubleWrapper* WrappersTestCases::release_double_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.double_wrapper)
  
  ::google::protobuf::testing::DoubleWrapper* temp = double_wrapper_;
  double_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleWrapper* WrappersTestCases::mutable_double_wrapper() {
  
  if (double_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleWrapper>(GetArenaNoVirtual());
    double_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.double_wrapper)
  return double_wrapper_;
}
inline void WrappersTestCases::set_allocated_double_wrapper(::google::protobuf::testing::DoubleWrapper* double_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_wrapper_;
  }
  if (double_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  double_wrapper_ = double_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.double_wrapper)
}

// .google.protobuf.testing.FloatWrapper float_wrapper = 2;
inline bool WrappersTestCases::has_float_wrapper() const {
  return this != internal_default_instance() && float_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_float_wrapper() {
  if (GetArenaNoVirtual() == NULL && float_wrapper_ != NULL) {
    delete float_wrapper_;
  }
  float_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::FloatWrapper& WrappersTestCases::_internal_float_wrapper() const {
  return *float_wrapper_;
}
inline const ::google::protobuf::testing::FloatWrapper& WrappersTestCases::float_wrapper() const {
  const ::google::protobuf::testing::FloatWrapper* p = float_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.float_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FloatWrapper*>(
      &::google::protobuf::testing::_FloatWrapper_default_instance_);
}
inline ::google::protobuf::testing::FloatWrapper* WrappersTestCases::release_float_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.float_wrapper)
  
  ::google::protobuf::testing::FloatWrapper* temp = float_wrapper_;
  float_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FloatWrapper* WrappersTestCases::mutable_float_wrapper() {
  
  if (float_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FloatWrapper>(GetArenaNoVirtual());
    float_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.float_wrapper)
  return float_wrapper_;
}
inline void WrappersTestCases::set_allocated_float_wrapper(::google::protobuf::testing::FloatWrapper* float_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete float_wrapper_;
  }
  if (float_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      float_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, float_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  float_wrapper_ = float_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.float_wrapper)
}

// .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
inline bool WrappersTestCases::has_int64_wrapper() const {
  return this != internal_default_instance() && int64_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_int64_wrapper() {
  if (GetArenaNoVirtual() == NULL && int64_wrapper_ != NULL) {
    delete int64_wrapper_;
  }
  int64_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::Int64Wrapper& WrappersTestCases::_internal_int64_wrapper() const {
  return *int64_wrapper_;
}
inline const ::google::protobuf::testing::Int64Wrapper& WrappersTestCases::int64_wrapper() const {
  const ::google::protobuf::testing::Int64Wrapper* p = int64_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.int64_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Int64Wrapper*>(
      &::google::protobuf::testing::_Int64Wrapper_default_instance_);
}
inline ::google::protobuf::testing::Int64Wrapper* WrappersTestCases::release_int64_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.int64_wrapper)
  
  ::google::protobuf::testing::Int64Wrapper* temp = int64_wrapper_;
  int64_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Int64Wrapper* WrappersTestCases::mutable_int64_wrapper() {
  
  if (int64_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Int64Wrapper>(GetArenaNoVirtual());
    int64_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.int64_wrapper)
  return int64_wrapper_;
}
inline void WrappersTestCases::set_allocated_int64_wrapper(::google::protobuf::testing::Int64Wrapper* int64_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete int64_wrapper_;
  }
  if (int64_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int64_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int64_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  int64_wrapper_ = int64_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.int64_wrapper)
}

// .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
inline bool WrappersTestCases::has_uint64_wrapper() const {
  return this != internal_default_instance() && uint64_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_uint64_wrapper() {
  if (GetArenaNoVirtual() == NULL && uint64_wrapper_ != NULL) {
    delete uint64_wrapper_;
  }
  uint64_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::UInt64Wrapper& WrappersTestCases::_internal_uint64_wrapper() const {
  return *uint64_wrapper_;
}
inline const ::google::protobuf::testing::UInt64Wrapper& WrappersTestCases::uint64_wrapper() const {
  const ::google::protobuf::testing::UInt64Wrapper* p = uint64_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.uint64_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::UInt64Wrapper*>(
      &::google::protobuf::testing::_UInt64Wrapper_default_instance_);
}
inline ::google::protobuf::testing::UInt64Wrapper* WrappersTestCases::release_uint64_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.uint64_wrapper)
  
  ::google::protobuf::testing::UInt64Wrapper* temp = uint64_wrapper_;
  uint64_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::UInt64Wrapper* WrappersTestCases::mutable_uint64_wrapper() {
  
  if (uint64_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::UInt64Wrapper>(GetArenaNoVirtual());
    uint64_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.uint64_wrapper)
  return uint64_wrapper_;
}
inline void WrappersTestCases::set_allocated_uint64_wrapper(::google::protobuf::testing::UInt64Wrapper* uint64_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete uint64_wrapper_;
  }
  if (uint64_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      uint64_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint64_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  uint64_wrapper_ = uint64_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.uint64_wrapper)
}

// .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
inline bool WrappersTestCases::has_int32_wrapper() const {
  return this != internal_default_instance() && int32_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_int32_wrapper() {
  if (GetArenaNoVirtual() == NULL && int32_wrapper_ != NULL) {
    delete int32_wrapper_;
  }
  int32_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::Int32Wrapper& WrappersTestCases::_internal_int32_wrapper() const {
  return *int32_wrapper_;
}
inline const ::google::protobuf::testing::Int32Wrapper& WrappersTestCases::int32_wrapper() const {
  const ::google::protobuf::testing::Int32Wrapper* p = int32_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.int32_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Int32Wrapper*>(
      &::google::protobuf::testing::_Int32Wrapper_default_instance_);
}
inline ::google::protobuf::testing::Int32Wrapper* WrappersTestCases::release_int32_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.int32_wrapper)
  
  ::google::protobuf::testing::Int32Wrapper* temp = int32_wrapper_;
  int32_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Int32Wrapper* WrappersTestCases::mutable_int32_wrapper() {
  
  if (int32_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Int32Wrapper>(GetArenaNoVirtual());
    int32_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.int32_wrapper)
  return int32_wrapper_;
}
inline void WrappersTestCases::set_allocated_int32_wrapper(::google::protobuf::testing::Int32Wrapper* int32_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete int32_wrapper_;
  }
  if (int32_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int32_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int32_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  int32_wrapper_ = int32_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.int32_wrapper)
}

// .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
inline bool WrappersTestCases::has_uint32_wrapper() const {
  return this != internal_default_instance() && uint32_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_uint32_wrapper() {
  if (GetArenaNoVirtual() == NULL && uint32_wrapper_ != NULL) {
    delete uint32_wrapper_;
  }
  uint32_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::UInt32Wrapper& WrappersTestCases::_internal_uint32_wrapper() const {
  return *uint32_wrapper_;
}
inline const ::google::protobuf::testing::UInt32Wrapper& WrappersTestCases::uint32_wrapper() const {
  const ::google::protobuf::testing::UInt32Wrapper* p = uint32_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.uint32_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::UInt32Wrapper*>(
      &::google::protobuf::testing::_UInt32Wrapper_default_instance_);
}
inline ::google::protobuf::testing::UInt32Wrapper* WrappersTestCases::release_uint32_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.uint32_wrapper)
  
  ::google::protobuf::testing::UInt32Wrapper* temp = uint32_wrapper_;
  uint32_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::UInt32Wrapper* WrappersTestCases::mutable_uint32_wrapper() {
  
  if (uint32_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::UInt32Wrapper>(GetArenaNoVirtual());
    uint32_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.uint32_wrapper)
  return uint32_wrapper_;
}
inline void WrappersTestCases::set_allocated_uint32_wrapper(::google::protobuf::testing::UInt32Wrapper* uint32_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete uint32_wrapper_;
  }
  if (uint32_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      uint32_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint32_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  uint32_wrapper_ = uint32_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.uint32_wrapper)
}

// .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
inline bool WrappersTestCases::has_bool_wrapper() const {
  return this != internal_default_instance() && bool_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_bool_wrapper() {
  if (GetArenaNoVirtual() == NULL && bool_wrapper_ != NULL) {
    delete bool_wrapper_;
  }
  bool_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::BoolWrapper& WrappersTestCases::_internal_bool_wrapper() const {
  return *bool_wrapper_;
}
inline const ::google::protobuf::testing::BoolWrapper& WrappersTestCases::bool_wrapper() const {
  const ::google::protobuf::testing::BoolWrapper* p = bool_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.bool_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::BoolWrapper*>(
      &::google::protobuf::testing::_BoolWrapper_default_instance_);
}
inline ::google::protobuf::testing::BoolWrapper* WrappersTestCases::release_bool_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.bool_wrapper)
  
  ::google::protobuf::testing::BoolWrapper* temp = bool_wrapper_;
  bool_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::BoolWrapper* WrappersTestCases::mutable_bool_wrapper() {
  
  if (bool_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::BoolWrapper>(GetArenaNoVirtual());
    bool_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.bool_wrapper)
  return bool_wrapper_;
}
inline void WrappersTestCases::set_allocated_bool_wrapper(::google::protobuf::testing::BoolWrapper* bool_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete bool_wrapper_;
  }
  if (bool_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      bool_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bool_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  bool_wrapper_ = bool_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.bool_wrapper)
}

// .google.protobuf.testing.StringWrapper string_wrapper = 8;
inline bool WrappersTestCases::has_string_wrapper() const {
  return this != internal_default_instance() && string_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_string_wrapper() {
  if (GetArenaNoVirtual() == NULL && string_wrapper_ != NULL) {
    delete string_wrapper_;
  }
  string_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::StringWrapper& WrappersTestCases::_internal_string_wrapper() const {
  return *string_wrapper_;
}
inline const ::google::protobuf::testing::StringWrapper& WrappersTestCases::string_wrapper() const {
  const ::google::protobuf::testing::StringWrapper* p = string_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.string_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StringWrapper*>(
      &::google::protobuf::testing::_StringWrapper_default_instance_);
}
inline ::google::protobuf::testing::StringWrapper* WrappersTestCases::release_string_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.string_wrapper)
  
  ::google::protobuf::testing::StringWrapper* temp = string_wrapper_;
  string_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StringWrapper* WrappersTestCases::mutable_string_wrapper() {
  
  if (string_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StringWrapper>(GetArenaNoVirtual());
    string_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.string_wrapper)
  return string_wrapper_;
}
inline void WrappersTestCases::set_allocated_string_wrapper(::google::protobuf::testing::StringWrapper* string_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete string_wrapper_;
  }
  if (string_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      string_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  string_wrapper_ = string_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.string_wrapper)
}

// .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
inline bool WrappersTestCases::has_bytes_wrapper() const {
  return this != internal_default_instance() && bytes_wrapper_ != NULL;
}
inline void WrappersTestCases::clear_bytes_wrapper() {
  if (GetArenaNoVirtual() == NULL && bytes_wrapper_ != NULL) {
    delete bytes_wrapper_;
  }
  bytes_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::BytesWrapper& WrappersTestCases::_internal_bytes_wrapper() const {
  return *bytes_wrapper_;
}
inline const ::google::protobuf::testing::BytesWrapper& WrappersTestCases::bytes_wrapper() const {
  const ::google::protobuf::testing::BytesWrapper* p = bytes_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.bytes_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::BytesWrapper*>(
      &::google::protobuf::testing::_BytesWrapper_default_instance_);
}
inline ::google::protobuf::testing::BytesWrapper* WrappersTestCases::release_bytes_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.bytes_wrapper)
  
  ::google::protobuf::testing::BytesWrapper* temp = bytes_wrapper_;
  bytes_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::BytesWrapper* WrappersTestCases::mutable_bytes_wrapper() {
  
  if (bytes_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::BytesWrapper>(GetArenaNoVirtual());
    bytes_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.bytes_wrapper)
  return bytes_wrapper_;
}
inline void WrappersTestCases::set_allocated_bytes_wrapper(::google::protobuf::testing::BytesWrapper* bytes_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete bytes_wrapper_;
  }
  if (bytes_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      bytes_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bytes_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  bytes_wrapper_ = bytes_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.bytes_wrapper)
}

// .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
inline bool WrappersTestCases::has_double_wrapper_default() const {
  return this != internal_default_instance() && double_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_double_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && double_wrapper_default_ != NULL) {
    delete double_wrapper_default_;
  }
  double_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::DoubleWrapper& WrappersTestCases::_internal_double_wrapper_default() const {
  return *double_wrapper_default_;
}
inline const ::google::protobuf::testing::DoubleWrapper& WrappersTestCases::double_wrapper_default() const {
  const ::google::protobuf::testing::DoubleWrapper* p = double_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.double_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleWrapper*>(
      &::google::protobuf::testing::_DoubleWrapper_default_instance_);
}
inline ::google::protobuf::testing::DoubleWrapper* WrappersTestCases::release_double_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.double_wrapper_default)
  
  ::google::protobuf::testing::DoubleWrapper* temp = double_wrapper_default_;
  double_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleWrapper* WrappersTestCases::mutable_double_wrapper_default() {
  
  if (double_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleWrapper>(GetArenaNoVirtual());
    double_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.double_wrapper_default)
  return double_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_double_wrapper_default(::google::protobuf::testing::DoubleWrapper* double_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_wrapper_default_;
  }
  if (double_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  double_wrapper_default_ = double_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.double_wrapper_default)
}

// .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
inline bool WrappersTestCases::has_float_wrapper_default() const {
  return this != internal_default_instance() && float_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_float_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && float_wrapper_default_ != NULL) {
    delete float_wrapper_default_;
  }
  float_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::FloatWrapper& WrappersTestCases::_internal_float_wrapper_default() const {
  return *float_wrapper_default_;
}
inline const ::google::protobuf::testing::FloatWrapper& WrappersTestCases::float_wrapper_default() const {
  const ::google::protobuf::testing::FloatWrapper* p = float_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.float_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FloatWrapper*>(
      &::google::protobuf::testing::_FloatWrapper_default_instance_);
}
inline ::google::protobuf::testing::FloatWrapper* WrappersTestCases::release_float_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.float_wrapper_default)
  
  ::google::protobuf::testing::FloatWrapper* temp = float_wrapper_default_;
  float_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FloatWrapper* WrappersTestCases::mutable_float_wrapper_default() {
  
  if (float_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FloatWrapper>(GetArenaNoVirtual());
    float_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.float_wrapper_default)
  return float_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_float_wrapper_default(::google::protobuf::testing::FloatWrapper* float_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete float_wrapper_default_;
  }
  if (float_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      float_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, float_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  float_wrapper_default_ = float_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.float_wrapper_default)
}

// .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
inline bool WrappersTestCases::has_int64_wrapper_default() const {
  return this != internal_default_instance() && int64_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_int64_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && int64_wrapper_default_ != NULL) {
    delete int64_wrapper_default_;
  }
  int64_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::Int64Wrapper& WrappersTestCases::_internal_int64_wrapper_default() const {
  return *int64_wrapper_default_;
}
inline const ::google::protobuf::testing::Int64Wrapper& WrappersTestCases::int64_wrapper_default() const {
  const ::google::protobuf::testing::Int64Wrapper* p = int64_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.int64_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Int64Wrapper*>(
      &::google::protobuf::testing::_Int64Wrapper_default_instance_);
}
inline ::google::protobuf::testing::Int64Wrapper* WrappersTestCases::release_int64_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.int64_wrapper_default)
  
  ::google::protobuf::testing::Int64Wrapper* temp = int64_wrapper_default_;
  int64_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Int64Wrapper* WrappersTestCases::mutable_int64_wrapper_default() {
  
  if (int64_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Int64Wrapper>(GetArenaNoVirtual());
    int64_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.int64_wrapper_default)
  return int64_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_int64_wrapper_default(::google::protobuf::testing::Int64Wrapper* int64_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete int64_wrapper_default_;
  }
  if (int64_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int64_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int64_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  int64_wrapper_default_ = int64_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.int64_wrapper_default)
}

// .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
inline bool WrappersTestCases::has_uint64_wrapper_default() const {
  return this != internal_default_instance() && uint64_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_uint64_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && uint64_wrapper_default_ != NULL) {
    delete uint64_wrapper_default_;
  }
  uint64_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::UInt64Wrapper& WrappersTestCases::_internal_uint64_wrapper_default() const {
  return *uint64_wrapper_default_;
}
inline const ::google::protobuf::testing::UInt64Wrapper& WrappersTestCases::uint64_wrapper_default() const {
  const ::google::protobuf::testing::UInt64Wrapper* p = uint64_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.uint64_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::UInt64Wrapper*>(
      &::google::protobuf::testing::_UInt64Wrapper_default_instance_);
}
inline ::google::protobuf::testing::UInt64Wrapper* WrappersTestCases::release_uint64_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.uint64_wrapper_default)
  
  ::google::protobuf::testing::UInt64Wrapper* temp = uint64_wrapper_default_;
  uint64_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::UInt64Wrapper* WrappersTestCases::mutable_uint64_wrapper_default() {
  
  if (uint64_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::UInt64Wrapper>(GetArenaNoVirtual());
    uint64_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.uint64_wrapper_default)
  return uint64_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_uint64_wrapper_default(::google::protobuf::testing::UInt64Wrapper* uint64_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete uint64_wrapper_default_;
  }
  if (uint64_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      uint64_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint64_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  uint64_wrapper_default_ = uint64_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.uint64_wrapper_default)
}

// .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
inline bool WrappersTestCases::has_int32_wrapper_default() const {
  return this != internal_default_instance() && int32_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_int32_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && int32_wrapper_default_ != NULL) {
    delete int32_wrapper_default_;
  }
  int32_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::Int32Wrapper& WrappersTestCases::_internal_int32_wrapper_default() const {
  return *int32_wrapper_default_;
}
inline const ::google::protobuf::testing::Int32Wrapper& WrappersTestCases::int32_wrapper_default() const {
  const ::google::protobuf::testing::Int32Wrapper* p = int32_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.int32_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::Int32Wrapper*>(
      &::google::protobuf::testing::_Int32Wrapper_default_instance_);
}
inline ::google::protobuf::testing::Int32Wrapper* WrappersTestCases::release_int32_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.int32_wrapper_default)
  
  ::google::protobuf::testing::Int32Wrapper* temp = int32_wrapper_default_;
  int32_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::Int32Wrapper* WrappersTestCases::mutable_int32_wrapper_default() {
  
  if (int32_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::Int32Wrapper>(GetArenaNoVirtual());
    int32_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.int32_wrapper_default)
  return int32_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_int32_wrapper_default(::google::protobuf::testing::Int32Wrapper* int32_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete int32_wrapper_default_;
  }
  if (int32_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int32_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int32_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  int32_wrapper_default_ = int32_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.int32_wrapper_default)
}

// .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
inline bool WrappersTestCases::has_uint32_wrapper_default() const {
  return this != internal_default_instance() && uint32_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_uint32_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && uint32_wrapper_default_ != NULL) {
    delete uint32_wrapper_default_;
  }
  uint32_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::UInt32Wrapper& WrappersTestCases::_internal_uint32_wrapper_default() const {
  return *uint32_wrapper_default_;
}
inline const ::google::protobuf::testing::UInt32Wrapper& WrappersTestCases::uint32_wrapper_default() const {
  const ::google::protobuf::testing::UInt32Wrapper* p = uint32_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.uint32_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::UInt32Wrapper*>(
      &::google::protobuf::testing::_UInt32Wrapper_default_instance_);
}
inline ::google::protobuf::testing::UInt32Wrapper* WrappersTestCases::release_uint32_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.uint32_wrapper_default)
  
  ::google::protobuf::testing::UInt32Wrapper* temp = uint32_wrapper_default_;
  uint32_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::UInt32Wrapper* WrappersTestCases::mutable_uint32_wrapper_default() {
  
  if (uint32_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::UInt32Wrapper>(GetArenaNoVirtual());
    uint32_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.uint32_wrapper_default)
  return uint32_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_uint32_wrapper_default(::google::protobuf::testing::UInt32Wrapper* uint32_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete uint32_wrapper_default_;
  }
  if (uint32_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      uint32_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint32_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  uint32_wrapper_default_ = uint32_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.uint32_wrapper_default)
}

// .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
inline bool WrappersTestCases::has_bool_wrapper_default() const {
  return this != internal_default_instance() && bool_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_bool_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && bool_wrapper_default_ != NULL) {
    delete bool_wrapper_default_;
  }
  bool_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::BoolWrapper& WrappersTestCases::_internal_bool_wrapper_default() const {
  return *bool_wrapper_default_;
}
inline const ::google::protobuf::testing::BoolWrapper& WrappersTestCases::bool_wrapper_default() const {
  const ::google::protobuf::testing::BoolWrapper* p = bool_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.bool_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::BoolWrapper*>(
      &::google::protobuf::testing::_BoolWrapper_default_instance_);
}
inline ::google::protobuf::testing::BoolWrapper* WrappersTestCases::release_bool_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.bool_wrapper_default)
  
  ::google::protobuf::testing::BoolWrapper* temp = bool_wrapper_default_;
  bool_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::BoolWrapper* WrappersTestCases::mutable_bool_wrapper_default() {
  
  if (bool_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::BoolWrapper>(GetArenaNoVirtual());
    bool_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.bool_wrapper_default)
  return bool_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_bool_wrapper_default(::google::protobuf::testing::BoolWrapper* bool_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete bool_wrapper_default_;
  }
  if (bool_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      bool_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bool_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  bool_wrapper_default_ = bool_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.bool_wrapper_default)
}

// .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
inline bool WrappersTestCases::has_string_wrapper_default() const {
  return this != internal_default_instance() && string_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_string_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && string_wrapper_default_ != NULL) {
    delete string_wrapper_default_;
  }
  string_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::StringWrapper& WrappersTestCases::_internal_string_wrapper_default() const {
  return *string_wrapper_default_;
}
inline const ::google::protobuf::testing::StringWrapper& WrappersTestCases::string_wrapper_default() const {
  const ::google::protobuf::testing::StringWrapper* p = string_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.string_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StringWrapper*>(
      &::google::protobuf::testing::_StringWrapper_default_instance_);
}
inline ::google::protobuf::testing::StringWrapper* WrappersTestCases::release_string_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.string_wrapper_default)
  
  ::google::protobuf::testing::StringWrapper* temp = string_wrapper_default_;
  string_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StringWrapper* WrappersTestCases::mutable_string_wrapper_default() {
  
  if (string_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StringWrapper>(GetArenaNoVirtual());
    string_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.string_wrapper_default)
  return string_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_string_wrapper_default(::google::protobuf::testing::StringWrapper* string_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete string_wrapper_default_;
  }
  if (string_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      string_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  string_wrapper_default_ = string_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.string_wrapper_default)
}

// .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
inline bool WrappersTestCases::has_bytes_wrapper_default() const {
  return this != internal_default_instance() && bytes_wrapper_default_ != NULL;
}
inline void WrappersTestCases::clear_bytes_wrapper_default() {
  if (GetArenaNoVirtual() == NULL && bytes_wrapper_default_ != NULL) {
    delete bytes_wrapper_default_;
  }
  bytes_wrapper_default_ = NULL;
}
inline const ::google::protobuf::testing::BytesWrapper& WrappersTestCases::_internal_bytes_wrapper_default() const {
  return *bytes_wrapper_default_;
}
inline const ::google::protobuf::testing::BytesWrapper& WrappersTestCases::bytes_wrapper_default() const {
  const ::google::protobuf::testing::BytesWrapper* p = bytes_wrapper_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.WrappersTestCases.bytes_wrapper_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::BytesWrapper*>(
      &::google::protobuf::testing::_BytesWrapper_default_instance_);
}
inline ::google::protobuf::testing::BytesWrapper* WrappersTestCases::release_bytes_wrapper_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.WrappersTestCases.bytes_wrapper_default)
  
  ::google::protobuf::testing::BytesWrapper* temp = bytes_wrapper_default_;
  bytes_wrapper_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::BytesWrapper* WrappersTestCases::mutable_bytes_wrapper_default() {
  
  if (bytes_wrapper_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::BytesWrapper>(GetArenaNoVirtual());
    bytes_wrapper_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.WrappersTestCases.bytes_wrapper_default)
  return bytes_wrapper_default_;
}
inline void WrappersTestCases::set_allocated_bytes_wrapper_default(::google::protobuf::testing::BytesWrapper* bytes_wrapper_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete bytes_wrapper_default_;
  }
  if (bytes_wrapper_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      bytes_wrapper_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bytes_wrapper_default, submessage_arena);
    }
    
  } else {
    
  }
  bytes_wrapper_default_ = bytes_wrapper_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.WrappersTestCases.bytes_wrapper_default)
}

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

// DoubleWrapper

// .google.protobuf.DoubleValue double = 1;
inline bool DoubleWrapper::has_double_() const {
  return this != internal_default_instance() && double__ != NULL;
}
inline const ::google::protobuf::DoubleValue& DoubleWrapper::_internal_double_() const {
  return *double__;
}
inline const ::google::protobuf::DoubleValue& DoubleWrapper::double_() const {
  const ::google::protobuf::DoubleValue* p = double__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleWrapper.double)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::DoubleValue*>(
      &::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* DoubleWrapper::release_double_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DoubleWrapper.double)
  
  ::google::protobuf::DoubleValue* temp = double__;
  double__ = NULL;
  return temp;
}
inline ::google::protobuf::DoubleValue* DoubleWrapper::mutable_double_() {
  
  if (double__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::DoubleValue>(GetArenaNoVirtual());
    double__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleWrapper.double)
  return double__;
}
inline void DoubleWrapper::set_allocated_double_(::google::protobuf::DoubleValue* double_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(double__);
  }
  if (double_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(double_)->GetArena();
    if (message_arena != submessage_arena) {
      double_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_, submessage_arena);
    }
    
  } else {
    
  }
  double__ = double_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DoubleWrapper.double)
}

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

// FloatWrapper

// .google.protobuf.FloatValue float = 1;
inline bool FloatWrapper::has_float_() const {
  return this != internal_default_instance() && float__ != NULL;
}
inline const ::google::protobuf::FloatValue& FloatWrapper::_internal_float_() const {
  return *float__;
}
inline const ::google::protobuf::FloatValue& FloatWrapper::float_() const {
  const ::google::protobuf::FloatValue* p = float__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FloatWrapper.float)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FloatValue*>(
      &::google::protobuf::_FloatValue_default_instance_);
}
inline ::google::protobuf::FloatValue* FloatWrapper::release_float_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FloatWrapper.float)
  
  ::google::protobuf::FloatValue* temp = float__;
  float__ = NULL;
  return temp;
}
inline ::google::protobuf::FloatValue* FloatWrapper::mutable_float_() {
  
  if (float__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FloatValue>(GetArenaNoVirtual());
    float__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FloatWrapper.float)
  return float__;
}
inline void FloatWrapper::set_allocated_float_(::google::protobuf::FloatValue* float_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(float__);
  }
  if (float_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(float_)->GetArena();
    if (message_arena != submessage_arena) {
      float_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, float_, submessage_arena);
    }
    
  } else {
    
  }
  float__ = float_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FloatWrapper.float)
}

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

// Int64Wrapper

// .google.protobuf.Int64Value int64 = 1;
inline bool Int64Wrapper::has_int64() const {
  return this != internal_default_instance() && int64_ != NULL;
}
inline const ::google::protobuf::Int64Value& Int64Wrapper::_internal_int64() const {
  return *int64_;
}
inline const ::google::protobuf::Int64Value& Int64Wrapper::int64() const {
  const ::google::protobuf::Int64Value* p = int64_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Int64Wrapper.int64)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int64Value*>(
      &::google::protobuf::_Int64Value_default_instance_);
}
inline ::google::protobuf::Int64Value* Int64Wrapper::release_int64() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Int64Wrapper.int64)
  
  ::google::protobuf::Int64Value* temp = int64_;
  int64_ = NULL;
  return temp;
}
inline ::google::protobuf::Int64Value* Int64Wrapper::mutable_int64() {
  
  if (int64_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int64Value>(GetArenaNoVirtual());
    int64_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Int64Wrapper.int64)
  return int64_;
}
inline void Int64Wrapper::set_allocated_int64(::google::protobuf::Int64Value* int64) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(int64_);
  }
  if (int64) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(int64)->GetArena();
    if (message_arena != submessage_arena) {
      int64 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int64, submessage_arena);
    }
    
  } else {
    
  }
  int64_ = int64;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Int64Wrapper.int64)
}

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

// UInt64Wrapper

// .google.protobuf.UInt64Value uint64 = 1;
inline bool UInt64Wrapper::has_uint64() const {
  return this != internal_default_instance() && uint64_ != NULL;
}
inline const ::google::protobuf::UInt64Value& UInt64Wrapper::_internal_uint64() const {
  return *uint64_;
}
inline const ::google::protobuf::UInt64Value& UInt64Wrapper::uint64() const {
  const ::google::protobuf::UInt64Value* p = uint64_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.UInt64Wrapper.uint64)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::UInt64Value*>(
      &::google::protobuf::_UInt64Value_default_instance_);
}
inline ::google::protobuf::UInt64Value* UInt64Wrapper::release_uint64() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.UInt64Wrapper.uint64)
  
  ::google::protobuf::UInt64Value* temp = uint64_;
  uint64_ = NULL;
  return temp;
}
inline ::google::protobuf::UInt64Value* UInt64Wrapper::mutable_uint64() {
  
  if (uint64_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::UInt64Value>(GetArenaNoVirtual());
    uint64_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.UInt64Wrapper.uint64)
  return uint64_;
}
inline void UInt64Wrapper::set_allocated_uint64(::google::protobuf::UInt64Value* uint64) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(uint64_);
  }
  if (uint64) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(uint64)->GetArena();
    if (message_arena != submessage_arena) {
      uint64 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint64, submessage_arena);
    }
    
  } else {
    
  }
  uint64_ = uint64;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.UInt64Wrapper.uint64)
}

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

// Int32Wrapper

// .google.protobuf.Int32Value int32 = 1;
inline bool Int32Wrapper::has_int32() const {
  return this != internal_default_instance() && int32_ != NULL;
}
inline const ::google::protobuf::Int32Value& Int32Wrapper::_internal_int32() const {
  return *int32_;
}
inline const ::google::protobuf::Int32Value& Int32Wrapper::int32() const {
  const ::google::protobuf::Int32Value* p = int32_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.Int32Wrapper.int32)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Int32Value*>(
      &::google::protobuf::_Int32Value_default_instance_);
}
inline ::google::protobuf::Int32Value* Int32Wrapper::release_int32() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.Int32Wrapper.int32)
  
  ::google::protobuf::Int32Value* temp = int32_;
  int32_ = NULL;
  return temp;
}
inline ::google::protobuf::Int32Value* Int32Wrapper::mutable_int32() {
  
  if (int32_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Int32Value>(GetArenaNoVirtual());
    int32_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.Int32Wrapper.int32)
  return int32_;
}
inline void Int32Wrapper::set_allocated_int32(::google::protobuf::Int32Value* int32) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(int32_);
  }
  if (int32) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(int32)->GetArena();
    if (message_arena != submessage_arena) {
      int32 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int32, submessage_arena);
    }
    
  } else {
    
  }
  int32_ = int32;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.Int32Wrapper.int32)
}

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

// UInt32Wrapper

// .google.protobuf.UInt32Value uint32 = 1;
inline bool UInt32Wrapper::has_uint32() const {
  return this != internal_default_instance() && uint32_ != NULL;
}
inline const ::google::protobuf::UInt32Value& UInt32Wrapper::_internal_uint32() const {
  return *uint32_;
}
inline const ::google::protobuf::UInt32Value& UInt32Wrapper::uint32() const {
  const ::google::protobuf::UInt32Value* p = uint32_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.UInt32Wrapper.uint32)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::UInt32Value*>(
      &::google::protobuf::_UInt32Value_default_instance_);
}
inline ::google::protobuf::UInt32Value* UInt32Wrapper::release_uint32() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.UInt32Wrapper.uint32)
  
  ::google::protobuf::UInt32Value* temp = uint32_;
  uint32_ = NULL;
  return temp;
}
inline ::google::protobuf::UInt32Value* UInt32Wrapper::mutable_uint32() {
  
  if (uint32_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::UInt32Value>(GetArenaNoVirtual());
    uint32_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.UInt32Wrapper.uint32)
  return uint32_;
}
inline void UInt32Wrapper::set_allocated_uint32(::google::protobuf::UInt32Value* uint32) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(uint32_);
  }
  if (uint32) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(uint32)->GetArena();
    if (message_arena != submessage_arena) {
      uint32 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, uint32, submessage_arena);
    }
    
  } else {
    
  }
  uint32_ = uint32;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.UInt32Wrapper.uint32)
}

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

// BoolWrapper

// .google.protobuf.BoolValue bool = 1;
inline bool BoolWrapper::has_bool_() const {
  return this != internal_default_instance() && bool__ != NULL;
}
inline const ::google::protobuf::BoolValue& BoolWrapper::_internal_bool_() const {
  return *bool__;
}
inline const ::google::protobuf::BoolValue& BoolWrapper::bool_() const {
  const ::google::protobuf::BoolValue* p = bool__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.BoolWrapper.bool)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::BoolValue*>(
      &::google::protobuf::_BoolValue_default_instance_);
}
inline ::google::protobuf::BoolValue* BoolWrapper::release_bool_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.BoolWrapper.bool)
  
  ::google::protobuf::BoolValue* temp = bool__;
  bool__ = NULL;
  return temp;
}
inline ::google::protobuf::BoolValue* BoolWrapper::mutable_bool_() {
  
  if (bool__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::BoolValue>(GetArenaNoVirtual());
    bool__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.BoolWrapper.bool)
  return bool__;
}
inline void BoolWrapper::set_allocated_bool_(::google::protobuf::BoolValue* bool_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(bool__);
  }
  if (bool_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(bool_)->GetArena();
    if (message_arena != submessage_arena) {
      bool_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bool_, submessage_arena);
    }
    
  } else {
    
  }
  bool__ = bool_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.BoolWrapper.bool)
}

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

// StringWrapper

// .google.protobuf.StringValue string = 1;
inline bool StringWrapper::has_string() const {
  return this != internal_default_instance() && string_ != NULL;
}
inline const ::google::protobuf::StringValue& StringWrapper::_internal_string() const {
  return *string_;
}
inline const ::google::protobuf::StringValue& StringWrapper::string() const {
  const ::google::protobuf::StringValue* p = string_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StringWrapper.string)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::StringValue*>(
      &::google::protobuf::_StringValue_default_instance_);
}
inline ::google::protobuf::StringValue* StringWrapper::release_string() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StringWrapper.string)
  
  ::google::protobuf::StringValue* temp = string_;
  string_ = NULL;
  return temp;
}
inline ::google::protobuf::StringValue* StringWrapper::mutable_string() {
  
  if (string_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::StringValue>(GetArenaNoVirtual());
    string_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StringWrapper.string)
  return string_;
}
inline void StringWrapper::set_allocated_string(::google::protobuf::StringValue* string) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(string_);
  }
  if (string) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(string)->GetArena();
    if (message_arena != submessage_arena) {
      string = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string, submessage_arena);
    }
    
  } else {
    
  }
  string_ = string;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StringWrapper.string)
}

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

// BytesWrapper

// .google.protobuf.BytesValue bytes = 1;
inline bool BytesWrapper::has_bytes() const {
  return this != internal_default_instance() && bytes_ != NULL;
}
inline const ::google::protobuf::BytesValue& BytesWrapper::_internal_bytes() const {
  return *bytes_;
}
inline const ::google::protobuf::BytesValue& BytesWrapper::bytes() const {
  const ::google::protobuf::BytesValue* p = bytes_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.BytesWrapper.bytes)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::BytesValue*>(
      &::google::protobuf::_BytesValue_default_instance_);
}
inline ::google::protobuf::BytesValue* BytesWrapper::release_bytes() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.BytesWrapper.bytes)
  
  ::google::protobuf::BytesValue* temp = bytes_;
  bytes_ = NULL;
  return temp;
}
inline ::google::protobuf::BytesValue* BytesWrapper::mutable_bytes() {
  
  if (bytes_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::BytesValue>(GetArenaNoVirtual());
    bytes_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.BytesWrapper.bytes)
  return bytes_;
}
inline void BytesWrapper::set_allocated_bytes(::google::protobuf::BytesValue* bytes) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(bytes_);
  }
  if (bytes) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(bytes)->GetArena();
    if (message_arena != submessage_arena) {
      bytes = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, bytes, submessage_arena);
    }
    
  } else {
    
  }
  bytes_ = bytes;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.BytesWrapper.bytes)
}

#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_2fwrappers_2eproto
