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

#include "cube.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CladRect_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CubeConnectionLost_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomBoxDefinition_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomCubeDefinition_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CustomWallDefinition_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectAvailable_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectConnectionState_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectMoved_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectStoppedMoving_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectTapped_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ObjectUpAxisChanged_cube_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_messages_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PoseStruct_messages_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_response_5fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ResponseStatus_response_5fstatus_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_cube_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RobotObservedObject_cube_2eproto;
namespace Anki {
namespace Vector {
namespace external_interface {
class ConnectCubeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConnectCubeRequest> _instance;
} _ConnectCubeRequest_default_instance_;
class ConnectCubeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConnectCubeResponse> _instance;
} _ConnectCubeResponse_default_instance_;
class CubesAvailableRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CubesAvailableRequest> _instance;
} _CubesAvailableRequest_default_instance_;
class CubesAvailableResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CubesAvailableResponse> _instance;
} _CubesAvailableResponse_default_instance_;
class DisconnectCubeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DisconnectCubeRequest> _instance;
} _DisconnectCubeRequest_default_instance_;
class DisconnectCubeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DisconnectCubeResponse> _instance;
} _DisconnectCubeResponse_default_instance_;
class FlashCubeLightsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FlashCubeLightsRequest> _instance;
} _FlashCubeLightsRequest_default_instance_;
class FlashCubeLightsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<FlashCubeLightsResponse> _instance;
} _FlashCubeLightsResponse_default_instance_;
class ForgetPreferredCubeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ForgetPreferredCubeRequest> _instance;
} _ForgetPreferredCubeRequest_default_instance_;
class ForgetPreferredCubeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ForgetPreferredCubeResponse> _instance;
} _ForgetPreferredCubeResponse_default_instance_;
class SetPreferredCubeRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetPreferredCubeRequest> _instance;
} _SetPreferredCubeRequest_default_instance_;
class SetPreferredCubeResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetPreferredCubeResponse> _instance;
} _SetPreferredCubeResponse_default_instance_;
class SetCubeLightsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetCubeLightsRequest> _instance;
} _SetCubeLightsRequest_default_instance_;
class SetCubeLightsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SetCubeLightsResponse> _instance;
} _SetCubeLightsResponse_default_instance_;
class ObjectAvailableDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectAvailable> _instance;
} _ObjectAvailable_default_instance_;
class ObjectConnectionStateDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectConnectionState> _instance;
} _ObjectConnectionState_default_instance_;
class ObjectMovedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectMoved> _instance;
} _ObjectMoved_default_instance_;
class ObjectStoppedMovingDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectStoppedMoving> _instance;
} _ObjectStoppedMoving_default_instance_;
class ObjectUpAxisChangedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectUpAxisChanged> _instance;
} _ObjectUpAxisChanged_default_instance_;
class ObjectTappedDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectTapped> _instance;
} _ObjectTapped_default_instance_;
class RobotObservedObjectDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RobotObservedObject> _instance;
} _RobotObservedObject_default_instance_;
class CubeConnectionLostDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CubeConnectionLost> _instance;
} _CubeConnectionLost_default_instance_;
class DeleteCustomObjectsRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DeleteCustomObjectsRequest> _instance;
} _DeleteCustomObjectsRequest_default_instance_;
class DeleteCustomObjectsResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DeleteCustomObjectsResponse> _instance;
} _DeleteCustomObjectsResponse_default_instance_;
class CreateFixedCustomObjectRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CreateFixedCustomObjectRequest> _instance;
} _CreateFixedCustomObjectRequest_default_instance_;
class CreateFixedCustomObjectResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CreateFixedCustomObjectResponse> _instance;
} _CreateFixedCustomObjectResponse_default_instance_;
class CustomBoxDefinitionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CustomBoxDefinition> _instance;
} _CustomBoxDefinition_default_instance_;
class CustomCubeDefinitionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CustomCubeDefinition> _instance;
} _CustomCubeDefinition_default_instance_;
class CustomWallDefinitionDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CustomWallDefinition> _instance;
} _CustomWallDefinition_default_instance_;
class DefineCustomObjectRequestDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DefineCustomObjectRequest> _instance;
  const ::Anki::Vector::external_interface::CustomBoxDefinition* custom_box_;
  const ::Anki::Vector::external_interface::CustomCubeDefinition* custom_cube_;
  const ::Anki::Vector::external_interface::CustomWallDefinition* custom_wall_;
} _DefineCustomObjectRequest_default_instance_;
class DefineCustomObjectResponseDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DefineCustomObjectResponse> _instance;
} _DefineCustomObjectResponse_default_instance_;
class ObjectEventDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ObjectEvent> _instance;
  const ::Anki::Vector::external_interface::ObjectAvailable* object_available_;
  const ::Anki::Vector::external_interface::ObjectConnectionState* object_connection_state_;
  const ::Anki::Vector::external_interface::ObjectMoved* object_moved_;
  const ::Anki::Vector::external_interface::ObjectStoppedMoving* object_stopped_moving_;
  const ::Anki::Vector::external_interface::ObjectUpAxisChanged* object_up_axis_changed_;
  const ::Anki::Vector::external_interface::ObjectTapped* object_tapped_;
  const ::Anki::Vector::external_interface::RobotObservedObject* robot_observed_object_;
  const ::Anki::Vector::external_interface::CubeConnectionLost* cube_connection_lost_;
} _ObjectEvent_default_instance_;
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
static void InitDefaultsscc_info_ConnectCubeRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ConnectCubeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ConnectCubeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ConnectCubeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ConnectCubeResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ConnectCubeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ConnectCubeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ConnectCubeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ConnectCubeResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ConnectCubeResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CreateFixedCustomObjectRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CreateFixedCustomObjectRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CreateFixedCustomObjectRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CreateFixedCustomObjectRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CreateFixedCustomObjectRequest_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CreateFixedCustomObjectRequest_cube_2eproto}, {
      &scc_info_PoseStruct_messages_2eproto.base,}};

static void InitDefaultsscc_info_CreateFixedCustomObjectResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CreateFixedCustomObjectResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CreateFixedCustomObjectResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CreateFixedCustomObjectResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CreateFixedCustomObjectResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CreateFixedCustomObjectResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CubeConnectionLost_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CubeConnectionLost_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CubeConnectionLost();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CubeConnectionLost::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CubesAvailableRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CubesAvailableRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CubesAvailableRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CubesAvailableRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CubesAvailableResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CubesAvailableResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CubesAvailableResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CubesAvailableResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CubesAvailableResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CubesAvailableResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_CustomBoxDefinition_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CustomBoxDefinition_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CustomBoxDefinition();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CustomBoxDefinition::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CustomCubeDefinition_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CustomCubeDefinition_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CustomCubeDefinition();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CustomCubeDefinition::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_CustomWallDefinition_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_CustomWallDefinition_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::CustomWallDefinition();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::CustomWallDefinition::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DefineCustomObjectRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DefineCustomObjectRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DefineCustomObjectRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DefineCustomObjectRequest::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_DefineCustomObjectRequest_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_DefineCustomObjectRequest_cube_2eproto}, {
      &scc_info_CustomBoxDefinition_cube_2eproto.base,
      &scc_info_CustomCubeDefinition_cube_2eproto.base,
      &scc_info_CustomWallDefinition_cube_2eproto.base,}};

static void InitDefaultsscc_info_DefineCustomObjectResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DefineCustomObjectResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DefineCustomObjectResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DefineCustomObjectResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DefineCustomObjectResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DefineCustomObjectResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DeleteCustomObjectsRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DeleteCustomObjectsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DeleteCustomObjectsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DeleteCustomObjectsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DeleteCustomObjectsResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DeleteCustomObjectsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DeleteCustomObjectsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DeleteCustomObjectsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DeleteCustomObjectsResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DeleteCustomObjectsResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_DisconnectCubeRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DisconnectCubeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DisconnectCubeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DisconnectCubeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_DisconnectCubeResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_DisconnectCubeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::DisconnectCubeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::DisconnectCubeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DisconnectCubeResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DisconnectCubeResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_FlashCubeLightsRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FlashCubeLightsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FlashCubeLightsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FlashCubeLightsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_FlashCubeLightsResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_FlashCubeLightsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::FlashCubeLightsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::FlashCubeLightsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_FlashCubeLightsResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_FlashCubeLightsResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_ForgetPreferredCubeRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ForgetPreferredCubeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ForgetPreferredCubeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ForgetPreferredCubeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ForgetPreferredCubeResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ForgetPreferredCubeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ForgetPreferredCubeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ForgetPreferredCubeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ForgetPreferredCubeResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ForgetPreferredCubeResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_ObjectAvailable_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectAvailable_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectAvailable();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectAvailable::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ObjectConnectionState_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectConnectionState_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectConnectionState();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectConnectionState::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ObjectEvent_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectEvent_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectEvent();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectEvent::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<8> scc_info_ObjectEvent_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 8, 0, InitDefaultsscc_info_ObjectEvent_cube_2eproto}, {
      &scc_info_ObjectAvailable_cube_2eproto.base,
      &scc_info_ObjectConnectionState_cube_2eproto.base,
      &scc_info_ObjectMoved_cube_2eproto.base,
      &scc_info_ObjectStoppedMoving_cube_2eproto.base,
      &scc_info_ObjectUpAxisChanged_cube_2eproto.base,
      &scc_info_ObjectTapped_cube_2eproto.base,
      &scc_info_RobotObservedObject_cube_2eproto.base,
      &scc_info_CubeConnectionLost_cube_2eproto.base,}};

static void InitDefaultsscc_info_ObjectMoved_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectMoved_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectMoved();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectMoved::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ObjectStoppedMoving_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectStoppedMoving_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectStoppedMoving();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectStoppedMoving::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ObjectTapped_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectTapped_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectTapped();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectTapped::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_ObjectUpAxisChanged_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_ObjectUpAxisChanged_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::ObjectUpAxisChanged();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::ObjectUpAxisChanged::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_RobotObservedObject_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_RobotObservedObject_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::RobotObservedObject();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::RobotObservedObject::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RobotObservedObject_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RobotObservedObject_cube_2eproto}, {
      &scc_info_CladRect_messages_2eproto.base,
      &scc_info_PoseStruct_messages_2eproto.base,}};

static void InitDefaultsscc_info_SetCubeLightsRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetCubeLightsRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetCubeLightsRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetCubeLightsRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetCubeLightsResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetCubeLightsResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetCubeLightsResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetCubeLightsResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetCubeLightsResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SetCubeLightsResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static void InitDefaultsscc_info_SetPreferredCubeRequest_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetPreferredCubeRequest_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetPreferredCubeRequest();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetPreferredCubeRequest::InitAsDefaultInstance();
}

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

static void InitDefaultsscc_info_SetPreferredCubeResponse_cube_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::Anki::Vector::external_interface::_SetPreferredCubeResponse_default_instance_;
    new (ptr) ::Anki::Vector::external_interface::SetPreferredCubeResponse();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Anki::Vector::external_interface::SetPreferredCubeResponse::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SetPreferredCubeResponse_cube_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SetPreferredCubeResponse_cube_2eproto}, {
      &scc_info_ResponseStatus_response_5fstatus_2eproto.base,}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_cube_2eproto[32];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_cube_2eproto[8];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_cube_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_cube_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeResponse, success_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeResponse, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ConnectCubeResponse, factory_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubesAvailableRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubesAvailableResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubesAvailableResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubesAvailableResponse, factory_ids_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisconnectCubeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisconnectCubeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DisconnectCubeResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FlashCubeLightsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FlashCubeLightsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::FlashCubeLightsResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ForgetPreferredCubeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ForgetPreferredCubeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ForgetPreferredCubeResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetPreferredCubeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetPreferredCubeRequest, factory_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetPreferredCubeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetPreferredCubeResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, on_color_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, off_color_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, on_period_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, off_period_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, transition_on_period_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, transition_off_period_ms_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, offset_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, relative_to_x_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, relative_to_y_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, rotate_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsRequest, make_relative_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::SetCubeLightsResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectAvailable, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectAvailable, factory_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectConnectionState, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectConnectionState, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectConnectionState, factory_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectConnectionState, object_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectConnectionState, connected_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectMoved, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectMoved, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectMoved, object_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectStoppedMoving, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectStoppedMoving, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectStoppedMoving, object_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectUpAxisChanged, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectUpAxisChanged, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectUpAxisChanged, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectUpAxisChanged, up_axis_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectTapped, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectTapped, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectTapped, object_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, timestamp_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, object_family_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, object_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, object_id_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, img_rect_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, top_face_orientation_rad_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::RobotObservedObject, is_active_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CubeConnectionLost, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeleteCustomObjectsRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeleteCustomObjectsRequest, mode_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeleteCustomObjectsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DeleteCustomObjectsResponse, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest, pose_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest, x_size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest, y_size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest, z_size_mm_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CreateFixedCustomObjectResponse, object_id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_front_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_back_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_top_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_bottom_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_left_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_right_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, x_size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, y_size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, z_size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_width_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomBoxDefinition, marker_height_mm_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomCubeDefinition, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomCubeDefinition, marker_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomCubeDefinition, size_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomCubeDefinition, marker_width_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomCubeDefinition, marker_height_mm_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, marker_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, width_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, height_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, marker_width_mm_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::CustomWallDefinition, marker_height_mm_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectRequest, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectRequest, custom_type_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectRequest, is_unique_),
  offsetof(::Anki::Vector::external_interface::DefineCustomObjectRequestDefaultTypeInternal, custom_box_),
  offsetof(::Anki::Vector::external_interface::DefineCustomObjectRequestDefaultTypeInternal, custom_cube_),
  offsetof(::Anki::Vector::external_interface::DefineCustomObjectRequestDefaultTypeInternal, custom_wall_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectRequest, custom_object_definition_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectResponse, status_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::DefineCustomObjectResponse, success_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectEvent, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectEvent, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_available_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_connection_state_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_moved_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_stopped_moving_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_up_axis_changed_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, object_tapped_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, robot_observed_object_),
  offsetof(::Anki::Vector::external_interface::ObjectEventDefaultTypeInternal, cube_connection_lost_),
  PROTOBUF_FIELD_OFFSET(::Anki::Vector::external_interface::ObjectEvent, object_event_type_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Anki::Vector::external_interface::ConnectCubeRequest)},
  { 5, -1, sizeof(::Anki::Vector::external_interface::ConnectCubeResponse)},
  { 14, -1, sizeof(::Anki::Vector::external_interface::CubesAvailableRequest)},
  { 19, -1, sizeof(::Anki::Vector::external_interface::CubesAvailableResponse)},
  { 26, -1, sizeof(::Anki::Vector::external_interface::DisconnectCubeRequest)},
  { 31, -1, sizeof(::Anki::Vector::external_interface::DisconnectCubeResponse)},
  { 37, -1, sizeof(::Anki::Vector::external_interface::FlashCubeLightsRequest)},
  { 42, -1, sizeof(::Anki::Vector::external_interface::FlashCubeLightsResponse)},
  { 48, -1, sizeof(::Anki::Vector::external_interface::ForgetPreferredCubeRequest)},
  { 53, -1, sizeof(::Anki::Vector::external_interface::ForgetPreferredCubeResponse)},
  { 59, -1, sizeof(::Anki::Vector::external_interface::SetPreferredCubeRequest)},
  { 65, -1, sizeof(::Anki::Vector::external_interface::SetPreferredCubeResponse)},
  { 71, -1, sizeof(::Anki::Vector::external_interface::SetCubeLightsRequest)},
  { 88, -1, sizeof(::Anki::Vector::external_interface::SetCubeLightsResponse)},
  { 94, -1, sizeof(::Anki::Vector::external_interface::ObjectAvailable)},
  { 100, -1, sizeof(::Anki::Vector::external_interface::ObjectConnectionState)},
  { 109, -1, sizeof(::Anki::Vector::external_interface::ObjectMoved)},
  { 116, -1, sizeof(::Anki::Vector::external_interface::ObjectStoppedMoving)},
  { 123, -1, sizeof(::Anki::Vector::external_interface::ObjectUpAxisChanged)},
  { 131, -1, sizeof(::Anki::Vector::external_interface::ObjectTapped)},
  { 138, -1, sizeof(::Anki::Vector::external_interface::RobotObservedObject)},
  { 151, -1, sizeof(::Anki::Vector::external_interface::CubeConnectionLost)},
  { 156, -1, sizeof(::Anki::Vector::external_interface::DeleteCustomObjectsRequest)},
  { 162, -1, sizeof(::Anki::Vector::external_interface::DeleteCustomObjectsResponse)},
  { 168, -1, sizeof(::Anki::Vector::external_interface::CreateFixedCustomObjectRequest)},
  { 177, -1, sizeof(::Anki::Vector::external_interface::CreateFixedCustomObjectResponse)},
  { 184, -1, sizeof(::Anki::Vector::external_interface::CustomBoxDefinition)},
  { 200, -1, sizeof(::Anki::Vector::external_interface::CustomCubeDefinition)},
  { 209, -1, sizeof(::Anki::Vector::external_interface::CustomWallDefinition)},
  { 219, -1, sizeof(::Anki::Vector::external_interface::DefineCustomObjectRequest)},
  { 230, -1, sizeof(::Anki::Vector::external_interface::DefineCustomObjectResponse)},
  { 237, -1, sizeof(::Anki::Vector::external_interface::ObjectEvent)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ConnectCubeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ConnectCubeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CubesAvailableRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CubesAvailableResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DisconnectCubeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DisconnectCubeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FlashCubeLightsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_FlashCubeLightsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ForgetPreferredCubeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ForgetPreferredCubeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetPreferredCubeRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetPreferredCubeResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetCubeLightsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_SetCubeLightsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectAvailable_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectConnectionState_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectMoved_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectStoppedMoving_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectUpAxisChanged_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectTapped_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_RobotObservedObject_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CubeConnectionLost_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DeleteCustomObjectsRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DeleteCustomObjectsResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CreateFixedCustomObjectRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CreateFixedCustomObjectResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CustomBoxDefinition_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CustomCubeDefinition_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_CustomWallDefinition_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DefineCustomObjectRequest_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_DefineCustomObjectResponse_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::Anki::Vector::external_interface::_ObjectEvent_default_instance_),
};

const char descriptor_table_protodef_cube_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\ncube.proto\022\036Anki.Vector.external_inter"
  "face\032\016messages.proto\032\025response_status.pr"
  "oto\"\024\n\022ConnectCubeRequest\"\215\001\n\023ConnectCub"
  "eResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\022\017\n\007suc"
  "cess\030\002 \001(\010\022\021\n\tobject_id\030\003 \001(\r\022\022\n\nfactory"
  "_id\030\004 \001(\t\"\027\n\025CubesAvailableRequest\"m\n\026Cu"
  "besAvailableResponse\022>\n\006status\030\001 \001(\0132..A"
  "nki.Vector.external_interface.ResponseSt"
  "atus\022\023\n\013factory_ids\030\002 \003(\t\"\027\n\025DisconnectC"
  "ubeRequest\"X\n\026DisconnectCubeResponse\022>\n\006"
  "status\030\001 \001(\0132..Anki.Vector.external_inte"
  "rface.ResponseStatus\"\030\n\026FlashCubeLightsR"
  "equest\"Y\n\027FlashCubeLightsResponse\022>\n\006sta"
  "tus\030\001 \001(\0132..Anki.Vector.external_interfa"
  "ce.ResponseStatus\"\034\n\032ForgetPreferredCube"
  "Request\"]\n\033ForgetPreferredCubeResponse\022>"
  "\n\006status\030\001 \001(\0132..Anki.Vector.external_in"
  "terface.ResponseStatus\"-\n\027SetPreferredCu"
  "beRequest\022\022\n\nfactory_id\030\001 \001(\t\"Z\n\030SetPref"
  "erredCubeResponse\022>\n\006status\030\001 \001(\0132..Anki"
  ".Vector.external_interface.ResponseStatu"
  "s\"\260\003\n\024SetCubeLightsRequest\022\021\n\tobject_id\030"
  "\001 \001(\r\022\020\n\010on_color\030\002 \003(\r\022\021\n\toff_color\030\003 \003"
  "(\r\022\024\n\014on_period_ms\030\004 \003(\r\022\025\n\roff_period_m"
  "s\030\005 \003(\r\022\037\n\027transition_on_period_ms\030\006 \003(\r"
  "\022 \n\030transition_off_period_ms\030\007 \003(\r\022\016\n\006of"
  "fset\030\010 \003(\005\022\025\n\rrelative_to_x\030\t \001(\002\022\025\n\rrel"
  "ative_to_y\030\n \001(\002\022\016\n\006rotate\030\013 \001(\010\022\\\n\rmake"
  "_relative\030\014 \001(\0162E.Anki.Vector.external_i"
  "nterface.SetCubeLightsRequest.MakeRelati"
  "veMode\"D\n\020MakeRelativeMode\022\013\n\007UNKNOWN\020\000\022"
  "\007\n\003OFF\020\001\022\r\n\tBY_CORNER\020\002\022\013\n\007BY_SIDE\020\003\"W\n\025"
  "SetCubeLightsResponse\022>\n\006status\030\001 \001(\0132.."
  "Anki.Vector.external_interface.ResponseS"
  "tatus\"%\n\017ObjectAvailable\022\022\n\nfactory_id\030\001"
  " \001(\t\"\222\001\n\025ObjectConnectionState\022\021\n\tobject"
  "_id\030\001 \001(\r\022\022\n\nfactory_id\030\002 \001(\t\022\?\n\013object_"
  "type\030\003 \001(\0162*.Anki.Vector.external_interf"
  "ace.ObjectType\022\021\n\tconnected\030\004 \001(\010\"3\n\013Obj"
  "ectMoved\022\021\n\ttimestamp\030\001 \001(\r\022\021\n\tobject_id"
  "\030\002 \001(\r\";\n\023ObjectStoppedMoving\022\021\n\ttimesta"
  "mp\030\001 \001(\r\022\021\n\tobject_id\030\002 \001(\r\"t\n\023ObjectUpA"
  "xisChanged\022\021\n\ttimestamp\030\001 \001(\r\022\021\n\tobject_"
  "id\030\002 \001(\r\0227\n\007up_axis\030\003 \001(\0162&.Anki.Vector."
  "external_interface.UpAxis\"4\n\014ObjectTappe"
  "d\022\021\n\ttimestamp\030\001 \001(\r\022\021\n\tobject_id\030\002 \001(\r\""
  "\354\002\n\023RobotObservedObject\022\021\n\ttimestamp\030\001 \001"
  "(\r\022C\n\robject_family\030\002 \001(\0162,.Anki.Vector."
  "external_interface.ObjectFamily\022\?\n\013objec"
  "t_type\030\003 \001(\0162*.Anki.Vector.external_inte"
  "rface.ObjectType\022\021\n\tobject_id\030\004 \001(\005\022:\n\010i"
  "mg_rect\030\005 \001(\0132(.Anki.Vector.external_int"
  "erface.CladRect\0228\n\004pose\030\006 \001(\0132*.Anki.Vec"
  "tor.external_interface.PoseStruct\022 \n\030top"
  "_face_orientation_rad\030\007 \001(\002\022\021\n\tis_active"
  "\030\010 \001(\r\"\024\n\022CubeConnectionLost\"d\n\032DeleteCu"
  "stomObjectsRequest\022F\n\004mode\030\001 \001(\01628.Anki."
  "Vector.external_interface.CustomObjectDe"
  "letionMode\"]\n\033DeleteCustomObjectsRespons"
  "e\022>\n\006status\030\001 \001(\0132..Anki.Vector.external"
  "_interface.ResponseStatus\"\223\001\n\036CreateFixe"
  "dCustomObjectRequest\0228\n\004pose\030\001 \001(\0132*.Ank"
  "i.Vector.external_interface.PoseStruct\022\021"
  "\n\tx_size_mm\030\002 \001(\002\022\021\n\ty_size_mm\030\003 \001(\002\022\021\n\t"
  "z_size_mm\030\004 \001(\002\"t\n\037CreateFixedCustomObje"
  "ctResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector"
  ".external_interface.ResponseStatus\022\021\n\tob"
  "ject_id\030\002 \001(\r\"\272\004\n\023CustomBoxDefinition\022H\n"
  "\014marker_front\030\001 \001(\01622.Anki.Vector.extern"
  "al_interface.CustomObjectMarker\022G\n\013marke"
  "r_back\030\002 \001(\01622.Anki.Vector.external_inte"
  "rface.CustomObjectMarker\022F\n\nmarker_top\030\003"
  " \001(\01622.Anki.Vector.external_interface.Cu"
  "stomObjectMarker\022I\n\rmarker_bottom\030\004 \001(\0162"
  "2.Anki.Vector.external_interface.CustomO"
  "bjectMarker\022G\n\013marker_left\030\005 \001(\01622.Anki."
  "Vector.external_interface.CustomObjectMa"
  "rker\022H\n\014marker_right\030\006 \001(\01622.Anki.Vector"
  ".external_interface.CustomObjectMarker\022\021"
  "\n\tx_size_mm\030\007 \001(\002\022\021\n\ty_size_mm\030\010 \001(\002\022\021\n\t"
  "z_size_mm\030\t \001(\002\022\027\n\017marker_width_mm\030\n \001(\002"
  "\022\030\n\020marker_height_mm\030\013 \001(\002\"\236\001\n\024CustomCub"
  "eDefinition\022B\n\006marker\030\001 \001(\01622.Anki.Vecto"
  "r.external_interface.CustomObjectMarker\022"
  "\017\n\007size_mm\030\002 \001(\002\022\027\n\017marker_width_mm\030\003 \001("
  "\002\022\030\n\020marker_height_mm\030\004 \001(\002\"\262\001\n\024CustomWa"
  "llDefinition\022B\n\006marker\030\001 \001(\01622.Anki.Vect"
  "or.external_interface.CustomObjectMarker"
  "\022\020\n\010width_mm\030\002 \001(\002\022\021\n\theight_mm\030\003 \001(\002\022\027\n"
  "\017marker_width_mm\030\004 \001(\002\022\030\n\020marker_height_"
  "mm\030\005 \001(\002\"\360\002\n\031DefineCustomObjectRequest\022\?"
  "\n\013custom_type\030\001 \001(\0162*.Anki.Vector.extern"
  "al_interface.CustomType\022\021\n\tis_unique\030\002 \001"
  "(\010\022I\n\ncustom_box\030\003 \001(\01323.Anki.Vector.ext"
  "ernal_interface.CustomBoxDefinitionH\000\022K\n"
  "\013custom_cube\030\004 \001(\01324.Anki.Vector.externa"
  "l_interface.CustomCubeDefinitionH\000\022K\n\013cu"
  "stom_wall\030\005 \001(\01324.Anki.Vector.external_i"
  "nterface.CustomWallDefinitionH\000B\032\n\030custo"
  "m_object_definition\"m\n\032DefineCustomObjec"
  "tResponse\022>\n\006status\030\001 \001(\0132..Anki.Vector."
  "external_interface.ResponseStatus\022\017\n\007suc"
  "cess\030\002 \001(\010\"\254\005\n\013ObjectEvent\022K\n\020object_ava"
  "ilable\030\001 \001(\0132/.Anki.Vector.external_inte"
  "rface.ObjectAvailableH\000\022X\n\027object_connec"
  "tion_state\030\002 \001(\01325.Anki.Vector.external_"
  "interface.ObjectConnectionStateH\000\022C\n\014obj"
  "ect_moved\030\003 \001(\0132+.Anki.Vector.external_i"
  "nterface.ObjectMovedH\000\022T\n\025object_stopped"
  "_moving\030\004 \001(\01323.Anki.Vector.external_int"
  "erface.ObjectStoppedMovingH\000\022U\n\026object_u"
  "p_axis_changed\030\005 \001(\01323.Anki.Vector.exter"
  "nal_interface.ObjectUpAxisChangedH\000\022E\n\ro"
  "bject_tapped\030\006 \001(\0132,.Anki.Vector.externa"
  "l_interface.ObjectTappedH\000\022T\n\025robot_obse"
  "rved_object\030\007 \001(\01323.Anki.Vector.external"
  "_interface.RobotObservedObjectH\000\022R\n\024cube"
  "_connection_lost\030\010 \001(\01322.Anki.Vector.ext"
  "ernal_interface.CubeConnectionLostH\000B\023\n\021"
  "object_event_type*{\n\nObjectType\022\022\n\016INVAL"
  "ID_OBJECT\020\000\022\022\n\016UNKNOWN_OBJECT\020\001\022\024\n\020BLOCK"
  "_LIGHTCUBE1\020\002\022\021\n\rCHARGER_BASIC\020\006\022\034\n\030FIRS"
  "T_CUSTOM_OBJECT_TYPE\020\017*\320\003\n\nCustomType\022\027\n"
  "\023INVALID_CUSTOM_TYPE\020\000\022\022\n\016CUSTOM_TYPE_00"
  "\020\001\022\022\n\016CUSTOM_TYPE_01\020\002\022\022\n\016CUSTOM_TYPE_02"
  "\020\003\022\022\n\016CUSTOM_TYPE_03\020\004\022\022\n\016CUSTOM_TYPE_04"
  "\020\005\022\022\n\016CUSTOM_TYPE_05\020\006\022\022\n\016CUSTOM_TYPE_06"
  "\020\007\022\022\n\016CUSTOM_TYPE_07\020\010\022\022\n\016CUSTOM_TYPE_08"
  "\020\t\022\022\n\016CUSTOM_TYPE_09\020\n\022\022\n\016CUSTOM_TYPE_10"
  "\020\013\022\022\n\016CUSTOM_TYPE_11\020\014\022\022\n\016CUSTOM_TYPE_12"
  "\020\r\022\022\n\016CUSTOM_TYPE_13\020\016\022\022\n\016CUSTOM_TYPE_14"
  "\020\017\022\022\n\016CUSTOM_TYPE_15\020\020\022\022\n\016CUSTOM_TYPE_16"
  "\020\021\022\022\n\016CUSTOM_TYPE_17\020\022\022\022\n\016CUSTOM_TYPE_18"
  "\020\023\022\022\n\016CUSTOM_TYPE_19\020\024\022\025\n\021CUSTOM_TYPE_CO"
  "UNT\020\024\032\002\020\001*\216\001\n\014ObjectFamily\022\022\n\016INVALID_FA"
  "MILY\020\000\022\022\n\016UNKNOWN_FAMILY\020\001\022\t\n\005BLOCK\020\002\022\016\n"
  "\nLIGHT_CUBE\020\003\022\013\n\007CHARGER\020\004\022\021\n\rCUSTOM_OBJ"
  "ECT\020\007\022\027\n\023OBJECT_FAMILY_COUNT\020\007\032\002\020\001*\210\001\n\006U"
  "pAxis\022\020\n\014INVALID_AXIS\020\000\022\016\n\nX_NEGATIVE\020\001\022"
  "\016\n\nX_POSITIVE\020\002\022\016\n\nY_NEGATIVE\020\003\022\016\n\nY_POS"
  "ITIVE\020\004\022\016\n\nZ_NEGATIVE\020\005\022\016\n\nZ_POSITIVE\020\006\022"
  "\014\n\010NUM_AXES\020\007*P\n\017ObjectConstants\022\031\n\025OBJE"
  "CT_CONSTANTS_NULL\020\000\022\"\n\036FIXED_CUSTOM_WALL"
  "_THICKNESS_MM\020\n*\254\004\n\022CustomObjectMarker\022\031"
  "\n\025CUSTOM_MARKER_UNKNOWN\020\000\022\033\n\027CUSTOM_MARK"
  "ER_CIRCLES_2\020\001\022\033\n\027CUSTOM_MARKER_CIRCLES_"
  "3\020\002\022\033\n\027CUSTOM_MARKER_CIRCLES_4\020\003\022\033\n\027CUST"
  "OM_MARKER_CIRCLES_5\020\004\022\034\n\030CUSTOM_MARKER_D"
  "IAMONDS_2\020\005\022\034\n\030CUSTOM_MARKER_DIAMONDS_3\020"
  "\006\022\034\n\030CUSTOM_MARKER_DIAMONDS_4\020\007\022\034\n\030CUSTO"
  "M_MARKER_DIAMONDS_5\020\010\022\034\n\030CUSTOM_MARKER_H"
  "EXAGONS_2\020\t\022\034\n\030CUSTOM_MARKER_HEXAGONS_3\020"
  "\n\022\034\n\030CUSTOM_MARKER_HEXAGONS_4\020\013\022\034\n\030CUSTO"
  "M_MARKER_HEXAGONS_5\020\014\022\035\n\031CUSTOM_MARKER_T"
  "RIANGLES_2\020\r\022\035\n\031CUSTOM_MARKER_TRIANGLES_"
  "3\020\016\022\035\n\031CUSTOM_MARKER_TRIANGLES_4\020\017\022\035\n\031CU"
  "STOM_MARKER_TRIANGLES_5\020\020\022\027\n\023CUSTOM_MARK"
  "ER_COUNT\020\020\032\002\020\001*\244\001\n\030CustomObjectDeletionM"
  "ode\022\031\n\025DELETION_MASK_UNKNOWN\020\000\022&\n\"DELETI"
  "ON_MASK_FIXED_CUSTOM_OBJECTS\020\001\022\'\n#DELETI"
  "ON_MASK_CUSTOM_MARKER_OBJECTS\020\002\022\034\n\030DELET"
  "ION_MASK_ARCHETYPES\020\003B Z\036Anki.Vector.ext"
  "ernal_interfaceb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_cube_2eproto_deps[2] = {
  &::descriptor_table_messages_2eproto,
  &::descriptor_table_response_5fstatus_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_cube_2eproto_sccs[32] = {
  &scc_info_ConnectCubeRequest_cube_2eproto.base,
  &scc_info_ConnectCubeResponse_cube_2eproto.base,
  &scc_info_CreateFixedCustomObjectRequest_cube_2eproto.base,
  &scc_info_CreateFixedCustomObjectResponse_cube_2eproto.base,
  &scc_info_CubeConnectionLost_cube_2eproto.base,
  &scc_info_CubesAvailableRequest_cube_2eproto.base,
  &scc_info_CubesAvailableResponse_cube_2eproto.base,
  &scc_info_CustomBoxDefinition_cube_2eproto.base,
  &scc_info_CustomCubeDefinition_cube_2eproto.base,
  &scc_info_CustomWallDefinition_cube_2eproto.base,
  &scc_info_DefineCustomObjectRequest_cube_2eproto.base,
  &scc_info_DefineCustomObjectResponse_cube_2eproto.base,
  &scc_info_DeleteCustomObjectsRequest_cube_2eproto.base,
  &scc_info_DeleteCustomObjectsResponse_cube_2eproto.base,
  &scc_info_DisconnectCubeRequest_cube_2eproto.base,
  &scc_info_DisconnectCubeResponse_cube_2eproto.base,
  &scc_info_FlashCubeLightsRequest_cube_2eproto.base,
  &scc_info_FlashCubeLightsResponse_cube_2eproto.base,
  &scc_info_ForgetPreferredCubeRequest_cube_2eproto.base,
  &scc_info_ForgetPreferredCubeResponse_cube_2eproto.base,
  &scc_info_ObjectAvailable_cube_2eproto.base,
  &scc_info_ObjectConnectionState_cube_2eproto.base,
  &scc_info_ObjectEvent_cube_2eproto.base,
  &scc_info_ObjectMoved_cube_2eproto.base,
  &scc_info_ObjectStoppedMoving_cube_2eproto.base,
  &scc_info_ObjectTapped_cube_2eproto.base,
  &scc_info_ObjectUpAxisChanged_cube_2eproto.base,
  &scc_info_RobotObservedObject_cube_2eproto.base,
  &scc_info_SetCubeLightsRequest_cube_2eproto.base,
  &scc_info_SetCubeLightsResponse_cube_2eproto.base,
  &scc_info_SetPreferredCubeRequest_cube_2eproto.base,
  &scc_info_SetPreferredCubeResponse_cube_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_cube_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_cube_2eproto = {
  false, false, descriptor_table_protodef_cube_2eproto, "cube.proto", 6543,
  &descriptor_table_cube_2eproto_once, descriptor_table_cube_2eproto_sccs, descriptor_table_cube_2eproto_deps, 32, 2,
  schemas, file_default_instances, TableStruct_cube_2eproto::offsets,
  file_level_metadata_cube_2eproto, 32, file_level_enum_descriptors_cube_2eproto, file_level_service_descriptors_cube_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_cube_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_cube_2eproto)), true);
namespace Anki {
namespace Vector {
namespace external_interface {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SetCubeLightsRequest_MakeRelativeMode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[0];
}
bool SetCubeLightsRequest_MakeRelativeMode_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::UNKNOWN;
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::OFF;
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::BY_CORNER;
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::BY_SIDE;
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::MakeRelativeMode_MIN;
constexpr SetCubeLightsRequest_MakeRelativeMode SetCubeLightsRequest::MakeRelativeMode_MAX;
constexpr int SetCubeLightsRequest::MakeRelativeMode_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ObjectType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[1];
}
bool ObjectType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 6:
    case 15:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CustomType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[2];
}
bool CustomType_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:
    case 17:
    case 18:
    case 19:
    case 20:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ObjectFamily_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[3];
}
bool ObjectFamily_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 7:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* UpAxis_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[4];
}
bool UpAxis_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ObjectConstants_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[5];
}
bool ObjectConstants_IsValid(int value) {
  switch (value) {
    case 0:
    case 10:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CustomObjectMarker_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[6];
}
bool CustomObjectMarker_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 ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CustomObjectDeletionMode_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_cube_2eproto);
  return file_level_enum_descriptors_cube_2eproto[7];
}
bool CustomObjectDeletionMode_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}


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

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

ConnectCubeRequest::ConnectCubeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ConnectCubeRequest)
}
ConnectCubeRequest::ConnectCubeRequest(const ConnectCubeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ConnectCubeRequest)
}

void ConnectCubeRequest::SharedCtor() {
}

ConnectCubeRequest::~ConnectCubeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ConnectCubeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ConnectCubeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ConnectCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ConnectCubeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t ConnectCubeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ConnectCubeRequest)
  size_t total_size = 0;

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

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

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

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

}

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

void ConnectCubeRequest::CopyFrom(const ConnectCubeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ConnectCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void ConnectCubeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ConnectCubeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class ConnectCubeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const ConnectCubeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
ConnectCubeResponse::_Internal::status(const ConnectCubeResponse* msg) {
  return *msg->status_;
}
void ConnectCubeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
ConnectCubeResponse::ConnectCubeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ConnectCubeResponse)
}
ConnectCubeResponse::ConnectCubeResponse(const ConnectCubeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_factory_id().empty()) {
    factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_factory_id(),
      GetArena());
  }
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  ::memcpy(&success_, &from.success_,
    static_cast<size_t>(reinterpret_cast<char*>(&object_id_) -
    reinterpret_cast<char*>(&success_)) + sizeof(object_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ConnectCubeResponse)
}

void ConnectCubeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConnectCubeResponse_cube_2eproto.base);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&status_)) + sizeof(object_id_));
}

ConnectCubeResponse::~ConnectCubeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ConnectCubeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ConnectCubeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  factory_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete status_;
}

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


void ConnectCubeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ConnectCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
  ::memset(&success_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&success_)) + sizeof(object_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ConnectCubeResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool success = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 object_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string factory_id = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          auto str = _internal_mutable_factory_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.ConnectCubeResponse.factory_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool success = 2;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_success(), target);
  }

  // uint32 object_id = 3;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(3, this->_internal_object_id(), target);
  }

  // string factory_id = 4;
  if (this->factory_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_factory_id().data(), static_cast<int>(this->_internal_factory_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.ConnectCubeResponse.factory_id");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_factory_id(), target);
  }

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

size_t ConnectCubeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ConnectCubeResponse)
  size_t total_size = 0;

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

  // string factory_id = 4;
  if (this->factory_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_factory_id());
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool success = 2;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

  // uint32 object_id = 3;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

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

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

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

  if (from.factory_id().size() > 0) {
    _internal_set_factory_id(from._internal_factory_id());
  }
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
}

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

void ConnectCubeResponse::CopyFrom(const ConnectCubeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ConnectCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ConnectCubeResponse::InternalSwap(ConnectCubeResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  factory_id_.Swap(&other->factory_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ConnectCubeResponse, object_id_)
      + sizeof(ConnectCubeResponse::object_id_)
      - PROTOBUF_FIELD_OFFSET(ConnectCubeResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

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


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

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

CubesAvailableRequest::CubesAvailableRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CubesAvailableRequest)
}
CubesAvailableRequest::CubesAvailableRequest(const CubesAvailableRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CubesAvailableRequest)
}

void CubesAvailableRequest::SharedCtor() {
}

CubesAvailableRequest::~CubesAvailableRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CubesAvailableRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CubesAvailableRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CubesAvailableRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CubesAvailableRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t CubesAvailableRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CubesAvailableRequest)
  size_t total_size = 0;

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

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

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

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

}

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

void CubesAvailableRequest::CopyFrom(const CubesAvailableRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CubesAvailableRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void CubesAvailableResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CubesAvailableResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CubesAvailableResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CubesAvailableResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CubesAvailableResponse::_Internal::status(const CubesAvailableResponse* msg) {
  return *msg->status_;
}
void CubesAvailableResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CubesAvailableResponse::CubesAvailableResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  factory_ids_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CubesAvailableResponse)
}
CubesAvailableResponse::CubesAvailableResponse(const CubesAvailableResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      factory_ids_(from.factory_ids_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CubesAvailableResponse)
}

void CubesAvailableResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CubesAvailableResponse_cube_2eproto.base);
  status_ = nullptr;
}

CubesAvailableResponse::~CubesAvailableResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CubesAvailableResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CubesAvailableResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CubesAvailableResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CubesAvailableResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated string factory_ids = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_factory_ids();
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.CubesAvailableResponse.factory_ids"));
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // repeated string factory_ids = 2;
  for (int i = 0, n = this->_internal_factory_ids_size(); i < n; i++) {
    const auto& s = this->_internal_factory_ids(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.CubesAvailableResponse.factory_ids");
    target = stream->WriteString(2, s, target);
  }

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

size_t CubesAvailableResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CubesAvailableResponse)
  size_t total_size = 0;

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

  // repeated string factory_ids = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(factory_ids_.size());
  for (int i = 0, n = factory_ids_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      factory_ids_.Get(i));
  }

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  factory_ids_.MergeFrom(from.factory_ids_);
  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void CubesAvailableResponse::CopyFrom(const CubesAvailableResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CubesAvailableResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

DisconnectCubeRequest::DisconnectCubeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DisconnectCubeRequest)
}
DisconnectCubeRequest::DisconnectCubeRequest(const DisconnectCubeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DisconnectCubeRequest)
}

void DisconnectCubeRequest::SharedCtor() {
}

DisconnectCubeRequest::~DisconnectCubeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DisconnectCubeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DisconnectCubeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DisconnectCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* DisconnectCubeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t DisconnectCubeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DisconnectCubeRequest)
  size_t total_size = 0;

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

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

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

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

}

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

void DisconnectCubeRequest::CopyFrom(const DisconnectCubeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DisconnectCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void DisconnectCubeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DisconnectCubeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DisconnectCubeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DisconnectCubeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DisconnectCubeResponse::_Internal::status(const DisconnectCubeResponse* msg) {
  return *msg->status_;
}
void DisconnectCubeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DisconnectCubeResponse::DisconnectCubeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DisconnectCubeResponse)
}
DisconnectCubeResponse::DisconnectCubeResponse(const DisconnectCubeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DisconnectCubeResponse)
}

void DisconnectCubeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DisconnectCubeResponse_cube_2eproto.base);
  status_ = nullptr;
}

DisconnectCubeResponse::~DisconnectCubeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DisconnectCubeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DisconnectCubeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DisconnectCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t DisconnectCubeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DisconnectCubeResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void DisconnectCubeResponse::CopyFrom(const DisconnectCubeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DisconnectCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

FlashCubeLightsRequest::FlashCubeLightsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FlashCubeLightsRequest)
}
FlashCubeLightsRequest::FlashCubeLightsRequest(const FlashCubeLightsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FlashCubeLightsRequest)
}

void FlashCubeLightsRequest::SharedCtor() {
}

FlashCubeLightsRequest::~FlashCubeLightsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FlashCubeLightsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void FlashCubeLightsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FlashCubeLightsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* FlashCubeLightsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t FlashCubeLightsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FlashCubeLightsRequest)
  size_t total_size = 0;

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

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

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

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

}

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

void FlashCubeLightsRequest::CopyFrom(const FlashCubeLightsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FlashCubeLightsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void FlashCubeLightsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_FlashCubeLightsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class FlashCubeLightsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const FlashCubeLightsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
FlashCubeLightsResponse::_Internal::status(const FlashCubeLightsResponse* msg) {
  return *msg->status_;
}
void FlashCubeLightsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
FlashCubeLightsResponse::FlashCubeLightsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.FlashCubeLightsResponse)
}
FlashCubeLightsResponse::FlashCubeLightsResponse(const FlashCubeLightsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.FlashCubeLightsResponse)
}

void FlashCubeLightsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_FlashCubeLightsResponse_cube_2eproto.base);
  status_ = nullptr;
}

FlashCubeLightsResponse::~FlashCubeLightsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.FlashCubeLightsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void FlashCubeLightsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.FlashCubeLightsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t FlashCubeLightsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.FlashCubeLightsResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void FlashCubeLightsResponse::CopyFrom(const FlashCubeLightsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.FlashCubeLightsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

ForgetPreferredCubeRequest::ForgetPreferredCubeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
}
ForgetPreferredCubeRequest::ForgetPreferredCubeRequest(const ForgetPreferredCubeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
}

void ForgetPreferredCubeRequest::SharedCtor() {
}

ForgetPreferredCubeRequest::~ForgetPreferredCubeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ForgetPreferredCubeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ForgetPreferredCubeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t ForgetPreferredCubeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
  size_t total_size = 0;

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

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

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

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

}

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

void ForgetPreferredCubeRequest::CopyFrom(const ForgetPreferredCubeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ForgetPreferredCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void ForgetPreferredCubeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ForgetPreferredCubeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class ForgetPreferredCubeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const ForgetPreferredCubeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
ForgetPreferredCubeResponse::_Internal::status(const ForgetPreferredCubeResponse* msg) {
  return *msg->status_;
}
void ForgetPreferredCubeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
ForgetPreferredCubeResponse::ForgetPreferredCubeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
}
ForgetPreferredCubeResponse::ForgetPreferredCubeResponse(const ForgetPreferredCubeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
}

void ForgetPreferredCubeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ForgetPreferredCubeResponse_cube_2eproto.base);
  status_ = nullptr;
}

ForgetPreferredCubeResponse::~ForgetPreferredCubeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ForgetPreferredCubeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t ForgetPreferredCubeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void ForgetPreferredCubeResponse::CopyFrom(const ForgetPreferredCubeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ForgetPreferredCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

SetPreferredCubeRequest::SetPreferredCubeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetPreferredCubeRequest)
}
SetPreferredCubeRequest::SetPreferredCubeRequest(const SetPreferredCubeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_factory_id().empty()) {
    factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_factory_id(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetPreferredCubeRequest)
}

void SetPreferredCubeRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetPreferredCubeRequest_cube_2eproto.base);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

SetPreferredCubeRequest::~SetPreferredCubeRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetPreferredCubeRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void SetPreferredCubeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  factory_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


void SetPreferredCubeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetPreferredCubeRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetPreferredCubeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string factory_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_factory_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.SetPreferredCubeRequest.factory_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // string factory_id = 1;
  if (this->factory_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_factory_id().data(), static_cast<int>(this->_internal_factory_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.SetPreferredCubeRequest.factory_id");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_factory_id(), target);
  }

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

size_t SetPreferredCubeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetPreferredCubeRequest)
  size_t total_size = 0;

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

  // string factory_id = 1;
  if (this->factory_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_factory_id());
  }

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

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

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

  if (from.factory_id().size() > 0) {
    _internal_set_factory_id(from._internal_factory_id());
  }
}

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

void SetPreferredCubeRequest::CopyFrom(const SetPreferredCubeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetPreferredCubeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SetPreferredCubeRequest::InternalSwap(SetPreferredCubeRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  factory_id_.Swap(&other->factory_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

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


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

void SetPreferredCubeResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetPreferredCubeResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SetPreferredCubeResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetPreferredCubeResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetPreferredCubeResponse::_Internal::status(const SetPreferredCubeResponse* msg) {
  return *msg->status_;
}
void SetPreferredCubeResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetPreferredCubeResponse::SetPreferredCubeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetPreferredCubeResponse)
}
SetPreferredCubeResponse::SetPreferredCubeResponse(const SetPreferredCubeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetPreferredCubeResponse)
}

void SetPreferredCubeResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetPreferredCubeResponse_cube_2eproto.base);
  status_ = nullptr;
}

SetPreferredCubeResponse::~SetPreferredCubeResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetPreferredCubeResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void SetPreferredCubeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetPreferredCubeResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t SetPreferredCubeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetPreferredCubeResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void SetPreferredCubeResponse::CopyFrom(const SetPreferredCubeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetPreferredCubeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

SetCubeLightsRequest::SetCubeLightsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  on_color_(arena),
  off_color_(arena),
  on_period_ms_(arena),
  off_period_ms_(arena),
  transition_on_period_ms_(arena),
  transition_off_period_ms_(arena),
  offset_(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetCubeLightsRequest)
}
SetCubeLightsRequest::SetCubeLightsRequest(const SetCubeLightsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      on_color_(from.on_color_),
      off_color_(from.off_color_),
      on_period_ms_(from.on_period_ms_),
      off_period_ms_(from.off_period_ms_),
      transition_on_period_ms_(from.transition_on_period_ms_),
      transition_off_period_ms_(from.transition_off_period_ms_),
      offset_(from.offset_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&make_relative_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(make_relative_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetCubeLightsRequest)
}

void SetCubeLightsRequest::SharedCtor() {
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&make_relative_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(make_relative_));
}

SetCubeLightsRequest::~SetCubeLightsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetCubeLightsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void SetCubeLightsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetCubeLightsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  on_color_.Clear();
  off_color_.Clear();
  on_period_ms_.Clear();
  off_period_ms_.Clear();
  transition_on_period_ms_.Clear();
  transition_off_period_ms_.Clear();
  offset_.Clear();
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&make_relative_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(make_relative_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SetCubeLightsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 on_color = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_on_color(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
          _internal_add_on_color(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 off_color = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_off_color(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
          _internal_add_off_color(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 on_period_ms = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_on_period_ms(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
          _internal_add_on_period_ms(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 off_period_ms = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_off_period_ms(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
          _internal_add_off_period_ms(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 transition_on_period_ms = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_transition_on_period_ms(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
          _internal_add_transition_on_period_ms(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated uint32 transition_off_period_ms = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_transition_off_period_ms(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
          _internal_add_transition_off_period_ms(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // repeated int32 offset = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_offset(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64) {
          _internal_add_offset(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float relative_to_x = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 77)) {
          relative_to_x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float relative_to_y = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 85)) {
          relative_to_y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool rotate = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          rotate_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode make_relative = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_make_relative(static_cast<::Anki::Vector::external_interface::SetCubeLightsRequest_MakeRelativeMode>(val));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // uint32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_object_id(), target);
  }

  // repeated uint32 on_color = 2;
  {
    int byte_size = _on_color_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          2, _internal_on_color(), byte_size, target);
    }
  }

  // repeated uint32 off_color = 3;
  {
    int byte_size = _off_color_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          3, _internal_off_color(), byte_size, target);
    }
  }

  // repeated uint32 on_period_ms = 4;
  {
    int byte_size = _on_period_ms_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          4, _internal_on_period_ms(), byte_size, target);
    }
  }

  // repeated uint32 off_period_ms = 5;
  {
    int byte_size = _off_period_ms_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          5, _internal_off_period_ms(), byte_size, target);
    }
  }

  // repeated uint32 transition_on_period_ms = 6;
  {
    int byte_size = _transition_on_period_ms_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          6, _internal_transition_on_period_ms(), byte_size, target);
    }
  }

  // repeated uint32 transition_off_period_ms = 7;
  {
    int byte_size = _transition_off_period_ms_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          7, _internal_transition_off_period_ms(), byte_size, target);
    }
  }

  // repeated int32 offset = 8;
  {
    int byte_size = _offset_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          8, _internal_offset(), byte_size, target);
    }
  }

  // float relative_to_x = 9;
  if (!(this->relative_to_x() <= 0 && this->relative_to_x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(9, this->_internal_relative_to_x(), target);
  }

  // float relative_to_y = 10;
  if (!(this->relative_to_y() <= 0 && this->relative_to_y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(10, this->_internal_relative_to_y(), target);
  }

  // bool rotate = 11;
  if (this->rotate() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_rotate(), target);
  }

  // .Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode make_relative = 12;
  if (this->make_relative() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      12, this->_internal_make_relative(), target);
  }

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

size_t SetCubeLightsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetCubeLightsRequest)
  size_t total_size = 0;

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

  // repeated uint32 on_color = 2;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->on_color_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _on_color_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 off_color = 3;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->off_color_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _off_color_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 on_period_ms = 4;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->on_period_ms_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _on_period_ms_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 off_period_ms = 5;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->off_period_ms_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _off_period_ms_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 transition_on_period_ms = 6;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->transition_on_period_ms_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _transition_on_period_ms_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 transition_off_period_ms = 7;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      UInt32Size(this->transition_off_period_ms_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _transition_off_period_ms_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 offset = 8;
  {
    size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      Int32Size(this->offset_);
    if (data_size > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
            static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
    _offset_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // uint32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

  // float relative_to_x = 9;
  if (!(this->relative_to_x() <= 0 && this->relative_to_x() >= 0)) {
    total_size += 1 + 4;
  }

  // float relative_to_y = 10;
  if (!(this->relative_to_y() <= 0 && this->relative_to_y() >= 0)) {
    total_size += 1 + 4;
  }

  // bool rotate = 11;
  if (this->rotate() != 0) {
    total_size += 1 + 1;
  }

  // .Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode make_relative = 12;
  if (this->make_relative() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_make_relative());
  }

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

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

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

  on_color_.MergeFrom(from.on_color_);
  off_color_.MergeFrom(from.off_color_);
  on_period_ms_.MergeFrom(from.on_period_ms_);
  off_period_ms_.MergeFrom(from.off_period_ms_);
  transition_on_period_ms_.MergeFrom(from.transition_on_period_ms_);
  transition_off_period_ms_.MergeFrom(from.transition_off_period_ms_);
  offset_.MergeFrom(from.offset_);
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.relative_to_x() <= 0 && from.relative_to_x() >= 0)) {
    _internal_set_relative_to_x(from._internal_relative_to_x());
  }
  if (!(from.relative_to_y() <= 0 && from.relative_to_y() >= 0)) {
    _internal_set_relative_to_y(from._internal_relative_to_y());
  }
  if (from.rotate() != 0) {
    _internal_set_rotate(from._internal_rotate());
  }
  if (from.make_relative() != 0) {
    _internal_set_make_relative(from._internal_make_relative());
  }
}

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

void SetCubeLightsRequest::CopyFrom(const SetCubeLightsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetCubeLightsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SetCubeLightsRequest::InternalSwap(SetCubeLightsRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  on_color_.InternalSwap(&other->on_color_);
  off_color_.InternalSwap(&other->off_color_);
  on_period_ms_.InternalSwap(&other->on_period_ms_);
  off_period_ms_.InternalSwap(&other->off_period_ms_);
  transition_on_period_ms_.InternalSwap(&other->transition_on_period_ms_);
  transition_off_period_ms_.InternalSwap(&other->transition_off_period_ms_);
  offset_.InternalSwap(&other->offset_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SetCubeLightsRequest, make_relative_)
      + sizeof(SetCubeLightsRequest::make_relative_)
      - PROTOBUF_FIELD_OFFSET(SetCubeLightsRequest, object_id_)>(
          reinterpret_cast<char*>(&object_id_),
          reinterpret_cast<char*>(&other->object_id_));
}

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


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

void SetCubeLightsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_SetCubeLightsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class SetCubeLightsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const SetCubeLightsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
SetCubeLightsResponse::_Internal::status(const SetCubeLightsResponse* msg) {
  return *msg->status_;
}
void SetCubeLightsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
SetCubeLightsResponse::SetCubeLightsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.SetCubeLightsResponse)
}
SetCubeLightsResponse::SetCubeLightsResponse(const SetCubeLightsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.SetCubeLightsResponse)
}

void SetCubeLightsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SetCubeLightsResponse_cube_2eproto.base);
  status_ = nullptr;
}

SetCubeLightsResponse::~SetCubeLightsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.SetCubeLightsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void SetCubeLightsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.SetCubeLightsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t SetCubeLightsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.SetCubeLightsResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void SetCubeLightsResponse::CopyFrom(const SetCubeLightsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.SetCubeLightsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

ObjectAvailable::ObjectAvailable(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectAvailable)
}
ObjectAvailable::ObjectAvailable(const ObjectAvailable& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_factory_id().empty()) {
    factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_factory_id(),
      GetArena());
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectAvailable)
}

void ObjectAvailable::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ObjectAvailable_cube_2eproto.base);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

ObjectAvailable::~ObjectAvailable() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectAvailable)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ObjectAvailable::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  factory_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


void ObjectAvailable::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectAvailable)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ObjectAvailable::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string factory_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          auto str = _internal_mutable_factory_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.ObjectAvailable.factory_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // string factory_id = 1;
  if (this->factory_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_factory_id().data(), static_cast<int>(this->_internal_factory_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.ObjectAvailable.factory_id");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_factory_id(), target);
  }

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

size_t ObjectAvailable::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectAvailable)
  size_t total_size = 0;

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

  // string factory_id = 1;
  if (this->factory_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_factory_id());
  }

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

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

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

  if (from.factory_id().size() > 0) {
    _internal_set_factory_id(from._internal_factory_id());
  }
}

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

void ObjectAvailable::CopyFrom(const ObjectAvailable& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectAvailable)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectAvailable::InternalSwap(ObjectAvailable* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  factory_id_.Swap(&other->factory_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}

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


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

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

ObjectConnectionState::ObjectConnectionState(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectConnectionState)
}
ObjectConnectionState::ObjectConnectionState(const ObjectConnectionState& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_factory_id().empty()) {
    factory_id_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_factory_id(),
      GetArena());
  }
  ::memcpy(&object_id_, &from.object_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&connected_) -
    reinterpret_cast<char*>(&object_id_)) + sizeof(connected_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectConnectionState)
}

void ObjectConnectionState::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ObjectConnectionState_cube_2eproto.base);
  factory_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&connected_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(connected_));
}

ObjectConnectionState::~ObjectConnectionState() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectConnectionState)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ObjectConnectionState::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  factory_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

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


void ObjectConnectionState::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectConnectionState)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  factory_id_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::memset(&object_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&connected_) -
      reinterpret_cast<char*>(&object_id_)) + sizeof(connected_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ObjectConnectionState::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint32 object_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string factory_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          auto str = _internal_mutable_factory_id();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "Anki.Vector.external_interface.ObjectConnectionState.factory_id"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectType object_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_object_type(static_cast<::Anki::Vector::external_interface::ObjectType>(val));
        } else goto handle_unusual;
        continue;
      // bool connected = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          connected_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // uint32 object_id = 1;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_object_id(), target);
  }

  // string factory_id = 2;
  if (this->factory_id().size() > 0) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_factory_id().data(), static_cast<int>(this->_internal_factory_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Anki.Vector.external_interface.ObjectConnectionState.factory_id");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_factory_id(), target);
  }

  // .Anki.Vector.external_interface.ObjectType object_type = 3;
  if (this->object_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_object_type(), target);
  }

  // bool connected = 4;
  if (this->connected() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_connected(), target);
  }

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

size_t ObjectConnectionState::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectConnectionState)
  size_t total_size = 0;

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

  // string factory_id = 2;
  if (this->factory_id().size() > 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_factory_id());
  }

  // uint32 object_id = 1;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

  // .Anki.Vector.external_interface.ObjectType object_type = 3;
  if (this->object_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_object_type());
  }

  // bool connected = 4;
  if (this->connected() != 0) {
    total_size += 1 + 1;
  }

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

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

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

  if (from.factory_id().size() > 0) {
    _internal_set_factory_id(from._internal_factory_id());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (from.object_type() != 0) {
    _internal_set_object_type(from._internal_object_type());
  }
  if (from.connected() != 0) {
    _internal_set_connected(from._internal_connected());
  }
}

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

void ObjectConnectionState::CopyFrom(const ObjectConnectionState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectConnectionState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectConnectionState::InternalSwap(ObjectConnectionState* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  factory_id_.Swap(&other->factory_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ObjectConnectionState, connected_)
      + sizeof(ObjectConnectionState::connected_)
      - PROTOBUF_FIELD_OFFSET(ObjectConnectionState, object_id_)>(
          reinterpret_cast<char*>(&object_id_),
          reinterpret_cast<char*>(&other->object_id_));
}

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


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

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

ObjectMoved::ObjectMoved(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectMoved)
}
ObjectMoved::ObjectMoved(const ObjectMoved& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&object_id_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectMoved)
}

void ObjectMoved::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
}

ObjectMoved::~ObjectMoved() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectMoved)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ObjectMoved::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectMoved)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_timestamp(), target);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_object_id(), target);
  }

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

size_t ObjectMoved::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectMoved)
  size_t total_size = 0;

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

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

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

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

  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
}

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

void ObjectMoved::CopyFrom(const ObjectMoved& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectMoved)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectMoved::InternalSwap(ObjectMoved* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ObjectMoved, object_id_)
      + sizeof(ObjectMoved::object_id_)
      - PROTOBUF_FIELD_OFFSET(ObjectMoved, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

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


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

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

ObjectStoppedMoving::ObjectStoppedMoving(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectStoppedMoving)
}
ObjectStoppedMoving::ObjectStoppedMoving(const ObjectStoppedMoving& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&object_id_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectStoppedMoving)
}

void ObjectStoppedMoving::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
}

ObjectStoppedMoving::~ObjectStoppedMoving() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectStoppedMoving)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ObjectStoppedMoving::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectStoppedMoving)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_timestamp(), target);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_object_id(), target);
  }

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

size_t ObjectStoppedMoving::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectStoppedMoving)
  size_t total_size = 0;

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

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

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

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

  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
}

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

void ObjectStoppedMoving::CopyFrom(const ObjectStoppedMoving& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectStoppedMoving)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectStoppedMoving::InternalSwap(ObjectStoppedMoving* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ObjectStoppedMoving, object_id_)
      + sizeof(ObjectStoppedMoving::object_id_)
      - PROTOBUF_FIELD_OFFSET(ObjectStoppedMoving, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

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


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

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

ObjectUpAxisChanged::ObjectUpAxisChanged(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectUpAxisChanged)
}
ObjectUpAxisChanged::ObjectUpAxisChanged(const ObjectUpAxisChanged& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&up_axis_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(up_axis_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectUpAxisChanged)
}

void ObjectUpAxisChanged::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&up_axis_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(up_axis_));
}

ObjectUpAxisChanged::~ObjectUpAxisChanged() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectUpAxisChanged)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ObjectUpAxisChanged::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectUpAxisChanged)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&up_axis_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(up_axis_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ObjectUpAxisChanged::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint32 timestamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 object_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.UpAxis up_axis = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_up_axis(static_cast<::Anki::Vector::external_interface::UpAxis>(val));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_timestamp(), target);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.UpAxis up_axis = 3;
  if (this->up_axis() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_up_axis(), target);
  }

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

size_t ObjectUpAxisChanged::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectUpAxisChanged)
  size_t total_size = 0;

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

  // .Anki.Vector.external_interface.UpAxis up_axis = 3;
  if (this->up_axis() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_up_axis());
  }

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

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

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

  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (from.up_axis() != 0) {
    _internal_set_up_axis(from._internal_up_axis());
  }
}

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

void ObjectUpAxisChanged::CopyFrom(const ObjectUpAxisChanged& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectUpAxisChanged)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectUpAxisChanged::InternalSwap(ObjectUpAxisChanged* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ObjectUpAxisChanged, up_axis_)
      + sizeof(ObjectUpAxisChanged::up_axis_)
      - PROTOBUF_FIELD_OFFSET(ObjectUpAxisChanged, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

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


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

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

ObjectTapped::ObjectTapped(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectTapped)
}
ObjectTapped::ObjectTapped(const ObjectTapped& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&object_id_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectTapped)
}

void ObjectTapped::SharedCtor() {
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
}

ObjectTapped::~ObjectTapped() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectTapped)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void ObjectTapped::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectTapped)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(object_id_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_timestamp(), target);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_object_id(), target);
  }

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

size_t ObjectTapped::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectTapped)
  size_t total_size = 0;

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

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

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

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

  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
}

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

void ObjectTapped::CopyFrom(const ObjectTapped& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectTapped)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ObjectTapped::InternalSwap(ObjectTapped* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ObjectTapped, object_id_)
      + sizeof(ObjectTapped::object_id_)
      - PROTOBUF_FIELD_OFFSET(ObjectTapped, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

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


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

void RobotObservedObject::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_RobotObservedObject_default_instance_._instance.get_mutable()->img_rect_ = const_cast< ::Anki::Vector::external_interface::CladRect*>(
      ::Anki::Vector::external_interface::CladRect::internal_default_instance());
  ::Anki::Vector::external_interface::_RobotObservedObject_default_instance_._instance.get_mutable()->pose_ = const_cast< ::Anki::Vector::external_interface::PoseStruct*>(
      ::Anki::Vector::external_interface::PoseStruct::internal_default_instance());
}
class RobotObservedObject::_Internal {
 public:
  static const ::Anki::Vector::external_interface::CladRect& img_rect(const RobotObservedObject* msg);
  static const ::Anki::Vector::external_interface::PoseStruct& pose(const RobotObservedObject* msg);
};

const ::Anki::Vector::external_interface::CladRect&
RobotObservedObject::_Internal::img_rect(const RobotObservedObject* msg) {
  return *msg->img_rect_;
}
const ::Anki::Vector::external_interface::PoseStruct&
RobotObservedObject::_Internal::pose(const RobotObservedObject* msg) {
  return *msg->pose_;
}
void RobotObservedObject::clear_img_rect() {
  if (GetArena() == nullptr && img_rect_ != nullptr) {
    delete img_rect_;
  }
  img_rect_ = nullptr;
}
void RobotObservedObject::clear_pose() {
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
}
RobotObservedObject::RobotObservedObject(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.RobotObservedObject)
}
RobotObservedObject::RobotObservedObject(const RobotObservedObject& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_img_rect()) {
    img_rect_ = new ::Anki::Vector::external_interface::CladRect(*from.img_rect_);
  } else {
    img_rect_ = nullptr;
  }
  if (from._internal_has_pose()) {
    pose_ = new ::Anki::Vector::external_interface::PoseStruct(*from.pose_);
  } else {
    pose_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_active_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(is_active_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.RobotObservedObject)
}

void RobotObservedObject::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RobotObservedObject_cube_2eproto.base);
  ::memset(&img_rect_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_active_) -
      reinterpret_cast<char*>(&img_rect_)) + sizeof(is_active_));
}

RobotObservedObject::~RobotObservedObject() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.RobotObservedObject)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void RobotObservedObject::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (this != internal_default_instance()) delete img_rect_;
  if (this != internal_default_instance()) delete pose_;
}

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


void RobotObservedObject::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.RobotObservedObject)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && img_rect_ != nullptr) {
    delete img_rect_;
  }
  img_rect_ = nullptr;
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_active_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(is_active_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RobotObservedObject::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint32 timestamp = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectFamily object_family = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_object_family(static_cast<::Anki::Vector::external_interface::ObjectFamily>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectType object_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_object_type(static_cast<::Anki::Vector::external_interface::ObjectType>(val));
        } else goto handle_unusual;
        continue;
      // int32 object_id = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CladRect img_rect = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_img_rect(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.PoseStruct pose = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_pose(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float top_face_orientation_rad = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          top_face_orientation_rad_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // uint32 is_active = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          is_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(1, this->_internal_timestamp(), target);
  }

  // .Anki.Vector.external_interface.ObjectFamily object_family = 2;
  if (this->object_family() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_object_family(), target);
  }

  // .Anki.Vector.external_interface.ObjectType object_type = 3;
  if (this->object_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_object_type(), target);
  }

  // int32 object_id = 4;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_object_id(), target);
  }

  // .Anki.Vector.external_interface.CladRect img_rect = 5;
  if (this->has_img_rect()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::img_rect(this), target, stream);
  }

  // .Anki.Vector.external_interface.PoseStruct pose = 6;
  if (this->has_pose()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::pose(this), target, stream);
  }

  // float top_face_orientation_rad = 7;
  if (!(this->top_face_orientation_rad() <= 0 && this->top_face_orientation_rad() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(7, this->_internal_top_face_orientation_rad(), target);
  }

  // uint32 is_active = 8;
  if (this->is_active() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(8, this->_internal_is_active(), target);
  }

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

size_t RobotObservedObject::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.RobotObservedObject)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CladRect img_rect = 5;
  if (this->has_img_rect()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *img_rect_);
  }

  // .Anki.Vector.external_interface.PoseStruct pose = 6;
  if (this->has_pose()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pose_);
  }

  // uint32 timestamp = 1;
  if (this->timestamp() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_timestamp());
  }

  // .Anki.Vector.external_interface.ObjectFamily object_family = 2;
  if (this->object_family() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_object_family());
  }

  // .Anki.Vector.external_interface.ObjectType object_type = 3;
  if (this->object_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_object_type());
  }

  // int32 object_id = 4;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_object_id());
  }

  // float top_face_orientation_rad = 7;
  if (!(this->top_face_orientation_rad() <= 0 && this->top_face_orientation_rad() >= 0)) {
    total_size += 1 + 4;
  }

  // uint32 is_active = 8;
  if (this->is_active() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_is_active());
  }

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

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

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

  if (from.has_img_rect()) {
    _internal_mutable_img_rect()->::Anki::Vector::external_interface::CladRect::MergeFrom(from._internal_img_rect());
  }
  if (from.has_pose()) {
    _internal_mutable_pose()->::Anki::Vector::external_interface::PoseStruct::MergeFrom(from._internal_pose());
  }
  if (from.timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.object_family() != 0) {
    _internal_set_object_family(from._internal_object_family());
  }
  if (from.object_type() != 0) {
    _internal_set_object_type(from._internal_object_type());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
  if (!(from.top_face_orientation_rad() <= 0 && from.top_face_orientation_rad() >= 0)) {
    _internal_set_top_face_orientation_rad(from._internal_top_face_orientation_rad());
  }
  if (from.is_active() != 0) {
    _internal_set_is_active(from._internal_is_active());
  }
}

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

void RobotObservedObject::CopyFrom(const RobotObservedObject& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.RobotObservedObject)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void RobotObservedObject::InternalSwap(RobotObservedObject* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RobotObservedObject, is_active_)
      + sizeof(RobotObservedObject::is_active_)
      - PROTOBUF_FIELD_OFFSET(RobotObservedObject, img_rect_)>(
          reinterpret_cast<char*>(&img_rect_),
          reinterpret_cast<char*>(&other->img_rect_));
}

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


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

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

CubeConnectionLost::CubeConnectionLost(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CubeConnectionLost)
}
CubeConnectionLost::CubeConnectionLost(const CubeConnectionLost& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CubeConnectionLost)
}

void CubeConnectionLost::SharedCtor() {
}

CubeConnectionLost::~CubeConnectionLost() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CubeConnectionLost)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CubeConnectionLost::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CubeConnectionLost)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CubeConnectionLost::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

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

size_t CubeConnectionLost::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CubeConnectionLost)
  size_t total_size = 0;

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

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

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

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

}

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

void CubeConnectionLost::CopyFrom(const CubeConnectionLost& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CubeConnectionLost)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

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

DeleteCustomObjectsRequest::DeleteCustomObjectsRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
}
DeleteCustomObjectsRequest::DeleteCustomObjectsRequest(const DeleteCustomObjectsRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  mode_ = from.mode_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
}

void DeleteCustomObjectsRequest::SharedCtor() {
  mode_ = 0;
}

DeleteCustomObjectsRequest::~DeleteCustomObjectsRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DeleteCustomObjectsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  mode_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DeleteCustomObjectsRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.CustomObjectDeletionMode mode = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_mode(static_cast<::Anki::Vector::external_interface::CustomObjectDeletionMode>(val));
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.CustomObjectDeletionMode mode = 1;
  if (this->mode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_mode(), target);
  }

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

size_t DeleteCustomObjectsRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CustomObjectDeletionMode mode = 1;
  if (this->mode() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_mode());
  }

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

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

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

  if (from.mode() != 0) {
    _internal_set_mode(from._internal_mode());
  }
}

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

void DeleteCustomObjectsRequest::CopyFrom(const DeleteCustomObjectsRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DeleteCustomObjectsRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void DeleteCustomObjectsResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DeleteCustomObjectsResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DeleteCustomObjectsResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DeleteCustomObjectsResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DeleteCustomObjectsResponse::_Internal::status(const DeleteCustomObjectsResponse* msg) {
  return *msg->status_;
}
void DeleteCustomObjectsResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DeleteCustomObjectsResponse::DeleteCustomObjectsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
}
DeleteCustomObjectsResponse::DeleteCustomObjectsResponse(const DeleteCustomObjectsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
}

void DeleteCustomObjectsResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DeleteCustomObjectsResponse_cube_2eproto.base);
  status_ = nullptr;
}

DeleteCustomObjectsResponse::~DeleteCustomObjectsResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DeleteCustomObjectsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

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

size_t DeleteCustomObjectsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
}

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

void DeleteCustomObjectsResponse::CopyFrom(const DeleteCustomObjectsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DeleteCustomObjectsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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


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

void CreateFixedCustomObjectRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CreateFixedCustomObjectRequest_default_instance_._instance.get_mutable()->pose_ = const_cast< ::Anki::Vector::external_interface::PoseStruct*>(
      ::Anki::Vector::external_interface::PoseStruct::internal_default_instance());
}
class CreateFixedCustomObjectRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::PoseStruct& pose(const CreateFixedCustomObjectRequest* msg);
};

const ::Anki::Vector::external_interface::PoseStruct&
CreateFixedCustomObjectRequest::_Internal::pose(const CreateFixedCustomObjectRequest* msg) {
  return *msg->pose_;
}
void CreateFixedCustomObjectRequest::clear_pose() {
  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
}
CreateFixedCustomObjectRequest::CreateFixedCustomObjectRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
}
CreateFixedCustomObjectRequest::CreateFixedCustomObjectRequest(const CreateFixedCustomObjectRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_pose()) {
    pose_ = new ::Anki::Vector::external_interface::PoseStruct(*from.pose_);
  } else {
    pose_ = nullptr;
  }
  ::memcpy(&x_size_mm_, &from.x_size_mm_,
    static_cast<size_t>(reinterpret_cast<char*>(&z_size_mm_) -
    reinterpret_cast<char*>(&x_size_mm_)) + sizeof(z_size_mm_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
}

void CreateFixedCustomObjectRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CreateFixedCustomObjectRequest_cube_2eproto.base);
  ::memset(&pose_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&z_size_mm_) -
      reinterpret_cast<char*>(&pose_)) + sizeof(z_size_mm_));
}

CreateFixedCustomObjectRequest::~CreateFixedCustomObjectRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CreateFixedCustomObjectRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArena() == nullptr && pose_ != nullptr) {
    delete pose_;
  }
  pose_ = nullptr;
  ::memset(&x_size_mm_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&z_size_mm_) -
      reinterpret_cast<char*>(&x_size_mm_)) + sizeof(z_size_mm_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CreateFixedCustomObjectRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.PoseStruct pose = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_pose(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float x_size_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          x_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y_size_mm = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          y_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float z_size_mm = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          z_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.PoseStruct pose = 1;
  if (this->has_pose()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::pose(this), target, stream);
  }

  // float x_size_mm = 2;
  if (!(this->x_size_mm() <= 0 && this->x_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_x_size_mm(), target);
  }

  // float y_size_mm = 3;
  if (!(this->y_size_mm() <= 0 && this->y_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_y_size_mm(), target);
  }

  // float z_size_mm = 4;
  if (!(this->z_size_mm() <= 0 && this->z_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_z_size_mm(), target);
  }

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

size_t CreateFixedCustomObjectRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.PoseStruct pose = 1;
  if (this->has_pose()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pose_);
  }

  // float x_size_mm = 2;
  if (!(this->x_size_mm() <= 0 && this->x_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float y_size_mm = 3;
  if (!(this->y_size_mm() <= 0 && this->y_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float z_size_mm = 4;
  if (!(this->z_size_mm() <= 0 && this->z_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

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

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

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

  if (from.has_pose()) {
    _internal_mutable_pose()->::Anki::Vector::external_interface::PoseStruct::MergeFrom(from._internal_pose());
  }
  if (!(from.x_size_mm() <= 0 && from.x_size_mm() >= 0)) {
    _internal_set_x_size_mm(from._internal_x_size_mm());
  }
  if (!(from.y_size_mm() <= 0 && from.y_size_mm() >= 0)) {
    _internal_set_y_size_mm(from._internal_y_size_mm());
  }
  if (!(from.z_size_mm() <= 0 && from.z_size_mm() >= 0)) {
    _internal_set_z_size_mm(from._internal_z_size_mm());
  }
}

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

void CreateFixedCustomObjectRequest::CopyFrom(const CreateFixedCustomObjectRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CreateFixedCustomObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CreateFixedCustomObjectRequest::InternalSwap(CreateFixedCustomObjectRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CreateFixedCustomObjectRequest, z_size_mm_)
      + sizeof(CreateFixedCustomObjectRequest::z_size_mm_)
      - PROTOBUF_FIELD_OFFSET(CreateFixedCustomObjectRequest, pose_)>(
          reinterpret_cast<char*>(&pose_),
          reinterpret_cast<char*>(&other->pose_));
}

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


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

void CreateFixedCustomObjectResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_CreateFixedCustomObjectResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class CreateFixedCustomObjectResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const CreateFixedCustomObjectResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
CreateFixedCustomObjectResponse::_Internal::status(const CreateFixedCustomObjectResponse* msg) {
  return *msg->status_;
}
void CreateFixedCustomObjectResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
CreateFixedCustomObjectResponse::CreateFixedCustomObjectResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
}
CreateFixedCustomObjectResponse::CreateFixedCustomObjectResponse(const CreateFixedCustomObjectResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  object_id_ = from.object_id_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
}

void CreateFixedCustomObjectResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CreateFixedCustomObjectResponse_cube_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&object_id_) -
      reinterpret_cast<char*>(&status_)) + sizeof(object_id_));
}

CreateFixedCustomObjectResponse::~CreateFixedCustomObjectResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CreateFixedCustomObjectResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* CreateFixedCustomObjectResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // uint32 object_id = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          object_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt32ToArray(2, this->_internal_object_id(), target);
  }

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

size_t CreateFixedCustomObjectResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // uint32 object_id = 2;
  if (this->object_id() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt32Size(
        this->_internal_object_id());
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.object_id() != 0) {
    _internal_set_object_id(from._internal_object_id());
  }
}

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

void CreateFixedCustomObjectResponse::CopyFrom(const CreateFixedCustomObjectResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CreateFixedCustomObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CreateFixedCustomObjectResponse::InternalSwap(CreateFixedCustomObjectResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CreateFixedCustomObjectResponse, object_id_)
      + sizeof(CreateFixedCustomObjectResponse::object_id_)
      - PROTOBUF_FIELD_OFFSET(CreateFixedCustomObjectResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

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


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

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

CustomBoxDefinition::CustomBoxDefinition(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CustomBoxDefinition)
}
CustomBoxDefinition::CustomBoxDefinition(const CustomBoxDefinition& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&marker_front_, &from.marker_front_,
    static_cast<size_t>(reinterpret_cast<char*>(&marker_height_mm_) -
    reinterpret_cast<char*>(&marker_front_)) + sizeof(marker_height_mm_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CustomBoxDefinition)
}

void CustomBoxDefinition::SharedCtor() {
  ::memset(&marker_front_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_front_)) + sizeof(marker_height_mm_));
}

CustomBoxDefinition::~CustomBoxDefinition() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CustomBoxDefinition)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CustomBoxDefinition::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CustomBoxDefinition)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&marker_front_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_front_)) + sizeof(marker_height_mm_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CustomBoxDefinition::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.CustomObjectMarker marker_front = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_front(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomObjectMarker marker_back = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_back(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomObjectMarker marker_top = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_top(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomObjectMarker marker_bottom = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_bottom(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomObjectMarker marker_left = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_left(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomObjectMarker marker_right = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker_right(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // float x_size_mm = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 61)) {
          x_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float y_size_mm = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 69)) {
          y_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float z_size_mm = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 77)) {
          z_size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_width_mm = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 85)) {
          marker_width_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_height_mm = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 93)) {
          marker_height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker_front = 1;
  if (this->marker_front() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_marker_front(), target);
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_back = 2;
  if (this->marker_back() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      2, this->_internal_marker_back(), target);
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_top = 3;
  if (this->marker_top() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      3, this->_internal_marker_top(), target);
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_bottom = 4;
  if (this->marker_bottom() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      4, this->_internal_marker_bottom(), target);
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_left = 5;
  if (this->marker_left() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      5, this->_internal_marker_left(), target);
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_right = 6;
  if (this->marker_right() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      6, this->_internal_marker_right(), target);
  }

  // float x_size_mm = 7;
  if (!(this->x_size_mm() <= 0 && this->x_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(7, this->_internal_x_size_mm(), target);
  }

  // float y_size_mm = 8;
  if (!(this->y_size_mm() <= 0 && this->y_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(8, this->_internal_y_size_mm(), target);
  }

  // float z_size_mm = 9;
  if (!(this->z_size_mm() <= 0 && this->z_size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(9, this->_internal_z_size_mm(), target);
  }

  // float marker_width_mm = 10;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(10, this->_internal_marker_width_mm(), target);
  }

  // float marker_height_mm = 11;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(11, this->_internal_marker_height_mm(), target);
  }

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

size_t CustomBoxDefinition::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CustomBoxDefinition)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker_front = 1;
  if (this->marker_front() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_front());
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_back = 2;
  if (this->marker_back() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_back());
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_top = 3;
  if (this->marker_top() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_top());
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_bottom = 4;
  if (this->marker_bottom() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_bottom());
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_left = 5;
  if (this->marker_left() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_left());
  }

  // .Anki.Vector.external_interface.CustomObjectMarker marker_right = 6;
  if (this->marker_right() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker_right());
  }

  // float x_size_mm = 7;
  if (!(this->x_size_mm() <= 0 && this->x_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float y_size_mm = 8;
  if (!(this->y_size_mm() <= 0 && this->y_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float z_size_mm = 9;
  if (!(this->z_size_mm() <= 0 && this->z_size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_width_mm = 10;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_height_mm = 11;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    total_size += 1 + 4;
  }

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

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

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

  if (from.marker_front() != 0) {
    _internal_set_marker_front(from._internal_marker_front());
  }
  if (from.marker_back() != 0) {
    _internal_set_marker_back(from._internal_marker_back());
  }
  if (from.marker_top() != 0) {
    _internal_set_marker_top(from._internal_marker_top());
  }
  if (from.marker_bottom() != 0) {
    _internal_set_marker_bottom(from._internal_marker_bottom());
  }
  if (from.marker_left() != 0) {
    _internal_set_marker_left(from._internal_marker_left());
  }
  if (from.marker_right() != 0) {
    _internal_set_marker_right(from._internal_marker_right());
  }
  if (!(from.x_size_mm() <= 0 && from.x_size_mm() >= 0)) {
    _internal_set_x_size_mm(from._internal_x_size_mm());
  }
  if (!(from.y_size_mm() <= 0 && from.y_size_mm() >= 0)) {
    _internal_set_y_size_mm(from._internal_y_size_mm());
  }
  if (!(from.z_size_mm() <= 0 && from.z_size_mm() >= 0)) {
    _internal_set_z_size_mm(from._internal_z_size_mm());
  }
  if (!(from.marker_width_mm() <= 0 && from.marker_width_mm() >= 0)) {
    _internal_set_marker_width_mm(from._internal_marker_width_mm());
  }
  if (!(from.marker_height_mm() <= 0 && from.marker_height_mm() >= 0)) {
    _internal_set_marker_height_mm(from._internal_marker_height_mm());
  }
}

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

void CustomBoxDefinition::CopyFrom(const CustomBoxDefinition& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CustomBoxDefinition)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CustomBoxDefinition::InternalSwap(CustomBoxDefinition* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CustomBoxDefinition, marker_height_mm_)
      + sizeof(CustomBoxDefinition::marker_height_mm_)
      - PROTOBUF_FIELD_OFFSET(CustomBoxDefinition, marker_front_)>(
          reinterpret_cast<char*>(&marker_front_),
          reinterpret_cast<char*>(&other->marker_front_));
}

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


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

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

CustomCubeDefinition::CustomCubeDefinition(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CustomCubeDefinition)
}
CustomCubeDefinition::CustomCubeDefinition(const CustomCubeDefinition& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&marker_, &from.marker_,
    static_cast<size_t>(reinterpret_cast<char*>(&marker_height_mm_) -
    reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CustomCubeDefinition)
}

void CustomCubeDefinition::SharedCtor() {
  ::memset(&marker_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
}

CustomCubeDefinition::~CustomCubeDefinition() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CustomCubeDefinition)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CustomCubeDefinition::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CustomCubeDefinition)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&marker_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CustomCubeDefinition::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // float size_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          size_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_width_mm = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          marker_width_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_height_mm = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          marker_height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
  if (this->marker() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_marker(), target);
  }

  // float size_mm = 2;
  if (!(this->size_mm() <= 0 && this->size_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_size_mm(), target);
  }

  // float marker_width_mm = 3;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_marker_width_mm(), target);
  }

  // float marker_height_mm = 4;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_marker_height_mm(), target);
  }

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

size_t CustomCubeDefinition::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CustomCubeDefinition)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
  if (this->marker() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker());
  }

  // float size_mm = 2;
  if (!(this->size_mm() <= 0 && this->size_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_width_mm = 3;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_height_mm = 4;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    total_size += 1 + 4;
  }

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

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

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

  if (from.marker() != 0) {
    _internal_set_marker(from._internal_marker());
  }
  if (!(from.size_mm() <= 0 && from.size_mm() >= 0)) {
    _internal_set_size_mm(from._internal_size_mm());
  }
  if (!(from.marker_width_mm() <= 0 && from.marker_width_mm() >= 0)) {
    _internal_set_marker_width_mm(from._internal_marker_width_mm());
  }
  if (!(from.marker_height_mm() <= 0 && from.marker_height_mm() >= 0)) {
    _internal_set_marker_height_mm(from._internal_marker_height_mm());
  }
}

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

void CustomCubeDefinition::CopyFrom(const CustomCubeDefinition& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CustomCubeDefinition)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CustomCubeDefinition::InternalSwap(CustomCubeDefinition* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CustomCubeDefinition, marker_height_mm_)
      + sizeof(CustomCubeDefinition::marker_height_mm_)
      - PROTOBUF_FIELD_OFFSET(CustomCubeDefinition, marker_)>(
          reinterpret_cast<char*>(&marker_),
          reinterpret_cast<char*>(&other->marker_));
}

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


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

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

CustomWallDefinition::CustomWallDefinition(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.CustomWallDefinition)
}
CustomWallDefinition::CustomWallDefinition(const CustomWallDefinition& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&marker_, &from.marker_,
    static_cast<size_t>(reinterpret_cast<char*>(&marker_height_mm_) -
    reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.CustomWallDefinition)
}

void CustomWallDefinition::SharedCtor() {
  ::memset(&marker_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
}

CustomWallDefinition::~CustomWallDefinition() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.CustomWallDefinition)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void CustomWallDefinition::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.CustomWallDefinition)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&marker_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&marker_height_mm_) -
      reinterpret_cast<char*>(&marker_)) + sizeof(marker_height_mm_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CustomWallDefinition::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_marker(static_cast<::Anki::Vector::external_interface::CustomObjectMarker>(val));
        } else goto handle_unusual;
        continue;
      // float width_mm = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          width_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float height_mm = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_width_mm = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          marker_width_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float marker_height_mm = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          marker_height_mm_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
  if (this->marker() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_marker(), target);
  }

  // float width_mm = 2;
  if (!(this->width_mm() <= 0 && this->width_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_width_mm(), target);
  }

  // float height_mm = 3;
  if (!(this->height_mm() <= 0 && this->height_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_height_mm(), target);
  }

  // float marker_width_mm = 4;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_marker_width_mm(), target);
  }

  // float marker_height_mm = 5;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_marker_height_mm(), target);
  }

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

size_t CustomWallDefinition::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.CustomWallDefinition)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CustomObjectMarker marker = 1;
  if (this->marker() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_marker());
  }

  // float width_mm = 2;
  if (!(this->width_mm() <= 0 && this->width_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float height_mm = 3;
  if (!(this->height_mm() <= 0 && this->height_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_width_mm = 4;
  if (!(this->marker_width_mm() <= 0 && this->marker_width_mm() >= 0)) {
    total_size += 1 + 4;
  }

  // float marker_height_mm = 5;
  if (!(this->marker_height_mm() <= 0 && this->marker_height_mm() >= 0)) {
    total_size += 1 + 4;
  }

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

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

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

  if (from.marker() != 0) {
    _internal_set_marker(from._internal_marker());
  }
  if (!(from.width_mm() <= 0 && from.width_mm() >= 0)) {
    _internal_set_width_mm(from._internal_width_mm());
  }
  if (!(from.height_mm() <= 0 && from.height_mm() >= 0)) {
    _internal_set_height_mm(from._internal_height_mm());
  }
  if (!(from.marker_width_mm() <= 0 && from.marker_width_mm() >= 0)) {
    _internal_set_marker_width_mm(from._internal_marker_width_mm());
  }
  if (!(from.marker_height_mm() <= 0 && from.marker_height_mm() >= 0)) {
    _internal_set_marker_height_mm(from._internal_marker_height_mm());
  }
}

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

void CustomWallDefinition::CopyFrom(const CustomWallDefinition& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.CustomWallDefinition)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void CustomWallDefinition::InternalSwap(CustomWallDefinition* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CustomWallDefinition, marker_height_mm_)
      + sizeof(CustomWallDefinition::marker_height_mm_)
      - PROTOBUF_FIELD_OFFSET(CustomWallDefinition, marker_)>(
          reinterpret_cast<char*>(&marker_),
          reinterpret_cast<char*>(&other->marker_));
}

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


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

void DefineCustomObjectRequest::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DefineCustomObjectRequest_default_instance_.custom_box_ = const_cast< ::Anki::Vector::external_interface::CustomBoxDefinition*>(
      ::Anki::Vector::external_interface::CustomBoxDefinition::internal_default_instance());
  ::Anki::Vector::external_interface::_DefineCustomObjectRequest_default_instance_.custom_cube_ = const_cast< ::Anki::Vector::external_interface::CustomCubeDefinition*>(
      ::Anki::Vector::external_interface::CustomCubeDefinition::internal_default_instance());
  ::Anki::Vector::external_interface::_DefineCustomObjectRequest_default_instance_.custom_wall_ = const_cast< ::Anki::Vector::external_interface::CustomWallDefinition*>(
      ::Anki::Vector::external_interface::CustomWallDefinition::internal_default_instance());
}
class DefineCustomObjectRequest::_Internal {
 public:
  static const ::Anki::Vector::external_interface::CustomBoxDefinition& custom_box(const DefineCustomObjectRequest* msg);
  static const ::Anki::Vector::external_interface::CustomCubeDefinition& custom_cube(const DefineCustomObjectRequest* msg);
  static const ::Anki::Vector::external_interface::CustomWallDefinition& custom_wall(const DefineCustomObjectRequest* msg);
};

const ::Anki::Vector::external_interface::CustomBoxDefinition&
DefineCustomObjectRequest::_Internal::custom_box(const DefineCustomObjectRequest* msg) {
  return *msg->custom_object_definition_.custom_box_;
}
const ::Anki::Vector::external_interface::CustomCubeDefinition&
DefineCustomObjectRequest::_Internal::custom_cube(const DefineCustomObjectRequest* msg) {
  return *msg->custom_object_definition_.custom_cube_;
}
const ::Anki::Vector::external_interface::CustomWallDefinition&
DefineCustomObjectRequest::_Internal::custom_wall(const DefineCustomObjectRequest* msg) {
  return *msg->custom_object_definition_.custom_wall_;
}
void DefineCustomObjectRequest::set_allocated_custom_box(::Anki::Vector::external_interface::CustomBoxDefinition* custom_box) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_custom_object_definition();
  if (custom_box) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(custom_box);
    if (message_arena != submessage_arena) {
      custom_box = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, custom_box, submessage_arena);
    }
    set_has_custom_box();
    custom_object_definition_.custom_box_ = custom_box;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DefineCustomObjectRequest.custom_box)
}
void DefineCustomObjectRequest::set_allocated_custom_cube(::Anki::Vector::external_interface::CustomCubeDefinition* custom_cube) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_custom_object_definition();
  if (custom_cube) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(custom_cube);
    if (message_arena != submessage_arena) {
      custom_cube = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, custom_cube, submessage_arena);
    }
    set_has_custom_cube();
    custom_object_definition_.custom_cube_ = custom_cube;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DefineCustomObjectRequest.custom_cube)
}
void DefineCustomObjectRequest::set_allocated_custom_wall(::Anki::Vector::external_interface::CustomWallDefinition* custom_wall) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_custom_object_definition();
  if (custom_wall) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(custom_wall);
    if (message_arena != submessage_arena) {
      custom_wall = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, custom_wall, submessage_arena);
    }
    set_has_custom_wall();
    custom_object_definition_.custom_wall_ = custom_wall;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.DefineCustomObjectRequest.custom_wall)
}
DefineCustomObjectRequest::DefineCustomObjectRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DefineCustomObjectRequest)
}
DefineCustomObjectRequest::DefineCustomObjectRequest(const DefineCustomObjectRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&custom_type_, &from.custom_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_unique_) -
    reinterpret_cast<char*>(&custom_type_)) + sizeof(is_unique_));
  clear_has_custom_object_definition();
  switch (from.custom_object_definition_case()) {
    case kCustomBox: {
      _internal_mutable_custom_box()->::Anki::Vector::external_interface::CustomBoxDefinition::MergeFrom(from._internal_custom_box());
      break;
    }
    case kCustomCube: {
      _internal_mutable_custom_cube()->::Anki::Vector::external_interface::CustomCubeDefinition::MergeFrom(from._internal_custom_cube());
      break;
    }
    case kCustomWall: {
      _internal_mutable_custom_wall()->::Anki::Vector::external_interface::CustomWallDefinition::MergeFrom(from._internal_custom_wall());
      break;
    }
    case CUSTOM_OBJECT_DEFINITION_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DefineCustomObjectRequest)
}

void DefineCustomObjectRequest::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DefineCustomObjectRequest_cube_2eproto.base);
  ::memset(&custom_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_unique_) -
      reinterpret_cast<char*>(&custom_type_)) + sizeof(is_unique_));
  clear_has_custom_object_definition();
}

DefineCustomObjectRequest::~DefineCustomObjectRequest() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DefineCustomObjectRequest)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void DefineCustomObjectRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_custom_object_definition()) {
    clear_custom_object_definition();
  }
}

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


void DefineCustomObjectRequest::clear_custom_object_definition() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.DefineCustomObjectRequest)
  switch (custom_object_definition_case()) {
    case kCustomBox: {
      if (GetArena() == nullptr) {
        delete custom_object_definition_.custom_box_;
      }
      break;
    }
    case kCustomCube: {
      if (GetArena() == nullptr) {
        delete custom_object_definition_.custom_cube_;
      }
      break;
    }
    case kCustomWall: {
      if (GetArena() == nullptr) {
        delete custom_object_definition_.custom_wall_;
      }
      break;
    }
    case CUSTOM_OBJECT_DEFINITION_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = CUSTOM_OBJECT_DEFINITION_NOT_SET;
}


void DefineCustomObjectRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DefineCustomObjectRequest)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&custom_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_unique_) -
      reinterpret_cast<char*>(&custom_type_)) + sizeof(is_unique_));
  clear_custom_object_definition();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* DefineCustomObjectRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.CustomType custom_type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_custom_type(static_cast<::Anki::Vector::external_interface::CustomType>(val));
        } else goto handle_unusual;
        continue;
      // bool is_unique = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          is_unique_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomBoxDefinition custom_box = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_custom_box(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomCubeDefinition custom_cube = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_custom_cube(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CustomWallDefinition custom_wall = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_custom_wall(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.CustomType custom_type = 1;
  if (this->custom_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_custom_type(), target);
  }

  // bool is_unique = 2;
  if (this->is_unique() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_is_unique(), target);
  }

  // .Anki.Vector.external_interface.CustomBoxDefinition custom_box = 3;
  if (_internal_has_custom_box()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::custom_box(this), target, stream);
  }

  // .Anki.Vector.external_interface.CustomCubeDefinition custom_cube = 4;
  if (_internal_has_custom_cube()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::custom_cube(this), target, stream);
  }

  // .Anki.Vector.external_interface.CustomWallDefinition custom_wall = 5;
  if (_internal_has_custom_wall()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::custom_wall(this), target, stream);
  }

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

size_t DefineCustomObjectRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DefineCustomObjectRequest)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.CustomType custom_type = 1;
  if (this->custom_type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_custom_type());
  }

  // bool is_unique = 2;
  if (this->is_unique() != 0) {
    total_size += 1 + 1;
  }

  switch (custom_object_definition_case()) {
    // .Anki.Vector.external_interface.CustomBoxDefinition custom_box = 3;
    case kCustomBox: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *custom_object_definition_.custom_box_);
      break;
    }
    // .Anki.Vector.external_interface.CustomCubeDefinition custom_cube = 4;
    case kCustomCube: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *custom_object_definition_.custom_cube_);
      break;
    }
    // .Anki.Vector.external_interface.CustomWallDefinition custom_wall = 5;
    case kCustomWall: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *custom_object_definition_.custom_wall_);
      break;
    }
    case CUSTOM_OBJECT_DEFINITION_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  if (from.custom_type() != 0) {
    _internal_set_custom_type(from._internal_custom_type());
  }
  if (from.is_unique() != 0) {
    _internal_set_is_unique(from._internal_is_unique());
  }
  switch (from.custom_object_definition_case()) {
    case kCustomBox: {
      _internal_mutable_custom_box()->::Anki::Vector::external_interface::CustomBoxDefinition::MergeFrom(from._internal_custom_box());
      break;
    }
    case kCustomCube: {
      _internal_mutable_custom_cube()->::Anki::Vector::external_interface::CustomCubeDefinition::MergeFrom(from._internal_custom_cube());
      break;
    }
    case kCustomWall: {
      _internal_mutable_custom_wall()->::Anki::Vector::external_interface::CustomWallDefinition::MergeFrom(from._internal_custom_wall());
      break;
    }
    case CUSTOM_OBJECT_DEFINITION_NOT_SET: {
      break;
    }
  }
}

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

void DefineCustomObjectRequest::CopyFrom(const DefineCustomObjectRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DefineCustomObjectRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DefineCustomObjectRequest::InternalSwap(DefineCustomObjectRequest* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DefineCustomObjectRequest, is_unique_)
      + sizeof(DefineCustomObjectRequest::is_unique_)
      - PROTOBUF_FIELD_OFFSET(DefineCustomObjectRequest, custom_type_)>(
          reinterpret_cast<char*>(&custom_type_),
          reinterpret_cast<char*>(&other->custom_type_));
  swap(custom_object_definition_, other->custom_object_definition_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

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


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

void DefineCustomObjectResponse::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_DefineCustomObjectResponse_default_instance_._instance.get_mutable()->status_ = const_cast< ::Anki::Vector::external_interface::ResponseStatus*>(
      ::Anki::Vector::external_interface::ResponseStatus::internal_default_instance());
}
class DefineCustomObjectResponse::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ResponseStatus& status(const DefineCustomObjectResponse* msg);
};

const ::Anki::Vector::external_interface::ResponseStatus&
DefineCustomObjectResponse::_Internal::status(const DefineCustomObjectResponse* msg) {
  return *msg->status_;
}
void DefineCustomObjectResponse::clear_status() {
  if (GetArena() == nullptr && status_ != nullptr) {
    delete status_;
  }
  status_ = nullptr;
}
DefineCustomObjectResponse::DefineCustomObjectResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.DefineCustomObjectResponse)
}
DefineCustomObjectResponse::DefineCustomObjectResponse(const DefineCustomObjectResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_status()) {
    status_ = new ::Anki::Vector::external_interface::ResponseStatus(*from.status_);
  } else {
    status_ = nullptr;
  }
  success_ = from.success_;
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.DefineCustomObjectResponse)
}

void DefineCustomObjectResponse::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DefineCustomObjectResponse_cube_2eproto.base);
  ::memset(&status_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&success_) -
      reinterpret_cast<char*>(&status_)) + sizeof(success_));
}

DefineCustomObjectResponse::~DefineCustomObjectResponse() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.DefineCustomObjectResponse)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

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

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


void DefineCustomObjectResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.DefineCustomObjectResponse)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* DefineCustomObjectResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ResponseStatus status = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_status(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool success = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          success_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::status(this), target, stream);
  }

  // bool success = 2;
  if (this->success() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_success(), target);
  }

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

size_t DefineCustomObjectResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.DefineCustomObjectResponse)
  size_t total_size = 0;

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

  // .Anki.Vector.external_interface.ResponseStatus status = 1;
  if (this->has_status()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *status_);
  }

  // bool success = 2;
  if (this->success() != 0) {
    total_size += 1 + 1;
  }

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

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

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

  if (from.has_status()) {
    _internal_mutable_status()->::Anki::Vector::external_interface::ResponseStatus::MergeFrom(from._internal_status());
  }
  if (from.success() != 0) {
    _internal_set_success(from._internal_success());
  }
}

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

void DefineCustomObjectResponse::CopyFrom(const DefineCustomObjectResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.DefineCustomObjectResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DefineCustomObjectResponse::InternalSwap(DefineCustomObjectResponse* other) {
  using std::swap;
  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DefineCustomObjectResponse, success_)
      + sizeof(DefineCustomObjectResponse::success_)
      - PROTOBUF_FIELD_OFFSET(DefineCustomObjectResponse, status_)>(
          reinterpret_cast<char*>(&status_),
          reinterpret_cast<char*>(&other->status_));
}

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


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

void ObjectEvent::InitAsDefaultInstance() {
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_available_ = const_cast< ::Anki::Vector::external_interface::ObjectAvailable*>(
      ::Anki::Vector::external_interface::ObjectAvailable::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_connection_state_ = const_cast< ::Anki::Vector::external_interface::ObjectConnectionState*>(
      ::Anki::Vector::external_interface::ObjectConnectionState::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_moved_ = const_cast< ::Anki::Vector::external_interface::ObjectMoved*>(
      ::Anki::Vector::external_interface::ObjectMoved::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_stopped_moving_ = const_cast< ::Anki::Vector::external_interface::ObjectStoppedMoving*>(
      ::Anki::Vector::external_interface::ObjectStoppedMoving::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_up_axis_changed_ = const_cast< ::Anki::Vector::external_interface::ObjectUpAxisChanged*>(
      ::Anki::Vector::external_interface::ObjectUpAxisChanged::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.object_tapped_ = const_cast< ::Anki::Vector::external_interface::ObjectTapped*>(
      ::Anki::Vector::external_interface::ObjectTapped::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.robot_observed_object_ = const_cast< ::Anki::Vector::external_interface::RobotObservedObject*>(
      ::Anki::Vector::external_interface::RobotObservedObject::internal_default_instance());
  ::Anki::Vector::external_interface::_ObjectEvent_default_instance_.cube_connection_lost_ = const_cast< ::Anki::Vector::external_interface::CubeConnectionLost*>(
      ::Anki::Vector::external_interface::CubeConnectionLost::internal_default_instance());
}
class ObjectEvent::_Internal {
 public:
  static const ::Anki::Vector::external_interface::ObjectAvailable& object_available(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::ObjectConnectionState& object_connection_state(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::ObjectMoved& object_moved(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::ObjectStoppedMoving& object_stopped_moving(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::ObjectUpAxisChanged& object_up_axis_changed(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::ObjectTapped& object_tapped(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::RobotObservedObject& robot_observed_object(const ObjectEvent* msg);
  static const ::Anki::Vector::external_interface::CubeConnectionLost& cube_connection_lost(const ObjectEvent* msg);
};

const ::Anki::Vector::external_interface::ObjectAvailable&
ObjectEvent::_Internal::object_available(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_available_;
}
const ::Anki::Vector::external_interface::ObjectConnectionState&
ObjectEvent::_Internal::object_connection_state(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_connection_state_;
}
const ::Anki::Vector::external_interface::ObjectMoved&
ObjectEvent::_Internal::object_moved(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_moved_;
}
const ::Anki::Vector::external_interface::ObjectStoppedMoving&
ObjectEvent::_Internal::object_stopped_moving(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_stopped_moving_;
}
const ::Anki::Vector::external_interface::ObjectUpAxisChanged&
ObjectEvent::_Internal::object_up_axis_changed(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_up_axis_changed_;
}
const ::Anki::Vector::external_interface::ObjectTapped&
ObjectEvent::_Internal::object_tapped(const ObjectEvent* msg) {
  return *msg->object_event_type_.object_tapped_;
}
const ::Anki::Vector::external_interface::RobotObservedObject&
ObjectEvent::_Internal::robot_observed_object(const ObjectEvent* msg) {
  return *msg->object_event_type_.robot_observed_object_;
}
const ::Anki::Vector::external_interface::CubeConnectionLost&
ObjectEvent::_Internal::cube_connection_lost(const ObjectEvent* msg) {
  return *msg->object_event_type_.cube_connection_lost_;
}
void ObjectEvent::set_allocated_object_available(::Anki::Vector::external_interface::ObjectAvailable* object_available) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_available) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_available);
    if (message_arena != submessage_arena) {
      object_available = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_available, submessage_arena);
    }
    set_has_object_available();
    object_event_type_.object_available_ = object_available;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_available)
}
void ObjectEvent::set_allocated_object_connection_state(::Anki::Vector::external_interface::ObjectConnectionState* object_connection_state) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_connection_state) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_connection_state);
    if (message_arena != submessage_arena) {
      object_connection_state = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_connection_state, submessage_arena);
    }
    set_has_object_connection_state();
    object_event_type_.object_connection_state_ = object_connection_state;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_connection_state)
}
void ObjectEvent::set_allocated_object_moved(::Anki::Vector::external_interface::ObjectMoved* object_moved) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_moved) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_moved);
    if (message_arena != submessage_arena) {
      object_moved = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_moved, submessage_arena);
    }
    set_has_object_moved();
    object_event_type_.object_moved_ = object_moved;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_moved)
}
void ObjectEvent::set_allocated_object_stopped_moving(::Anki::Vector::external_interface::ObjectStoppedMoving* object_stopped_moving) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_stopped_moving) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_stopped_moving);
    if (message_arena != submessage_arena) {
      object_stopped_moving = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_stopped_moving, submessage_arena);
    }
    set_has_object_stopped_moving();
    object_event_type_.object_stopped_moving_ = object_stopped_moving;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_stopped_moving)
}
void ObjectEvent::set_allocated_object_up_axis_changed(::Anki::Vector::external_interface::ObjectUpAxisChanged* object_up_axis_changed) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_up_axis_changed) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_up_axis_changed);
    if (message_arena != submessage_arena) {
      object_up_axis_changed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_up_axis_changed, submessage_arena);
    }
    set_has_object_up_axis_changed();
    object_event_type_.object_up_axis_changed_ = object_up_axis_changed;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_up_axis_changed)
}
void ObjectEvent::set_allocated_object_tapped(::Anki::Vector::external_interface::ObjectTapped* object_tapped) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (object_tapped) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(object_tapped);
    if (message_arena != submessage_arena) {
      object_tapped = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, object_tapped, submessage_arena);
    }
    set_has_object_tapped();
    object_event_type_.object_tapped_ = object_tapped;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.object_tapped)
}
void ObjectEvent::set_allocated_robot_observed_object(::Anki::Vector::external_interface::RobotObservedObject* robot_observed_object) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (robot_observed_object) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(robot_observed_object);
    if (message_arena != submessage_arena) {
      robot_observed_object = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, robot_observed_object, submessage_arena);
    }
    set_has_robot_observed_object();
    object_event_type_.robot_observed_object_ = robot_observed_object;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.robot_observed_object)
}
void ObjectEvent::set_allocated_cube_connection_lost(::Anki::Vector::external_interface::CubeConnectionLost* cube_connection_lost) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  clear_object_event_type();
  if (cube_connection_lost) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cube_connection_lost);
    if (message_arena != submessage_arena) {
      cube_connection_lost = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cube_connection_lost, submessage_arena);
    }
    set_has_cube_connection_lost();
    object_event_type_.cube_connection_lost_ = cube_connection_lost;
  }
  // @@protoc_insertion_point(field_set_allocated:Anki.Vector.external_interface.ObjectEvent.cube_connection_lost)
}
ObjectEvent::ObjectEvent(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:Anki.Vector.external_interface.ObjectEvent)
}
ObjectEvent::ObjectEvent(const ObjectEvent& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  clear_has_object_event_type();
  switch (from.object_event_type_case()) {
    case kObjectAvailable: {
      _internal_mutable_object_available()->::Anki::Vector::external_interface::ObjectAvailable::MergeFrom(from._internal_object_available());
      break;
    }
    case kObjectConnectionState: {
      _internal_mutable_object_connection_state()->::Anki::Vector::external_interface::ObjectConnectionState::MergeFrom(from._internal_object_connection_state());
      break;
    }
    case kObjectMoved: {
      _internal_mutable_object_moved()->::Anki::Vector::external_interface::ObjectMoved::MergeFrom(from._internal_object_moved());
      break;
    }
    case kObjectStoppedMoving: {
      _internal_mutable_object_stopped_moving()->::Anki::Vector::external_interface::ObjectStoppedMoving::MergeFrom(from._internal_object_stopped_moving());
      break;
    }
    case kObjectUpAxisChanged: {
      _internal_mutable_object_up_axis_changed()->::Anki::Vector::external_interface::ObjectUpAxisChanged::MergeFrom(from._internal_object_up_axis_changed());
      break;
    }
    case kObjectTapped: {
      _internal_mutable_object_tapped()->::Anki::Vector::external_interface::ObjectTapped::MergeFrom(from._internal_object_tapped());
      break;
    }
    case kRobotObservedObject: {
      _internal_mutable_robot_observed_object()->::Anki::Vector::external_interface::RobotObservedObject::MergeFrom(from._internal_robot_observed_object());
      break;
    }
    case kCubeConnectionLost: {
      _internal_mutable_cube_connection_lost()->::Anki::Vector::external_interface::CubeConnectionLost::MergeFrom(from._internal_cube_connection_lost());
      break;
    }
    case OBJECT_EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:Anki.Vector.external_interface.ObjectEvent)
}

void ObjectEvent::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ObjectEvent_cube_2eproto.base);
  clear_has_object_event_type();
}

ObjectEvent::~ObjectEvent() {
  // @@protoc_insertion_point(destructor:Anki.Vector.external_interface.ObjectEvent)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

void ObjectEvent::SharedDtor() {
  GOOGLE_DCHECK(GetArena() == nullptr);
  if (has_object_event_type()) {
    clear_object_event_type();
  }
}

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


void ObjectEvent::clear_object_event_type() {
// @@protoc_insertion_point(one_of_clear_start:Anki.Vector.external_interface.ObjectEvent)
  switch (object_event_type_case()) {
    case kObjectAvailable: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_available_;
      }
      break;
    }
    case kObjectConnectionState: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_connection_state_;
      }
      break;
    }
    case kObjectMoved: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_moved_;
      }
      break;
    }
    case kObjectStoppedMoving: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_stopped_moving_;
      }
      break;
    }
    case kObjectUpAxisChanged: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_up_axis_changed_;
      }
      break;
    }
    case kObjectTapped: {
      if (GetArena() == nullptr) {
        delete object_event_type_.object_tapped_;
      }
      break;
    }
    case kRobotObservedObject: {
      if (GetArena() == nullptr) {
        delete object_event_type_.robot_observed_object_;
      }
      break;
    }
    case kCubeConnectionLost: {
      if (GetArena() == nullptr) {
        delete object_event_type_.cube_connection_lost_;
      }
      break;
    }
    case OBJECT_EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = OBJECT_EVENT_TYPE_NOT_SET;
}


void ObjectEvent::Clear() {
// @@protoc_insertion_point(message_clear_start:Anki.Vector.external_interface.ObjectEvent)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

const char* ObjectEvent::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArena(); (void)arena;
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Anki.Vector.external_interface.ObjectAvailable object_available = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_available(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectConnectionState object_connection_state = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_connection_state(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectMoved object_moved = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_moved(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectStoppedMoving object_stopped_moving = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_stopped_moving(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectUpAxisChanged object_up_axis_changed = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_up_axis_changed(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.ObjectTapped object_tapped = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_object_tapped(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.RobotObservedObject robot_observed_object = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ctx->ParseMessage(_internal_mutable_robot_observed_object(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .Anki.Vector.external_interface.CubeConnectionLost cube_connection_lost = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_cube_connection_lost(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

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

  // .Anki.Vector.external_interface.ObjectAvailable object_available = 1;
  if (_internal_has_object_available()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::object_available(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectConnectionState object_connection_state = 2;
  if (_internal_has_object_connection_state()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::object_connection_state(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectMoved object_moved = 3;
  if (_internal_has_object_moved()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::object_moved(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectStoppedMoving object_stopped_moving = 4;
  if (_internal_has_object_stopped_moving()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::object_stopped_moving(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectUpAxisChanged object_up_axis_changed = 5;
  if (_internal_has_object_up_axis_changed()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        5, _Internal::object_up_axis_changed(this), target, stream);
  }

  // .Anki.Vector.external_interface.ObjectTapped object_tapped = 6;
  if (_internal_has_object_tapped()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        6, _Internal::object_tapped(this), target, stream);
  }

  // .Anki.Vector.external_interface.RobotObservedObject robot_observed_object = 7;
  if (_internal_has_robot_observed_object()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        7, _Internal::robot_observed_object(this), target, stream);
  }

  // .Anki.Vector.external_interface.CubeConnectionLost cube_connection_lost = 8;
  if (_internal_has_cube_connection_lost()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        8, _Internal::cube_connection_lost(this), target, stream);
  }

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

size_t ObjectEvent::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Anki.Vector.external_interface.ObjectEvent)
  size_t total_size = 0;

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

  switch (object_event_type_case()) {
    // .Anki.Vector.external_interface.ObjectAvailable object_available = 1;
    case kObjectAvailable: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_available_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectConnectionState object_connection_state = 2;
    case kObjectConnectionState: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_connection_state_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectMoved object_moved = 3;
    case kObjectMoved: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_moved_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectStoppedMoving object_stopped_moving = 4;
    case kObjectStoppedMoving: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_stopped_moving_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectUpAxisChanged object_up_axis_changed = 5;
    case kObjectUpAxisChanged: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_up_axis_changed_);
      break;
    }
    // .Anki.Vector.external_interface.ObjectTapped object_tapped = 6;
    case kObjectTapped: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.object_tapped_);
      break;
    }
    // .Anki.Vector.external_interface.RobotObservedObject robot_observed_object = 7;
    case kRobotObservedObject: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.robot_observed_object_);
      break;
    }
    // .Anki.Vector.external_interface.CubeConnectionLost cube_connection_lost = 8;
    case kCubeConnectionLost: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *object_event_type_.cube_connection_lost_);
      break;
    }
    case OBJECT_EVENT_TYPE_NOT_SET: {
      break;
    }
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

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

  switch (from.object_event_type_case()) {
    case kObjectAvailable: {
      _internal_mutable_object_available()->::Anki::Vector::external_interface::ObjectAvailable::MergeFrom(from._internal_object_available());
      break;
    }
    case kObjectConnectionState: {
      _internal_mutable_object_connection_state()->::Anki::Vector::external_interface::ObjectConnectionState::MergeFrom(from._internal_object_connection_state());
      break;
    }
    case kObjectMoved: {
      _internal_mutable_object_moved()->::Anki::Vector::external_interface::ObjectMoved::MergeFrom(from._internal_object_moved());
      break;
    }
    case kObjectStoppedMoving: {
      _internal_mutable_object_stopped_moving()->::Anki::Vector::external_interface::ObjectStoppedMoving::MergeFrom(from._internal_object_stopped_moving());
      break;
    }
    case kObjectUpAxisChanged: {
      _internal_mutable_object_up_axis_changed()->::Anki::Vector::external_interface::ObjectUpAxisChanged::MergeFrom(from._internal_object_up_axis_changed());
      break;
    }
    case kObjectTapped: {
      _internal_mutable_object_tapped()->::Anki::Vector::external_interface::ObjectTapped::MergeFrom(from._internal_object_tapped());
      break;
    }
    case kRobotObservedObject: {
      _internal_mutable_robot_observed_object()->::Anki::Vector::external_interface::RobotObservedObject::MergeFrom(from._internal_robot_observed_object());
      break;
    }
    case kCubeConnectionLost: {
      _internal_mutable_cube_connection_lost()->::Anki::Vector::external_interface::CubeConnectionLost::MergeFrom(from._internal_cube_connection_lost());
      break;
    }
    case OBJECT_EVENT_TYPE_NOT_SET: {
      break;
    }
  }
}

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

void ObjectEvent::CopyFrom(const ObjectEvent& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Anki.Vector.external_interface.ObjectEvent)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

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



// Begin code inserted by Anki plugin.
ConnectCubeResponse::ConnectCubeResponse( ResponseStatus* status, bool success, ::google::protobuf::uint32 object_id, const std::string& factory_id )
  : ConnectCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_success( success );
  set_object_id( object_id );
  set_factory_id( factory_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DisconnectCubeResponse::DisconnectCubeResponse( ResponseStatus* status )
  : DisconnectCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
FlashCubeLightsResponse::FlashCubeLightsResponse( ResponseStatus* status )
  : FlashCubeLightsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ForgetPreferredCubeResponse::ForgetPreferredCubeResponse( ResponseStatus* status )
  : ForgetPreferredCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetPreferredCubeRequest::SetPreferredCubeRequest( const std::string& factory_id )
  : SetPreferredCubeRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_factory_id( factory_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetPreferredCubeResponse::SetPreferredCubeResponse( ResponseStatus* status )
  : SetPreferredCubeResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
SetCubeLightsResponse::SetCubeLightsResponse( ResponseStatus* status )
  : SetCubeLightsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectAvailable::ObjectAvailable( const std::string& factory_id )
  : ObjectAvailable(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_factory_id( factory_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectConnectionState::ObjectConnectionState( ::google::protobuf::uint32 object_id, const std::string& factory_id, ::Anki::Vector::external_interface::ObjectType object_type, bool connected )
  : ObjectConnectionState(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_object_id( object_id );
  set_factory_id( factory_id );
  set_object_type( object_type );
  set_connected( connected );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectMoved::ObjectMoved( ::google::protobuf::uint32 timestamp, ::google::protobuf::uint32 object_id )
  : ObjectMoved(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_object_id( object_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectStoppedMoving::ObjectStoppedMoving( ::google::protobuf::uint32 timestamp, ::google::protobuf::uint32 object_id )
  : ObjectStoppedMoving(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_object_id( object_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectUpAxisChanged::ObjectUpAxisChanged( ::google::protobuf::uint32 timestamp, ::google::protobuf::uint32 object_id, ::Anki::Vector::external_interface::UpAxis up_axis )
  : ObjectUpAxisChanged(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_object_id( object_id );
  set_up_axis( up_axis );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectTapped::ObjectTapped( ::google::protobuf::uint32 timestamp, ::google::protobuf::uint32 object_id )
  : ObjectTapped(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_object_id( object_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
RobotObservedObject::RobotObservedObject( ::google::protobuf::uint32 timestamp, ::Anki::Vector::external_interface::ObjectFamily object_family, ::Anki::Vector::external_interface::ObjectType object_type, ::google::protobuf::int32 object_id, CladRect* img_rect, PoseStruct* pose, float top_face_orientation_rad, ::google::protobuf::uint32 is_active )
  : RobotObservedObject(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_timestamp( timestamp );
  set_object_family( object_family );
  set_object_type( object_type );
  set_object_id( object_id );
  set_allocated_img_rect( img_rect );
  set_allocated_pose( pose );
  set_top_face_orientation_rad( top_face_orientation_rad );
  set_is_active( is_active );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DeleteCustomObjectsRequest::DeleteCustomObjectsRequest( ::Anki::Vector::external_interface::CustomObjectDeletionMode mode )
  : DeleteCustomObjectsRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_mode( mode );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DeleteCustomObjectsResponse::DeleteCustomObjectsResponse( ResponseStatus* status )
  : DeleteCustomObjectsResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CreateFixedCustomObjectRequest::CreateFixedCustomObjectRequest( PoseStruct* pose, float x_size_mm, float y_size_mm, float z_size_mm )
  : CreateFixedCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_pose( pose );
  set_x_size_mm( x_size_mm );
  set_y_size_mm( y_size_mm );
  set_z_size_mm( z_size_mm );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CreateFixedCustomObjectResponse::CreateFixedCustomObjectResponse( ResponseStatus* status, ::google::protobuf::uint32 object_id )
  : CreateFixedCustomObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_object_id( object_id );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CustomBoxDefinition::CustomBoxDefinition( ::Anki::Vector::external_interface::CustomObjectMarker marker_front, ::Anki::Vector::external_interface::CustomObjectMarker marker_back, ::Anki::Vector::external_interface::CustomObjectMarker marker_top, ::Anki::Vector::external_interface::CustomObjectMarker marker_bottom, ::Anki::Vector::external_interface::CustomObjectMarker marker_left, ::Anki::Vector::external_interface::CustomObjectMarker marker_right, float x_size_mm, float y_size_mm, float z_size_mm, float marker_width_mm, float marker_height_mm )
  : CustomBoxDefinition(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_marker_front( marker_front );
  set_marker_back( marker_back );
  set_marker_top( marker_top );
  set_marker_bottom( marker_bottom );
  set_marker_left( marker_left );
  set_marker_right( marker_right );
  set_x_size_mm( x_size_mm );
  set_y_size_mm( y_size_mm );
  set_z_size_mm( z_size_mm );
  set_marker_width_mm( marker_width_mm );
  set_marker_height_mm( marker_height_mm );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CustomCubeDefinition::CustomCubeDefinition( ::Anki::Vector::external_interface::CustomObjectMarker marker, float size_mm, float marker_width_mm, float marker_height_mm )
  : CustomCubeDefinition(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_marker( marker );
  set_size_mm( size_mm );
  set_marker_width_mm( marker_width_mm );
  set_marker_height_mm( marker_height_mm );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
CustomWallDefinition::CustomWallDefinition( ::Anki::Vector::external_interface::CustomObjectMarker marker, float width_mm, float height_mm, float marker_width_mm, float marker_height_mm )
  : CustomWallDefinition(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_marker( marker );
  set_width_mm( width_mm );
  set_height_mm( height_mm );
  set_marker_width_mm( marker_width_mm );
  set_marker_height_mm( marker_height_mm );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DefineCustomObjectRequest::DefineCustomObjectRequest( ::Anki::Vector::external_interface::CustomType custom_type )
  : DefineCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_custom_type( custom_type );
}
DefineCustomObjectRequest::DefineCustomObjectRequest( bool is_unique )
  : DefineCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_is_unique( is_unique );
}
DefineCustomObjectRequest::DefineCustomObjectRequest( CustomBoxDefinition* custom_box )
  : DefineCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_custom_box( custom_box );
}
DefineCustomObjectRequest::DefineCustomObjectRequest( CustomCubeDefinition* custom_cube )
  : DefineCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_custom_cube( custom_cube );
}
DefineCustomObjectRequest::DefineCustomObjectRequest( CustomWallDefinition* custom_wall )
  : DefineCustomObjectRequest(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_custom_wall( custom_wall );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
DefineCustomObjectResponse::DefineCustomObjectResponse( ResponseStatus* status, bool success )
  : DefineCustomObjectResponse(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_status( status );
  set_success( success );
}
// End code inserted by Anki plugin.


// Begin code inserted by Anki plugin.
ObjectEvent::ObjectEvent( ObjectAvailable* object_available )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_available( object_available );
}
ObjectEvent::ObjectEvent( ObjectConnectionState* object_connection_state )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_connection_state( object_connection_state );
}
ObjectEvent::ObjectEvent( ObjectMoved* object_moved )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_moved( object_moved );
}
ObjectEvent::ObjectEvent( ObjectStoppedMoving* object_stopped_moving )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_stopped_moving( object_stopped_moving );
}
ObjectEvent::ObjectEvent( ObjectUpAxisChanged* object_up_axis_changed )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_up_axis_changed( object_up_axis_changed );
}
ObjectEvent::ObjectEvent( ObjectTapped* object_tapped )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_object_tapped( object_tapped );
}
ObjectEvent::ObjectEvent( RobotObservedObject* robot_observed_object )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_robot_observed_object( robot_observed_object );
}
ObjectEvent::ObjectEvent( CubeConnectionLost* cube_connection_lost )
  : ObjectEvent(static_cast<::PROTOBUF_NAMESPACE_ID::Arena*>(nullptr)) {
  set_allocated_cube_connection_lost( cube_connection_lost );
}
// End code inserted by Anki plugin.

// @@protoc_insertion_point(namespace_scope)
}  // namespace external_interface
}  // namespace Vector
}  // namespace Anki
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ConnectCubeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectCubeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ConnectCubeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ConnectCubeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ConnectCubeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ConnectCubeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CubesAvailableRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CubesAvailableRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CubesAvailableRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CubesAvailableResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CubesAvailableResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CubesAvailableResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DisconnectCubeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DisconnectCubeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DisconnectCubeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DisconnectCubeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DisconnectCubeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DisconnectCubeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FlashCubeLightsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FlashCubeLightsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FlashCubeLightsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::FlashCubeLightsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::FlashCubeLightsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::FlashCubeLightsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ForgetPreferredCubeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ForgetPreferredCubeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ForgetPreferredCubeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ForgetPreferredCubeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ForgetPreferredCubeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ForgetPreferredCubeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetPreferredCubeRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetPreferredCubeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetPreferredCubeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetPreferredCubeResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetPreferredCubeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetPreferredCubeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetCubeLightsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetCubeLightsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetCubeLightsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::SetCubeLightsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::SetCubeLightsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::SetCubeLightsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectAvailable* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectAvailable >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectAvailable >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectConnectionState* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectConnectionState >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectConnectionState >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectMoved* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectMoved >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectMoved >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectStoppedMoving* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectStoppedMoving >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectStoppedMoving >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectUpAxisChanged* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectUpAxisChanged >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectUpAxisChanged >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectTapped* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectTapped >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectTapped >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::RobotObservedObject* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::RobotObservedObject >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::RobotObservedObject >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CubeConnectionLost* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CubeConnectionLost >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CubeConnectionLost >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DeleteCustomObjectsRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DeleteCustomObjectsRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DeleteCustomObjectsRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DeleteCustomObjectsResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DeleteCustomObjectsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DeleteCustomObjectsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CreateFixedCustomObjectRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CreateFixedCustomObjectRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CreateFixedCustomObjectRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CreateFixedCustomObjectResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CreateFixedCustomObjectResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CreateFixedCustomObjectResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CustomBoxDefinition* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CustomBoxDefinition >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CustomBoxDefinition >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CustomCubeDefinition* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CustomCubeDefinition >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CustomCubeDefinition >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::CustomWallDefinition* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::CustomWallDefinition >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::CustomWallDefinition >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DefineCustomObjectRequest* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DefineCustomObjectRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DefineCustomObjectRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::DefineCustomObjectResponse* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::DefineCustomObjectResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::DefineCustomObjectResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::Anki::Vector::external_interface::ObjectEvent* Arena::CreateMaybeMessage< ::Anki::Vector::external_interface::ObjectEvent >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Anki::Vector::external_interface::ObjectEvent >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

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