From d3f4c0623c48d216998fa8260d37fefa311d0fb1 Mon Sep 17 00:00:00 2001
From: suntianyu <xuepengqiang@aiotlink.com>
Date: 星期一, 26 七月 2021 15:44:26 +0800
Subject: [PATCH] update

---
 lib/utils/protomsg.pb.h  | 1000 ++++++++++++-----------------
 lib/utils/protomsg.pb.cc |  910 ++++++++++++++------------
 CMakeLists.txt           |   12 
 3 files changed, 911 insertions(+), 1,011 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd31927..54e76cb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,10 +33,18 @@
 source_group("Include" FILES ${CURRENT_HEADERS})
 source_group("Source" FILES ${sources})
 
+set(CUDA_Path /usr/local/cuda)
+include_directories(${CUDA_Path}/include)
+link_directories(${CUDA_Path}/lib64)
+
 include_directories(${OPENCV_DIR}/include/opencv4)
 link_directories(${OPENCV_DIR}/lib)
-include_directories(/opt/toolkits/protobuf-3.10.0/include)
-link_directories(/opt/toolkits/protobuf-3.10.0/lib)
+#include_directories(/opt/toolkits/protobuf/include)
+#link_directories(/opt/toolkits/protobuf/lib)
+include_directories("/usr/include/x86_64-linux-gnu/")
+link_directories(/usr/lib/x86_64-linux-gnu/)
+link_directories(/home/basic/anaconda3/lib/)
+
 set(LOG_DIR /opt/toolkits/log4cplus)
 include_directories("/usr/include/jsoncpp/")
 
diff --git a/lib/utils/protomsg.pb.cc b/lib/utils/protomsg.pb.cc
index 39ae935..e8ea9f8 100644
--- a/lib/utils/protomsg.pb.cc
+++ b/lib/utils/protomsg.pb.cc
@@ -14,104 +14,90 @@
 #include <google/protobuf/wire_format.h>
 // @@protoc_insertion_point(includes)
 #include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Rect_protomsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SDKMessage_protomsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Target_protomsg_2eproto;
+
+PROTOBUF_PRAGMA_INIT_SEG
 namespace protomsg {
-class ImageDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Image> _instance;
-} _Image_default_instance_;
-class RectDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Rect> _instance;
-} _Rect_default_instance_;
-class TargetDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Target> _instance;
-} _Target_default_instance_;
-class SDKMessageDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SDKMessage> _instance;
-} _SDKMessage_default_instance_;
-class RuleMessageDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RuleMessage> _instance;
-} _RuleMessage_default_instance_;
+constexpr Image::Image(
+  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
+  : data_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , timestamp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , cid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , cname_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , width_(0)
+  , height_(0)
+  , id_(int64_t{0}){}
+struct ImageDefaultTypeInternal {
+  constexpr ImageDefaultTypeInternal()
+    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
+  ~ImageDefaultTypeInternal() {}
+  union {
+    Image _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ImageDefaultTypeInternal _Image_default_instance_;
+constexpr Rect::Rect(
+  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
+  : left_(0)
+  , top_(0)
+  , right_(0)
+  , bottom_(0){}
+struct RectDefaultTypeInternal {
+  constexpr RectDefaultTypeInternal()
+    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
+  ~RectDefaultTypeInternal() {}
+  union {
+    Rect _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RectDefaultTypeInternal _Rect_default_instance_;
+constexpr Target::Target(
+  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
+  : type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , feature_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , attribute_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , rect_(nullptr)
+  , id_(uint64_t{0u})
+  , confidence_(0){}
+struct TargetDefaultTypeInternal {
+  constexpr TargetDefaultTypeInternal()
+    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
+  ~TargetDefaultTypeInternal() {}
+  union {
+    Target _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TargetDefaultTypeInternal _Target_default_instance_;
+constexpr SDKMessage::SDKMessage(
+  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
+  : target_()
+  , sdkid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , sdktype_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , sdkname_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , timestamp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
+struct SDKMessageDefaultTypeInternal {
+  constexpr SDKMessageDefaultTypeInternal()
+    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
+  ~SDKMessageDefaultTypeInternal() {}
+  union {
+    SDKMessage _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SDKMessageDefaultTypeInternal _SDKMessage_default_instance_;
+constexpr RuleMessage::RuleMessage(
+  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
+  : message_()
+  , datatype_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
+  , handletrack_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
+struct RuleMessageDefaultTypeInternal {
+  constexpr RuleMessageDefaultTypeInternal()
+    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
+  ~RuleMessageDefaultTypeInternal() {}
+  union {
+    RuleMessage _instance;
+  };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RuleMessageDefaultTypeInternal _RuleMessage_default_instance_;
 }  // namespace protomsg
-static void InitDefaultsscc_info_Image_protomsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::protomsg::_Image_default_instance_;
-    new (ptr) ::protomsg::Image();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::protomsg::Image::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Image_protomsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Image_protomsg_2eproto}, {}};
-
-static void InitDefaultsscc_info_Rect_protomsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::protomsg::_Rect_default_instance_;
-    new (ptr) ::protomsg::Rect();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::protomsg::Rect::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Rect_protomsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Rect_protomsg_2eproto}, {}};
-
-static void InitDefaultsscc_info_RuleMessage_protomsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::protomsg::_RuleMessage_default_instance_;
-    new (ptr) ::protomsg::RuleMessage();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::protomsg::RuleMessage::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RuleMessage_protomsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RuleMessage_protomsg_2eproto}, {
-      &scc_info_SDKMessage_protomsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_SDKMessage_protomsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::protomsg::_SDKMessage_default_instance_;
-    new (ptr) ::protomsg::SDKMessage();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::protomsg::SDKMessage::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SDKMessage_protomsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SDKMessage_protomsg_2eproto}, {
-      &scc_info_Target_protomsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_Target_protomsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::protomsg::_Target_default_instance_;
-    new (ptr) ::protomsg::Target();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::protomsg::Target::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Target_protomsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Target_protomsg_2eproto}, {
-      &scc_info_Rect_protomsg_2eproto.base,}};
-
 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_protomsg_2eproto[5];
 static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_protomsg_2eproto = nullptr;
 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_protomsg_2eproto = nullptr;
@@ -200,60 +186,55 @@
   "handleTrack\030\002 \001(\t\022%\n\007message\030\003 \003(\0132\024.pro"
   "tomsg.SDKMessageb\006proto3"
   ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_protomsg_2eproto_deps[1] = {
-};
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_protomsg_2eproto_sccs[5] = {
-  &scc_info_Image_protomsg_2eproto.base,
-  &scc_info_Rect_protomsg_2eproto.base,
-  &scc_info_RuleMessage_protomsg_2eproto.base,
-  &scc_info_SDKMessage_protomsg_2eproto.base,
-  &scc_info_Target_protomsg_2eproto.base,
-};
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_protomsg_2eproto_once;
-static bool descriptor_table_protomsg_2eproto_initialized = false;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_protomsg_2eproto = {
-  &descriptor_table_protomsg_2eproto_initialized, descriptor_table_protodef_protomsg_2eproto, "protomsg.proto", 544,
-  &descriptor_table_protomsg_2eproto_once, descriptor_table_protomsg_2eproto_sccs, descriptor_table_protomsg_2eproto_deps, 5, 0,
+  false, false, 544, descriptor_table_protodef_protomsg_2eproto, "protomsg.proto", 
+  &descriptor_table_protomsg_2eproto_once, nullptr, 0, 5,
   schemas, file_default_instances, TableStruct_protomsg_2eproto::offsets,
-  file_level_metadata_protomsg_2eproto, 5, file_level_enum_descriptors_protomsg_2eproto, file_level_service_descriptors_protomsg_2eproto,
+  file_level_metadata_protomsg_2eproto, file_level_enum_descriptors_protomsg_2eproto, file_level_service_descriptors_protomsg_2eproto,
 };
+PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_protomsg_2eproto_getter() {
+  return &descriptor_table_protomsg_2eproto;
+}
 
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_protomsg_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_protomsg_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_protomsg_2eproto(&descriptor_table_protomsg_2eproto);
 namespace protomsg {
 
 // ===================================================================
 
-void Image::InitAsDefaultInstance() {
-}
 class Image::_Internal {
  public:
 };
 
-Image::Image()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
+Image::Image(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
-  // @@protoc_insertion_point(constructor:protomsg.Image)
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:protomsg.Image)
 }
 Image::Image(const Image& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_data().empty()) {
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
+    data_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_data(), 
+      GetArenaForAllocation());
   }
   timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_timestamp().empty()) {
-    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
+    timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_timestamp(), 
+      GetArenaForAllocation());
   }
   cid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_cid().empty()) {
-    cid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cid_);
+    cid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_cid(), 
+      GetArenaForAllocation());
   }
   cname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_cname().empty()) {
-    cname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cname_);
+    cname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_cname(), 
+      GetArenaForAllocation());
   }
   ::memcpy(&width_, &from.width_,
     static_cast<size_t>(reinterpret_cast<char*>(&id_) -
@@ -262,36 +243,39 @@
 }
 
 void Image::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Image_protomsg_2eproto.base);
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  cid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  cname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(&width_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&id_) -
-      reinterpret_cast<char*>(&width_)) + sizeof(id_));
+data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+cid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+cname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&width_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&id_) -
+    reinterpret_cast<char*>(&width_)) + sizeof(id_));
 }
 
 Image::~Image() {
   // @@protoc_insertion_point(destructor:protomsg.Image)
   SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 void Image::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
   data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   timestamp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   cid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   cname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 }
 
+void Image::ArenaDtor(void* object) {
+  Image* _this = reinterpret_cast< Image* >(object);
+  (void)_this;
+}
+void Image::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
 void Image::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const Image& Image::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Image_protomsg_2eproto.base);
-  return *internal_default_instance();
-}
-
 
 void Image::Clear() {
 // @@protoc_insertion_point(message_clear_start:protomsg.Image)
@@ -299,14 +283,14 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  cid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  cname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  data_.ClearToEmpty();
+  timestamp_.ClearToEmpty();
+  cid_.ClearToEmpty();
+  cname_.ClearToEmpty();
   ::memset(&width_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&id_) -
       reinterpret_cast<char*>(&width_)) + sizeof(id_));
-  _internal_metadata_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Image::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -314,64 +298,73 @@
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
     switch (tag >> 3) {
       // int32 width = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int32 height = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // bytes data = 3;
       case 3:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_data(), ptr, ctx);
+          auto str = _internal_mutable_data();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string timestamp = 4;
       case 4:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_timestamp(), ptr, ctx, "protomsg.Image.timestamp");
+          auto str = _internal_mutable_timestamp();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.timestamp"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int64 id = 5;
       case 5:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
-          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string cid = 6;
       case 6:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_cid(), ptr, ctx, "protomsg.Image.cid");
+          auto str = _internal_mutable_cid();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.cid"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string cname = 7;
       case 7:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_cname(), ptr, ctx, "protomsg.Image.cname");
+          auto str = _internal_mutable_cname();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.cname"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       default: {
       handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
+        if ((tag == 0) || ((tag & 7) == 4)) {
+          CHK_(ptr);
           ctx->SetLastTag(tag);
           goto success;
         }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
         CHK_(ptr != nullptr);
         continue;
       }
@@ -385,7 +378,7 @@
 #undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* Image::InternalSerializeWithCachedSizesToArray(
+::PROTOBUF_NAMESPACE_ID::uint8* Image::_InternalSerialize(
     ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:protomsg.Image)
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -393,24 +386,24 @@
 
   // int32 width = 1;
   if (this->width() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_width(), target);
   }
 
   // int32 height = 2;
   if (this->height() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_height(), target);
   }
 
   // bytes data = 3;
-  if (this->data().size() > 0) {
+  if (!this->data().empty()) {
     target = stream->WriteBytesMaybeAliased(
         3, this->_internal_data(), target);
   }
 
   // string timestamp = 4;
-  if (this->timestamp().size() > 0) {
+  if (!this->timestamp().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_timestamp().data(), static_cast<int>(this->_internal_timestamp().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -421,12 +414,12 @@
 
   // int64 id = 5;
   if (this->id() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_id(), target);
   }
 
   // string cid = 6;
-  if (this->cid().size() > 0) {
+  if (!this->cid().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_cid().data(), static_cast<int>(this->_internal_cid().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -436,7 +429,7 @@
   }
 
   // string cname = 7;
-  if (this->cname().size() > 0) {
+  if (!this->cname().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_cname().data(), static_cast<int>(this->_internal_cname().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -447,7 +440,7 @@
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:protomsg.Image)
   return target;
@@ -462,28 +455,28 @@
   (void) cached_has_bits;
 
   // bytes data = 3;
-  if (this->data().size() > 0) {
+  if (!this->data().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
         this->_internal_data());
   }
 
   // string timestamp = 4;
-  if (this->timestamp().size() > 0) {
+  if (!this->timestamp().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_timestamp());
   }
 
   // string cid = 6;
-  if (this->cid().size() > 0) {
+  if (!this->cid().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_cid());
   }
 
   // string cname = 7;
-  if (this->cname().size() > 0) {
+  if (!this->cname().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_cname());
@@ -537,25 +530,21 @@
 void Image::MergeFrom(const Image& from) {
 // @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Image)
   GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (from.data().size() > 0) {
-
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
+  if (!from.data().empty()) {
+    _internal_set_data(from._internal_data());
   }
-  if (from.timestamp().size() > 0) {
-
-    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
+  if (!from.timestamp().empty()) {
+    _internal_set_timestamp(from._internal_timestamp());
   }
-  if (from.cid().size() > 0) {
-
-    cid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cid_);
+  if (!from.cid().empty()) {
+    _internal_set_cid(from._internal_cid());
   }
-  if (from.cname().size() > 0) {
-
-    cname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cname_);
+  if (!from.cname().empty()) {
+    _internal_set_cname(from._internal_cname());
   }
   if (from.width() != 0) {
     _internal_set_width(from._internal_width());
@@ -588,42 +577,56 @@
 
 void Image::InternalSwap(Image* other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  timestamp_.Swap(&other->timestamp_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  cid_.Swap(&other->cid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  cname_.Swap(&other->cname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(width_, other->width_);
-  swap(height_, other->height_);
-  swap(id_, other->id_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &data_, GetArenaForAllocation(),
+      &other->data_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &timestamp_, GetArenaForAllocation(),
+      &other->timestamp_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &cid_, GetArenaForAllocation(),
+      &other->cid_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &cname_, GetArenaForAllocation(),
+      &other->cname_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Image, id_)
+      + sizeof(Image::id_)
+      - PROTOBUF_FIELD_OFFSET(Image, width_)>(
+          reinterpret_cast<char*>(&width_),
+          reinterpret_cast<char*>(&other->width_));
 }
 
 ::PROTOBUF_NAMESPACE_ID::Metadata Image::GetMetadata() const {
-  return GetMetadataStatic();
+  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
+      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
+      file_level_metadata_protomsg_2eproto[0]);
 }
-
 
 // ===================================================================
 
-void Rect::InitAsDefaultInstance() {
-}
 class Rect::_Internal {
  public:
 };
 
-Rect::Rect()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
+Rect::Rect(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
-  // @@protoc_insertion_point(constructor:protomsg.Rect)
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:protomsg.Rect)
 }
 Rect::Rect(const Rect& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::memcpy(&left_, &from.left_,
     static_cast<size_t>(reinterpret_cast<char*>(&bottom_) -
     reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
@@ -631,27 +634,31 @@
 }
 
 void Rect::SharedCtor() {
-  ::memset(&left_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&bottom_) -
-      reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&left_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&bottom_) -
+    reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
 }
 
 Rect::~Rect() {
   // @@protoc_insertion_point(destructor:protomsg.Rect)
   SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 void Rect::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
 }
 
+void Rect::ArenaDtor(void* object) {
+  Rect* _this = reinterpret_cast< Rect* >(object);
+  (void)_this;
+}
+void Rect::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
 void Rect::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const Rect& Rect::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Rect_protomsg_2eproto.base);
-  return *internal_default_instance();
-}
-
 
 void Rect::Clear() {
 // @@protoc_insertion_point(message_clear_start:protomsg.Rect)
@@ -662,7 +669,7 @@
   ::memset(&left_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&bottom_) -
       reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
-  _internal_metadata_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Rect::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -670,43 +677,45 @@
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
     switch (tag >> 3) {
       // int32 left = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int32 top = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          top_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          top_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int32 right = 3;
       case 3:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
-          right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int32 bottom = 4;
       case 4:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          bottom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          bottom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       default: {
       handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
+        if ((tag == 0) || ((tag & 7) == 4)) {
+          CHK_(ptr);
           ctx->SetLastTag(tag);
           goto success;
         }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
         CHK_(ptr != nullptr);
         continue;
       }
@@ -720,7 +729,7 @@
 #undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* Rect::InternalSerializeWithCachedSizesToArray(
+::PROTOBUF_NAMESPACE_ID::uint8* Rect::_InternalSerialize(
     ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:protomsg.Rect)
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -728,31 +737,31 @@
 
   // int32 left = 1;
   if (this->left() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_left(), target);
   }
 
   // int32 top = 2;
   if (this->top() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_top(), target);
   }
 
   // int32 right = 3;
   if (this->right() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_right(), target);
   }
 
   // int32 bottom = 4;
   if (this->bottom() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_bottom(), target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:protomsg.Rect)
   return target;
@@ -821,7 +830,7 @@
 void Rect::MergeFrom(const Rect& from) {
 // @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Rect)
   GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
@@ -859,24 +868,23 @@
 
 void Rect::InternalSwap(Rect* other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(left_, other->left_);
-  swap(top_, other->top_);
-  swap(right_, other->right_);
-  swap(bottom_, other->bottom_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Rect, bottom_)
+      + sizeof(Rect::bottom_)
+      - PROTOBUF_FIELD_OFFSET(Rect, left_)>(
+          reinterpret_cast<char*>(&left_),
+          reinterpret_cast<char*>(&other->left_));
 }
 
 ::PROTOBUF_NAMESPACE_ID::Metadata Rect::GetMetadata() const {
-  return GetMetadataStatic();
+  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
+      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
+      file_level_metadata_protomsg_2eproto[1]);
 }
-
 
 // ===================================================================
 
-void Target::InitAsDefaultInstance() {
-  ::protomsg::_Target_default_instance_._instance.get_mutable()->rect_ = const_cast< ::protomsg::Rect*>(
-      ::protomsg::Rect::internal_default_instance());
-}
 class Target::_Internal {
  public:
   static const ::protomsg::Rect& rect(const Target* msg);
@@ -886,26 +894,29 @@
 Target::_Internal::rect(const Target* msg) {
   return *msg->rect_;
 }
-Target::Target()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
+Target::Target(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
   SharedCtor();
-  // @@protoc_insertion_point(constructor:protomsg.Target)
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:protomsg.Target)
 }
 Target::Target(const Target& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  : ::PROTOBUF_NAMESPACE_ID::Message() {
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_type().empty()) {
-    type_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.type_);
+    type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_type(), 
+      GetArenaForAllocation());
   }
   feature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_feature().empty()) {
-    feature_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.feature_);
+    feature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_feature(), 
+      GetArenaForAllocation());
   }
   attribute_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_attribute().empty()) {
-    attribute_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.attribute_);
+    attribute_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_attribute(), 
+      GetArenaForAllocation());
   }
   if (from._internal_has_rect()) {
     rect_ = new ::protomsg::Rect(*from.rect_);
@@ -919,35 +930,38 @@
 }
 
 void Target::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Target_protomsg_2eproto.base);
-  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  feature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  attribute_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(&rect_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&confidence_) -
-      reinterpret_cast<char*>(&rect_)) + sizeof(confidence_));
+type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+feature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+attribute_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
+    reinterpret_cast<char*>(&rect_) - reinterpret_cast<char*>(this)),
+    0, static_cast<size_t>(reinterpret_cast<char*>(&confidence_) -
+    reinterpret_cast<char*>(&rect_)) + sizeof(confidence_));
 }
 
 Target::~Target() {
   // @@protoc_insertion_point(destructor:protomsg.Target)
   SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 void Target::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
   type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   feature_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   attribute_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete rect_;
 }
 
+void Target::ArenaDtor(void* object) {
+  Target* _this = reinterpret_cast< Target* >(object);
+  (void)_this;
+}
+void Target::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
 void Target::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const Target& Target::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Target_protomsg_2eproto.base);
-  return *internal_default_instance();
-}
-
 
 void Target::Clear() {
 // @@protoc_insertion_point(message_clear_start:protomsg.Target)
@@ -955,17 +969,17 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  type_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  feature_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  attribute_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (GetArenaNoVirtual() == nullptr && rect_ != nullptr) {
+  type_.ClearToEmpty();
+  feature_.ClearToEmpty();
+  attribute_.ClearToEmpty();
+  if (GetArenaForAllocation() == nullptr && rect_ != nullptr) {
     delete rect_;
   }
   rect_ = nullptr;
   ::memset(&id_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&confidence_) -
       reinterpret_cast<char*>(&id_)) + sizeof(confidence_));
-  _internal_metadata_.Clear();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* Target::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -973,26 +987,27 @@
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
     switch (tag >> 3) {
       // uint64 id = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string type = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_type(), ptr, ctx, "protomsg.Target.type");
+          auto str = _internal_mutable_type();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Target.type"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // int32 confidence = 3;
       case 3:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
-          confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
+          confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1006,24 +1021,29 @@
       // bytes feature = 5;
       case 5:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_feature(), ptr, ctx);
+          auto str = _internal_mutable_feature();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // bytes attribute = 6;
       case 6:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_attribute(), ptr, ctx);
+          auto str = _internal_mutable_attribute();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       default: {
       handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
+        if ((tag == 0) || ((tag & 7) == 4)) {
+          CHK_(ptr);
           ctx->SetLastTag(tag);
           goto success;
         }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
         CHK_(ptr != nullptr);
         continue;
       }
@@ -1037,7 +1057,7 @@
 #undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* Target::InternalSerializeWithCachedSizesToArray(
+::PROTOBUF_NAMESPACE_ID::uint8* Target::_InternalSerialize(
     ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:protomsg.Target)
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -1045,12 +1065,12 @@
 
   // uint64 id = 1;
   if (this->id() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_id(), target);
   }
 
   // string type = 2;
-  if (this->type().size() > 0) {
+  if (!this->type().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_type().data(), static_cast<int>(this->_internal_type().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1061,33 +1081,33 @@
 
   // int32 confidence = 3;
   if (this->confidence() != 0) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_confidence(), target);
   }
 
   // .protomsg.Rect rect = 4;
   if (this->has_rect()) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessageToArray(
+      InternalWriteMessage(
         4, _Internal::rect(this), target, stream);
   }
 
   // bytes feature = 5;
-  if (this->feature().size() > 0) {
+  if (!this->feature().empty()) {
     target = stream->WriteBytesMaybeAliased(
         5, this->_internal_feature(), target);
   }
 
   // bytes attribute = 6;
-  if (this->attribute().size() > 0) {
+  if (!this->attribute().empty()) {
     target = stream->WriteBytesMaybeAliased(
         6, this->_internal_attribute(), target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:protomsg.Target)
   return target;
@@ -1102,21 +1122,21 @@
   (void) cached_has_bits;
 
   // string type = 2;
-  if (this->type().size() > 0) {
+  if (!this->type().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_type());
   }
 
   // bytes feature = 5;
-  if (this->feature().size() > 0) {
+  if (!this->feature().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
         this->_internal_feature());
   }
 
   // bytes attribute = 6;
-  if (this->attribute().size() > 0) {
+  if (!this->attribute().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
         this->_internal_attribute());
@@ -1170,21 +1190,18 @@
 void Target::MergeFrom(const Target& from) {
 // @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Target)
   GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (from.type().size() > 0) {
-
-    type_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.type_);
+  if (!from.type().empty()) {
+    _internal_set_type(from._internal_type());
   }
-  if (from.feature().size() > 0) {
-
-    feature_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.feature_);
+  if (!from.feature().empty()) {
+    _internal_set_feature(from._internal_feature());
   }
-  if (from.attribute().size() > 0) {
-
-    attribute_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.attribute_);
+  if (!from.attribute().empty()) {
+    _internal_set_attribute(from._internal_attribute());
   }
   if (from.has_rect()) {
     _internal_mutable_rect()->::protomsg::Rect::MergeFrom(from._internal_rect());
@@ -1217,88 +1234,106 @@
 
 void Target::InternalSwap(Target* other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  type_.Swap(&other->type_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  feature_.Swap(&other->feature_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  attribute_.Swap(&other->attribute_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(rect_, other->rect_);
-  swap(id_, other->id_);
-  swap(confidence_, other->confidence_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &type_, GetArenaForAllocation(),
+      &other->type_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &feature_, GetArenaForAllocation(),
+      &other->feature_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &attribute_, GetArenaForAllocation(),
+      &other->attribute_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(Target, confidence_)
+      + sizeof(Target::confidence_)
+      - PROTOBUF_FIELD_OFFSET(Target, rect_)>(
+          reinterpret_cast<char*>(&rect_),
+          reinterpret_cast<char*>(&other->rect_));
 }
 
 ::PROTOBUF_NAMESPACE_ID::Metadata Target::GetMetadata() const {
-  return GetMetadataStatic();
+  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
+      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
+      file_level_metadata_protomsg_2eproto[2]);
 }
-
 
 // ===================================================================
 
-void SDKMessage::InitAsDefaultInstance() {
-}
 class SDKMessage::_Internal {
  public:
 };
 
-SDKMessage::SDKMessage()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
+SDKMessage::SDKMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
+  target_(arena) {
   SharedCtor();
-  // @@protoc_insertion_point(constructor:protomsg.SDKMessage)
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:protomsg.SDKMessage)
 }
 SDKMessage::SDKMessage(const SDKMessage& from)
   : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr),
       target_(from.target_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   sdkid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_sdkid().empty()) {
-    sdkid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkid_);
+    sdkid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdkid(), 
+      GetArenaForAllocation());
   }
   sdktype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_sdktype().empty()) {
-    sdktype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdktype_);
+    sdktype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdktype(), 
+      GetArenaForAllocation());
   }
   sdkname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_sdkname().empty()) {
-    sdkname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkname_);
+    sdkname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdkname(), 
+      GetArenaForAllocation());
   }
   timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_timestamp().empty()) {
-    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
+    timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_timestamp(), 
+      GetArenaForAllocation());
   }
   // @@protoc_insertion_point(copy_constructor:protomsg.SDKMessage)
 }
 
 void SDKMessage::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SDKMessage_protomsg_2eproto.base);
-  sdkid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  sdktype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  sdkname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+sdkid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+sdktype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+sdkname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 }
 
 SDKMessage::~SDKMessage() {
   // @@protoc_insertion_point(destructor:protomsg.SDKMessage)
   SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 void SDKMessage::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
   sdkid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   sdktype_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   sdkname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   timestamp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 }
 
+void SDKMessage::ArenaDtor(void* object) {
+  SDKMessage* _this = reinterpret_cast< SDKMessage* >(object);
+  (void)_this;
+}
+void SDKMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
 void SDKMessage::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const SDKMessage& SDKMessage::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SDKMessage_protomsg_2eproto.base);
-  return *internal_default_instance();
-}
-
 
 void SDKMessage::Clear() {
 // @@protoc_insertion_point(message_clear_start:protomsg.SDKMessage)
@@ -1307,11 +1342,11 @@
   (void) cached_has_bits;
 
   target_.Clear();
-  sdkid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  sdktype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  sdkname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
+  sdkid_.ClearToEmpty();
+  sdktype_.ClearToEmpty();
+  sdkname_.ClearToEmpty();
+  timestamp_.ClearToEmpty();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* SDKMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -1319,26 +1354,31 @@
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
     switch (tag >> 3) {
       // string sdkID = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdkid(), ptr, ctx, "protomsg.SDKMessage.sdkID");
+          auto str = _internal_mutable_sdkid();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkID"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string sdkType = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdktype(), ptr, ctx, "protomsg.SDKMessage.sdkType");
+          auto str = _internal_mutable_sdktype();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkType"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string sdkName = 3;
       case 3:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdkname(), ptr, ctx, "protomsg.SDKMessage.sdkName");
+          auto str = _internal_mutable_sdkname();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkName"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1357,17 +1397,22 @@
       // string timestamp = 5;
       case 5:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_timestamp(), ptr, ctx, "protomsg.SDKMessage.timestamp");
+          auto str = _internal_mutable_timestamp();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.timestamp"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       default: {
       handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
+        if ((tag == 0) || ((tag & 7) == 4)) {
+          CHK_(ptr);
           ctx->SetLastTag(tag);
           goto success;
         }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
         CHK_(ptr != nullptr);
         continue;
       }
@@ -1381,14 +1426,14 @@
 #undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* SDKMessage::InternalSerializeWithCachedSizesToArray(
+::PROTOBUF_NAMESPACE_ID::uint8* SDKMessage::_InternalSerialize(
     ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:protomsg.SDKMessage)
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
   // string sdkID = 1;
-  if (this->sdkid().size() > 0) {
+  if (!this->sdkid().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_sdkid().data(), static_cast<int>(this->_internal_sdkid().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1398,7 +1443,7 @@
   }
 
   // string sdkType = 2;
-  if (this->sdktype().size() > 0) {
+  if (!this->sdktype().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_sdktype().data(), static_cast<int>(this->_internal_sdktype().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1408,7 +1453,7 @@
   }
 
   // string sdkName = 3;
-  if (this->sdkname().size() > 0) {
+  if (!this->sdkname().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_sdkname().data(), static_cast<int>(this->_internal_sdkname().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1420,13 +1465,13 @@
   // repeated .protomsg.Target target = 4;
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->_internal_target_size()); i < n; i++) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessageToArray(4, this->_internal_target(i), target, stream);
+      InternalWriteMessage(4, this->_internal_target(i), target, stream);
   }
 
   // string timestamp = 5;
-  if (this->timestamp().size() > 0) {
+  if (!this->timestamp().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_timestamp().data(), static_cast<int>(this->_internal_timestamp().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1437,7 +1482,7 @@
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:protomsg.SDKMessage)
   return target;
@@ -1459,28 +1504,28 @@
   }
 
   // string sdkID = 1;
-  if (this->sdkid().size() > 0) {
+  if (!this->sdkid().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_sdkid());
   }
 
   // string sdkType = 2;
-  if (this->sdktype().size() > 0) {
+  if (!this->sdktype().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_sdktype());
   }
 
   // string sdkName = 3;
-  if (this->sdkname().size() > 0) {
+  if (!this->sdkname().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_sdkname());
   }
 
   // string timestamp = 5;
-  if (this->timestamp().size() > 0) {
+  if (!this->timestamp().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_timestamp());
@@ -1513,26 +1558,22 @@
 void SDKMessage::MergeFrom(const SDKMessage& from) {
 // @@protoc_insertion_point(class_specific_merge_from_start:protomsg.SDKMessage)
   GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
   target_.MergeFrom(from.target_);
-  if (from.sdkid().size() > 0) {
-
-    sdkid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkid_);
+  if (!from.sdkid().empty()) {
+    _internal_set_sdkid(from._internal_sdkid());
   }
-  if (from.sdktype().size() > 0) {
-
-    sdktype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdktype_);
+  if (!from.sdktype().empty()) {
+    _internal_set_sdktype(from._internal_sdktype());
   }
-  if (from.sdkname().size() > 0) {
-
-    sdkname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkname_);
+  if (!from.sdkname().empty()) {
+    _internal_set_sdkname(from._internal_sdkname());
   }
-  if (from.timestamp().size() > 0) {
-
-    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
+  if (!from.timestamp().empty()) {
+    _internal_set_timestamp(from._internal_timestamp());
   }
 }
 
@@ -1556,76 +1597,92 @@
 
 void SDKMessage::InternalSwap(SDKMessage* other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   target_.InternalSwap(&other->target_);
-  sdkid_.Swap(&other->sdkid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  sdktype_.Swap(&other->sdktype_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  sdkname_.Swap(&other->sdkname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  timestamp_.Swap(&other->timestamp_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &sdkid_, GetArenaForAllocation(),
+      &other->sdkid_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &sdktype_, GetArenaForAllocation(),
+      &other->sdktype_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &sdkname_, GetArenaForAllocation(),
+      &other->sdkname_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &timestamp_, GetArenaForAllocation(),
+      &other->timestamp_, other->GetArenaForAllocation()
+  );
 }
 
 ::PROTOBUF_NAMESPACE_ID::Metadata SDKMessage::GetMetadata() const {
-  return GetMetadataStatic();
+  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
+      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
+      file_level_metadata_protomsg_2eproto[3]);
 }
-
 
 // ===================================================================
 
-void RuleMessage::InitAsDefaultInstance() {
-}
 class RuleMessage::_Internal {
  public:
 };
 
-RuleMessage::RuleMessage()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
+RuleMessage::RuleMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
+  message_(arena) {
   SharedCtor();
-  // @@protoc_insertion_point(constructor:protomsg.RuleMessage)
+  RegisterArenaDtor(arena);
+  // @@protoc_insertion_point(arena_constructor:protomsg.RuleMessage)
 }
 RuleMessage::RuleMessage(const RuleMessage& from)
   : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr),
       message_(from.message_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   datatype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_datatype().empty()) {
-    datatype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.datatype_);
+    datatype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_datatype(), 
+      GetArenaForAllocation());
   }
   handletrack_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   if (!from._internal_handletrack().empty()) {
-    handletrack_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.handletrack_);
+    handletrack_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_handletrack(), 
+      GetArenaForAllocation());
   }
   // @@protoc_insertion_point(copy_constructor:protomsg.RuleMessage)
 }
 
 void RuleMessage::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RuleMessage_protomsg_2eproto.base);
-  datatype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  handletrack_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+datatype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+handletrack_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 }
 
 RuleMessage::~RuleMessage() {
   // @@protoc_insertion_point(destructor:protomsg.RuleMessage)
   SharedDtor();
+  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 void RuleMessage::SharedDtor() {
+  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
   datatype_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
   handletrack_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
 }
 
+void RuleMessage::ArenaDtor(void* object) {
+  RuleMessage* _this = reinterpret_cast< RuleMessage* >(object);
+  (void)_this;
+}
+void RuleMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
+}
 void RuleMessage::SetCachedSize(int size) const {
   _cached_size_.Set(size);
 }
-const RuleMessage& RuleMessage::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RuleMessage_protomsg_2eproto.base);
-  return *internal_default_instance();
-}
-
 
 void RuleMessage::Clear() {
 // @@protoc_insertion_point(message_clear_start:protomsg.RuleMessage)
@@ -1634,9 +1691,9 @@
   (void) cached_has_bits;
 
   message_.Clear();
-  datatype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  handletrack_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
+  datatype_.ClearToEmpty();
+  handletrack_.ClearToEmpty();
+  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
 }
 
 const char* RuleMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -1644,19 +1701,22 @@
   while (!ctx->Done(&ptr)) {
     ::PROTOBUF_NAMESPACE_ID::uint32 tag;
     ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
     switch (tag >> 3) {
       // string dataType = 1;
       case 1:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_datatype(), ptr, ctx, "protomsg.RuleMessage.dataType");
+          auto str = _internal_mutable_datatype();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.RuleMessage.dataType"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
       // string handleTrack = 2;
       case 2:
         if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_handletrack(), ptr, ctx, "protomsg.RuleMessage.handleTrack");
+          auto str = _internal_mutable_handletrack();
+          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
+          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.RuleMessage.handleTrack"));
           CHK_(ptr);
         } else goto handle_unusual;
         continue;
@@ -1674,11 +1734,14 @@
         continue;
       default: {
       handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
+        if ((tag == 0) || ((tag & 7) == 4)) {
+          CHK_(ptr);
           ctx->SetLastTag(tag);
           goto success;
         }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
+        ptr = UnknownFieldParse(tag,
+            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
+            ptr, ctx);
         CHK_(ptr != nullptr);
         continue;
       }
@@ -1692,14 +1755,14 @@
 #undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* RuleMessage::InternalSerializeWithCachedSizesToArray(
+::PROTOBUF_NAMESPACE_ID::uint8* RuleMessage::_InternalSerialize(
     ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:protomsg.RuleMessage)
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
   // string dataType = 1;
-  if (this->datatype().size() > 0) {
+  if (!this->datatype().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_datatype().data(), static_cast<int>(this->_internal_datatype().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1709,7 +1772,7 @@
   }
 
   // string handleTrack = 2;
-  if (this->handletrack().size() > 0) {
+  if (!this->handletrack().empty()) {
     ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
       this->_internal_handletrack().data(), static_cast<int>(this->_internal_handletrack().length()),
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1721,14 +1784,14 @@
   // repeated .protomsg.SDKMessage message = 3;
   for (unsigned int i = 0,
       n = static_cast<unsigned int>(this->_internal_message_size()); i < n; i++) {
-    stream->EnsureSpace(&target);
+    target = stream->EnsureSpace(target);
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessageToArray(3, this->_internal_message(i), target, stream);
+      InternalWriteMessage(3, this->_internal_message(i), target, stream);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
     target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:protomsg.RuleMessage)
   return target;
@@ -1750,14 +1813,14 @@
   }
 
   // string dataType = 1;
-  if (this->datatype().size() > 0) {
+  if (!this->datatype().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_datatype());
   }
 
   // string handleTrack = 2;
-  if (this->handletrack().size() > 0) {
+  if (!this->handletrack().empty()) {
     total_size += 1 +
       ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
         this->_internal_handletrack());
@@ -1790,18 +1853,16 @@
 void RuleMessage::MergeFrom(const RuleMessage& from) {
 // @@protoc_insertion_point(class_specific_merge_from_start:protomsg.RuleMessage)
   GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
   ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
   message_.MergeFrom(from.message_);
-  if (from.datatype().size() > 0) {
-
-    datatype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.datatype_);
+  if (!from.datatype().empty()) {
+    _internal_set_datatype(from._internal_datatype());
   }
-  if (from.handletrack().size() > 0) {
-
-    handletrack_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.handletrack_);
+  if (!from.handletrack().empty()) {
+    _internal_set_handletrack(from._internal_handletrack());
   }
 }
 
@@ -1825,36 +1886,43 @@
 
 void RuleMessage::InternalSwap(RuleMessage* other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
   message_.InternalSwap(&other->message_);
-  datatype_.Swap(&other->datatype_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  handletrack_.Swap(&other->handletrack_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &datatype_, GetArenaForAllocation(),
+      &other->datatype_, other->GetArenaForAllocation()
+  );
+  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
+      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
+      &handletrack_, GetArenaForAllocation(),
+      &other->handletrack_, other->GetArenaForAllocation()
+  );
 }
 
 ::PROTOBUF_NAMESPACE_ID::Metadata RuleMessage::GetMetadata() const {
-  return GetMetadataStatic();
+  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
+      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
+      file_level_metadata_protomsg_2eproto[4]);
 }
-
 
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace protomsg
 PROTOBUF_NAMESPACE_OPEN
 template<> PROTOBUF_NOINLINE ::protomsg::Image* Arena::CreateMaybeMessage< ::protomsg::Image >(Arena* arena) {
-  return Arena::CreateInternal< ::protomsg::Image >(arena);
+  return Arena::CreateMessageInternal< ::protomsg::Image >(arena);
 }
 template<> PROTOBUF_NOINLINE ::protomsg::Rect* Arena::CreateMaybeMessage< ::protomsg::Rect >(Arena* arena) {
-  return Arena::CreateInternal< ::protomsg::Rect >(arena);
+  return Arena::CreateMessageInternal< ::protomsg::Rect >(arena);
 }
 template<> PROTOBUF_NOINLINE ::protomsg::Target* Arena::CreateMaybeMessage< ::protomsg::Target >(Arena* arena) {
-  return Arena::CreateInternal< ::protomsg::Target >(arena);
+  return Arena::CreateMessageInternal< ::protomsg::Target >(arena);
 }
 template<> PROTOBUF_NOINLINE ::protomsg::SDKMessage* Arena::CreateMaybeMessage< ::protomsg::SDKMessage >(Arena* arena) {
-  return Arena::CreateInternal< ::protomsg::SDKMessage >(arena);
+  return Arena::CreateMessageInternal< ::protomsg::SDKMessage >(arena);
 }
 template<> PROTOBUF_NOINLINE ::protomsg::RuleMessage* Arena::CreateMaybeMessage< ::protomsg::RuleMessage >(Arena* arena) {
-  return Arena::CreateInternal< ::protomsg::RuleMessage >(arena);
+  return Arena::CreateMessageInternal< ::protomsg::RuleMessage >(arena);
 }
 PROTOBUF_NAMESPACE_CLOSE
 
diff --git a/lib/utils/protomsg.pb.h b/lib/utils/protomsg.pb.h
index 64756a0..5d4d3f2 100644
--- a/lib/utils/protomsg.pb.h
+++ b/lib/utils/protomsg.pb.h
@@ -8,12 +8,12 @@
 #include <string>
 
 #include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3010000
+#if PROTOBUF_VERSION < 3017000
 #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 3010000 < PROTOBUF_MIN_PROTOC_VERSION
+#if 3017000 < 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.
@@ -25,8 +25,7 @@
 #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/metadata_lite.h>
 #include <google/protobuf/generated_message_reflection.h>
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>  // IWYU pragma: export
@@ -45,7 +44,7 @@
 struct TableStruct_protomsg_2eproto {
   static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
+  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
   static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[5]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
@@ -56,19 +55,19 @@
 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_protomsg_2eproto;
 namespace protomsg {
 class Image;
-class ImageDefaultTypeInternal;
+struct ImageDefaultTypeInternal;
 extern ImageDefaultTypeInternal _Image_default_instance_;
 class Rect;
-class RectDefaultTypeInternal;
+struct RectDefaultTypeInternal;
 extern RectDefaultTypeInternal _Rect_default_instance_;
 class RuleMessage;
-class RuleMessageDefaultTypeInternal;
+struct RuleMessageDefaultTypeInternal;
 extern RuleMessageDefaultTypeInternal _RuleMessage_default_instance_;
 class SDKMessage;
-class SDKMessageDefaultTypeInternal;
+struct SDKMessageDefaultTypeInternal;
 extern SDKMessageDefaultTypeInternal _SDKMessage_default_instance_;
 class Target;
-class TargetDefaultTypeInternal;
+struct TargetDefaultTypeInternal;
 extern TargetDefaultTypeInternal _Target_default_instance_;
 }  // namespace protomsg
 PROTOBUF_NAMESPACE_OPEN
@@ -82,11 +81,12 @@
 
 // ===================================================================
 
-class Image :
+class Image final :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protomsg.Image) */ {
  public:
-  Image();
-  virtual ~Image();
+  inline Image() : Image(nullptr) {}
+  ~Image() override;
+  explicit constexpr Image(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
   Image(const Image& from);
   Image(Image&& from) noexcept
@@ -99,8 +99,9 @@
     return *this;
   }
   inline Image& operator=(Image&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
@@ -111,14 +112,14 @@
     return GetDescriptor();
   }
   static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+    return default_instance().GetMetadata().descriptor;
   }
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+    return default_instance().GetMetadata().reflection;
   }
-  static const Image& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static const Image& default_instance() {
+    return *internal_default_instance();
+  }
   static inline const Image* internal_default_instance() {
     return reinterpret_cast<const Image*>(
                &_Image_default_instance_);
@@ -131,13 +132,22 @@
   }
   inline void Swap(Image* other) {
     if (other == this) return;
+    if (GetOwningArena() == other->GetOwningArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Image* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
   inline Image* New() const final {
-    return CreateMaybeMessage<Image>(nullptr);
+    return new Image();
   }
 
   Image* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
@@ -152,36 +162,27 @@
 
   size_t ByteSizeLong() const final;
   const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
       ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
   int GetCachedSize() const final { return _cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
+  void SharedCtor();
+  void SharedDtor();
   void SetCachedSize(int size) const final;
   void InternalSwap(Image* other);
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
     return "protomsg.Image";
   }
+  protected:
+  explicit Image(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_protomsg_2eproto);
-    return ::descriptor_table_protomsg_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
-
-  public:
 
   // nested types ----------------------------------------------------
 
@@ -199,64 +200,56 @@
   // bytes data = 3;
   void clear_data();
   const std::string& data() const;
-  void set_data(const std::string& value);
-  void set_data(std::string&& value);
-  void set_data(const char* value);
-  void set_data(const void* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_data(ArgT0&& arg0, ArgT... args);
   std::string* mutable_data();
-  std::string* release_data();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_data();
   void set_allocated_data(std::string* data);
   private:
   const std::string& _internal_data() const;
-  void _internal_set_data(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_data(const std::string& value);
   std::string* _internal_mutable_data();
   public:
 
   // string timestamp = 4;
   void clear_timestamp();
   const std::string& timestamp() const;
-  void set_timestamp(const std::string& value);
-  void set_timestamp(std::string&& value);
-  void set_timestamp(const char* value);
-  void set_timestamp(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_timestamp(ArgT0&& arg0, ArgT... args);
   std::string* mutable_timestamp();
-  std::string* release_timestamp();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_timestamp();
   void set_allocated_timestamp(std::string* timestamp);
   private:
   const std::string& _internal_timestamp() const;
-  void _internal_set_timestamp(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_timestamp(const std::string& value);
   std::string* _internal_mutable_timestamp();
   public:
 
   // string cid = 6;
   void clear_cid();
   const std::string& cid() const;
-  void set_cid(const std::string& value);
-  void set_cid(std::string&& value);
-  void set_cid(const char* value);
-  void set_cid(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_cid(ArgT0&& arg0, ArgT... args);
   std::string* mutable_cid();
-  std::string* release_cid();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_cid();
   void set_allocated_cid(std::string* cid);
   private:
   const std::string& _internal_cid() const;
-  void _internal_set_cid(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_cid(const std::string& value);
   std::string* _internal_mutable_cid();
   public:
 
   // string cname = 7;
   void clear_cname();
   const std::string& cname() const;
-  void set_cname(const std::string& value);
-  void set_cname(std::string&& value);
-  void set_cname(const char* value);
-  void set_cname(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_cname(ArgT0&& arg0, ArgT... args);
   std::string* mutable_cname();
-  std::string* release_cname();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_cname();
   void set_allocated_cname(std::string* cname);
   private:
   const std::string& _internal_cname() const;
-  void _internal_set_cname(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_cname(const std::string& value);
   std::string* _internal_mutable_cname();
   public:
 
@@ -291,7 +284,9 @@
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr timestamp_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr cid_;
@@ -304,11 +299,12 @@
 };
 // -------------------------------------------------------------------
 
-class Rect :
+class Rect final :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protomsg.Rect) */ {
  public:
-  Rect();
-  virtual ~Rect();
+  inline Rect() : Rect(nullptr) {}
+  ~Rect() override;
+  explicit constexpr Rect(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
   Rect(const Rect& from);
   Rect(Rect&& from) noexcept
@@ -321,8 +317,9 @@
     return *this;
   }
   inline Rect& operator=(Rect&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
@@ -333,14 +330,14 @@
     return GetDescriptor();
   }
   static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+    return default_instance().GetMetadata().descriptor;
   }
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+    return default_instance().GetMetadata().reflection;
   }
-  static const Rect& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static const Rect& default_instance() {
+    return *internal_default_instance();
+  }
   static inline const Rect* internal_default_instance() {
     return reinterpret_cast<const Rect*>(
                &_Rect_default_instance_);
@@ -353,13 +350,22 @@
   }
   inline void Swap(Rect* other) {
     if (other == this) return;
+    if (GetOwningArena() == other->GetOwningArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Rect* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
   inline Rect* New() const final {
-    return CreateMaybeMessage<Rect>(nullptr);
+    return new Rect();
   }
 
   Rect* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
@@ -374,36 +380,27 @@
 
   size_t ByteSizeLong() const final;
   const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
       ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
   int GetCachedSize() const final { return _cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
+  void SharedCtor();
+  void SharedDtor();
   void SetCachedSize(int size) const final;
   void InternalSwap(Rect* other);
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
     return "protomsg.Rect";
   }
+  protected:
+  explicit Rect(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_protomsg_2eproto);
-    return ::descriptor_table_protomsg_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
-
-  public:
 
   // nested types ----------------------------------------------------
 
@@ -455,7 +452,9 @@
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
   ::PROTOBUF_NAMESPACE_ID::int32 left_;
   ::PROTOBUF_NAMESPACE_ID::int32 top_;
   ::PROTOBUF_NAMESPACE_ID::int32 right_;
@@ -465,11 +464,12 @@
 };
 // -------------------------------------------------------------------
 
-class Target :
+class Target final :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protomsg.Target) */ {
  public:
-  Target();
-  virtual ~Target();
+  inline Target() : Target(nullptr) {}
+  ~Target() override;
+  explicit constexpr Target(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
   Target(const Target& from);
   Target(Target&& from) noexcept
@@ -482,8 +482,9 @@
     return *this;
   }
   inline Target& operator=(Target&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
@@ -494,14 +495,14 @@
     return GetDescriptor();
   }
   static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+    return default_instance().GetMetadata().descriptor;
   }
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+    return default_instance().GetMetadata().reflection;
   }
-  static const Target& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static const Target& default_instance() {
+    return *internal_default_instance();
+  }
   static inline const Target* internal_default_instance() {
     return reinterpret_cast<const Target*>(
                &_Target_default_instance_);
@@ -514,13 +515,22 @@
   }
   inline void Swap(Target* other) {
     if (other == this) return;
+    if (GetOwningArena() == other->GetOwningArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Target* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
   inline Target* New() const final {
-    return CreateMaybeMessage<Target>(nullptr);
+    return new Target();
   }
 
   Target* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
@@ -535,36 +545,27 @@
 
   size_t ByteSizeLong() const final;
   const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
       ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
   int GetCachedSize() const final { return _cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
+  void SharedCtor();
+  void SharedDtor();
   void SetCachedSize(int size) const final;
   void InternalSwap(Target* other);
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
     return "protomsg.Target";
   }
+  protected:
+  explicit Target(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_protomsg_2eproto);
-    return ::descriptor_table_protomsg_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
-
-  public:
 
   // nested types ----------------------------------------------------
 
@@ -581,48 +582,42 @@
   // string type = 2;
   void clear_type();
   const std::string& type() const;
-  void set_type(const std::string& value);
-  void set_type(std::string&& value);
-  void set_type(const char* value);
-  void set_type(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_type(ArgT0&& arg0, ArgT... args);
   std::string* mutable_type();
-  std::string* release_type();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_type();
   void set_allocated_type(std::string* type);
   private:
   const std::string& _internal_type() const;
-  void _internal_set_type(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_type(const std::string& value);
   std::string* _internal_mutable_type();
   public:
 
   // bytes feature = 5;
   void clear_feature();
   const std::string& feature() const;
-  void set_feature(const std::string& value);
-  void set_feature(std::string&& value);
-  void set_feature(const char* value);
-  void set_feature(const void* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_feature(ArgT0&& arg0, ArgT... args);
   std::string* mutable_feature();
-  std::string* release_feature();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_feature();
   void set_allocated_feature(std::string* feature);
   private:
   const std::string& _internal_feature() const;
-  void _internal_set_feature(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_feature(const std::string& value);
   std::string* _internal_mutable_feature();
   public:
 
   // bytes attribute = 6;
   void clear_attribute();
   const std::string& attribute() const;
-  void set_attribute(const std::string& value);
-  void set_attribute(std::string&& value);
-  void set_attribute(const char* value);
-  void set_attribute(const void* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_attribute(ArgT0&& arg0, ArgT... args);
   std::string* mutable_attribute();
-  std::string* release_attribute();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_attribute();
   void set_allocated_attribute(std::string* attribute);
   private:
   const std::string& _internal_attribute() const;
-  void _internal_set_attribute(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_attribute(const std::string& value);
   std::string* _internal_mutable_attribute();
   public:
 
@@ -633,13 +628,16 @@
   public:
   void clear_rect();
   const ::protomsg::Rect& rect() const;
-  ::protomsg::Rect* release_rect();
+  PROTOBUF_FUTURE_MUST_USE_RESULT ::protomsg::Rect* release_rect();
   ::protomsg::Rect* mutable_rect();
   void set_allocated_rect(::protomsg::Rect* rect);
   private:
   const ::protomsg::Rect& _internal_rect() const;
   ::protomsg::Rect* _internal_mutable_rect();
   public:
+  void unsafe_arena_set_allocated_rect(
+      ::protomsg::Rect* rect);
+  ::protomsg::Rect* unsafe_arena_release_rect();
 
   // uint64 id = 1;
   void clear_id();
@@ -663,7 +661,9 @@
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr type_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr feature_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr attribute_;
@@ -675,11 +675,12 @@
 };
 // -------------------------------------------------------------------
 
-class SDKMessage :
+class SDKMessage final :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protomsg.SDKMessage) */ {
  public:
-  SDKMessage();
-  virtual ~SDKMessage();
+  inline SDKMessage() : SDKMessage(nullptr) {}
+  ~SDKMessage() override;
+  explicit constexpr SDKMessage(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
   SDKMessage(const SDKMessage& from);
   SDKMessage(SDKMessage&& from) noexcept
@@ -692,8 +693,9 @@
     return *this;
   }
   inline SDKMessage& operator=(SDKMessage&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
@@ -704,14 +706,14 @@
     return GetDescriptor();
   }
   static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+    return default_instance().GetMetadata().descriptor;
   }
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+    return default_instance().GetMetadata().reflection;
   }
-  static const SDKMessage& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static const SDKMessage& default_instance() {
+    return *internal_default_instance();
+  }
   static inline const SDKMessage* internal_default_instance() {
     return reinterpret_cast<const SDKMessage*>(
                &_SDKMessage_default_instance_);
@@ -724,13 +726,22 @@
   }
   inline void Swap(SDKMessage* other) {
     if (other == this) return;
+    if (GetOwningArena() == other->GetOwningArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(SDKMessage* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
   inline SDKMessage* New() const final {
-    return CreateMaybeMessage<SDKMessage>(nullptr);
+    return new SDKMessage();
   }
 
   SDKMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
@@ -745,36 +756,27 @@
 
   size_t ByteSizeLong() const final;
   const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
       ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
   int GetCachedSize() const final { return _cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
+  void SharedCtor();
+  void SharedDtor();
   void SetCachedSize(int size) const final;
   void InternalSwap(SDKMessage* other);
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
     return "protomsg.SDKMessage";
   }
+  protected:
+  explicit SDKMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_protomsg_2eproto);
-    return ::descriptor_table_protomsg_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
-
-  public:
 
   // nested types ----------------------------------------------------
 
@@ -808,64 +810,56 @@
   // string sdkID = 1;
   void clear_sdkid();
   const std::string& sdkid() const;
-  void set_sdkid(const std::string& value);
-  void set_sdkid(std::string&& value);
-  void set_sdkid(const char* value);
-  void set_sdkid(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_sdkid(ArgT0&& arg0, ArgT... args);
   std::string* mutable_sdkid();
-  std::string* release_sdkid();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_sdkid();
   void set_allocated_sdkid(std::string* sdkid);
   private:
   const std::string& _internal_sdkid() const;
-  void _internal_set_sdkid(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_sdkid(const std::string& value);
   std::string* _internal_mutable_sdkid();
   public:
 
   // string sdkType = 2;
   void clear_sdktype();
   const std::string& sdktype() const;
-  void set_sdktype(const std::string& value);
-  void set_sdktype(std::string&& value);
-  void set_sdktype(const char* value);
-  void set_sdktype(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_sdktype(ArgT0&& arg0, ArgT... args);
   std::string* mutable_sdktype();
-  std::string* release_sdktype();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_sdktype();
   void set_allocated_sdktype(std::string* sdktype);
   private:
   const std::string& _internal_sdktype() const;
-  void _internal_set_sdktype(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_sdktype(const std::string& value);
   std::string* _internal_mutable_sdktype();
   public:
 
   // string sdkName = 3;
   void clear_sdkname();
   const std::string& sdkname() const;
-  void set_sdkname(const std::string& value);
-  void set_sdkname(std::string&& value);
-  void set_sdkname(const char* value);
-  void set_sdkname(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_sdkname(ArgT0&& arg0, ArgT... args);
   std::string* mutable_sdkname();
-  std::string* release_sdkname();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_sdkname();
   void set_allocated_sdkname(std::string* sdkname);
   private:
   const std::string& _internal_sdkname() const;
-  void _internal_set_sdkname(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_sdkname(const std::string& value);
   std::string* _internal_mutable_sdkname();
   public:
 
   // string timestamp = 5;
   void clear_timestamp();
   const std::string& timestamp() const;
-  void set_timestamp(const std::string& value);
-  void set_timestamp(std::string&& value);
-  void set_timestamp(const char* value);
-  void set_timestamp(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_timestamp(ArgT0&& arg0, ArgT... args);
   std::string* mutable_timestamp();
-  std::string* release_timestamp();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_timestamp();
   void set_allocated_timestamp(std::string* timestamp);
   private:
   const std::string& _internal_timestamp() const;
-  void _internal_set_timestamp(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_timestamp(const std::string& value);
   std::string* _internal_mutable_timestamp();
   public:
 
@@ -873,7 +867,9 @@
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
   ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::protomsg::Target > target_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sdkid_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr sdktype_;
@@ -884,11 +880,12 @@
 };
 // -------------------------------------------------------------------
 
-class RuleMessage :
+class RuleMessage final :
     public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protomsg.RuleMessage) */ {
  public:
-  RuleMessage();
-  virtual ~RuleMessage();
+  inline RuleMessage() : RuleMessage(nullptr) {}
+  ~RuleMessage() override;
+  explicit constexpr RuleMessage(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
 
   RuleMessage(const RuleMessage& from);
   RuleMessage(RuleMessage&& from) noexcept
@@ -901,8 +898,9 @@
     return *this;
   }
   inline RuleMessage& operator=(RuleMessage&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetOwningArena() == from.GetOwningArena()) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
@@ -913,14 +911,14 @@
     return GetDescriptor();
   }
   static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+    return default_instance().GetMetadata().descriptor;
   }
   static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+    return default_instance().GetMetadata().reflection;
   }
-  static const RuleMessage& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static const RuleMessage& default_instance() {
+    return *internal_default_instance();
+  }
   static inline const RuleMessage* internal_default_instance() {
     return reinterpret_cast<const RuleMessage*>(
                &_RuleMessage_default_instance_);
@@ -933,13 +931,22 @@
   }
   inline void Swap(RuleMessage* other) {
     if (other == this) return;
+    if (GetOwningArena() == other->GetOwningArena()) {
+      InternalSwap(other);
+    } else {
+      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(RuleMessage* other) {
+    if (other == this) return;
+    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
   inline RuleMessage* New() const final {
-    return CreateMaybeMessage<RuleMessage>(nullptr);
+    return new RuleMessage();
   }
 
   RuleMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
@@ -954,36 +961,27 @@
 
   size_t ByteSizeLong() const final;
   const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
+  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
       ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
   int GetCachedSize() const final { return _cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
+  void SharedCtor();
+  void SharedDtor();
   void SetCachedSize(int size) const final;
   void InternalSwap(RuleMessage* other);
   friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
   static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
     return "protomsg.RuleMessage";
   }
+  protected:
+  explicit RuleMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
+  static void ArenaDtor(void* object);
+  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
   public:
 
   ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_protomsg_2eproto);
-    return ::descriptor_table_protomsg_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
-
-  public:
 
   // nested types ----------------------------------------------------
 
@@ -1015,32 +1013,28 @@
   // string dataType = 1;
   void clear_datatype();
   const std::string& datatype() const;
-  void set_datatype(const std::string& value);
-  void set_datatype(std::string&& value);
-  void set_datatype(const char* value);
-  void set_datatype(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_datatype(ArgT0&& arg0, ArgT... args);
   std::string* mutable_datatype();
-  std::string* release_datatype();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_datatype();
   void set_allocated_datatype(std::string* datatype);
   private:
   const std::string& _internal_datatype() const;
-  void _internal_set_datatype(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_datatype(const std::string& value);
   std::string* _internal_mutable_datatype();
   public:
 
   // string handleTrack = 2;
   void clear_handletrack();
   const std::string& handletrack() const;
-  void set_handletrack(const std::string& value);
-  void set_handletrack(std::string&& value);
-  void set_handletrack(const char* value);
-  void set_handletrack(const char* value, size_t size);
+  template <typename ArgT0 = const std::string&, typename... ArgT>
+  void set_handletrack(ArgT0&& arg0, ArgT... args);
   std::string* mutable_handletrack();
-  std::string* release_handletrack();
+  PROTOBUF_FUTURE_MUST_USE_RESULT std::string* release_handletrack();
   void set_allocated_handletrack(std::string* handletrack);
   private:
   const std::string& _internal_handletrack() const;
-  void _internal_set_handletrack(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_handletrack(const std::string& value);
   std::string* _internal_mutable_handletrack();
   public:
 
@@ -1048,7 +1042,9 @@
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
+  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+  typedef void InternalArenaConstructable_;
+  typedef void DestructorSkippable_;
   ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::protomsg::SDKMessage > message_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr datatype_;
   ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr handletrack_;
@@ -1108,14 +1104,17 @@
 
 // bytes data = 3;
 inline void Image::clear_data() {
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  data_.ClearToEmpty();
 }
 inline const std::string& Image::data() const {
   // @@protoc_insertion_point(field_get:protomsg.Image.data)
   return _internal_data();
 }
-inline void Image::set_data(const std::string& value) {
-  _internal_set_data(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Image::set_data(ArgT0&& arg0, ArgT... args) {
+ 
+ data_.SetBytes(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Image.data)
 }
 inline std::string* Image::mutable_data() {
@@ -1123,38 +1122,19 @@
   return _internal_mutable_data();
 }
 inline const std::string& Image::_internal_data() const {
-  return data_.GetNoArena();
+  return data_.Get();
 }
 inline void Image::_internal_set_data(const std::string& value) {
   
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Image::set_data(std::string&& value) {
-  
-  data_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Image.data)
-}
-inline void Image::set_data(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Image.data)
-}
-inline void Image::set_data(const void* value, size_t size) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Image.data)
+  data_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Image::_internal_mutable_data() {
   
-  return data_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return data_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Image::release_data() {
   // @@protoc_insertion_point(field_release:protomsg.Image.data)
-  
-  return data_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Image::set_allocated_data(std::string* data) {
   if (data != nullptr) {
@@ -1162,20 +1142,24 @@
   } else {
     
   }
-  data_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data);
+  data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Image.data)
 }
 
 // string timestamp = 4;
 inline void Image::clear_timestamp() {
-  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  timestamp_.ClearToEmpty();
 }
 inline const std::string& Image::timestamp() const {
   // @@protoc_insertion_point(field_get:protomsg.Image.timestamp)
   return _internal_timestamp();
 }
-inline void Image::set_timestamp(const std::string& value) {
-  _internal_set_timestamp(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Image::set_timestamp(ArgT0&& arg0, ArgT... args) {
+ 
+ timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Image.timestamp)
 }
 inline std::string* Image::mutable_timestamp() {
@@ -1183,38 +1167,19 @@
   return _internal_mutable_timestamp();
 }
 inline const std::string& Image::_internal_timestamp() const {
-  return timestamp_.GetNoArena();
+  return timestamp_.Get();
 }
 inline void Image::_internal_set_timestamp(const std::string& value) {
   
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Image::set_timestamp(std::string&& value) {
-  
-  timestamp_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Image.timestamp)
-}
-inline void Image::set_timestamp(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Image.timestamp)
-}
-inline void Image::set_timestamp(const char* value, size_t size) {
-  
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Image.timestamp)
+  timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Image::_internal_mutable_timestamp() {
   
-  return timestamp_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return timestamp_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Image::release_timestamp() {
   // @@protoc_insertion_point(field_release:protomsg.Image.timestamp)
-  
-  return timestamp_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return timestamp_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Image::set_allocated_timestamp(std::string* timestamp) {
   if (timestamp != nullptr) {
@@ -1222,13 +1187,14 @@
   } else {
     
   }
-  timestamp_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), timestamp);
+  timestamp_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), timestamp,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Image.timestamp)
 }
 
 // int64 id = 5;
 inline void Image::clear_id() {
-  id_ = PROTOBUF_LONGLONG(0);
+  id_ = int64_t{0};
 }
 inline ::PROTOBUF_NAMESPACE_ID::int64 Image::_internal_id() const {
   return id_;
@@ -1248,14 +1214,17 @@
 
 // string cid = 6;
 inline void Image::clear_cid() {
-  cid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  cid_.ClearToEmpty();
 }
 inline const std::string& Image::cid() const {
   // @@protoc_insertion_point(field_get:protomsg.Image.cid)
   return _internal_cid();
 }
-inline void Image::set_cid(const std::string& value) {
-  _internal_set_cid(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Image::set_cid(ArgT0&& arg0, ArgT... args) {
+ 
+ cid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Image.cid)
 }
 inline std::string* Image::mutable_cid() {
@@ -1263,38 +1232,19 @@
   return _internal_mutable_cid();
 }
 inline const std::string& Image::_internal_cid() const {
-  return cid_.GetNoArena();
+  return cid_.Get();
 }
 inline void Image::_internal_set_cid(const std::string& value) {
   
-  cid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Image::set_cid(std::string&& value) {
-  
-  cid_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Image.cid)
-}
-inline void Image::set_cid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  cid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Image.cid)
-}
-inline void Image::set_cid(const char* value, size_t size) {
-  
-  cid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Image.cid)
+  cid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Image::_internal_mutable_cid() {
   
-  return cid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return cid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Image::release_cid() {
   // @@protoc_insertion_point(field_release:protomsg.Image.cid)
-  
-  return cid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return cid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Image::set_allocated_cid(std::string* cid) {
   if (cid != nullptr) {
@@ -1302,20 +1252,24 @@
   } else {
     
   }
-  cid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), cid);
+  cid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), cid,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Image.cid)
 }
 
 // string cname = 7;
 inline void Image::clear_cname() {
-  cname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  cname_.ClearToEmpty();
 }
 inline const std::string& Image::cname() const {
   // @@protoc_insertion_point(field_get:protomsg.Image.cname)
   return _internal_cname();
 }
-inline void Image::set_cname(const std::string& value) {
-  _internal_set_cname(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Image::set_cname(ArgT0&& arg0, ArgT... args) {
+ 
+ cname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Image.cname)
 }
 inline std::string* Image::mutable_cname() {
@@ -1323,38 +1277,19 @@
   return _internal_mutable_cname();
 }
 inline const std::string& Image::_internal_cname() const {
-  return cname_.GetNoArena();
+  return cname_.Get();
 }
 inline void Image::_internal_set_cname(const std::string& value) {
   
-  cname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Image::set_cname(std::string&& value) {
-  
-  cname_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Image.cname)
-}
-inline void Image::set_cname(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  cname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Image.cname)
-}
-inline void Image::set_cname(const char* value, size_t size) {
-  
-  cname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Image.cname)
+  cname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Image::_internal_mutable_cname() {
   
-  return cname_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return cname_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Image::release_cname() {
   // @@protoc_insertion_point(field_release:protomsg.Image.cname)
-  
-  return cname_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return cname_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Image::set_allocated_cname(std::string* cname) {
   if (cname != nullptr) {
@@ -1362,7 +1297,8 @@
   } else {
     
   }
-  cname_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), cname);
+  cname_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), cname,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Image.cname)
 }
 
@@ -1456,7 +1392,7 @@
 
 // uint64 id = 1;
 inline void Target::clear_id() {
-  id_ = PROTOBUF_ULONGLONG(0);
+  id_ = uint64_t{0u};
 }
 inline ::PROTOBUF_NAMESPACE_ID::uint64 Target::_internal_id() const {
   return id_;
@@ -1476,14 +1412,17 @@
 
 // string type = 2;
 inline void Target::clear_type() {
-  type_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  type_.ClearToEmpty();
 }
 inline const std::string& Target::type() const {
   // @@protoc_insertion_point(field_get:protomsg.Target.type)
   return _internal_type();
 }
-inline void Target::set_type(const std::string& value) {
-  _internal_set_type(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Target::set_type(ArgT0&& arg0, ArgT... args) {
+ 
+ type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Target.type)
 }
 inline std::string* Target::mutable_type() {
@@ -1491,38 +1430,19 @@
   return _internal_mutable_type();
 }
 inline const std::string& Target::_internal_type() const {
-  return type_.GetNoArena();
+  return type_.Get();
 }
 inline void Target::_internal_set_type(const std::string& value) {
   
-  type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Target::set_type(std::string&& value) {
-  
-  type_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Target.type)
-}
-inline void Target::set_type(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Target.type)
-}
-inline void Target::set_type(const char* value, size_t size) {
-  
-  type_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Target.type)
+  type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Target::_internal_mutable_type() {
   
-  return type_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return type_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Target::release_type() {
   // @@protoc_insertion_point(field_release:protomsg.Target.type)
-  
-  return type_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return type_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Target::set_allocated_type(std::string* type) {
   if (type != nullptr) {
@@ -1530,7 +1450,8 @@
   } else {
     
   }
-  type_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), type);
+  type_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), type,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Target.type)
 }
 
@@ -1562,21 +1483,43 @@
   return _internal_has_rect();
 }
 inline void Target::clear_rect() {
-  if (GetArenaNoVirtual() == nullptr && rect_ != nullptr) {
+  if (GetArenaForAllocation() == nullptr && rect_ != nullptr) {
     delete rect_;
   }
   rect_ = nullptr;
 }
 inline const ::protomsg::Rect& Target::_internal_rect() const {
   const ::protomsg::Rect* p = rect_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::protomsg::Rect*>(
-      &::protomsg::_Rect_default_instance_);
+  return p != nullptr ? *p : reinterpret_cast<const ::protomsg::Rect&>(
+      ::protomsg::_Rect_default_instance_);
 }
 inline const ::protomsg::Rect& Target::rect() const {
   // @@protoc_insertion_point(field_get:protomsg.Target.rect)
   return _internal_rect();
 }
+inline void Target::unsafe_arena_set_allocated_rect(
+    ::protomsg::Rect* rect) {
+  if (GetArenaForAllocation() == nullptr) {
+    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(rect_);
+  }
+  rect_ = rect;
+  if (rect) {
+    
+  } else {
+    
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:protomsg.Target.rect)
+}
 inline ::protomsg::Rect* Target::release_rect() {
+  
+  ::protomsg::Rect* temp = rect_;
+  rect_ = nullptr;
+  if (GetArenaForAllocation() != nullptr) {
+    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+  }
+  return temp;
+}
+inline ::protomsg::Rect* Target::unsafe_arena_release_rect() {
   // @@protoc_insertion_point(field_release:protomsg.Target.rect)
   
   ::protomsg::Rect* temp = rect_;
@@ -1586,7 +1529,7 @@
 inline ::protomsg::Rect* Target::_internal_mutable_rect() {
   
   if (rect_ == nullptr) {
-    auto* p = CreateMaybeMessage<::protomsg::Rect>(GetArenaNoVirtual());
+    auto* p = CreateMaybeMessage<::protomsg::Rect>(GetArenaForAllocation());
     rect_ = p;
   }
   return rect_;
@@ -1596,12 +1539,13 @@
   return _internal_mutable_rect();
 }
 inline void Target::set_allocated_rect(::protomsg::Rect* rect) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
+  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
   if (message_arena == nullptr) {
     delete rect_;
   }
   if (rect) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
+    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+        ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::protomsg::Rect>::GetOwningArena(rect);
     if (message_arena != submessage_arena) {
       rect = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
           message_arena, rect, submessage_arena);
@@ -1616,14 +1560,17 @@
 
 // bytes feature = 5;
 inline void Target::clear_feature() {
-  feature_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  feature_.ClearToEmpty();
 }
 inline const std::string& Target::feature() const {
   // @@protoc_insertion_point(field_get:protomsg.Target.feature)
   return _internal_feature();
 }
-inline void Target::set_feature(const std::string& value) {
-  _internal_set_feature(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Target::set_feature(ArgT0&& arg0, ArgT... args) {
+ 
+ feature_.SetBytes(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Target.feature)
 }
 inline std::string* Target::mutable_feature() {
@@ -1631,38 +1578,19 @@
   return _internal_mutable_feature();
 }
 inline const std::string& Target::_internal_feature() const {
-  return feature_.GetNoArena();
+  return feature_.Get();
 }
 inline void Target::_internal_set_feature(const std::string& value) {
   
-  feature_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Target::set_feature(std::string&& value) {
-  
-  feature_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Target.feature)
-}
-inline void Target::set_feature(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  feature_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Target.feature)
-}
-inline void Target::set_feature(const void* value, size_t size) {
-  
-  feature_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Target.feature)
+  feature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Target::_internal_mutable_feature() {
   
-  return feature_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return feature_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Target::release_feature() {
   // @@protoc_insertion_point(field_release:protomsg.Target.feature)
-  
-  return feature_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return feature_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Target::set_allocated_feature(std::string* feature) {
   if (feature != nullptr) {
@@ -1670,20 +1598,24 @@
   } else {
     
   }
-  feature_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), feature);
+  feature_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), feature,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Target.feature)
 }
 
 // bytes attribute = 6;
 inline void Target::clear_attribute() {
-  attribute_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  attribute_.ClearToEmpty();
 }
 inline const std::string& Target::attribute() const {
   // @@protoc_insertion_point(field_get:protomsg.Target.attribute)
   return _internal_attribute();
 }
-inline void Target::set_attribute(const std::string& value) {
-  _internal_set_attribute(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void Target::set_attribute(ArgT0&& arg0, ArgT... args) {
+ 
+ attribute_.SetBytes(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.Target.attribute)
 }
 inline std::string* Target::mutable_attribute() {
@@ -1691,38 +1623,19 @@
   return _internal_mutable_attribute();
 }
 inline const std::string& Target::_internal_attribute() const {
-  return attribute_.GetNoArena();
+  return attribute_.Get();
 }
 inline void Target::_internal_set_attribute(const std::string& value) {
   
-  attribute_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Target::set_attribute(std::string&& value) {
-  
-  attribute_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.Target.attribute)
-}
-inline void Target::set_attribute(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  attribute_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.Target.attribute)
-}
-inline void Target::set_attribute(const void* value, size_t size) {
-  
-  attribute_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.Target.attribute)
+  attribute_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* Target::_internal_mutable_attribute() {
   
-  return attribute_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return attribute_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* Target::release_attribute() {
   // @@protoc_insertion_point(field_release:protomsg.Target.attribute)
-  
-  return attribute_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return attribute_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void Target::set_allocated_attribute(std::string* attribute) {
   if (attribute != nullptr) {
@@ -1730,7 +1643,8 @@
   } else {
     
   }
-  attribute_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), attribute);
+  attribute_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), attribute,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.Target.attribute)
 }
 
@@ -1740,14 +1654,17 @@
 
 // string sdkID = 1;
 inline void SDKMessage::clear_sdkid() {
-  sdkid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  sdkid_.ClearToEmpty();
 }
 inline const std::string& SDKMessage::sdkid() const {
   // @@protoc_insertion_point(field_get:protomsg.SDKMessage.sdkID)
   return _internal_sdkid();
 }
-inline void SDKMessage::set_sdkid(const std::string& value) {
-  _internal_set_sdkid(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void SDKMessage::set_sdkid(ArgT0&& arg0, ArgT... args) {
+ 
+ sdkid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.SDKMessage.sdkID)
 }
 inline std::string* SDKMessage::mutable_sdkid() {
@@ -1755,38 +1672,19 @@
   return _internal_mutable_sdkid();
 }
 inline const std::string& SDKMessage::_internal_sdkid() const {
-  return sdkid_.GetNoArena();
+  return sdkid_.Get();
 }
 inline void SDKMessage::_internal_set_sdkid(const std::string& value) {
   
-  sdkid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void SDKMessage::set_sdkid(std::string&& value) {
-  
-  sdkid_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.SDKMessage.sdkID)
-}
-inline void SDKMessage::set_sdkid(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  sdkid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.SDKMessage.sdkID)
-}
-inline void SDKMessage::set_sdkid(const char* value, size_t size) {
-  
-  sdkid_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.SDKMessage.sdkID)
+  sdkid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::_internal_mutable_sdkid() {
   
-  return sdkid_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdkid_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::release_sdkid() {
   // @@protoc_insertion_point(field_release:protomsg.SDKMessage.sdkID)
-  
-  return sdkid_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdkid_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void SDKMessage::set_allocated_sdkid(std::string* sdkid) {
   if (sdkid != nullptr) {
@@ -1794,20 +1692,24 @@
   } else {
     
   }
-  sdkid_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdkid);
+  sdkid_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdkid,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.SDKMessage.sdkID)
 }
 
 // string sdkType = 2;
 inline void SDKMessage::clear_sdktype() {
-  sdktype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  sdktype_.ClearToEmpty();
 }
 inline const std::string& SDKMessage::sdktype() const {
   // @@protoc_insertion_point(field_get:protomsg.SDKMessage.sdkType)
   return _internal_sdktype();
 }
-inline void SDKMessage::set_sdktype(const std::string& value) {
-  _internal_set_sdktype(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void SDKMessage::set_sdktype(ArgT0&& arg0, ArgT... args) {
+ 
+ sdktype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.SDKMessage.sdkType)
 }
 inline std::string* SDKMessage::mutable_sdktype() {
@@ -1815,38 +1717,19 @@
   return _internal_mutable_sdktype();
 }
 inline const std::string& SDKMessage::_internal_sdktype() const {
-  return sdktype_.GetNoArena();
+  return sdktype_.Get();
 }
 inline void SDKMessage::_internal_set_sdktype(const std::string& value) {
   
-  sdktype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void SDKMessage::set_sdktype(std::string&& value) {
-  
-  sdktype_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.SDKMessage.sdkType)
-}
-inline void SDKMessage::set_sdktype(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  sdktype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.SDKMessage.sdkType)
-}
-inline void SDKMessage::set_sdktype(const char* value, size_t size) {
-  
-  sdktype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.SDKMessage.sdkType)
+  sdktype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::_internal_mutable_sdktype() {
   
-  return sdktype_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdktype_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::release_sdktype() {
   // @@protoc_insertion_point(field_release:protomsg.SDKMessage.sdkType)
-  
-  return sdktype_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdktype_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void SDKMessage::set_allocated_sdktype(std::string* sdktype) {
   if (sdktype != nullptr) {
@@ -1854,20 +1737,24 @@
   } else {
     
   }
-  sdktype_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdktype);
+  sdktype_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdktype,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.SDKMessage.sdkType)
 }
 
 // string sdkName = 3;
 inline void SDKMessage::clear_sdkname() {
-  sdkname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  sdkname_.ClearToEmpty();
 }
 inline const std::string& SDKMessage::sdkname() const {
   // @@protoc_insertion_point(field_get:protomsg.SDKMessage.sdkName)
   return _internal_sdkname();
 }
-inline void SDKMessage::set_sdkname(const std::string& value) {
-  _internal_set_sdkname(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void SDKMessage::set_sdkname(ArgT0&& arg0, ArgT... args) {
+ 
+ sdkname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.SDKMessage.sdkName)
 }
 inline std::string* SDKMessage::mutable_sdkname() {
@@ -1875,38 +1762,19 @@
   return _internal_mutable_sdkname();
 }
 inline const std::string& SDKMessage::_internal_sdkname() const {
-  return sdkname_.GetNoArena();
+  return sdkname_.Get();
 }
 inline void SDKMessage::_internal_set_sdkname(const std::string& value) {
   
-  sdkname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void SDKMessage::set_sdkname(std::string&& value) {
-  
-  sdkname_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.SDKMessage.sdkName)
-}
-inline void SDKMessage::set_sdkname(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  sdkname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.SDKMessage.sdkName)
-}
-inline void SDKMessage::set_sdkname(const char* value, size_t size) {
-  
-  sdkname_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.SDKMessage.sdkName)
+  sdkname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::_internal_mutable_sdkname() {
   
-  return sdkname_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdkname_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::release_sdkname() {
   // @@protoc_insertion_point(field_release:protomsg.SDKMessage.sdkName)
-  
-  return sdkname_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return sdkname_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void SDKMessage::set_allocated_sdkname(std::string* sdkname) {
   if (sdkname != nullptr) {
@@ -1914,7 +1782,8 @@
   } else {
     
   }
-  sdkname_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdkname);
+  sdkname_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), sdkname,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.SDKMessage.sdkName)
 }
 
@@ -1959,14 +1828,17 @@
 
 // string timestamp = 5;
 inline void SDKMessage::clear_timestamp() {
-  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  timestamp_.ClearToEmpty();
 }
 inline const std::string& SDKMessage::timestamp() const {
   // @@protoc_insertion_point(field_get:protomsg.SDKMessage.timestamp)
   return _internal_timestamp();
 }
-inline void SDKMessage::set_timestamp(const std::string& value) {
-  _internal_set_timestamp(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void SDKMessage::set_timestamp(ArgT0&& arg0, ArgT... args) {
+ 
+ timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.SDKMessage.timestamp)
 }
 inline std::string* SDKMessage::mutable_timestamp() {
@@ -1974,38 +1846,19 @@
   return _internal_mutable_timestamp();
 }
 inline const std::string& SDKMessage::_internal_timestamp() const {
-  return timestamp_.GetNoArena();
+  return timestamp_.Get();
 }
 inline void SDKMessage::_internal_set_timestamp(const std::string& value) {
   
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void SDKMessage::set_timestamp(std::string&& value) {
-  
-  timestamp_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.SDKMessage.timestamp)
-}
-inline void SDKMessage::set_timestamp(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.SDKMessage.timestamp)
-}
-inline void SDKMessage::set_timestamp(const char* value, size_t size) {
-  
-  timestamp_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.SDKMessage.timestamp)
+  timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::_internal_mutable_timestamp() {
   
-  return timestamp_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return timestamp_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* SDKMessage::release_timestamp() {
   // @@protoc_insertion_point(field_release:protomsg.SDKMessage.timestamp)
-  
-  return timestamp_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return timestamp_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void SDKMessage::set_allocated_timestamp(std::string* timestamp) {
   if (timestamp != nullptr) {
@@ -2013,7 +1866,8 @@
   } else {
     
   }
-  timestamp_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), timestamp);
+  timestamp_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), timestamp,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.SDKMessage.timestamp)
 }
 
@@ -2023,14 +1877,17 @@
 
 // string dataType = 1;
 inline void RuleMessage::clear_datatype() {
-  datatype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  datatype_.ClearToEmpty();
 }
 inline const std::string& RuleMessage::datatype() const {
   // @@protoc_insertion_point(field_get:protomsg.RuleMessage.dataType)
   return _internal_datatype();
 }
-inline void RuleMessage::set_datatype(const std::string& value) {
-  _internal_set_datatype(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void RuleMessage::set_datatype(ArgT0&& arg0, ArgT... args) {
+ 
+ datatype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.RuleMessage.dataType)
 }
 inline std::string* RuleMessage::mutable_datatype() {
@@ -2038,38 +1895,19 @@
   return _internal_mutable_datatype();
 }
 inline const std::string& RuleMessage::_internal_datatype() const {
-  return datatype_.GetNoArena();
+  return datatype_.Get();
 }
 inline void RuleMessage::_internal_set_datatype(const std::string& value) {
   
-  datatype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void RuleMessage::set_datatype(std::string&& value) {
-  
-  datatype_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.RuleMessage.dataType)
-}
-inline void RuleMessage::set_datatype(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  datatype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.RuleMessage.dataType)
-}
-inline void RuleMessage::set_datatype(const char* value, size_t size) {
-  
-  datatype_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.RuleMessage.dataType)
+  datatype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* RuleMessage::_internal_mutable_datatype() {
   
-  return datatype_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return datatype_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* RuleMessage::release_datatype() {
   // @@protoc_insertion_point(field_release:protomsg.RuleMessage.dataType)
-  
-  return datatype_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return datatype_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void RuleMessage::set_allocated_datatype(std::string* datatype) {
   if (datatype != nullptr) {
@@ -2077,20 +1915,24 @@
   } else {
     
   }
-  datatype_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), datatype);
+  datatype_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), datatype,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.RuleMessage.dataType)
 }
 
 // string handleTrack = 2;
 inline void RuleMessage::clear_handletrack() {
-  handletrack_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  handletrack_.ClearToEmpty();
 }
 inline const std::string& RuleMessage::handletrack() const {
   // @@protoc_insertion_point(field_get:protomsg.RuleMessage.handleTrack)
   return _internal_handletrack();
 }
-inline void RuleMessage::set_handletrack(const std::string& value) {
-  _internal_set_handletrack(value);
+template <typename ArgT0, typename... ArgT>
+inline PROTOBUF_ALWAYS_INLINE
+void RuleMessage::set_handletrack(ArgT0&& arg0, ArgT... args) {
+ 
+ handletrack_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
   // @@protoc_insertion_point(field_set:protomsg.RuleMessage.handleTrack)
 }
 inline std::string* RuleMessage::mutable_handletrack() {
@@ -2098,38 +1940,19 @@
   return _internal_mutable_handletrack();
 }
 inline const std::string& RuleMessage::_internal_handletrack() const {
-  return handletrack_.GetNoArena();
+  return handletrack_.Get();
 }
 inline void RuleMessage::_internal_set_handletrack(const std::string& value) {
   
-  handletrack_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void RuleMessage::set_handletrack(std::string&& value) {
-  
-  handletrack_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:protomsg.RuleMessage.handleTrack)
-}
-inline void RuleMessage::set_handletrack(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  handletrack_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:protomsg.RuleMessage.handleTrack)
-}
-inline void RuleMessage::set_handletrack(const char* value, size_t size) {
-  
-  handletrack_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:protomsg.RuleMessage.handleTrack)
+  handletrack_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
 }
 inline std::string* RuleMessage::_internal_mutable_handletrack() {
   
-  return handletrack_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return handletrack_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
 }
 inline std::string* RuleMessage::release_handletrack() {
   // @@protoc_insertion_point(field_release:protomsg.RuleMessage.handleTrack)
-  
-  return handletrack_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return handletrack_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
 }
 inline void RuleMessage::set_allocated_handletrack(std::string* handletrack) {
   if (handletrack != nullptr) {
@@ -2137,7 +1960,8 @@
   } else {
     
   }
-  handletrack_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), handletrack);
+  handletrack_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), handletrack,
+      GetArenaForAllocation());
   // @@protoc_insertion_point(field_set_allocated:protomsg.RuleMessage.handleTrack)
 }
 

--
Gitblit v1.8.0