// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: feature.proto

#include "feature.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BytesList_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Feature_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureList_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Features_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Features_FeatureEntry_DoNotUse_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FloatList_feature_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_feature_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Int64List_feature_2eproto;
namespace sample {
class BytesListDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BytesList> _instance;
} _BytesList_default_instance_;
class FloatListDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FloatList> _instance;
} _FloatList_default_instance_;
class Int64ListDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Int64List> _instance;
} _Int64List_default_instance_;
class FeatureDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Feature> _instance;
  const ::sample::BytesList* bytes_list_;
  const ::sample::FloatList* float_list_;
  const ::sample::Int64List* int64_list_;
} _Feature_default_instance_;
class Features_FeatureEntry_DoNotUseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Features_FeatureEntry_DoNotUse> _instance;
} _Features_FeatureEntry_DoNotUse_default_instance_;
class FeaturesDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Features> _instance;
} _Features_default_instance_;
class FeatureListDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureList> _instance;
} _FeatureList_default_instance_;
class ExampleDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Example> _instance;
} _Example_default_instance_;
class FeatureLists_FeatureListEntry_DoNotUseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureLists_FeatureListEntry_DoNotUse> _instance;
} _FeatureLists_FeatureListEntry_DoNotUse_default_instance_;
class FeatureListsDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FeatureLists> _instance;
} _FeatureLists_default_instance_;
}  // namespace sample
static void InitDefaultsscc_info_BytesList_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_BytesList_default_instance_;
    new (ptr) ::sample::BytesList();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::BytesList::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BytesList_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BytesList_feature_2eproto}, {}};

static void InitDefaultsscc_info_Example_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_Example_default_instance_;
    new (ptr) ::sample::Example();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::Example::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Example_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Example_feature_2eproto}, {
      &scc_info_Features_feature_2eproto.base,}};

static void InitDefaultsscc_info_Feature_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_Feature_default_instance_;
    new (ptr) ::sample::Feature();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::Feature::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Feature_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Feature_feature_2eproto}, {
      &scc_info_BytesList_feature_2eproto.base,
      &scc_info_FloatList_feature_2eproto.base,
      &scc_info_Int64List_feature_2eproto.base,}};

static void InitDefaultsscc_info_FeatureList_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_FeatureList_default_instance_;
    new (ptr) ::sample::FeatureList();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::FeatureList::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureList_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FeatureList_feature_2eproto}, {
      &scc_info_Feature_feature_2eproto.base,}};

static void InitDefaultsscc_info_FeatureLists_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_FeatureLists_default_instance_;
    new (ptr) ::sample::FeatureLists();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::FeatureLists::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureLists_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FeatureLists_feature_2eproto}, {
      &scc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto.base,}};

static void InitDefaultsscc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_FeatureLists_FeatureListEntry_DoNotUse_default_instance_;
    new (ptr) ::sample::FeatureLists_FeatureListEntry_DoNotUse();
  }
  ::sample::FeatureLists_FeatureListEntry_DoNotUse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto}, {
      &scc_info_FeatureList_feature_2eproto.base,}};

static void InitDefaultsscc_info_Features_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_Features_default_instance_;
    new (ptr) ::sample::Features();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::Features::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Features_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Features_feature_2eproto}, {
      &scc_info_Features_FeatureEntry_DoNotUse_feature_2eproto.base,}};

static void InitDefaultsscc_info_Features_FeatureEntry_DoNotUse_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_Features_FeatureEntry_DoNotUse_default_instance_;
    new (ptr) ::sample::Features_FeatureEntry_DoNotUse();
  }
  ::sample::Features_FeatureEntry_DoNotUse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Features_FeatureEntry_DoNotUse_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Features_FeatureEntry_DoNotUse_feature_2eproto}, {
      &scc_info_Feature_feature_2eproto.base,}};

static void InitDefaultsscc_info_FloatList_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_FloatList_default_instance_;
    new (ptr) ::sample::FloatList();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::FloatList::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_FloatList_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_FloatList_feature_2eproto}, {}};

static void InitDefaultsscc_info_Int64List_feature_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::sample::_Int64List_default_instance_;
    new (ptr) ::sample::Int64List();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::sample::Int64List::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Int64List_feature_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Int64List_feature_2eproto}, {}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_feature_2eproto[10];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_feature_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_feature_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_feature_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::BytesList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::BytesList, value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::FloatList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::FloatList, value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::Int64List, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::Int64List, value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::Feature, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::sample::Feature, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::sample::FeatureDefaultTypeInternal, bytes_list_),
  offsetof(::sample::FeatureDefaultTypeInternal, float_list_),
  offsetof(::sample::FeatureDefaultTypeInternal, int64_list_),
  PROTOBUF_FIELD_OFFSET(::sample::Feature, kind_),
  PROTOBUF_FIELD_OFFSET(::sample::Features_FeatureEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::sample::Features_FeatureEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::Features_FeatureEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::sample::Features_FeatureEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::Features, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::Features, feature_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::FeatureList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::FeatureList, feature_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::Example, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::Example, features_),
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists_FeatureListEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists_FeatureListEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists_FeatureListEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists_FeatureListEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::sample::FeatureLists, feature_list_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::sample::BytesList)},
  { 6, -1, sizeof(::sample::FloatList)},
  { 12, -1, sizeof(::sample::Int64List)},
  { 18, -1, sizeof(::sample::Feature)},
  { 27, 34, sizeof(::sample::Features_FeatureEntry_DoNotUse)},
  { 36, -1, sizeof(::sample::Features)},
  { 42, -1, sizeof(::sample::FeatureList)},
  { 48, -1, sizeof(::sample::Example)},
  { 54, 61, sizeof(::sample::FeatureLists_FeatureListEntry_DoNotUse)},
  { 63, -1, sizeof(::sample::FeatureLists)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_BytesList_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_FloatList_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_Int64List_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_Feature_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_Features_FeatureEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_Features_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_FeatureList_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_Example_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_FeatureLists_FeatureListEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::sample::_FeatureLists_default_instance_),
};

const char descriptor_table_protodef_feature_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\rfeature.proto\022\006sample\"\032\n\tBytesList\022\r\n\005"
  "value\030\001 \003(\014\"\036\n\tFloatList\022\021\n\005value\030\001 \003(\002B"
  "\002\020\001\"\036\n\tInt64List\022\021\n\005value\030\001 \003(\003B\002\020\001\"\214\001\n\007"
  "Feature\022\'\n\nbytes_list\030\001 \001(\0132\021.sample.Byt"
  "esListH\000\022\'\n\nfloat_list\030\002 \001(\0132\021.sample.Fl"
  "oatListH\000\022\'\n\nint64_list\030\003 \001(\0132\021.sample.I"
  "nt64ListH\000B\006\n\004kind\"{\n\010Features\022.\n\007featur"
  "e\030\001 \003(\0132\035.sample.Features.FeatureEntry\032\?"
  "\n\014FeatureEntry\022\013\n\003key\030\001 \001(\t\022\036\n\005value\030\002 \001"
  "(\0132\017.sample.Feature:\0028\001\"/\n\013FeatureList\022 "
  "\n\007feature\030\001 \003(\0132\017.sample.Feature\"-\n\007Exam"
  "ple\022\"\n\010features\030\001 \001(\0132\020.sample.Features\""
  "\224\001\n\014FeatureLists\022;\n\014feature_list\030\001 \003(\0132%"
  ".sample.FeatureLists.FeatureListEntry\032G\n"
  "\020FeatureListEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005value\030"
  "\002 \001(\0132\023.sample.FeatureList:\0028\001BN\n\026org.te"
  "nsorflow.exampleB\rFeatureProtosP\001Z githu"
  "b.com/uopensail/ulib/sample\370\001\001b\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_feature_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_feature_2eproto_sccs[10] = {
  &scc_info_BytesList_feature_2eproto.base,
  &scc_info_Example_feature_2eproto.base,
  &scc_info_Feature_feature_2eproto.base,
  &scc_info_FeatureList_feature_2eproto.base,
  &scc_info_FeatureLists_feature_2eproto.base,
  &scc_info_FeatureLists_FeatureListEntry_DoNotUse_feature_2eproto.base,
  &scc_info_Features_feature_2eproto.base,
  &scc_info_Features_FeatureEntry_DoNotUse_feature_2eproto.base,
  &scc_info_FloatList_feature_2eproto.base,
  &scc_info_Int64List_feature_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_feature_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_feature_2eproto = {
  false, false, descriptor_table_protodef_feature_2eproto, "feature.proto", 718,
  &descriptor_table_feature_2eproto_once, descriptor_table_feature_2eproto_sccs, descriptor_table_feature_2eproto_deps, 10, 0,
  schemas, file_default_instances, TableStruct_feature_2eproto::offsets,
  file_level_metadata_feature_2eproto, 10, file_level_enum_descriptors_feature_2eproto, file_level_service_descriptors_feature_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_feature_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_feature_2eproto)), true);
namespace sample {

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

void BytesList::InitAsDefaultInstance() {
}
class BytesList::_Internal {
 public:
};

BytesList::BytesList(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  value_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.BytesList)
}
BytesList::BytesList(const BytesList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      value_(from.value_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:sample.BytesList)
}

void BytesList::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BytesList_feature_2eproto.base);
}

BytesList::~BytesList() {
  // @@protoc_insertion_point(destructor:sample.BytesList)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void BytesList::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void BytesList::ArenaDtor(void* object) {
  BytesList* _this = reinterpret_cast< BytesList* >(object);
  (void)_this;
}
void BytesList::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void BytesList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const BytesList& BytesList::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BytesList_feature_2eproto.base);
  return *internal_default_instance();
}


void BytesList::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.BytesList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* BytesList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated bytes value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_value();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* BytesList::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.BytesList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated bytes value = 1;
  for (int i = 0, n = this->_internal_value_size(); i < n; i++) {
    const auto& s = this->_internal_value(i);
    target = stream->WriteBytes(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.BytesList)
  return target;
}

size_t BytesList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.BytesList)
  size_t total_size = 0;

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

  // repeated bytes value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(value_.size());
  for (int i = 0, n = value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
      value_.Get(i));
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void BytesList::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.BytesList)
  GOOGLE_DCHECK_NE(&from, this);
  const BytesList* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BytesList>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.BytesList)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.BytesList)
    MergeFrom(*source);
  }
}

void BytesList::MergeFrom(const BytesList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.BytesList)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  value_.MergeFrom(from.value_);
}

void BytesList::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.BytesList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool BytesList::IsInitialized() const {
  return true;
}

void BytesList::InternalSwap(BytesList* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  value_.InternalSwap(&other->value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata BytesList::GetMetadata() const {
  return GetMetadataStatic();
}


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

void FloatList::InitAsDefaultInstance() {
}
class FloatList::_Internal {
 public:
};

FloatList::FloatList(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  value_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.FloatList)
}
FloatList::FloatList(const FloatList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      value_(from.value_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:sample.FloatList)
}

void FloatList::SharedCtor() {
}

FloatList::~FloatList() {
  // @@protoc_insertion_point(destructor:sample.FloatList)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FloatList::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void FloatList::ArenaDtor(void* object) {
  FloatList* _this = reinterpret_cast< FloatList* >(object);
  (void)_this;
}
void FloatList::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FloatList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FloatList& FloatList::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FloatList_feature_2eproto.base);
  return *internal_default_instance();
}


void FloatList::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.FloatList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FloatList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated float value = 1 [packed = true];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FloatList::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.FloatList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated float value = 1 [packed = true];
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.FloatList)
  return target;
}

size_t FloatList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.FloatList)
  size_t total_size = 0;

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

  // repeated float value = 1 [packed = true];
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void FloatList::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.FloatList)
  GOOGLE_DCHECK_NE(&from, this);
  const FloatList* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FloatList>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.FloatList)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.FloatList)
    MergeFrom(*source);
  }
}

void FloatList::MergeFrom(const FloatList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.FloatList)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  value_.MergeFrom(from.value_);
}

void FloatList::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.FloatList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool FloatList::IsInitialized() const {
  return true;
}

void FloatList::InternalSwap(FloatList* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  value_.InternalSwap(&other->value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FloatList::GetMetadata() const {
  return GetMetadataStatic();
}


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

void Int64List::InitAsDefaultInstance() {
}
class Int64List::_Internal {
 public:
};

Int64List::Int64List(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  value_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.Int64List)
}
Int64List::Int64List(const Int64List& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      value_(from.value_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:sample.Int64List)
}

void Int64List::SharedCtor() {
}

Int64List::~Int64List() {
  // @@protoc_insertion_point(destructor:sample.Int64List)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Int64List::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Int64List::ArenaDtor(void* object) {
  Int64List* _this = reinterpret_cast< Int64List* >(object);
  (void)_this;
}
void Int64List::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Int64List::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Int64List& Int64List::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Int64List_feature_2eproto.base);
  return *internal_default_instance();
}


void Int64List::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.Int64List)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Int64List::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated int64 value = 1 [packed = true];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Int64List::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.Int64List)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int64 value = 1 [packed = true];
  {
    int byte_size = _value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt64Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.Int64List)
  return target;
}

size_t Int64List::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.Int64List)
  size_t total_size = 0;

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

  // repeated int64 value = 1 [packed = true];
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int64Size(this->value_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Int64List::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.Int64List)
  GOOGLE_DCHECK_NE(&from, this);
  const Int64List* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Int64List>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.Int64List)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.Int64List)
    MergeFrom(*source);
  }
}

void Int64List::MergeFrom(const Int64List& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.Int64List)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  value_.MergeFrom(from.value_);
}

void Int64List::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.Int64List)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Int64List::IsInitialized() const {
  return true;
}

void Int64List::InternalSwap(Int64List* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  value_.InternalSwap(&other->value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Int64List::GetMetadata() const {
  return GetMetadataStatic();
}


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

void Feature::InitAsDefaultInstance() {
  ::sample::_Feature_default_instance_.bytes_list_ = const_cast< ::sample::BytesList*>(
      ::sample::BytesList::internal_default_instance());
  ::sample::_Feature_default_instance_.float_list_ = const_cast< ::sample::FloatList*>(
      ::sample::FloatList::internal_default_instance());
  ::sample::_Feature_default_instance_.int64_list_ = const_cast< ::sample::Int64List*>(
      ::sample::Int64List::internal_default_instance());
}
class Feature::_Internal {
 public:
  static const ::sample::BytesList& bytes_list(const Feature* msg);
  static const ::sample::FloatList& float_list(const Feature* msg);
  static const ::sample::Int64List& int64_list(const Feature* msg);
};

const ::sample::BytesList&
Feature::_Internal::bytes_list(const Feature* msg) {
  return *msg->kind_.bytes_list_;
}
const ::sample::FloatList&
Feature::_Internal::float_list(const Feature* msg) {
  return *msg->kind_.float_list_;
}
const ::sample::Int64List&
Feature::_Internal::int64_list(const Feature* msg) {
  return *msg->kind_.int64_list_;
}
void Feature::set_allocated_bytes_list(::sample::BytesList* bytes_list) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_kind();
  if (bytes_list) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bytes_list);
    if (message_arena != submessage_arena) {
      bytes_list = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bytes_list, submessage_arena);
    }
    set_has_bytes_list();
    kind_.bytes_list_ = bytes_list;
  }
  // @@protoc_insertion_point(field_set_allocated:sample.Feature.bytes_list)
}
void Feature::set_allocated_float_list(::sample::FloatList* float_list) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_kind();
  if (float_list) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(float_list);
    if (message_arena != submessage_arena) {
      float_list = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, float_list, submessage_arena);
    }
    set_has_float_list();
    kind_.float_list_ = float_list;
  }
  // @@protoc_insertion_point(field_set_allocated:sample.Feature.float_list)
}
void Feature::set_allocated_int64_list(::sample::Int64List* int64_list) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_kind();
  if (int64_list) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int64_list);
    if (message_arena != submessage_arena) {
      int64_list = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int64_list, submessage_arena);
    }
    set_has_int64_list();
    kind_.int64_list_ = int64_list;
  }
  // @@protoc_insertion_point(field_set_allocated:sample.Feature.int64_list)
}
Feature::Feature(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.Feature)
}
Feature::Feature(const Feature& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_kind();
  switch (from.kind_case()) {
    case kBytesList: {
      _internal_mutable_bytes_list()->::sample::BytesList::MergeFrom(from._internal_bytes_list());
      break;
    }
    case kFloatList: {
      _internal_mutable_float_list()->::sample::FloatList::MergeFrom(from._internal_float_list());
      break;
    }
    case kInt64List: {
      _internal_mutable_int64_list()->::sample::Int64List::MergeFrom(from._internal_int64_list());
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:sample.Feature)
}

void Feature::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Feature_feature_2eproto.base);
  clear_has_kind();
}

Feature::~Feature() {
  // @@protoc_insertion_point(destructor:sample.Feature)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Feature::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_kind()) {
    clear_kind();
  }
}

void Feature::ArenaDtor(void* object) {
  Feature* _this = reinterpret_cast< Feature* >(object);
  (void)_this;
}
void Feature::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Feature::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Feature& Feature::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Feature_feature_2eproto.base);
  return *internal_default_instance();
}


void Feature::clear_kind() {
// @@protoc_insertion_point(one_of_clear_start:sample.Feature)
  switch (kind_case()) {
    case kBytesList: {
      if (GetArena() == nullptr) {
        delete kind_.bytes_list_;
      }
      break;
    }
    case kFloatList: {
      if (GetArena() == nullptr) {
        delete kind_.float_list_;
      }
      break;
    }
    case kInt64List: {
      if (GetArena() == nullptr) {
        delete kind_.int64_list_;
      }
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = KIND_NOT_SET;
}


void Feature::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.Feature)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_kind();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Feature::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .sample.BytesList bytes_list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_bytes_list(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .sample.FloatList float_list = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_float_list(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .sample.Int64List int64_list = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_int64_list(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Feature::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.Feature)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .sample.BytesList bytes_list = 1;
  if (_internal_has_bytes_list()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::bytes_list(this), target, stream);
  }

  // .sample.FloatList float_list = 2;
  if (_internal_has_float_list()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::float_list(this), target, stream);
  }

  // .sample.Int64List int64_list = 3;
  if (_internal_has_int64_list()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::int64_list(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.Feature)
  return target;
}

size_t Feature::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.Feature)
  size_t total_size = 0;

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

  switch (kind_case()) {
    // .sample.BytesList bytes_list = 1;
    case kBytesList: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *kind_.bytes_list_);
      break;
    }
    // .sample.FloatList float_list = 2;
    case kFloatList: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *kind_.float_list_);
      break;
    }
    // .sample.Int64List int64_list = 3;
    case kInt64List: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *kind_.int64_list_);
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Feature::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.Feature)
  GOOGLE_DCHECK_NE(&from, this);
  const Feature* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Feature>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.Feature)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.Feature)
    MergeFrom(*source);
  }
}

void Feature::MergeFrom(const Feature& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.Feature)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.kind_case()) {
    case kBytesList: {
      _internal_mutable_bytes_list()->::sample::BytesList::MergeFrom(from._internal_bytes_list());
      break;
    }
    case kFloatList: {
      _internal_mutable_float_list()->::sample::FloatList::MergeFrom(from._internal_float_list());
      break;
    }
    case kInt64List: {
      _internal_mutable_int64_list()->::sample::Int64List::MergeFrom(from._internal_int64_list());
      break;
    }
    case KIND_NOT_SET: {
      break;
    }
  }
}

void Feature::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.Feature)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Feature::IsInitialized() const {
  return true;
}

void Feature::InternalSwap(Feature* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(kind_, other->kind_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata Feature::GetMetadata() const {
  return GetMetadataStatic();
}


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

Features_FeatureEntry_DoNotUse::Features_FeatureEntry_DoNotUse() {}
Features_FeatureEntry_DoNotUse::Features_FeatureEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void Features_FeatureEntry_DoNotUse::MergeFrom(const Features_FeatureEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata Features_FeatureEntry_DoNotUse::GetMetadata() const {
  return GetMetadataStatic();
}
void Features_FeatureEntry_DoNotUse::MergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::Message& other) {
  ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other);
}


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

void Features::InitAsDefaultInstance() {
}
class Features::_Internal {
 public:
};

Features::Features(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  feature_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.Features)
}
Features::Features(const Features& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  feature_.MergeFrom(from.feature_);
  // @@protoc_insertion_point(copy_constructor:sample.Features)
}

void Features::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Features_feature_2eproto.base);
}

Features::~Features() {
  // @@protoc_insertion_point(destructor:sample.Features)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Features::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void Features::ArenaDtor(void* object) {
  Features* _this = reinterpret_cast< Features* >(object);
  (void)_this;
}
void Features::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Features::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Features& Features::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Features_feature_2eproto.base);
  return *internal_default_instance();
}


void Features::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.Features)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  feature_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Features::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // map<string, .sample.Feature> feature = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&feature_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Features::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.Features)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .sample.Feature> feature = 1;
  if (!this->_internal_feature().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::Feature >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "sample.Features.FeatureEntry.key");
      }
    };

    if (stream->IsSerializationDeterministic() &&
        this->_internal_feature().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->_internal_feature().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::Feature >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::Feature >::const_iterator
          it = this->_internal_feature().begin();
          it != this->_internal_feature().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      for (size_type i = 0; i < n; i++) {
        target = Features_FeatureEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::Feature >::const_iterator
          it = this->_internal_feature().begin();
          it != this->_internal_feature().end(); ++it) {
        target = Features_FeatureEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.Features)
  return target;
}

size_t Features::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.Features)
  size_t total_size = 0;

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

  // map<string, .sample.Feature> feature = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_feature_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::Feature >::const_iterator
      it = this->_internal_feature().begin();
      it != this->_internal_feature().end(); ++it) {
    total_size += Features_FeatureEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Features::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.Features)
  GOOGLE_DCHECK_NE(&from, this);
  const Features* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Features>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.Features)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.Features)
    MergeFrom(*source);
  }
}

void Features::MergeFrom(const Features& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.Features)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  feature_.MergeFrom(from.feature_);
}

void Features::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.Features)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Features::IsInitialized() const {
  return true;
}

void Features::InternalSwap(Features* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  feature_.Swap(&other->feature_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Features::GetMetadata() const {
  return GetMetadataStatic();
}


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

void FeatureList::InitAsDefaultInstance() {
}
class FeatureList::_Internal {
 public:
};

FeatureList::FeatureList(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  feature_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.FeatureList)
}
FeatureList::FeatureList(const FeatureList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      feature_(from.feature_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:sample.FeatureList)
}

void FeatureList::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureList_feature_2eproto.base);
}

FeatureList::~FeatureList() {
  // @@protoc_insertion_point(destructor:sample.FeatureList)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureList::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void FeatureList::ArenaDtor(void* object) {
  FeatureList* _this = reinterpret_cast< FeatureList* >(object);
  (void)_this;
}
void FeatureList::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureList& FeatureList::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureList_feature_2eproto.base);
  return *internal_default_instance();
}


void FeatureList::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.FeatureList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  feature_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .sample.Feature feature = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_feature(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FeatureList::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.FeatureList)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .sample.Feature feature = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_feature_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_feature(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.FeatureList)
  return target;
}

size_t FeatureList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.FeatureList)
  size_t total_size = 0;

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

  // repeated .sample.Feature feature = 1;
  total_size += 1UL * this->_internal_feature_size();
  for (const auto& msg : this->feature_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void FeatureList::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.FeatureList)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureList* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureList>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.FeatureList)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.FeatureList)
    MergeFrom(*source);
  }
}

void FeatureList::MergeFrom(const FeatureList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.FeatureList)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  feature_.MergeFrom(from.feature_);
}

void FeatureList::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.FeatureList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool FeatureList::IsInitialized() const {
  return true;
}

void FeatureList::InternalSwap(FeatureList* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  feature_.InternalSwap(&other->feature_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureList::GetMetadata() const {
  return GetMetadataStatic();
}


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

void Example::InitAsDefaultInstance() {
  ::sample::_Example_default_instance_._instance.get_mutable()->features_ = const_cast< ::sample::Features*>(
      ::sample::Features::internal_default_instance());
}
class Example::_Internal {
 public:
  static const ::sample::Features& features(const Example* msg);
};

const ::sample::Features&
Example::_Internal::features(const Example* msg) {
  return *msg->features_;
}
Example::Example(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.Example)
}
Example::Example(const Example& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_features()) {
    features_ = new ::sample::Features(*from.features_);
  } else {
    features_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:sample.Example)
}

void Example::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Example_feature_2eproto.base);
  features_ = nullptr;
}

Example::~Example() {
  // @@protoc_insertion_point(destructor:sample.Example)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void Example::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete features_;
}

void Example::ArenaDtor(void* object) {
  Example* _this = reinterpret_cast< Example* >(object);
  (void)_this;
}
void Example::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Example::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Example& Example::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Example_feature_2eproto.base);
  return *internal_default_instance();
}


void Example::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.Example)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && features_ != nullptr) {
    delete features_;
  }
  features_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Example::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .sample.Features features = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_features(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Example::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.Example)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .sample.Features features = 1;
  if (this->has_features()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::features(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.Example)
  return target;
}

size_t Example::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.Example)
  size_t total_size = 0;

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

  // .sample.Features features = 1;
  if (this->has_features()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *features_);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Example::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.Example)
  GOOGLE_DCHECK_NE(&from, this);
  const Example* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Example>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.Example)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.Example)
    MergeFrom(*source);
  }
}

void Example::MergeFrom(const Example& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.Example)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_features()) {
    _internal_mutable_features()->::sample::Features::MergeFrom(from._internal_features());
  }
}

void Example::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.Example)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Example::IsInitialized() const {
  return true;
}

void Example::InternalSwap(Example* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  swap(features_, other->features_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Example::GetMetadata() const {
  return GetMetadataStatic();
}


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

FeatureLists_FeatureListEntry_DoNotUse::FeatureLists_FeatureListEntry_DoNotUse() {}
FeatureLists_FeatureListEntry_DoNotUse::FeatureLists_FeatureListEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void FeatureLists_FeatureListEntry_DoNotUse::MergeFrom(const FeatureLists_FeatureListEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata FeatureLists_FeatureListEntry_DoNotUse::GetMetadata() const {
  return GetMetadataStatic();
}
void FeatureLists_FeatureListEntry_DoNotUse::MergeFrom(
    const ::PROTOBUF_NAMESPACE_ID::Message& other) {
  ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other);
}


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

void FeatureLists::InitAsDefaultInstance() {
}
class FeatureLists::_Internal {
 public:
};

FeatureLists::FeatureLists(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  feature_list_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:sample.FeatureLists)
}
FeatureLists::FeatureLists(const FeatureLists& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  feature_list_.MergeFrom(from.feature_list_);
  // @@protoc_insertion_point(copy_constructor:sample.FeatureLists)
}

void FeatureLists::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FeatureLists_feature_2eproto.base);
}

FeatureLists::~FeatureLists() {
  // @@protoc_insertion_point(destructor:sample.FeatureLists)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void FeatureLists::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
}

void FeatureLists::ArenaDtor(void* object) {
  FeatureLists* _this = reinterpret_cast< FeatureLists* >(object);
  (void)_this;
}
void FeatureLists::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void FeatureLists::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const FeatureLists& FeatureLists::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_FeatureLists_feature_2eproto.base);
  return *internal_default_instance();
}


void FeatureLists::Clear() {
// @@protoc_insertion_point(message_clear_start:sample.FeatureLists)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  feature_list_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FeatureLists::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // map<string, .sample.FeatureList> feature_list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&feature_list_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* FeatureLists::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:sample.FeatureLists)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .sample.FeatureList> feature_list = 1;
  if (!this->_internal_feature_list().empty()) {
    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::FeatureList >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
          "sample.FeatureLists.FeatureListEntry.key");
      }
    };

    if (stream->IsSerializationDeterministic() &&
        this->_internal_feature_list().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->_internal_feature_list().size()]);
      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::FeatureList >::size_type size_type;
      size_type n = 0;
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::FeatureList >::const_iterator
          it = this->_internal_feature_list().begin();
          it != this->_internal_feature_list().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      for (size_type i = 0; i < n; i++) {
        target = FeatureLists_FeatureListEntry_DoNotUse::Funcs::InternalSerialize(1, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::FeatureList >::const_iterator
          it = this->_internal_feature_list().begin();
          it != this->_internal_feature_list().end(); ++it) {
        target = FeatureLists_FeatureListEntry_DoNotUse::Funcs::InternalSerialize(1, it->first, it->second, target, stream);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:sample.FeatureLists)
  return target;
}

size_t FeatureLists::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:sample.FeatureLists)
  size_t total_size = 0;

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

  // map<string, .sample.FeatureList> feature_list = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_feature_list_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::sample::FeatureList >::const_iterator
      it = this->_internal_feature_list().begin();
      it != this->_internal_feature_list().end(); ++it) {
    total_size += FeatureLists_FeatureListEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void FeatureLists::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:sample.FeatureLists)
  GOOGLE_DCHECK_NE(&from, this);
  const FeatureLists* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<FeatureLists>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:sample.FeatureLists)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:sample.FeatureLists)
    MergeFrom(*source);
  }
}

void FeatureLists::MergeFrom(const FeatureLists& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:sample.FeatureLists)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  feature_list_.MergeFrom(from.feature_list_);
}

void FeatureLists::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:sample.FeatureLists)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool FeatureLists::IsInitialized() const {
  return true;
}

void FeatureLists::InternalSwap(FeatureLists* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  feature_list_.Swap(&other->feature_list_);
}

::PROTOBUF_NAMESPACE_ID::Metadata FeatureLists::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace sample
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::sample::BytesList* Arena::CreateMaybeMessage< ::sample::BytesList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::BytesList >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::FloatList* Arena::CreateMaybeMessage< ::sample::FloatList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::FloatList >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::Int64List* Arena::CreateMaybeMessage< ::sample::Int64List >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::Int64List >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::Feature* Arena::CreateMaybeMessage< ::sample::Feature >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::Feature >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::Features_FeatureEntry_DoNotUse* Arena::CreateMaybeMessage< ::sample::Features_FeatureEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::Features_FeatureEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::Features* Arena::CreateMaybeMessage< ::sample::Features >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::Features >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::FeatureList* Arena::CreateMaybeMessage< ::sample::FeatureList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::FeatureList >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::Example* Arena::CreateMaybeMessage< ::sample::Example >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::Example >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::FeatureLists_FeatureListEntry_DoNotUse* Arena::CreateMaybeMessage< ::sample::FeatureLists_FeatureListEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::FeatureLists_FeatureListEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::sample::FeatureLists* Arena::CreateMaybeMessage< ::sample::FeatureLists >(Arena* arena) {
  return Arena::CreateMessageInternal< ::sample::FeatureLists >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
