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

#include "message_base.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)
namespace message {
class Base_infoDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Base_info>
      _instance;
} _Base_info_default_instance_;
class Base_msgDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Base_msg>
      _instance;
} _Base_msg_default_instance_;
class Error_managerDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Error_manager>
      _instance;
} _Error_manager_default_instance_;
class Locate_informationDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Locate_information>
      _instance;
} _Locate_information_default_instance_;
class Car_infoDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Car_info>
      _instance;
} _Car_info_default_instance_;
class Parkspace_infoDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Parkspace_info>
      _instance;
} _Parkspace_info_default_instance_;
}  // namespace message
namespace protobuf_message_5fbase_2eproto {
void InitDefaultsBase_infoImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::message::_Base_info_default_instance_;
    new (ptr) ::message::Base_info();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Base_info::InitAsDefaultInstance();
}

void InitDefaultsBase_info() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBase_infoImpl);
}

void InitDefaultsBase_msgImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
  {
    void* ptr = &::message::_Base_msg_default_instance_;
    new (ptr) ::message::Base_msg();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Base_msg::InitAsDefaultInstance();
}

void InitDefaultsBase_msg() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsBase_msgImpl);
}

void InitDefaultsError_managerImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::message::_Error_manager_default_instance_;
    new (ptr) ::message::Error_manager();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Error_manager::InitAsDefaultInstance();
}

void InitDefaultsError_manager() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsError_managerImpl);
}

void InitDefaultsLocate_informationImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::message::_Locate_information_default_instance_;
    new (ptr) ::message::Locate_information();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Locate_information::InitAsDefaultInstance();
}

void InitDefaultsLocate_information() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLocate_informationImpl);
}

void InitDefaultsCar_infoImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::message::_Car_info_default_instance_;
    new (ptr) ::message::Car_info();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Car_info::InitAsDefaultInstance();
}

void InitDefaultsCar_info() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsCar_infoImpl);
}

void InitDefaultsParkspace_infoImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
  {
    void* ptr = &::message::_Parkspace_info_default_instance_;
    new (ptr) ::message::Parkspace_info();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::message::Parkspace_info::InitAsDefaultInstance();
}

void InitDefaultsParkspace_info() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsParkspace_infoImpl);
}

::google::protobuf::Metadata file_level_metadata[6];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[8];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, msg_type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, timeout_ms_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, sender_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_info, receiver_),
  0,
  1,
  2,
  3,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_msg, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_msg, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Base_msg, base_info_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Error_manager, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Error_manager, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Error_manager, error_code_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Error_manager, error_level_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Error_manager, error_description_),
  1,
  2,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_angle_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_length_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_height_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_wheel_base_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_wheel_width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Locate_information, locate_correct_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, car_length_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, car_width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, car_height_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Car_info, license_),
  1,
  2,
  3,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, index_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, direction_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, floor_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, length_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, height_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, car_info_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, entry_time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, leave_time_),
  3,
  4,
  10,
  5,
  6,
  7,
  8,
  9,
  2,
  0,
  1,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 9, sizeof(::message::Base_info)},
  { 13, 19, sizeof(::message::Base_msg)},
  { 20, 28, sizeof(::message::Error_manager)},
  { 31, 45, sizeof(::message::Locate_information)},
  { 54, 63, sizeof(::message::Car_info)},
  { 67, 83, sizeof(::message::Parkspace_info)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Base_info_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Base_msg_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Error_manager_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Locate_information_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Car_info_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::message::_Parkspace_info_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "message_base.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 6);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\022message_base.proto\022\007message\"\230\001\n\tBase_i"
      "nfo\022\'\n\010msg_type\030\001 \002(\0162\025.message.Message_"
      "type\022\022\n\ntimeout_ms\030\002 \001(\005\022%\n\006sender\030\003 \002(\016"
      "2\025.message.Communicator\022\'\n\010receiver\030\004 \002("
      "\0162\025.message.Communicator\"1\n\010Base_msg\022%\n\t"
      "base_info\030\001 \002(\0132\022.message.Base_info\"i\n\rE"
      "rror_manager\022\022\n\nerror_code\030\001 \002(\005\022)\n\013erro"
      "r_level\030\002 \001(\0162\024.message.Error_level\022\031\n\021e"
      "rror_description\030\003 \001(\t\"\341\001\n\022Locate_inform"
      "ation\022\020\n\010locate_x\030\001 \001(\002\022\020\n\010locate_y\030\002 \001("
      "\002\022\024\n\014locate_angle\030\003 \001(\002\022\025\n\rlocate_length"
      "\030\004 \001(\002\022\024\n\014locate_width\030\005 \001(\002\022\025\n\rlocate_h"
      "eight\030\006 \001(\002\022\031\n\021locate_wheel_base\030\007 \001(\002\022\032"
      "\n\022locate_wheel_width\030\010 \001(\002\022\026\n\016locate_cor"
      "rect\030\t \001(\010\"V\n\010Car_info\022\022\n\ncar_length\030\001 \001"
      "(\002\022\021\n\tcar_width\030\002 \001(\002\022\022\n\ncar_height\030\003 \001("
      "\002\022\017\n\007license\030\004 \001(\t\"\234\002\n\016Parkspace_info\022\024\n"
      "\014parkspace_id\030\001 \001(\005\022\r\n\005index\030\002 \001(\005\022%\n\tdi"
      "rection\030\003 \001(\0162\022.message.Direction\022\r\n\005flo"
      "or\030\004 \001(\005\022\016\n\006length\030\005 \001(\002\022\r\n\005width\030\006 \001(\002\022"
      "\016\n\006height\030\007 \001(\002\0223\n\020parkspace_status\030\010 \001("
      "\0162\031.message.Parkspace_status\022#\n\010car_info"
      "\030\t \001(\0132\021.message.Car_info\022\022\n\nentry_time\030"
      "\n \001(\t\022\022\n\nleave_time\030\013 \001(\t*g\n\014Message_typ"
      "e\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\016\n\teG"
      "oal_msg\020\360\001\022\024\n\017ePointCloud_msg\020\361\001\022\020\n\013ePos"
      "e2d_msg\020\362\001*q\n\014Communicator\022\n\n\006eEmpty\020\000\022\t"
      "\n\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\neParkspace\020"
      "\200\004\022\016\n\teMeasurer\020\200\006\022\016\n\teDispatch\020\200\010\022\t\n\004eA"
      "GV\020\200\036**\n\014Process_type\022\014\n\010eStoring\020\001\022\014\n\010e"
      "Picking\020\002*e\n\013Error_level\022\n\n\006NORMAL\020\000\022\024\n\020"
      "NEGLIGIBLE_ERROR\020\001\022\017\n\013MINOR_ERROR\020\002\022\017\n\013M"
      "AJOR_ERROR\020\003\022\022\n\016CRITICAL_ERROR\020\004*q\n\020Park"
      "space_status\022\024\n\020eParkspace_empty\020\000\022\027\n\023eP"
      "arkspace_occupied\020\001\022\030\n\024eParkspace_reserv"
      "erd\020\002\022\024\n\020eParkspace_error\020\003*(\n\tDirection"
      "\022\014\n\010eForward\020\001\022\r\n\teBackward\020\002*\335\002\n\tStep_t"
      "ype\022\017\n\013eAlloc_step\020\000\022\021\n\reMeasure_step\020\001\022"
      "\021\n\reCompare_step\020\002\022\022\n\016eDispatch_step\020\003\022\021"
      "\n\reConfirm_step\020\004\022\020\n\014eSearch_step\020\005\022\016\n\ne"
      "Wait_step\020\006\022\021\n\reRelease_step\020\007\022\r\n\teCompl"
      "ete\020\010\022\025\n\021eBackConfirm_step\020\t\022\026\n\022eBack_co"
      "mpare_step\020\n\022\025\n\021eBackMeasure_step\020\013\022\023\n\017e"
      "BackAlloc_step\020\014\022\022\n\016eBackWait_step\020\r\022\026\n\022"
      "eBackDispatch_step\020\016\022\024\n\020eBackSearch_step"
      "\020\017\022\021\n\reBackComplete\020\020*C\n\nStep_statu\022\014\n\010e"
      "Waiting\020\000\022\014\n\010eWorking\020\001\022\n\n\006eError\020\002\022\r\n\te"
      "Finished\020\003"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1890);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "message_base.proto", &protobuf_RegisterTypes);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_message_5fbase_2eproto
namespace message {
const ::google::protobuf::EnumDescriptor* Message_type_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[0];
}
bool Message_type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 240:
    case 241:
    case 242:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Communicator_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[1];
}
bool Communicator_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 256:
    case 512:
    case 768:
    case 1024:
    case 3840:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Process_type_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[2];
}
bool Process_type_IsValid(int value) {
  switch (value) {
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Error_level_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[3];
}
bool Error_level_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Parkspace_status_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[4];
}
bool Parkspace_status_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Direction_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[5];
}
bool Direction_IsValid(int value) {
  switch (value) {
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Step_type_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[6];
}
bool Step_type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Step_statu_descriptor() {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_message_5fbase_2eproto::file_level_enum_descriptors[7];
}
bool Step_statu_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}


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

void Base_info::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Base_info::kMsgTypeFieldNumber;
const int Base_info::kTimeoutMsFieldNumber;
const int Base_info::kSenderFieldNumber;
const int Base_info::kReceiverFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Base_info::Base_info()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Base_info)
}
Base_info::Base_info(const Base_info& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&msg_type_, &from.msg_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&receiver_) -
    reinterpret_cast<char*>(&msg_type_)) + sizeof(receiver_));
  // @@protoc_insertion_point(copy_constructor:message.Base_info)
}

void Base_info::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&msg_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&receiver_) -
      reinterpret_cast<char*>(&msg_type_)) + sizeof(receiver_));
}

Base_info::~Base_info() {
  // @@protoc_insertion_point(destructor:message.Base_info)
  SharedDtor();
}

void Base_info::SharedDtor() {
}

void Base_info::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Base_info::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Base_info& Base_info::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsBase_info();
  return *internal_default_instance();
}

Base_info* Base_info::New(::google::protobuf::Arena* arena) const {
  Base_info* n = new Base_info;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Base_info::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Base_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 15u) {
    ::memset(&msg_type_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&receiver_) -
        reinterpret_cast<char*>(&msg_type_)) + sizeof(receiver_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Base_info::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Base_info)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .message.Message_type msg_type = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Message_type_IsValid(value)) {
            set_msg_type(static_cast< ::message::Message_type >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                1, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 timeout_ms = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_timeout_ms();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &timeout_ms_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required .message.Communicator sender = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Communicator_IsValid(value)) {
            set_sender(static_cast< ::message::Communicator >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                3, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required .message.Communicator receiver = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Communicator_IsValid(value)) {
            set_receiver(static_cast< ::message::Communicator >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                4, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Base_info)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Base_info)
  return false;
#undef DO_
}

void Base_info::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Base_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .message.Message_type msg_type = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->msg_type(), output);
  }

  // optional int32 timeout_ms = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->timeout_ms(), output);
  }

  // required .message.Communicator sender = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      3, this->sender(), output);
  }

  // required .message.Communicator receiver = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      4, this->receiver(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Base_info)
}

::google::protobuf::uint8* Base_info::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Base_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .message.Message_type msg_type = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->msg_type(), target);
  }

  // optional int32 timeout_ms = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->timeout_ms(), target);
  }

  // required .message.Communicator sender = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      3, this->sender(), target);
  }

  // required .message.Communicator receiver = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      4, this->receiver(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Base_info)
  return target;
}

size_t Base_info::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:message.Base_info)
  size_t total_size = 0;

  if (has_msg_type()) {
    // required .message.Message_type msg_type = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->msg_type());
  }

  if (has_sender()) {
    // required .message.Communicator sender = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->sender());
  }

  if (has_receiver()) {
    // required .message.Communicator receiver = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->receiver());
  }

  return total_size;
}
size_t Base_info::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:message.Base_info)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000000d) ^ 0x0000000d) == 0) {  // All required fields are present.
    // required .message.Message_type msg_type = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->msg_type());

    // required .message.Communicator sender = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->sender());

    // required .message.Communicator receiver = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->receiver());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // optional int32 timeout_ms = 2;
  if (has_timeout_ms()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->timeout_ms());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Base_info::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Base_info)
  GOOGLE_DCHECK_NE(&from, this);
  const Base_info* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Base_info>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Base_info)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Base_info)
    MergeFrom(*source);
  }
}

void Base_info::MergeFrom(const Base_info& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Base_info)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      msg_type_ = from.msg_type_;
    }
    if (cached_has_bits & 0x00000002u) {
      timeout_ms_ = from.timeout_ms_;
    }
    if (cached_has_bits & 0x00000004u) {
      sender_ = from.sender_;
    }
    if (cached_has_bits & 0x00000008u) {
      receiver_ = from.receiver_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Base_info::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Base_info)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Base_info::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000000d) != 0x0000000d) return false;
  return true;
}

void Base_info::Swap(Base_info* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Base_info::InternalSwap(Base_info* other) {
  using std::swap;
  swap(msg_type_, other->msg_type_);
  swap(timeout_ms_, other->timeout_ms_);
  swap(sender_, other->sender_);
  swap(receiver_, other->receiver_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Base_info::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Base_msg::InitAsDefaultInstance() {
  ::message::_Base_msg_default_instance_._instance.get_mutable()->base_info_ = const_cast< ::message::Base_info*>(
      ::message::Base_info::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Base_msg::kBaseInfoFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Base_msg::Base_msg()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsBase_msg();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Base_msg)
}
Base_msg::Base_msg(const Base_msg& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_base_info()) {
    base_info_ = new ::message::Base_info(*from.base_info_);
  } else {
    base_info_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:message.Base_msg)
}

void Base_msg::SharedCtor() {
  _cached_size_ = 0;
  base_info_ = NULL;
}

Base_msg::~Base_msg() {
  // @@protoc_insertion_point(destructor:message.Base_msg)
  SharedDtor();
}

void Base_msg::SharedDtor() {
  if (this != internal_default_instance()) delete base_info_;
}

void Base_msg::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Base_msg::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Base_msg& Base_msg::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsBase_msg();
  return *internal_default_instance();
}

Base_msg* Base_msg::New(::google::protobuf::Arena* arena) const {
  Base_msg* n = new Base_msg;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Base_msg::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Base_msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(base_info_ != NULL);
    base_info_->Clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Base_msg::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Base_msg)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .message.Base_info base_info = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_base_info()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Base_msg)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Base_msg)
  return false;
#undef DO_
}

void Base_msg::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Base_msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .message.Base_info base_info = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->base_info_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Base_msg)
}

::google::protobuf::uint8* Base_msg::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Base_msg)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .message.Base_info base_info = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, *this->base_info_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Base_msg)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required .message.Base_info base_info = 1;
  if (has_base_info()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *this->base_info_);
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Base_msg::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Base_msg)
  GOOGLE_DCHECK_NE(&from, this);
  const Base_msg* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Base_msg>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Base_msg)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Base_msg)
    MergeFrom(*source);
  }
}

void Base_msg::MergeFrom(const Base_msg& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Base_msg)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_base_info()) {
    mutable_base_info()->::message::Base_info::MergeFrom(from.base_info());
  }
}

void Base_msg::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Base_msg)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Base_msg::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  if (has_base_info()) {
    if (!this->base_info_->IsInitialized()) return false;
  }
  return true;
}

void Base_msg::Swap(Base_msg* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Base_msg::InternalSwap(Base_msg* other) {
  using std::swap;
  swap(base_info_, other->base_info_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Base_msg::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Error_manager::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Error_manager::kErrorCodeFieldNumber;
const int Error_manager::kErrorLevelFieldNumber;
const int Error_manager::kErrorDescriptionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Error_manager::Error_manager()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Error_manager)
}
Error_manager::Error_manager(const Error_manager& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  error_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_error_description()) {
    error_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.error_description_);
  }
  ::memcpy(&error_code_, &from.error_code_,
    static_cast<size_t>(reinterpret_cast<char*>(&error_level_) -
    reinterpret_cast<char*>(&error_code_)) + sizeof(error_level_));
  // @@protoc_insertion_point(copy_constructor:message.Error_manager)
}

void Error_manager::SharedCtor() {
  _cached_size_ = 0;
  error_description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&error_code_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&error_level_) -
      reinterpret_cast<char*>(&error_code_)) + sizeof(error_level_));
}

Error_manager::~Error_manager() {
  // @@protoc_insertion_point(destructor:message.Error_manager)
  SharedDtor();
}

void Error_manager::SharedDtor() {
  error_description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Error_manager::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Error_manager::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Error_manager& Error_manager::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsError_manager();
  return *internal_default_instance();
}

Error_manager* Error_manager::New(::google::protobuf::Arena* arena) const {
  Error_manager* n = new Error_manager;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Error_manager::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Error_manager)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(!error_description_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*error_description_.UnsafeRawStringPointer())->clear();
  }
  if (cached_has_bits & 6u) {
    ::memset(&error_code_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&error_level_) -
        reinterpret_cast<char*>(&error_code_)) + sizeof(error_level_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Error_manager::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Error_manager)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required int32 error_code = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_error_code();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &error_code_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Error_level error_level = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Error_level_IsValid(value)) {
            set_error_level(static_cast< ::message::Error_level >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                2, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string error_description = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_error_description()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->error_description().data(), static_cast<int>(this->error_description().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "message.Error_manager.error_description");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Error_manager)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Error_manager)
  return false;
#undef DO_
}

void Error_manager::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Error_manager)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 error_code = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->error_code(), output);
  }

  // optional .message.Error_level error_level = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->error_level(), output);
  }

  // optional string error_description = 3;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error_description().data(), static_cast<int>(this->error_description().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Error_manager.error_description");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->error_description(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Error_manager)
}

::google::protobuf::uint8* Error_manager::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Error_manager)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 error_code = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->error_code(), target);
  }

  // optional .message.Error_level error_level = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->error_level(), target);
  }

  // optional string error_description = 3;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error_description().data(), static_cast<int>(this->error_description().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Error_manager.error_description");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->error_description(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Error_manager)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required int32 error_code = 1;
  if (has_error_code()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->error_code());
  }
  // optional string error_description = 3;
  if (has_error_description()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->error_description());
  }

  // optional .message.Error_level error_level = 2;
  if (has_error_level()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->error_level());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Error_manager::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Error_manager)
  GOOGLE_DCHECK_NE(&from, this);
  const Error_manager* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Error_manager>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Error_manager)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Error_manager)
    MergeFrom(*source);
  }
}

void Error_manager::MergeFrom(const Error_manager& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Error_manager)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_error_description();
      error_description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.error_description_);
    }
    if (cached_has_bits & 0x00000002u) {
      error_code_ = from.error_code_;
    }
    if (cached_has_bits & 0x00000004u) {
      error_level_ = from.error_level_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Error_manager::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Error_manager)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

bool Error_manager::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000002) != 0x00000002) return false;
  return true;
}

void Error_manager::Swap(Error_manager* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Error_manager::InternalSwap(Error_manager* other) {
  using std::swap;
  error_description_.Swap(&other->error_description_);
  swap(error_code_, other->error_code_);
  swap(error_level_, other->error_level_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Error_manager::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Locate_information::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Locate_information::kLocateXFieldNumber;
const int Locate_information::kLocateYFieldNumber;
const int Locate_information::kLocateAngleFieldNumber;
const int Locate_information::kLocateLengthFieldNumber;
const int Locate_information::kLocateWidthFieldNumber;
const int Locate_information::kLocateHeightFieldNumber;
const int Locate_information::kLocateWheelBaseFieldNumber;
const int Locate_information::kLocateWheelWidthFieldNumber;
const int Locate_information::kLocateCorrectFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Locate_information::Locate_information()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Locate_information)
}
Locate_information::Locate_information(const Locate_information& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&locate_x_, &from.locate_x_,
    static_cast<size_t>(reinterpret_cast<char*>(&locate_correct_) -
    reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_correct_));
  // @@protoc_insertion_point(copy_constructor:message.Locate_information)
}

void Locate_information::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&locate_x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&locate_correct_) -
      reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_correct_));
}

Locate_information::~Locate_information() {
  // @@protoc_insertion_point(destructor:message.Locate_information)
  SharedDtor();
}

void Locate_information::SharedDtor() {
}

void Locate_information::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Locate_information::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Locate_information& Locate_information::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsLocate_information();
  return *internal_default_instance();
}

Locate_information* Locate_information::New(::google::protobuf::Arena* arena) const {
  Locate_information* n = new Locate_information;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Locate_information::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Locate_information)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 255u) {
    ::memset(&locate_x_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&locate_wheel_width_) -
        reinterpret_cast<char*>(&locate_x_)) + sizeof(locate_wheel_width_));
  }
  locate_correct_ = false;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Locate_information::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Locate_information)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional float locate_x = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(13u /* 13 & 0xFF */)) {
          set_has_locate_x();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_x_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_y = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(21u /* 21 & 0xFF */)) {
          set_has_locate_y();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_y_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_angle = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(29u /* 29 & 0xFF */)) {
          set_has_locate_angle();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_angle_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_length = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(37u /* 37 & 0xFF */)) {
          set_has_locate_length();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_width = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(45u /* 45 & 0xFF */)) {
          set_has_locate_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_height = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(53u /* 53 & 0xFF */)) {
          set_has_locate_height();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_height_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_wheel_base = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(61u /* 61 & 0xFF */)) {
          set_has_locate_wheel_base();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_wheel_base_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float locate_wheel_width = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(69u /* 69 & 0xFF */)) {
          set_has_locate_wheel_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &locate_wheel_width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional bool locate_correct = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
          set_has_locate_correct();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &locate_correct_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Locate_information)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Locate_information)
  return false;
#undef DO_
}

void Locate_information::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Locate_information)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float locate_x = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(1, this->locate_x(), output);
  }

  // optional float locate_y = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->locate_y(), output);
  }

  // optional float locate_angle = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(3, this->locate_angle(), output);
  }

  // optional float locate_length = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->locate_length(), output);
  }

  // optional float locate_width = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->locate_width(), output);
  }

  // optional float locate_height = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->locate_height(), output);
  }

  // optional float locate_wheel_base = 7;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->locate_wheel_base(), output);
  }

  // optional float locate_wheel_width = 8;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(8, this->locate_wheel_width(), output);
  }

  // optional bool locate_correct = 9;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->locate_correct(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Locate_information)
}

::google::protobuf::uint8* Locate_information::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Locate_information)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float locate_x = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(1, this->locate_x(), target);
  }

  // optional float locate_y = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(2, this->locate_y(), target);
  }

  // optional float locate_angle = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(3, this->locate_angle(), target);
  }

  // optional float locate_length = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->locate_length(), target);
  }

  // optional float locate_width = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->locate_width(), target);
  }

  // optional float locate_height = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->locate_height(), target);
  }

  // optional float locate_wheel_base = 7;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->locate_wheel_base(), target);
  }

  // optional float locate_wheel_width = 8;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(8, this->locate_wheel_width(), target);
  }

  // optional bool locate_correct = 9;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(9, this->locate_correct(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Locate_information)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional float locate_x = 1;
    if (has_locate_x()) {
      total_size += 1 + 4;
    }

    // optional float locate_y = 2;
    if (has_locate_y()) {
      total_size += 1 + 4;
    }

    // optional float locate_angle = 3;
    if (has_locate_angle()) {
      total_size += 1 + 4;
    }

    // optional float locate_length = 4;
    if (has_locate_length()) {
      total_size += 1 + 4;
    }

    // optional float locate_width = 5;
    if (has_locate_width()) {
      total_size += 1 + 4;
    }

    // optional float locate_height = 6;
    if (has_locate_height()) {
      total_size += 1 + 4;
    }

    // optional float locate_wheel_base = 7;
    if (has_locate_wheel_base()) {
      total_size += 1 + 4;
    }

    // optional float locate_wheel_width = 8;
    if (has_locate_wheel_width()) {
      total_size += 1 + 4;
    }

  }
  // optional bool locate_correct = 9;
  if (has_locate_correct()) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Locate_information::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Locate_information)
  GOOGLE_DCHECK_NE(&from, this);
  const Locate_information* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Locate_information>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Locate_information)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Locate_information)
    MergeFrom(*source);
  }
}

void Locate_information::MergeFrom(const Locate_information& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Locate_information)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      locate_x_ = from.locate_x_;
    }
    if (cached_has_bits & 0x00000002u) {
      locate_y_ = from.locate_y_;
    }
    if (cached_has_bits & 0x00000004u) {
      locate_angle_ = from.locate_angle_;
    }
    if (cached_has_bits & 0x00000008u) {
      locate_length_ = from.locate_length_;
    }
    if (cached_has_bits & 0x00000010u) {
      locate_width_ = from.locate_width_;
    }
    if (cached_has_bits & 0x00000020u) {
      locate_height_ = from.locate_height_;
    }
    if (cached_has_bits & 0x00000040u) {
      locate_wheel_base_ = from.locate_wheel_base_;
    }
    if (cached_has_bits & 0x00000080u) {
      locate_wheel_width_ = from.locate_wheel_width_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00000100u) {
    set_locate_correct(from.locate_correct());
  }
}

void Locate_information::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Locate_information)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void Locate_information::Swap(Locate_information* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Locate_information::InternalSwap(Locate_information* other) {
  using std::swap;
  swap(locate_x_, other->locate_x_);
  swap(locate_y_, other->locate_y_);
  swap(locate_angle_, other->locate_angle_);
  swap(locate_length_, other->locate_length_);
  swap(locate_width_, other->locate_width_);
  swap(locate_height_, other->locate_height_);
  swap(locate_wheel_base_, other->locate_wheel_base_);
  swap(locate_wheel_width_, other->locate_wheel_width_);
  swap(locate_correct_, other->locate_correct_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Locate_information::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Car_info::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Car_info::kCarLengthFieldNumber;
const int Car_info::kCarWidthFieldNumber;
const int Car_info::kCarHeightFieldNumber;
const int Car_info::kLicenseFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Car_info::Car_info()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Car_info)
}
Car_info::Car_info(const Car_info& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  license_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_license()) {
    license_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.license_);
  }
  ::memcpy(&car_length_, &from.car_length_,
    static_cast<size_t>(reinterpret_cast<char*>(&car_height_) -
    reinterpret_cast<char*>(&car_length_)) + sizeof(car_height_));
  // @@protoc_insertion_point(copy_constructor:message.Car_info)
}

void Car_info::SharedCtor() {
  _cached_size_ = 0;
  license_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&car_length_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&car_height_) -
      reinterpret_cast<char*>(&car_length_)) + sizeof(car_height_));
}

Car_info::~Car_info() {
  // @@protoc_insertion_point(destructor:message.Car_info)
  SharedDtor();
}

void Car_info::SharedDtor() {
  license_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Car_info::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Car_info::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Car_info& Car_info::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsCar_info();
  return *internal_default_instance();
}

Car_info* Car_info::New(::google::protobuf::Arena* arena) const {
  Car_info* n = new Car_info;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Car_info::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Car_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(!license_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*license_.UnsafeRawStringPointer())->clear();
  }
  if (cached_has_bits & 14u) {
    ::memset(&car_length_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&car_height_) -
        reinterpret_cast<char*>(&car_length_)) + sizeof(car_height_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Car_info::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Car_info)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional float car_length = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(13u /* 13 & 0xFF */)) {
          set_has_car_length();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &car_length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float car_width = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(21u /* 21 & 0xFF */)) {
          set_has_car_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &car_width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float car_height = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(29u /* 29 & 0xFF */)) {
          set_has_car_height();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &car_height_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string license = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_license()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->license().data(), static_cast<int>(this->license().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "message.Car_info.license");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Car_info)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Car_info)
  return false;
#undef DO_
}

void Car_info::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Car_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float car_length = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(1, this->car_length(), output);
  }

  // optional float car_width = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->car_width(), output);
  }

  // optional float car_height = 3;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(3, this->car_height(), output);
  }

  // optional string license = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->license().data(), static_cast<int>(this->license().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Car_info.license");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->license(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Car_info)
}

::google::protobuf::uint8* Car_info::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Car_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float car_length = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(1, this->car_length(), target);
  }

  // optional float car_width = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(2, this->car_width(), target);
  }

  // optional float car_height = 3;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(3, this->car_height(), target);
  }

  // optional string license = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->license().data(), static_cast<int>(this->license().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Car_info.license");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->license(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Car_info)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 15u) {
    // optional string license = 4;
    if (has_license()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->license());
    }

    // optional float car_length = 1;
    if (has_car_length()) {
      total_size += 1 + 4;
    }

    // optional float car_width = 2;
    if (has_car_width()) {
      total_size += 1 + 4;
    }

    // optional float car_height = 3;
    if (has_car_height()) {
      total_size += 1 + 4;
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Car_info::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Car_info)
  GOOGLE_DCHECK_NE(&from, this);
  const Car_info* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Car_info>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Car_info)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Car_info)
    MergeFrom(*source);
  }
}

void Car_info::MergeFrom(const Car_info& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Car_info)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_license();
      license_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.license_);
    }
    if (cached_has_bits & 0x00000002u) {
      car_length_ = from.car_length_;
    }
    if (cached_has_bits & 0x00000004u) {
      car_width_ = from.car_width_;
    }
    if (cached_has_bits & 0x00000008u) {
      car_height_ = from.car_height_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Car_info::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Car_info)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void Car_info::Swap(Car_info* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Car_info::InternalSwap(Car_info* other) {
  using std::swap;
  license_.Swap(&other->license_);
  swap(car_length_, other->car_length_);
  swap(car_width_, other->car_width_);
  swap(car_height_, other->car_height_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Car_info::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void Parkspace_info::InitAsDefaultInstance() {
  ::message::_Parkspace_info_default_instance_._instance.get_mutable()->car_info_ = const_cast< ::message::Car_info*>(
      ::message::Car_info::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Parkspace_info::kParkspaceIdFieldNumber;
const int Parkspace_info::kIndexFieldNumber;
const int Parkspace_info::kDirectionFieldNumber;
const int Parkspace_info::kFloorFieldNumber;
const int Parkspace_info::kLengthFieldNumber;
const int Parkspace_info::kWidthFieldNumber;
const int Parkspace_info::kHeightFieldNumber;
const int Parkspace_info::kParkspaceStatusFieldNumber;
const int Parkspace_info::kCarInfoFieldNumber;
const int Parkspace_info::kEntryTimeFieldNumber;
const int Parkspace_info::kLeaveTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Parkspace_info::Parkspace_info()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_message_5fbase_2eproto::InitDefaultsParkspace_info();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:message.Parkspace_info)
}
Parkspace_info::Parkspace_info(const Parkspace_info& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  entry_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_entry_time()) {
    entry_time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entry_time_);
  }
  leave_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_leave_time()) {
    leave_time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.leave_time_);
  }
  if (from.has_car_info()) {
    car_info_ = new ::message::Car_info(*from.car_info_);
  } else {
    car_info_ = NULL;
  }
  ::memcpy(&parkspace_id_, &from.parkspace_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&direction_) -
    reinterpret_cast<char*>(&parkspace_id_)) + sizeof(direction_));
  // @@protoc_insertion_point(copy_constructor:message.Parkspace_info)
}

void Parkspace_info::SharedCtor() {
  _cached_size_ = 0;
  entry_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  leave_time_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&car_info_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&parkspace_status_) -
      reinterpret_cast<char*>(&car_info_)) + sizeof(parkspace_status_));
  direction_ = 1;
}

Parkspace_info::~Parkspace_info() {
  // @@protoc_insertion_point(destructor:message.Parkspace_info)
  SharedDtor();
}

void Parkspace_info::SharedDtor() {
  entry_time_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  leave_time_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete car_info_;
}

void Parkspace_info::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Parkspace_info::descriptor() {
  ::protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Parkspace_info& Parkspace_info::default_instance() {
  ::protobuf_message_5fbase_2eproto::InitDefaultsParkspace_info();
  return *internal_default_instance();
}

Parkspace_info* Parkspace_info::New(::google::protobuf::Arena* arena) const {
  Parkspace_info* n = new Parkspace_info;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Parkspace_info::Clear() {
// @@protoc_insertion_point(message_clear_start:message.Parkspace_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(!entry_time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*entry_time_.UnsafeRawStringPointer())->clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(!leave_time_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*leave_time_.UnsafeRawStringPointer())->clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(car_info_ != NULL);
      car_info_->Clear();
    }
  }
  if (cached_has_bits & 248u) {
    ::memset(&parkspace_id_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&width_) -
        reinterpret_cast<char*>(&parkspace_id_)) + sizeof(width_));
  }
  if (cached_has_bits & 1792u) {
    ::memset(&height_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&parkspace_status_) -
        reinterpret_cast<char*>(&height_)) + sizeof(parkspace_status_));
    direction_ = 1;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Parkspace_info::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:message.Parkspace_info)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 parkspace_id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_parkspace_id();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &parkspace_id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 index = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_index();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &index_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Direction direction = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Direction_IsValid(value)) {
            set_direction(static_cast< ::message::Direction >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                3, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 floor = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_floor();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &floor_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float length = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(45u /* 45 & 0xFF */)) {
          set_has_length();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float width = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(53u /* 53 & 0xFF */)) {
          set_has_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional float height = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(61u /* 61 & 0xFF */)) {
          set_has_height();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &height_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Parkspace_status parkspace_status = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::message::Parkspace_status_IsValid(value)) {
            set_parkspace_status(static_cast< ::message::Parkspace_status >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                8, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .message.Car_info car_info = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_car_info()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string entry_time = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entry_time()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->entry_time().data(), static_cast<int>(this->entry_time().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "message.Parkspace_info.entry_time");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string leave_time = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_leave_time()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->leave_time().data(), static_cast<int>(this->leave_time().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "message.Parkspace_info.leave_time");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:message.Parkspace_info)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:message.Parkspace_info)
  return false;
#undef DO_
}

void Parkspace_info::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:message.Parkspace_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 parkspace_id = 1;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->parkspace_id(), output);
  }

  // optional int32 index = 2;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->index(), output);
  }

  // optional .message.Direction direction = 3;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      3, this->direction(), output);
  }

  // optional int32 floor = 4;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->floor(), output);
  }

  // optional float length = 5;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->length(), output);
  }

  // optional float width = 6;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->width(), output);
  }

  // optional float height = 7;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->height(), output);
  }

  // optional .message.Parkspace_status parkspace_status = 8;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      8, this->parkspace_status(), output);
  }

  // optional .message.Car_info car_info = 9;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, *this->car_info_, output);
  }

  // optional string entry_time = 10;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->entry_time().data(), static_cast<int>(this->entry_time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Parkspace_info.entry_time");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      10, this->entry_time(), output);
  }

  // optional string leave_time = 11;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->leave_time().data(), static_cast<int>(this->leave_time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Parkspace_info.leave_time");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->leave_time(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:message.Parkspace_info)
}

::google::protobuf::uint8* Parkspace_info::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:message.Parkspace_info)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 parkspace_id = 1;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->parkspace_id(), target);
  }

  // optional int32 index = 2;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->index(), target);
  }

  // optional .message.Direction direction = 3;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      3, this->direction(), target);
  }

  // optional int32 floor = 4;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->floor(), target);
  }

  // optional float length = 5;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->length(), target);
  }

  // optional float width = 6;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->width(), target);
  }

  // optional float height = 7;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->height(), target);
  }

  // optional .message.Parkspace_status parkspace_status = 8;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      8, this->parkspace_status(), target);
  }

  // optional .message.Car_info car_info = 9;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, *this->car_info_, deterministic, target);
  }

  // optional string entry_time = 10;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->entry_time().data(), static_cast<int>(this->entry_time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Parkspace_info.entry_time");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        10, this->entry_time(), target);
  }

  // optional string leave_time = 11;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->leave_time().data(), static_cast<int>(this->leave_time().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "message.Parkspace_info.leave_time");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        11, this->leave_time(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:message.Parkspace_info)
  return target;
}

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

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional string entry_time = 10;
    if (has_entry_time()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->entry_time());
    }

    // optional string leave_time = 11;
    if (has_leave_time()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->leave_time());
    }

    // optional .message.Car_info car_info = 9;
    if (has_car_info()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->car_info_);
    }

    // optional int32 parkspace_id = 1;
    if (has_parkspace_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->parkspace_id());
    }

    // optional int32 index = 2;
    if (has_index()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->index());
    }

    // optional int32 floor = 4;
    if (has_floor()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->floor());
    }

    // optional float length = 5;
    if (has_length()) {
      total_size += 1 + 4;
    }

    // optional float width = 6;
    if (has_width()) {
      total_size += 1 + 4;
    }

  }
  if (_has_bits_[8 / 32] & 1792u) {
    // optional float height = 7;
    if (has_height()) {
      total_size += 1 + 4;
    }

    // optional .message.Parkspace_status parkspace_status = 8;
    if (has_parkspace_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkspace_status());
    }

    // optional .message.Direction direction = 3;
    if (has_direction()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->direction());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Parkspace_info::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:message.Parkspace_info)
  GOOGLE_DCHECK_NE(&from, this);
  const Parkspace_info* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Parkspace_info>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:message.Parkspace_info)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:message.Parkspace_info)
    MergeFrom(*source);
  }
}

void Parkspace_info::MergeFrom(const Parkspace_info& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:message.Parkspace_info)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_entry_time();
      entry_time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entry_time_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_leave_time();
      leave_time_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.leave_time_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_car_info()->::message::Car_info::MergeFrom(from.car_info());
    }
    if (cached_has_bits & 0x00000008u) {
      parkspace_id_ = from.parkspace_id_;
    }
    if (cached_has_bits & 0x00000010u) {
      index_ = from.index_;
    }
    if (cached_has_bits & 0x00000020u) {
      floor_ = from.floor_;
    }
    if (cached_has_bits & 0x00000040u) {
      length_ = from.length_;
    }
    if (cached_has_bits & 0x00000080u) {
      width_ = from.width_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 1792u) {
    if (cached_has_bits & 0x00000100u) {
      height_ = from.height_;
    }
    if (cached_has_bits & 0x00000200u) {
      parkspace_status_ = from.parkspace_status_;
    }
    if (cached_has_bits & 0x00000400u) {
      direction_ = from.direction_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Parkspace_info::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:message.Parkspace_info)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

void Parkspace_info::Swap(Parkspace_info* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Parkspace_info::InternalSwap(Parkspace_info* other) {
  using std::swap;
  entry_time_.Swap(&other->entry_time_);
  leave_time_.Swap(&other->leave_time_);
  swap(car_info_, other->car_info_);
  swap(parkspace_id_, other->parkspace_id_);
  swap(index_, other->index_);
  swap(floor_, other->floor_);
  swap(length_, other->length_);
  swap(width_, other->width_);
  swap(height_, other->height_);
  swap(parkspace_status_, other->parkspace_status_);
  swap(direction_, other->direction_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Parkspace_info::GetMetadata() const {
  protobuf_message_5fbase_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_message_5fbase_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace message

// @@protoc_insertion_point(global_scope)
